From: Hajimu UMEMOTO Date: 2008-01-06T21:49:41+09:00 Subject: [ruby-dev:32937] Re: Resolv::DNS#getaddresses doesn't return IPv6 address 梅本です。 >>>>> On Sun, 6 Jan 2008 18:20:15 +0900 >>>>> "NARUSE, Yui" said: naruse> わたしが気にしていたのは IPv6 が返ってくるとエラーの出るプログラムがある naruse> 可能性と、FLETS.NET のような外に出れない環境でした。 naruse> けれども、 Ruby 1.9 においては前者は気にならないのでした。 確か、NTT 東日本のフレッツに関しては、AAAA RR のクエリをフレッツ内に 限定する Windows 用のライブラリを配布していたと思います。 NTT 西日本のフレッツ光プレミアムでは、ブロードバンドルータ相当が DNS プロキシをしていますが、この DNS プロキシは AAAA RR クエリをそのまま通 します。しかし、NTT 西日本が配布する IPv6 アドレス空間以外への IPv6 TCP パケットをリセットする仕掛けが網内にあり、グローバルな IPv6 の接続 性をユーザが持っていない限り、IPv4 への影響ができるだけないように考慮さ れています。 NGN については、正式サービスがどうなるか不明の部分がありますが、NGN フィールドトライアルでは、ブロードバンドルータ相当が DNS プロキシをして おり、この DNS プロキシで AAAA RR クエリをドロップしているようです。 naruse> とりあえず IPv6 Fix を参考にして、3.4.1 の AAAA RR の問い合わせを限定す naruse> るのがいいのでしょうか。3.4.2 にあるような AAAA RRの問い合わせを無視する naruse> DNS サーバーって今もかなりあるのですかね・・・? IPv4 に対する悪影響をできるだけなくすという観点では好ましいと思います が、私の個人的意見では、あくまで hack 感が強くあまり積極的になれません。 他に良い案があるわけではないのですが。 Windows Vista は 3.4.1, 3.4.2 を実装しています。 私のローカルの環境では KAME での実装を現在の FreeBSD で使えるように修 正したものを持っていますが、モヤモヤ感が取れないので、まだ commit する に至っていません。 > RFC 3484 を実装している環境ならそれに従うのが格好良いのでしょうけれど、 > API が標準化されていませんので、辛いところです。 naruse> ほー、こういうものがあるのですね。標準化されていなくてもアクセスさえでき naruse> れば使える OS では使うんですが・・・。独自で実装するのも手間ですしねぇ。 現状で RFC 3484 を実装しているのは、Windows XP, Windows Vista, Solaris, FreeBSD です。 FreeBSD の実装は KAME の実装をマージしたものです。libc の外からは使用 できないようにしてあります。つまり、getaddrinfo(3) を使っている限りは、 良きに計らうというコンセプトです。 Windows, Solaris の API がどうなっているのか把握していません。 -- 梅本 肇 @ インターネット互助会横浜 http://www.imasy.org/~ume/ ume@mahoroba.org ume@{,jp.}FreeBSD.org プログラムは書いた人の意図ではなく書かれた通り動く I hate Modula-3 :-)