以下の環境でホストOSからゲストOSにsshでログインしようとしたところ、リモートホストのログインプロンプトが出るのが遅く、ログインに時間がかかるので調べてみた。
なお、sshでの接続先はホスト名は使わず、IPアドレスを直接指定している。
ホストOS : Ubuntu10.10
ゲストOS : Fedora14(VMware Player使用、NICはブリッジ接続)
ネットで調べてみると以下の情報があった。
1)DNSでの名前解決に時間がかかっている。
/etc/ssh/sshd_config に以下の設定を入れる.
UseDNS no
sshd_configなのでsshサーバ側の設定であり、Fedora14ではコメントアウトされており、デフォルトのyesのようである。
2)GSSAPI 認証を試みているので時間がかかっている。
/etc/ssh/ssh_config に以下の設定を入れる.普通は no に設定されている.
GSSAPIAuthentication no
ssh_configなのでsshクライアントの設定であり、Ubuntu14では yes で設定されていた。
3)IPv6 で接続しようとして接続できずに時間がかかっている。
IPv4(inet) のみを使用するよう/etc/ssh/ssh_config に以下の設定を入れる。
AddressFamily inet
ssh_configなのでsshクライアントの設定であり、Ubuntu10.10ではコメントアウトされており、デフォルトの any であり、IPv6も有効なようである。
まずは、何が悪いか推測するため、Fedora14側でUbuntu10.10とのパケットをwiresharkでパケットキャプチャしてみた。
接続の途中で MDNS というプロトコルで、Ubuntu10.10から224.0.0.251からquery PTR というパケットが飛んでいた。
Fedora14のアドレスを逆引きをしているが、応答がないためリトライして時間がかかっているようである。
MDNSはマルチキャストDNS(Multicast DNS)というもので、IETF(Internet Engineering Task Force)で提唱されているゼロコンフィギュレーション技術の一部らしい。DNSサーバがなくても、マルチキャストアドレス224.0.0.251、ポート5353にudpパケットを投げ、該当するマシンが応答することで名前解決する仕組みらしい。
だとすると、ホスト名による正引きとなりそうなものだが、なぜ逆引きなのかよくわからない。
とりあえずUbuntu10.10が問い合せているので、ホストOS側の問題と推測した。
最終更新:2011年06月03日 21:05