SOUM/miscSOUM/misc株式会社創夢社員の趣味や興味、来し方行く末。NGNサービス「フレッツ光ネクスト」のユーザーは、プロバイダーのIPv6接続サービスを利用することができる。現在フレッツ光ネクストではIPv6接続サービスとして次の二通りの方式を用意しており、ユーザーが契約するプロバイダーによってどちらかの方式を選ぶことになっている。@niftyなどはIPoE方式と、提供する方式に違いがある。自分が利用するプロバイダーがどちらの方式によるIPv6接続サービスを提供しているか、確認する必要があるということだ。中にはIIJのように、両方の方式を提供しているプロバイダーもある。(機能)が必要になるので、この方式を利用する場合には何らかの方法で用意しなくてはいけない。プロバイダーやNTT東日本/西日本などから専用のアダプターを購入することもできるし、別のルーター機器を用意する方法もあるだろう。用アダプタガイドライン[NTT東日本][NTT西日本]」から入手可能だ。基本的にはRFCにしたがった標準仕様から構成されているので、頑張ればこれを見て自分で作ることもできる。PPPoEアダプターを作ってみることにしよう。接続形態にもよるが、アダプターに求められる機能はだいたい以下の通りとなる。PPPoE機能DHCPv6機能IPv4ブリッジ機能マルチプレフィックス対応機能DNSプロクシー機能マルチキャスト通信機能まず今回は、IPv6でインターネットと通信するために最低限必要な、1.〜3.までを実装してみたい。言うまでもないが、当然PCルーターのOSはNetBSDである。6.0を使うことにしよう。プロバイダーへの申し込みを済ませておくことを忘れずに。アダプターの接続形態¶アダプターの仕様は、IPv4接続用のブロードバンドルーターと一緒に使う可能性を考慮して設計されている。接続形態としていくつかのパターンが考えられるが、次の二種類が代表的なパターンと言えるだろう。単機能型のアダプターは、IPv4用ブロードバンドルーターと縦に繋がる形で設置する。(LAN側)でも良いのだが、ここでは直下に置く形を想定しよう。あることが前提となる。ブロードバンドルーターの仕様を確認しておこう。PPPoE接続を行う。端末PCなどLAN側のネットワーク機器に対するIPv6インターネットへの接続性は、アダプターが提供する。IPv4インターネットへの接続性は従来と同じくブロードバンドルーターが提供し、ブロードバンドルーターとLANの間のIPv4通信はアダプターのIPv4ブリッジ機能によって双方向に転送される。プロバイダーとのIPv4接続契約があり、ブロードバンドルーターを設置して運用していた実績がある場合には、単機能型のアダプターを導入するハードルの方が低いだろう。PPPoEアダプター¶ルーター機能一体型のアダプターは、IPv4用のルーター機能とIPv6用のルーター機能を一台で賄うデュアルスタック型ルーターとなる。新規にインターネット接続を始める場合には、IPv4/IPv6それぞれに別の接続機器を導入するよりも、ルーター機能一体型のアダプターを導入する方がシンプルで良いと思う。自分で作ることを考えた場合には、ルーター機能一体型アダプターは若干ハードルが高い。今回は、既存環境への影響が少ない単機能型アダプターを作ることにしよう。PPPoE機能¶アダプターにするPCの想定環境は以下とする。PPPoEの設定をする。起動されるように設定する。pppoe0"ip6mode=router(snip)設定そのものは、普通のIPv4用PPPoEの設定と変わらない。設定し、RA受信による自動アドレス設定機能が働かないようにしてある。ここまで設定したら再起動して、コンソールに次のようなカーネルメッセージが表示されてPPPoEが繋がったことを確認。ここではまだアドレスも経路も設定されていないため、通信はできないはずである。リンクローカルアドレスを調べ、IPv6のデフォルトルーターとして指定する。fe80::2a0:b0ff:fe97:ce36%pppoe0"(snip)DHCPv6機能¶プロバイダーからのIPv6アドレス取得には、DHCPv6-PDを使用する。Delegation)プロトコルを使うのである。DHCPv6機能として、今回はwide-dhcpv6パッケージを使うことにしよう。pkgsrcからwide-dhcpv6をインストールする。使用して、プロバイダーからIPv6プレフィックスが取得できることを確認しよう。設定されることを確認する。節にサブネット番号のビット長(sla-len)と値(sla-id)を指定する。RAを配布する設定をする。DHCPv6-PDでIPv6プレフィックスを取得した際にスクリプトを実行する機能がある。再起動する処理を実行するスクリプトの設定を追加しておこう。&ここまで設定して再起動したら、LAN側ネットワークに接続されている端末機器からインターネットに対してIPv6通信ができる状態になっているはずだ。IPv4通信はできない。IPv4パケットのみ透過させる設定をする。オプションを有効にしたnetbsdカーネルを用意しよう。install次にブリッジ接続とipf設定を行う。/etc/ipf.conf(snip)これで再起動すれば、IPv4/IPv6デュアルスタック環境ができたことになる。LAN側ネットワークの端末機器には、IPv4のDHCPでIPv4アドレスを取得させるようにする。これによりLAN側ネットワーク上で利用可能なDNSサーバーについてもDHCP経由で通知され、端末から参照できる状態になるだろう。通常であればブロードバンドルーターのLAN側IPv4アドレスがDNSサーバーのアドレスになると思う。ここでちょっと注意しておいてほしいのは、IPv4用のブロードバンドルーターから通知されるDNSサーバーを利用してアドレス解決をする場合、利用しているIPv4プロバイダーによってはDNS解決にAAAAフィルターが適用される可能性がある点だ。この場合本来はIPv6経由で通信が可能であるはずのインターネット上のノードに対し、IPv4経由でしか通信が行われないことがある。AAAAフィルターを疑ってみよう。AAAAフィルターが適用されているようであれば、別のDNSサーバーを手動で設定する手順などが必要になるかも知れない。動作確認¶まずはアダプター自身からのIPv6通信を確認しておこう。ms次にLAN側端末からも確認する。forumのバナーでもIPv6で通信しているかどうかが分かる。今後の課題¶ここまでで、一応IPv6インターネットは使えるようになった。PPPoEアダプターには今回実装した機能以外にまだ足りない機能がある。マルチプレフィックス対応機能DNSプロクシー機能マルチキャスト通信機能この中でも特にマルチプレフィックス対応機能は重要で、かつ実現がなかなか難しい。DNSプロクシー機能はマルチプレフィックス対応の機能でもあるが、同時にAAAAフィルターへの対策でもあり、重要な機能である。この二つに比べるとマルチキャスト通信機能は重要性は低いが、利用するアプリケーションによっては欲しい機能になるだろう。これらの実装はまた別の機会にでも。ルーターの下(LAN側)から上(WAN側)へのPPPoEセッションを中継して透過させる機能。ルーターベンダーにより「PPPoEブリッジ機能」や「ダイレクトPPPoE機能」などとも呼ばれる。PPPoEでプロバイダーから割り当てられるグローバルIPv6プレフィックスは、/48または/56になることが多い。PPPoE接続サービスを利用している場合には、通常プロバイダー側でのAAAAフィルターは適用されないだろう。ブロードバンドルーター自体に搭載されているDNSプロクシー機能がAAAAフィルターを適用する場合もあるので注意すること。パケットの気持ちを理解できる域には達していないことを痛感する日々を送る一ネットワーク屋さん。