明日7/4(水) から 7/6(金) にかけて、岡山県倉敷市で JANOG30 ミーティングが開催されます。今回の JANOG ミーティングでは参加者向けのネットワーク接続として、通常のインターネット接続に加えて 4rd/MAP プロトコルを用いた実験的なインターネット接続も提供されています。その 4rd/MAP の接続ルータ(CE)のひとつとして、IIJ から SEIL/X1 を提供しました。そこで、本日はこの SEIL/X1 に試験的に実装した 4rd/MAP 機能についてご紹介します。
まずはこちらの JANOG30 のネットワーク図をご覧ください。
この画像は JANOG30 のウェブサイトから引用させていただいております。
引用元: http://www.janog.gr.jp/meeting/janog30/network.html
この真中やや下にある「4rd CE#2」が今回私達が提供した SEIL/X1 です。この SEIL と左上にある Furukawa Network Solution 様の「4rd BR」の間で 4rd/MAP(*1) トンネルを張り、IPv4 over IPv6 のインターネット接続を実現しています。
この SEIL には以下のようなコンフィグが設定されています。グローバル IPv4/IPv6 アドレスこそドキュメンテーションアドレスに置き換えていますが、それ以外は現在動いている SEIL からそのまま持ってきました。
interface lan0 add 192.168.2.1/24
interface lan0 add 2001:db8:32::1/64
interface lan1 add 2001:db8:1::32/64
interface frd0 mtu 1460
interface frd0 tcp-mss 1420
route add default frd0
route6 add default 2001:db8:1::1
nat napt add private 192.168.2.0-192.168.2.255 interface frd0
nat proxy sip add port 5060 protocol tcpudp
frd mode ce
frd ce-address 2001:db8:32::1
frd br-address 2001:db8:2::2
frd rule add JANOG external-ipv4-prefix 198.51.100.0/24 internal-ipv6-prefix
2001:db8::/32 index-length 16 host-id ::1
なおこの SEIL/X1 は、まだリリース版ファームウェアには入っていない 4rd/MAP 機能を利用するために特別版ファームウェア、その名も「3.99 (JANOG30)」を搭載しています。上記のコンフィグはその特別版ファームウェア専用のコンフィグであり、リリース版ファームウェアでは利用できませんのでご注意ください。
さて、コンフィグの最後の 4 行が 4rd/MAP の主要な設定です。
1. frd mode ce
2. frd ce-address 2001:db8:32::1
3. frd br-address 2001:db8:2::2
4. frd rule add JANOG external-ipv4-prefix 198.51.100.0/24 internal-ipv6-prefix
2001:db8::/32 index-length 16 host-id ::1
はじめの 3 行は、順に
となります。最後の 4 行目は少々ややこしく、
という意味になります。この4行が 4rd/MAP の動作に最低限必要なコンフィグです。これで IPv4 over IPv6 によるインターネット接続や、4rd/MAP の特徴である 4rd CE 間相互の IPv4 over IPv6 通信が可能になっています。
ここで SEIL の隣の 4rd CE#1 (Furukawa Network Solution 様ご提供), 4rd CE#3 (IP Infusion 様ご提供)については何も設定されていないことにご注意ください。何も書かなくても 4rd BR を介さない 4rd CE 相互の直接通信が可能になるのが、4rd/MAP プロトコルの優れた点です(*2)。
そして、4rd/MAP によるインターネット接続を快適にご利用いただくため、これらに加えて
interface frd0 mtu 1460
interface frd0 tcp-mss 1420
も設定しています。1行目が 4rd/MAP トンネルの MTU 値を 1460 に設定し、2行目ハそのトンネルの中を流れる TCP セグメントの TCP MSS オプションを 1420 に書き換える設定になります。MTU はスループットをかせぐため IPv4 over IPv6 over Ethernet の最大値 1460 にしました。tcp-mss はこの MTU 値で TCP セグメントをフラグメントさせない最大の 1420 としています。
コンフィグの紹介は以上です。JANOG30 の会場では SSID "janog30-4rd-seil" でこの SEIL につながりますので、会場にお越しの方はぜひお試しください。今回は実網を使った 4rd/MAP プロトコルの実験という側面もありますので、もしかすると何か奇妙な挙動が見られるかもしれません。その場合にはこちらのJANOG30テストネットワークのページに書き込んでいただけると助かります。 :)
SEIL の 4rd/MAP 実装については昨年の IIJ Technical WEEK 2011 で紹介させていただきました。資料をウェブに掲載しておりますので、こちらもご覧ください。
なお今回の JANOG30 には、本記事を執筆した佐原と、上記 Technical WEEK 2011 で 4rd/MAP の紹介をした大谷津も参加しております。SEIL の 4rd/MAP にご興味のある方は休憩時間や懇親会にでもぜひお声をお掛けください。また DAY1 の「IPv6時代のIPv4を考える」~第二章~というプログラムでは、同じく SEIL チームの末永がスピーカーとして登壇いたしますので、こちらもご期待ください。
*1: このプロトコルは IETF における標準化の過程で "SAM" "4rd" "MAP" 等さまざまな名前がついていますが、本稿では "4rd/MAP" と表記します。
*2: といっても、今回の JANOG30 ネットワークのように 4rd BR が 4rd CE の比較的近くに設置されている場合はその効果を体感しずらいと思います...。4rd/MAP の実力は、4rd BR が 4rd CE とは別の網に設置され、その通信遅延が無視できないような環境でこそ如実に発揮されます。