IPv6/IPv4環境でSSH接続が遅くなる

IPv6/IPv4混在環境(デュアルスタック)でSSHの接続開始が遅いという事象に遭遇することがときどきある。
ホントしょーもない理由なんだけど、ネットワーク解っていても意外と忘れやすいこと。それは・・

IPv6用の名前解決。

/etc/resolv.confにIPv6用のネームサーバを指定または/etc/hostsに各ホストのIPv6のIPアドレスを書いてやらなきゃIPv6で名前解決できないのでフォールバック(IPv6での接続を諦めてIPv4に切り替え)発生までの待ち時間が発生する。これはSSHだけに限らず他にも影響起きてるかもなので早急に対応が必要。(特にLAN)

IPv4用に/etc/resolv.conf (/etc/hosts) の設定をしたら「名前解決の設定はもう済んだ」と思い込んでしまうことに注意。特にIPv4でずっとやってきた人。それだけの記事。

おまけ

ネットで検索するとSSHサーバ側の設定 /etc/ssh/sshd_config やSSHクライアント側の設定 /etc/ssh/ssh_config にAddressFamily inetを追加して対応しようとする記事を見かけるが、フォールバック待ちが発生する原因を取り除くことが求められるのでSSHだけ設定変更で逃げようとするのは正しい解決方法ではない。

名前解決だけでなくファイアウォールやRAやその他IPv6ネットワーク関係全ての設定を確認して解決したいところ。個人的にはRA停まってたギャフンというのは経験したことがある。