さくらの6rd
標準提供されるようになったIPv6アドレス数は1個で、独自の逆引きも設定できずいけてない感じですが我慢するしかないようです。
概要
2014年3月末1)ごろまで無料でIPv6がトライアルできる6rdサービスです。
条件など詳しくはさくらの6rd(トライアル) « さくらインターネット研究所でほとんどが解説されていますので主な解説はそちらにおまかしておきます。
簡単な概略として/usr/src/sys/net/if_stf.cに6rd設定方法(FreeBSD8編) « さくらインターネット研究所で説明しているパッチをあててください。
その後/usr/src/sys/modules/if_stf/と/usr/src/share/man/でmake&&make installをしてあげればOKです。
#そのあと念のためkldloadでロードするのではなくて再起動をおすすめします。
設定
FreeBSD8.x系とFreeBSD9.x系では/etc/rc.confの書式の変更に伴って記述内容が変わっているので、注意してください。
FreeBSD8.x系
/etc/rc.confに以下の内容を記述して再起動すれば接続します。
- /etc/rc.conf
ipv6_enable="YES" cloned_interfaces="stf0" ipv6_ifconfig_stf0="2001:e41:xxxx:xxxx::1/32" ipv6_defaultrouter="2001:e41:3dd3:e07d::1"
FreeBSD9.x系
FreeBSD9.xから記述形式が変わっています。
具体的にはipv6_enableがobsoleteしてipv6_activate_all_interfacesへ変わっています。
ipv6_ifconfig_stf0がifconfig_stf0_ipv6に変わり、書式も先頭に inet6 をつける必要があります。
/etc/rc.confに以下の内容を記述して再起動すれば接続します。
- /etc/rc.conf
ipv6_activate_all_interfaces="YES" cloned_interfaces="stf0" ifconfig_stf0_ipv6="inet6 2001:e41:xxxx:xxxx::1/32" ipv6_defaultrouter="2001:e41:3dd3:e07d::1"
pf設定例
pfの設定ファイルの一部だけ掲載しています。
- pf
ext_if = "em0" stf_if = "stf0" tcp6_services ="{80,53,6667,6668,6669}" udp6_services = "{ 53,6667,6668,6669}" #-- IPv6 6rd Sakura Setting Start -- pass in quick on $ext_if inet proto ipv6 from any to ($ext_if) keep state pass in quick on $stf_if inet6 proto tcp from any to ($stf_if) port $tcp6_services flags S/SA keep state pass in quick on $stf_if inet6 proto udp from any to ($stf_if) port $udp6_services keep state pass in quick on $stf_if inet6 proto icmp6 all icmp6-type $icmp6_types keep state block drop in log quick on $stf_if proto icmp all block drop in log quick on $stf_if proto tcp all block drop in log quick on $stf_if proto udp all #-- IPv6 6rd Sakura Setting End --
詳細なpfの設定についてはpfあたりを参考にしてください。
逆引き委譲
逆引き委譲を申し込んでみましたので、メモしておきます。
手続きはさくらの6rd(トライアル) « さくらインターネット研究所を見て行ってください。
ネームサーバは2つ指定できるようです。
named.confには以下のように書きます。
その際Zoneを書くのに役立つのがIPv6LabsさんのサイトにあるThe NeGi project ( IPv6 address change perl-script )です。
逆引きを作成したいIPv6アドレスを引数で以下のように実行すると楽に作成できます。
% perl ipv6_changer.pl -r 2001:e41:XXXX:XXXX::1 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.X.X.X.X.X.X.X.X.X.4.e.0.1.0.0.2
これをもとに以下のように書きます。
- named.conf
zone "X.X.X.X.X.X.X.X.X.4.e.0.1.0.0.2.ip6.arpa." { type master; file "X.X.X.X.X.X.X.X.X.4.e.0.1.0.0.2.ip6.arpa.zone"; };
そしてzoneファイルは以下のように書きます。
- X.X.X.X.X.X.X.X.X.4.e.0.1.0.0.2.ip6.arpa.zone
$TTL 1800 @ IN SOA ns2.example.jp. root.example.gr.jp. ( 2011092900 ; serial 3600 ; refresh 900 ; retry 1209600 ; expiry 86400 ) ; minimum IN NS ns1.example.jp. In NS ns2.example.jp. 1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0 IN PTR example.example.jp.
このあとrndc reloadするなりすれば設定完了です。
あとは、NSの設定完了通知を待ちましょう。早ければ数日で返答がくるかもです。
また、2011/09/29現在逆引き途中のDNSがAレコードしかないためIPv6Onlyな環境からだと逆引きできない恐れがありますが、中の人にTwitterで尋ねたところ、2012年4月以降(正式サービス開始時に)AAAAレコードに対応するかもしれないとのことです。
追記 @ 2013/03/07
今のところ正式サービスになっていないせいかns1.dns.ne.jp及びns2.dns.ne.jpにIPv6アドレスが割り当てられていません。
既にさくらのレンタルサーバではIPv6サービスを新規加入者向けに提供開始していますが、DNSサーバそのものはIPv6アドレスの追加がされていないようです。
このためIPv6オンリー環境からは逆引きに失敗する恐れがあります2)
メモ
DNSキャッシュサーバ
以下のDNSキャッシュサーバが提供されていますので、/etc/resolv.confに設定しておくとしわせでしょう。
- /etc/resolv.conf
domain example.gr.jp nameserver 210.224.163.3 nameserver 210.224.163.4 nameserver 2403:3a00::1 nameserver 2403:3a00::2
6rd間の通信
さくらのVPS間で実験したところお互いのNICに直接IPv6プロトコルなパケットな届いていました。
当初61.211.224.125からIPv6プロトコルのみを許可すれば外部と通信できると思っていたら違うようです。
このためさくらの6rd同士が通信するにはIPv4アドレスを指定してお互いでIPv6を通る設定にすべきなようです。
もっともIPv6パケットを無条件に許可するのも手だてですが、気持ち悪いのは私だけでしょうか・・・。
#上のpfの設定例は全部のIPアドレスからIPv6プロトコルを許可しています。
追記 @ 2011/09/25
さらに6rdを調べる中でRFC 5569 - IPv6 Rapid Deployment on IPv4 Infrastructures (6rd)を読んでも今一つイメージがつかめなかったのですが、さくらの6rdを現在運営しているさくらインターネット研究所の6rdによるIPv6接続(概要編) « さくらインターネット研究所にて6rdのクライアント間はIPv6プロトコルを直接やりとりする旨記述がありました。まだ調査は終えていませんが、ほかの6rdサービスやさくらの6rd間での通信状況を調べ次第pfの設定方法を考えてみます。
参考資料: Protocol Numbers(xml)
速度制限
IPv6Nativeで数百Mbpsでる環境下との間で速度チェックをしてみたところ16KBpsしかでませんでした。
これはさくらの6rdルーター側での制約をかしているものと思われます。
なので、大量のアクセスがあるようなサービスを提供するには向いていないものと思われます。
2011/12/11現在制限が変わっていることを確認しました。最大1MB/s程度は出るようです。