openssh クライアント AAAA DNS クエリを無効にする

openssh クライアント AAAA DNS クエリを無効にする

カーネルのパラメータとしてIPv6を無効にしたStretchベースのデスクトップがあります。

openssh-clientバージョン1:7.6p1-2.0nosystemd1パッケージからSSHクライアントをインストールしました。

tcpdumpDNS解決問題のデバッグ中に、含まれているログに示すように、SSHクライアントはまだIPv6 DNS関連のクエリを実行していることを確認しました。

私の質問は、この動作をどのように無効にできるかということです。

PS。これが良いアイデアか悪いアイデアかを尋ねるのではなく、すべてのIPv6サービスが無効になっているシステムでこれを行う方法だけを尋ねることです。

tcpdumpコマンド実行時に記録されますssh server1 ; ssh server2

# tcpdump -n port 53
tcpdump: verbose output suppressed, use -v or -vv for full protocol decode
listening on wlan0, link-type EN10MB (Ethernet), capture size 262144 bytes
02:53:37.479073 IP 192.168.1.5.58296 > 192.168.1.1.53: 61011+ A? server1.home. (30)
02:53:37.479100 IP 192.168.1.5.58296 > 192.168.1.1.53: 4719+ AAAA? server1.home. (30)
02:53:37.487504 IP 192.168.1.1.53 > 192.168.1.5.58296: 61011 NXDomain* 0/1/0 (69)
02:53:37.493279 IP 192.168.1.1.53 > 192.168.1.5.58296: 4719 NXDomain* 0/1/0 (69)
02:53:37.493428 IP 192.168.1.5.60276 > 192.168.1.1.53: 31390+ A? server1. (25)
02:53:37.493455 IP 192.168.1.5.60276 > 192.168.1.1.53: 50392+ AAAA? server1. (25)
02:53:37.527879 IP 192.168.1.1.53 > 192.168.1.5.60276: 31390 NXDomain 0/1/0 (100)
02:53:37.535417 IP 192.168.1.1.53 > 192.168.1.5.60276: 50392 NXDomain 0/1/0 (100)
02:53:38.447390 IP 192.168.1.5.36155 > 192.168.1.1.53: 39363+ A? server1.home. (30)
02:53:38.447412 IP 192.168.1.5.36155 > 192.168.1.1.53: 4430+ AAAA? server1.home. (30)
02:53:38.455743 IP 192.168.1.1.53 > 192.168.1.5.36155: 39363 NXDomain* 0/1/0 (69)
02:53:38.461492 IP 192.168.1.1.53 > 192.168.1.5.36155: 4430 NXDomain* 0/1/0 (69)
02:53:38.461606 IP 192.168.1.5.39311 > 192.168.1.1.53: 45400+ A? server1. (25)
02:53:38.461631 IP 192.168.1.5.39311 > 192.168.1.1.53: 872+ AAAA? server1. (25)
02:53:38.493714 IP 192.168.1.1.53 > 192.168.1.5.39311: 45400 NXDomain 0/1/0 (100)
02:53:38.500353 IP 192.168.1.1.53 > 192.168.1.5.39311: 872 NXDomain 0/1/0 (100)

カーネル/grubでIPv6が無効になっていることを証明してください。

$ cat /proc/cmdline 
BOOT_IMAGE=/boot/vmlinuz-4.10.5-antix.3-amd64-smp root=UUID=00c17984-859f-4197-8bd8-b346ddd092bd ro iommu=1 intel_iommu=on iommu=pt ip6.disable=1 intremap=no_x2apic_optout radeon.pcie_gen2=0

さらにsysctl:

$ cat /etc/sysctl.conf | grep ipv6
net.ipv6.conf.all.disable_ipv6=1
net.ipv6.conf.default.disable_ipv6=1

また、/etc/gai.confIPv4優先順位を指定するように変更されました。

答え1

クライアントでIPv6名の検索を無効にするには、次の手順をssh実行できます。

  • sshコマンドラインから呼び出され、オプションで-4IPv4でのみ動作および照会されます。
  • 次に、エイリアスを次のように定義します。

    alias ssh=`ssh -4`
    

コンピュータのシステム管理者である場合は、sshクライアントシステム全体の設定ファイルの編集でIPv6機能/ DNSクエリを無効にし、/etc/ssh/ssh_config次の設定パラメータを追加することもできます。

AddressFamily inet

からman ssh_config

住所ファミリー

接続時に使用するアドレス系列を指定します。有効な引数は、「any」、「inet」(IPv4のみを使用)、または「inet6」(IPv6のみを使用)です。

関連情報