[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:23393] IPv6 support harmful?



こんにちは。森ともうします。最近このリストに再参加しました。

potato を使っているのですが、いくつかのソフトの IPv6 対応に苦しめられ
ています。今のところ、問題になっているのは exim と emacs20-dl です。

たとえば exim ですが、こいつに telnet localhost smtp として connect し
ますと、いきなり "localhost" というホスト名を、IPv6 の DNS request
(type=AAAA) で調べようとします。ウチでは MN128-SOHO の簡易DNS機能を使っ
てnameserverの代わりにしているのですが、MN128 はこの拡張されたDNS
query を理解できないので、自動的にプロバイダーに接続し、そちらにこの
queryを投げます。その結果、ローカルホストからローカルホストへメールを
送ろうとするだけで、必ずプロバイダーへの不要な接続が発生し、余計な電話
代がかかってしまいます。

emacs でも同様で、open-network-stream 関数を使うと、まず最初にそのホス
トのIPv6 アドレスを調べようとするみたいで、同様にプロバイダーに接続し
てしまうのです。例えば localhost 上の skk-server への接続の際にこれが
起こるため、最初の漢字変換にえらく時間がかかるなどの現象をもたらします。

もちろん、/etc/host.conf や /etc/nsswitch.conf は

order hosts,bind

hosts: files dns

となっていますし、localhost は /etc/hosts 内にちゃんと登録されています。

しかし、gethostbyname2 関数の実装をみるかぎり、IPv6 address を要求され
た場合は 127.0.0.1 localhost といったエントリは無視されてしまうようです。

しょうがないので今のところ、exim を HAS_IPV6=NO で作りなおして使ってい
ます。emacs は作りなおすのが面倒なので、/etc/hosts に

::1             ip6-localhost ip6-loopback localhost

というエントリを追加したらとりあえず外部へのqueryは止まりました。

しかし、こういった解決はあまり好いとは思っていません。今後、IPv6対応の
パッケージが増えるたびに、ソースを持ってきて make し直すというのは現実
的ではないと思います。もっとよい解決法があれば教えてください。

-- 
森 公一郎 (MORI Koichiro),  kmori@xxxxxxxxx | kmori@xxxxxxxxxxx