ラベル IPv6 の投稿を表示しています。 すべての投稿を表示
ラベル IPv6 の投稿を表示しています。 すべての投稿を表示

2008年9月7日日曜日

うちのXPがいつの間にかAAAAレコードを問い合わせるようになった

その時は WireShark を起動したままFireFoxでネットを見ていた、よくある話です。
 

ふとwiresharkをDNSの通信だけ表示するようにしたら、FireFoxでWEBサイトを見るときに、
「AAAAリソースレコード問い合わせ→「Server Fail」(またはCNAME)」
というプロセスをいちいち踏んでから、改めてAを問い合わせて目的のWEBサーバにアクセスしている事に気付いた。
これではDNSサーバに負担がかかる(下記資料リンクを参照)じゃないの。

参考資料:IPv6/IPv4 TCP フォールバックと IPv6 DNS クエリ 現状と今後
http://www.nttv6.net/200512-fallback.pdf

 

あれ?何で?と思いNICのプロパティでIPv6プロトコルの状態を見てみると、インストールはされているが無効になってる。
そういえばちょっと用があってインストールして、用が済んだので無効にした、という覚えがある。
 

じゃあ何でFireFoxはAAAAを問い合わせるんだろうと思い、「どういうことよFireFox」という気分で、何をトチ狂ったかFireFoxのソースを取りに行った。
後から思うと調べる順番がおかしいが、ちょっとソースも見てみたかったので仕方ない。
 
 

さて、プログラムも読めないのにソースを展開、調査してみる。
きっとIPv6の有効状況を調査して、AAAAトライ → A なロジックがあるに違いない。無効にしているのに何故かそっちに行っているに違いない、と思った。(冤罪ですよ念のため)
 
ふむ…
"mozilla\netwerk\dns\src\nsHostResolver.cpp"ファイルの
"nsHostResolver::ResolveHost" あたりが怪しい…
 
……
(ノ-Д-)ノΞ┻┻ < 読めんわー!
 
 
 
 

気を取り直してIE6を立ち上げると、こいつもAAAAから聞く。
ああ、もうOSのリゾルバがそうなってるんだな。。。とやっと気づく。
 

Microsoftで情報を探すと、"The Cable guy"に気になる記事。

  1. The Cable Guy – 2006 年 5 月 Windows Vista で IPv6 を構成する
    http://www.microsoft.com/japan/technet/community/columns/cableguy/cg0506.mspx


 

関連の箇所を引用する。
Windows XP とは異なり、Windows Vista の IPv6 はアンストールできません。しかし、次の操作の 1 つを行うことにより、Windows Vista の IPv6 を無効にすることができます。
 
●[Connections and Adapters] フォルダで、すべての接続およびアダプタのプロパティを取得し、[この接続は次の項目を使用します] の下の [Internet Protocol version 6 (TCP/IPv6) component] のとなりのチェックボックスを外します。この方法は LAN インターフェースの IPv6 を無効にしますが、トンネル インターフェースまたは IPv6 ループバック インターフェースの IPv6 は無効にしません。
(略)
●次の 0xFF に設定されたレジストリ値 (DWORD タイプ) を追加します。
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip6\Parameters\DisabledComponents
この方法はすべての LAN インターフェース、接続およびトンネル インターフェースの IPv6 を無効にしますが、IPv6 ループバック インターフェースは無効にしません。このレジストリ値を有効にするためには、コンピュータを再起動する必要があります。

 

あー…
IPv6はインストールしてしまったらNICのバインドを外しても、ループバックが有効だからIPv6のアドレスもまだ持ってるのか、これは迂闊。
何のことはなく、IPv6が有効だからDNSの問い合わせでまずAAAAをとろうとしていたことが判明。
 
 

冒頭の資料(3年前!)ではないけど、この一連の 一人相撲 調査でIPv6対応を推進していかなくてはいかんと思った。
がんばれ「IPv6普及・高度化推進協議会!」共存でいいから。

2008年9月1日月曜日

IPv6インターネット、ISP以外はとりあえず公開サーバまで対応させておいたら いい?

日経NETWORK2008年9月号を読んでいる。
特集1は何も対策しなければIPv4が枯渇するということを前提に、延命として キャリアグレードNAT 、 移行期間(ただしとても長くなるだろう)のIPv4/IPv6のデュアルスタック を経て、、その先はなるようになるんじゃないの。
という記事だった。
 

日経NETWORK
fujisan.co.jpから定期購読
 

インターネットでのIPv6利用については不勉強だったのだが、ISPが苦労しそうな内容についてまとめて理解することができた。閉域のASPを含むマルチプレフィックスの扱い(参考リンク:IPv6普及・高度化推進協議会)など色々問題があるのだなぁ。
 
 

IPv6対応は


しかし個人的にIPv6インターネットへの対応を考えると、ネットワークは回線業者から払いだしてもらうのが前提の今の環境では特に腰を据えて取り組むようなものでもないのだろうなと思う。普及するならしたころに乗っかれば十分。
 
一応ルートDNSサーバがもうIPv6でレコードを返すようになっているので、使いたいところは使ってOKだと思う。
 
ただ、今グローバルIP(v4)を引いて公開しているサーバは、割と早目にIPv6を引きこんで対応させておくべきなのかとも思う。理由も一応挙げておくけど、そのうち見解は変わるかもしれない。
 
 

デュアルスタックのPCはAAAAレコードをDNSに問い合わせるのか?


以降の内容は多分に想像含むので注意。
さて、しばらくしてIPv6インターネット普及がもっと本格化、移行期間としてデュアルスタックをやりだすことになるとします。
 
IPv6、IPv4の両方を持つ端末は、まずIPv6でDNSサーバに問い合わせを行うでしょう。
このときはAAAAレコードを問い合わせるのか?と思ったので少し考えてみる。
 
手元のIPv4環境の FireFox と オプションなしDig の名前解決をキャプチャしてみたら、Aレコードの問い合わせだった。(DNSクエリのフラグが "0x00 0x01"、ついでにAAAAは "0x00 0x1c")
確かデュアルスタック環境では "AAAAが見つからなかったら次はA" という挙動をするらしい。(これは近く実際に試してみたい。)
なので公開サーバにIPv6を振っておかないと、毎回 AAAA → A のオーバーヘッドが発生ってことになるのかしら。ネガティブキャッシュがあるといってもちょっとカッコ悪いし無駄なトラフィックが増える。
 
ということから外部向けのDNS(コンテンツ)、WEBサーバあたりは IPv6 振ってあげたいなーと思う次第なのですよね。
 
 

NSは込み込みANSWER


ついでにNS(フラグ 0x00 0x02)も考えてみると、digで見る限りは結構前から「ADDITIONAL SECTION」でAとAAAAを両方返してくれる、クライアント側の実装によるけど妙なオーバーヘッドはなさそう。
IPv6含むレコードのリストをもらったらIPv6で、IPv4だけのレコードをもらってもすぐにIPv4のスタックで目的のDNSサーバに再帰問い合わせを行うのでしょう。
なのでDNSサーバ自体はIPv6対応でなくてよいけど、SOAを持つゾーンのAAAA は返してあげたい。ということは一応ローカルもそうかな。
 
 
 
 

途中から色々興味が湧いて調査しつつ書いたので締まりのない記事になったがとりあえずこのへんで。。。
 
v6も色々言われますが、v4なくならないとかv6普及するとかしないとかはインフラ使うだけの私あたりのレイヤではどうでもよいんですよね、技術にはとても興味あるけれど。
ただ人気のサイトとかを持つサーバは義務としてIPv6への対応をしておくべきだと思いました。