先日 (2011/7/21) NTT 東日本/西日本のフレッツ光ネクストで「インターネット(IPv6 IPoE)接続」(以下 IPoE方式) のサービス提供が開始されました。それに合わせて SEIL も対応ファームウェア(SEIL/X,B1 3.40 版、SEIL/x86 1.90 版)をリリースしています。今回は SEIL を使った IPoE方式への接続方法をご紹介します。
IPoE方式を用いる場合、ルータは必ずしも必要ではありませんが、導入することで以下のようなメリットがあります。
※ 弊社 (IIJ) では IPoE方式に対応した個人向け接続サービスとして IIJmio FiberAccess/NF を提供しています。詳しくは以下をご覧ください。
「フレッツ 光ネクストの「インターネット(IPv6 IPoE)接続」に対応した新サービス「IIJmio FiberAccess/NFサービス」提供開始のお知らせ」
(2014/10/28 追記)
ひかり電話契約有りの場合に配布されるプレフィクスの長さが変更されたため記事を更新しました。以前は ONU 配下に /48 が配布されていましたが、現在は /56 が配布されています。
IPoE方式は、先日当ブログでご紹介した「インターネット(IPv6 PPPoE)接続」 (以下 PPPoE方式) と並んで、フレッツ光ネクストで利用できる IPv6 の接続方式です。PPPoE方式への接続方法をご紹介しているエントリについては以下をご覧ください。
PPPoE方式とIPoE方式の違いをまとめると以下のようになります。
IPoE方式
PPPoE方式
さらに、IPoE方式ではひかり電話の契約の有無でネットワークの構成が変わってきます。
パラメータ | ひかり電話有り | ひかり電話無し |
---|---|---|
プレフィクス | ONU配下には/56で配布されるが、HGWの先はDHCPv6にて/60で分割配布される | ONU配下に/64が1つRAで配られる |
グローバルアドレス | DHCPv6で取得した情報を元に設定 | RAで取得した情報を元に生成 |
デフォルトルート | RAで取得 | RAで取得 |
DNSアドレス | DHCPv6 | (Stateless)DHCPv6 |
ひかり電話有りの場合
ひかり電話がある場合、ONUの下にホームゲートウェイ(HGW)と呼ばれる機器が設置されます(ONUとホームゲートウェイが一体型の場合もあります)。この場合、ONU配下には/56のプレフィクスが配布されてきますが、さらにその先のホームゲートウェイではそれが /60 に分割されて配布されます。つまり
のようになります。このことから、実際には 60 - 56 = 4(bit)ぶんの、16個のプレフィクスを利用できることが分かります。そのうち1つはHGWが利用するため、HGWの配下に最大15台までSEILを並べて同時利用することができることになります(実際にやる人はいないと思いますが...)。
ひかり電話無しの場合
ひかり電話が無い場合、 RAで配られる/64 のプレフィクスひとつが利用できます。LAN内の機器は ICMPv6 のルータ広告 (Router Advertisement, RA) メッセージからプレフィクスを得ます。また、DNS など各種サーバ関連の情報は (Stateless) DHCPv6 プロトコルを使って取得します。ただ、正直に言ってしまうとこの構成でルータを挟む構成にする意味はあまり無い、と言えるかもしれません。
ということで本記事では、複数のセグメントが作れるひかり電話の契約がある場合の設定方法について説明します。
ホームゲートウェイの配下ではルータ広告が送信されると共に DHCPv6-PD が利用できます。SEILはホームゲートウェイの配下に設置します。lan1インタフェース をホームゲートウェイに接続し、lan0インタフェース に SEIL 配下の端末を接続します。
SEIL の設定は以下の通りです。
1 route6 add default router-advertisement interface lan1 2 dhcp6 client enable 3 dhcp6 client interface lan1 4 dhcp6 client prefix-delegation subnet lan0 sla-id 0x1 enable 5 dhcp6 server interface lan0 enable 6 dhcp6 server interface lan0 dns add dhcp6 7 rtadvd enable 8 rtadvd interface lan0 enable 9 rtadvd interface lan0 other-flag on 10 rtadvd interface lan0 advertise auto
設定をファイル形式で取得する場合はこちらからダウンロードしてください。
インタフェース名等はご利用の環境に合わせて適宜変更してお使いください。
1行目の
1 route6 add default router-advertisement interface lan1
と 3行目の
3 dhcp6 client interface lan1
以外は、先日「SEIL/x86でNGN IPv6接続を試す」の記事で使った PPPoE方式 の設定と同じです。
PPPoE方式 では PPPoEインタフェース にデフォルト経路を設定していました。それに対し IPoE方式ではルータ広告 (Router Advertisement) メッセージを元にデフォルト経路を設定します。
デフォルト経路の設定
1 route6 add default router-advertisement interface lan1
IPv6 のデフォルト経路をルータ広告メッセージの送信元に向けるように設定します。ルータ広告メッセージを受信するインタフェースには lan1インタフェース を指定します。
動作確認には show status route6 コマンドを用います。以下のように Destination が default の行が追加されていれば OK です。
# show status route6 Flags: C - Connected, M - Miscellaneous, O - OSPFv3, R - RIPng, S - Static * - System route, ! - inconsistent Destination Gateway Interface Flags Dist. default fe80::225:dcff:feXX:XXXX lan1 S* 1 ...(省略)
DHCPv6クライアント の設定
3 dhcp6 client interface lan1
PPPoE方式の設定では DHCPv6クライアントの動作インタフェースとして pppoe0インタフェースを指定していました。今回は Ethernet 上で直接やり取りしますので lan1インタフェースを指定します。
動作確認は show status dhcp6 コマンドを用います。
以下のように DHCPv6クライアント が running 状態になった上で各種情報が取得できていれば OK です。
# show status dhcp6 ======================================== DHCPv6 client: running ---------------------------------------- Interface: lan1 State: bound Client DUID: 00:03:00:01:00:e0:4d:XX:XX:XX Server DUID: 00:03:00:01:00:25:dc:XX:XX:XX Server Preference: 0 Delegated Prefix: 2409:10:100:2e0::/60 preferred lifetime: 14400 valid lifetime: 14400 time to renew (T1): 7200 time to rebind (T2): 12600 DNS Servers: 2409:10:100:200:225:dcff:feXX:XXXX SNTP Servers: 2404:1a8:1102::a 2404:1a8:1102::b Last Updated: 2012/01/01 09:01:04
念のため lan0インタフェース にアドレスが付与されていることも show status interface lan0 コマンドで確認しておきます。
# show status interface lan0 interface lan0: Description="" Status=link up, administratively up MTU=1500 LastChange=2012/01/01 09:00:48 Ipkts=1322, Ierrs=0, Opkts=2682, Oerrs=0, Colls=0 InOctets=126912, OutOctets=276246, InDrops=0, OutDiscards=9 InUnknownProtos=0 Media=auto (100baseTX) EthernetAddress=00:E0:4D:10:XX:XX IPv6 address=fe80::2e0:4dff:feXX:XXXX%lan0 prefixlen=64 scopeid 0x1 IPv6 address=2409:10:100:2e1::1 prefixlen=64 scopeid 0x1 IPv6 address=2409:10:100:2e1:: prefixlen=64 scopeid 0x1 anycast
Prefix Delegation で得たプレフィクス (2409:10:100:2e0::/60) と sla-id (0x01) から (2409:10:100:2e1::/64) のプレフィクスが生成され、その後ろに ::1 をつけた 2409:10:100:2e1::1 というアドレスが付与されていることが見てとれます。
lan1インタフェースにアドレスを付与するには
上記の設定では lan1インタフェースには IPv6グローバルアドレスが付与されない状態になります。lan1インタフェース にアドレスを付与したい場合は以下を設定してください。
interface lan1 add router-advertisement
この設定ではルータ広告に含まれる Prefix Information オプションを元に IPv6グローバルアドレスを自動生成して lan1インタフェース に付与します。
このアドレスを自動設定する方法はステートレスアドレス自動設定 (Stateless Address Autoconfiguration) と呼ばれています。Ethernet のインタフェースでは付与されるアドレスの下位 64bit (インタフェースID) は Modified EUI-64 と呼ばれる識別子から生成されます。Modified EUI-64 は MACアドレス の 48bit (6オクテット) を元に 3オクテット目と 4オクテット目の間に固定の 2オクテット (0xFFFE) を挿入した上で 1オクテット 目の MSB から 7bit 目 (ユニバーサル・ローカルビットと呼ばれます) を反転することで得られます。
動作確認は show status interface lan1 を用います。以下のように "autoconf" が付いた IPv6グローバルアドレス が付与されていれば OK です。
# show status interface lan1 interface lan1: Description="" Status=link up, administratively up MTU=1500 LastChange=2012/01/01 09:00:36 Ipkts=1072, Ierrs=0, Opkts=1300, Oerrs=0, Colls=0 InOctets=98356, OutOctets=116135, InDrops=0, OutDiscards=0 InUnknownProtos=0 Media=auto (1000baseT Full-Duplex) EthernetAddress=00:E0:4D:XX:XX:XX IPv6 address=fe80::2e0:4dff:feXX:XXXX%lan1 prefixlen=64 scopeid 0x2 IPv6 address=2409:10:100:200:2e0:4dff:feXX:XXXX prefixlen=64 scopeid 0x2 autoconf
IPv6デフォルト経路と DHCPv6クライアント の動作するインタフェース以外の設定については PPPoE方式と同様です。詳細については「NGN IPv6への接続の設定(dhcp6, rtadvd)」の記事をご覧ください。
以上で SEIL を使って IPoE方式に接続することができました。今回 IPv6アドレス は以下のように払い出されました。
今回は、最も単純に IPoE方式の環境で SEIL を使う方法についてご紹介しました。外部からの攻撃に備えたパケットフィルタの書き方など、IPoE方式の環境での SEIL の活用例は、今後改めてご紹介していきたいと思います。
IPoE方式 は Ethernet で直接通信ができるため PPPoE方式や、その他トンネリングを使った IPv6 接続に比べてとてもシンプルな構成になります。IPv6 対応をお考えの際には、導入を検討してみてはいかがでしょうか。