KAME プロジェクト便り

山本和彦
IIJ 技術研究所
BSD Magazine No. 10 (2001/12)


第10回 DNS 探索と MIP6


DNS サーバ探索

IPv4 と比べて IPv6 の優れている点として、 プラグ&プレイの機能が挙げれます。 ルータを介し IPv6 インターネットに接続されているネットワークに IPv6 ホストをつなぐと、 自動的に IPv6 アドレスが生成され、またデフォルトの経路が設定されます。 DHCP サーバを運用する必要はありません。

しかしながら、IPv6 のプラグ&プレイには、 1 つだけ弱点がありました。 それは、DNS サーバのアドレスを獲得する方法が規定されていなかったことです。 しかたがないので、これまでは手で /etc/resolv.conf にアドレスを記述したり、 DHCP サーバに教えてもらったりして運用してきました。

この問題を解決するために、IETF の IPng 分科会では DDDT(DNS Discovery Design Team) を結成しました。 KAME プロジェクトからは、萩野(itojun)さんと神明さんがこのチームに加わっています。

DDDT では、ミーティング、電話会議、ML を通じ、 いくつかの方法を挙げて比較検討してきました。 太平洋をまたがる電話会議は、時差の関係で調整が大変だったようです。 最終的に DDDT は、エニーキャストによる方法を採択しました。

このエニーキャストは、既知のアドレスです。 しかし、まだ具体的な値は定義されていません。 既知のアドレスですから、/etc/resolv.conf にあらかじめ書いておくことができます。

あるホストからこのエニーキャスト宛に送信された DNS への問い合わせは、 近くの DNS サーバに届きます。 そして、その DNS サーバが答を返します。

定義によりエニーキャストは、 ユニキャストとアドレス表記上区別がつきません。 そこで、ユニキャストの経路制御によって、 上記の問い合わせが運ばれることになります。

KAME では、この DNS サーバ探索機能をすでに実装しています。 利用する際には、まず未定義のエニーキャストアドレスを自分のサイトで取り決めます(こだわりがなければ、 KAME プロジェクトが現在とりあえず利用している fec0::35 を使うとよいでしょう)。

DNS サーバ側では、 このエニーキャストアドレスをネットワークインターフェイスに割り当てます。 そして、このエニーキャストアドレス宛の問い合わせがこの DNS サーバに届くように、 ホスト経路を流します。 さらに、DNS サーバとして totd を起動します。

クライアント側では、snap のパッチを当て、 libinet6 を作成し、コマンド群にリンクします。 /etc/resolv.conf に、上記のエニーキャストアドレスと insecure1 というオプションを記述すれば、 この機能が利用できるようになります。

しかし、この作業はコマンド群を再コンパイルする必要があるため、 煩わしいかもしれません。 そこで近い将来 KAME では、再コンパイルしなくても、 DNS サーバ探索機能を利用できるようになる手段を提供する予定です。


MIP6

前々回で報告したように島さんが中心となって、 今年 5 月から MIP6 の実装を進めています。 6 月には snap から Ericsson のコードを削除し、 8 月に KAME による MIP6 のコードを repository に統合しました。 そして、10/15 にアルファリリースまでこぎつけました。

現時点では、仕様 No. 15 に基づいて FreeBSD 上で実装しており、 以下の機能が利用できます。

今後の予定としては、仕様 No. 13 への後方互換性の確保、 仕様 No. 15 以降への追従、FreeBSD 以外の BSD への移植、 拡張 API への対応などが挙げられます。


予告

次回、このプロジェクト通信において、 KAME プロジェクトの将来に関する驚くべき秘密が明らかになる!!!