以下の環境でホスト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側の問題と推測した。

再度ネットで調べてみると、以下の記事が見つかった。
 https://lists.ubuntu.com/archives/ubuntu-jp/2009-February/001566.html
 https://bugs.launchpad.net/ubuntu/+source/openssh/+bug/84899
Ubuntu10.10の/etc/ssh/ssh_configを確認すると、 GSSAPIAuthentication no になっており、yesにしたところ、すぐに接続できるようになった。


名前:
コメント:


最終更新:2011年06月03日 21:05