我们有一个 linux box(称为jumper
),用于访问几个单独的 DMZ 中的服务器。每个 DMZ 都有自己的子域名(例如idmz.example.org
, jdmz.example.org
),每个子域都有自己的权威名称服务器。
我们正在用新的 Linux 机器替换旧的 Solaris 跳线。大多数事情都运行良好,但是我们在idmz.example.com
使用 SSH 连接到子域中的服务器时遇到了问题。平工作正常;我们可以使用 解析名称dig
,但 SSH 显示“无法解析”。
名称解析在服务器端运行良好,当我们使用 IP 地址连接时,没有延迟或超时。但是客户端的 SSH 声称无法解析服务器。
Ping 和失败的 SSH 连接:
jenny@jumper$ ping server.idmz.example.com
PING server.idmz.example.com (192.168.1.3) 56(84) bytes of data.
jenny@jumper$ ssh -v server.idmz.example.com
OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
ssh: Could not resolve hostname server.idmz.example.com: Name or service not known
使用 IP 而不是主机名成功的 SSH 连接:
jenny@jumper$ ssh 192.168.1.3
[email protected]'s password:
我可以从客户端看到的一个区别是我无法从名称服务器获得权威答案idmz
,但我确实从所有其他 DMZ 域中获得了它。
我们联系了 DNS 服务器的系统管理员,并要求他们验证
idmz
. 事实证明,他们的名称服务器声称可以处理 IPV6,但它没有为 IPV6 查询提供正确的答案。在 Solaris 服务器上,默认使用 IPV4。在新的 Linux 服务器上,SSH 首先尝试了 IPV6。在这种情况下,这意味着由于它无法使用 IPV6 解析服务器名称,因此它认为它无法解析。对于其他 dmz 域,即使使用 IPV6,名称服务器也给出了正确的响应。
我们将 SSH 的配置更改为包括
问题就消失了。