LinuxのVPN ServerでIPv6をバラまく

2012/08/19

ipv6 l2tp linux OSX vpn ネットワーク

t f B! P L
IPv4アドレスが枯渇したと言われているが、3Gや公衆のWifiスポットで未だにIPv6アドレスが割り当てられることはない。しかも、割り当てられるIPv4アドレスがPrivateアドレスで、6to4などのtunnelが使えなかったりする。
割り当てられないのであれば、自分で割り当てよう!ということで、L2TPで繋いだVPNでIPv6を流してみる。

今回は、IPv6アドレスを割り当てられているLinux(CloudCoreのCentOS 5.8)に対してOSX(Mountain Lion)からVPN接続し、踊る亀を見られるようにする。

まずはLinux側。すでに何らかの形で固定のIPv6アドレスを、/64よりも大きなブロックで割り当てていることが前提。6to4で割り当てられるのは/48なので、それでもOK。
最初は普通にL2TPのサーバにする。さくらのVPSでiPhone用の野良WiFi通信傍受対策のL2TP/IPsec(VPN)を設定したメモ(CentOS5) - nori_no のメモなどを参考に。openswanもxl2tpdもrpmがあったので、それでインストール。とりあえずはIPv4のアドレスを割り当てるようにする。

次に、Mountain Lion側。システム環境設定→ネットワーク で、新しいサービスを追加する。
  • インターフェイス:VPN
  • VPN タイプ:L2TP over IPSec
  • サービス名:適当に
さらに
  • サーバアドレス:Linuxのホスト名またはIPv4アドレス
  • アカウント名:Linuxの/etc/ppp/chap-secrets に書いたclientの名前
とし、認証設定ボタンを押下。
  • コンピュータ認証:/etc/ipsec.secret に書いたパスワード
  • パスワード:/etc/ppp/chap-secrets に書いたパスワード
をセットして、OK。
適用ボタンを押して設定を保存したら、接続ボタンを押して、繋がるかどうか確認。詳細...ボタンを押して、TCP/IPの欄でIPv4 アドレスやサブネットマスクなどが割り当てられていることを確認する。
  • Linux側では、UDPの1701, 500, 4500が通信できるようにiptablesが設定されていること。
  • 設定に問題ないようであれば、ipsecを再起動してみる(sudo /sbin/service ipsec restart)
  • Mountain Lion側では、パスワードを正しく設定していること。
が確認ポイント。IPv4で使う訳ではないので、NATやルーティングは設定不要。

ここまでできたら、IPv6用の設定に移る。
Linux側の /etc/ppp/options.xl2tpd の最後に、

+ipv6
ipv6cp-accept-local
を追加。 /etc/sysconfig/network-scripts にifcfg-ppp0 というファイル(ppp1やppp2かもしれないが、通常は0でOK)を新たに作る。中身は

IPV6INIT=yes
IPV6ADDR=受け側のIPv6アドレス/64
とする。

次。/etc/ppp/ipv6-up がバグっているような気がしてならない。ので、ちょっと手を入れる。
47行目前後にある

CONFIG=$REALDEVICE


CONFIG=$LOGDEVICE
にする。
そして、/etc/ppp にipv6-up.local というファイルを作る。中身は

#!/bin/bash

PREFIX="割り振るIPv6のネットワーク"
/sbin/ip6tables -P FORWARD ACCEPT
/sbin/ip6tables -A FORWARD -i $1 -j ACCEPT 
/sbin/ip6tables -A INPUT -i $1 -j ACCEPT 
とする。ifcfg-ppp0で/64としているので、PREFIXは::/64 で終わるアドレスとなる。このファイルに実行権限をつけることを忘れないこと。これは、IPv6アドレスが割り当てられた時に実行される。

Mountain Lion側は、システム環境設定→ネットワーク でさっき作ったサービスを選択し、詳細... のTCP/IP タブを選択。IPv4 の構成を「切」にする。
また、/etc/ppp/ipv6-up というファイルを作り、実行権限を付けておく。中身は

#!/bin/sh
/sbin/ifconfig $1 inet6 add 割り当てるIPv6アドレス/64
/sbin/route add -inet6 default $4%$1
/sbin/route change -inet6 default $4%$1
とする。Linux側で最後を::1として、Mountain Lion側では::2とするとわかりやすいかも。
これで設定はOK。作った「サービス」に繋いだ後、踊る亀にアクセスして、亀の絵がアニメーションしていればIPv6で接続できている。


本来であれば、Linux側でradvdを動かしていればMountain Lion側のIPv6アドレスは自動で割り当てられるのだが、 IPv6 Address on L2TP VPN: Apple Support Communitiesで指摘されているように、アドレスの割当が行われない。そのため、/etc/ppp/ipv6-up を用意して手動で割当を行っている。

楽天で探す
楽天市場
にほんブログ村 IT技術ブログへ

人気の投稿

ブログ アーカイブ

自己紹介

開発からSREにクラスチェンジしました。

アフィリエイト

  • 当ブログ「Hiroaki's blog」は、amazon.co.jpを宣伝しリンクすることによってサイトが紹介料を獲得できる手段を提供することを目的に設定されたアフィリエイト宣伝プログラムである、Amazonアソシエイト・プログラムの参加者です。
  • 当ブログでは、第三者配信による広告サービスを利用しています。このような広告配信事業者は、ユーザーの興味に応じた商品やサービスの広告を表示するため、当サイトや他サイトへのアクセスに関する情報 (氏名、住所、メール アドレス、電話番号は含まれません) を使用することがあります。このプロセスの詳細やこのような情報が広告配信事業者に使用されないようにする方法については、ここをクリックしてください。
  • アクセストレードアフィリエイトプログラムに参加しています。
  • A8.netアフィリエイトプログラムに参加しています。
  • バリューコマースアフィリエイトプログラムに参加しています。
  • もしもアフィリエイトプログラムに参加しています。

プライバシーポリシー

当サイトにアクセスされる場合、IPアドレスなどの情報または閲覧状況に関するデータが機械的に生成され、場合によっては個人情報と関連付けられる可能性があります。プライバシー保護に関する適用法に準じて、これらの通信および閲覧に関するデータを収集、処理、および利用することがあります。
当サイトにアクセスされる場合、非個人情報(ブラウザの種類、OSの種類、ドメイン名、訪問数、平均滞在時間、ページ・ビューなど個人を特定できない情報)が自動収集される場合があります。当サイトのパフォーマンスやコンテンツを改善する目的で、これらの情報を利用する場合があります。
アフィリエイトでは成果を把握するためにcookie等を利用しています。それ以外の目的で使用されることはありません。詳しくは各社のページにて確認してください。
本サイトに掲載する情報に関しては、正しいものを提供することを務めていますが、掲載内容から、いかなる損失や損害などの被害が発生しても、当ブログでは責任を追いかねます。

QooQ