2012/09/30

FreeBSDのVPN ServerでIPv6をバラまく

Hiroaki's blog: LinuxのVPN ServerでIPv6をバラまくと同じことをFreeBSDでやってみる。

L2TP/IPsecを使うので、Kernelのパラメータを修正してbuild。これはIPsecを使おうとしたときには毎度おなじみの話なので、ここでは省略。詳しくは、[FreeBSD] L2TP/IPsecサーバを立てる | 雑記帳などを参照。
次。mpd5の話。インストールについては、L2TP/IPsecをやるときと同じなので、略。IPv6をばら撒くための、設定について。IPv6 Part 6: Configuring An IPv6 Network Assigned Over PPPoE Using FreeBSD » mmacleod.caがとても参考になる。
/usr/local/etc/mpd5/mpd.conf の内容。
startup:
        set user kanri irnak admin
        set console self 127.0.0.1
        set console open
        log +ipcp +ipv6cp +lcp +link +auth +ecp +ccp
        set console enable logging

default:
        load l2tp_server

l2tp_server:
        create bundle template B4
        set bundle enable ipv6cp
        set iface idle 1800
        set iface mtu 1454
        set iface enable tcpmssfix
        set iface up-script /usr/local/etc/mpd5/mpd.linkup
        set iface down-script /usr/local/etc/mpd5/mpd.linkdown
        create link template L4 l2tp
        set link action bundle B4
        set link enable multilink
        set auth enable system-acct
        set link keep-alive 10 60
        set link disable chap eap
        set link enable chap-msv2
        set link mtu 1454
        set link mru 1454
        set link enable incoming
ポイントは、ipv6cpを有効にしていること。IPv4の割り当ては行わないので、ipcpは記述しない。
つながったらroutingやfirewallの設定の変更が必要になるので、それらは up-sciptで指定した /usr/local/etc/mpd5/mpd.linkup に書く。
1つ目の引数がInterface(ng0とかng1とか)なので、
/sbin/ifconfig $1 inet6 割り当てるアドレス prefixlen 割り当てるprefix alias
とかしてあげればOK。ルーティングは適当に。例えば、P2Pだからってprefixを長くしてあげると、アドレスが一番マッチしたルートを使おうとするので、ルーティングを意識しなくてもよきに計らってくれたりする。
同様に、切断されたときの処理を down-scriptで指定した /usr/local/etc/mpd5/mpd.linkdown に書く。

クライアントのMac OSX側。こちらは、Hiroaki's blog: LinuxのVPN ServerでIPv6をバラまくと同じ。


Wifiスポットなど、まだIPv6を割り当ててくれないサービスも多く、6to4が通らないことも多いので、こういう無理やりな方法がまだまだ必要。


0 件のコメント :

コメントを投稿

Comments on Google+: