nslookup 将域名解析为 IP,但我无法获得对外部服务器的 ping 响应

nslookup 将域名解析为 IP,但我无法获得对外部服务器的 ping 响应

我在内部开发服务器上安装了全新安装的 CentOS 4.8。除了设置 sudoers 和 SSH 之外,我没有对它进行任何操作。我可以通过 SSH 进入服务器,然后从那里将域解析为 IP 并 ping 内部服务器,但出于某种原因,我在 ping 外部服务器时没有收到任何响应。

软件防火墙已禁用,问题出现在静态和 DHCP 分配的网络配置中。网络域控制器是 Windows Server 2003 机箱。

$ nslookup google.com
Server:         10.254.2.5
Address:        10.254.2.5#53

Non-authoritative answer:
Name:   google.com
Address: 74.125.47.147
Name:   google.com
Address: 74.125.47.99
<etc...>

10.254.2.5是Win2K3服务器。

$ ping google.com
PING google.com (74.125.47.106) 56(84) bytes of data.

它只是无限期地挂在这里。

$ cat /etc/resolv.conf
; generated by /sbin/dhclient-script
search <...snip...>.local
nameserver 10.254.2.5
nameserver 10.254.2.124

10.254.2.124 是备份 DC 服务器,目前已关闭并被删除。剪切的部分是我们的公司名称。

# ifconfig
eth0      Link encap:Ethernet  HWaddr <snip>
          inet addr:10.254.2.101  Bcast:10.254.2.255  Mask:255.255.255.0
          inet6 addr: <snip>/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:80066 errors:0 dropped:0 overruns:0 frame:0
          TX packets:4421 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:7810133 (7.4 MiB)  TX bytes:590550 (576.7 KiB)
          Interrupt:225 Base address:0xc000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:32 errors:0 dropped:0 overruns:0 frame:0
          TX packets:32 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:8104 (7.9 KiB)  TX bytes:8104 (7.9 KiB)

# route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
10.254.2.0      0.0.0.0         255.255.255.0   U     0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     0      0        0 eth0
0.0.0.0         10.254.2.5      0.0.0.0         UG    0      0        0 eth0

并且,为了确保万无一失,还可以通过系统配置网络 GUI 获取当前以太网配置的快照。

编辑:我还没有足够的声望来发布图片,所以这里有一个链接。抱歉!
系统配置网络快照

我对设置 *nix 开发服务器和常规网络配置还不是很了解,所以如果我遗漏了关键信息,或者发布了不该发布的信息,请告诉我。

谢谢!

答案1

两台主机之间无需 ping 通。可能是您和 Google 之间有人丢弃了 ICMP 数据包。如果其他一切正常,我就不会太担心这个问题。

如果您特别担心,请与运行您的网络设备或防火墙的人核实,看看他们是否允许 ICMP 流量通过。另外,请检查您是否可以 ping 通除 Google 之外的外部世界中的任何其他人?

答案2

这看起来像是路由和/或防火墙问题。

您如何连接到互联网?10.254.2.5(您的默认网关)也是您的互联网网关吗?或者在实际到达外围防火墙之前,中间是否有其他路由?您的防火墙是如何配置的?

请发布 的输出traceroute -n google.com,以便我们可以看到您的数据包实际上被阻止的位置。

答案3

检查本地 netfilter 规则:

iptables -L -n

如果没有影响 ICMP 的规则并且它是其他路由,因为它似乎是由于 DNS 解析造成的,所以很可能在 10.254.2.5 或其下一跳处发生了一些过滤。

编辑

根据您的更新,看起来您的 Linux 服务器上有本地防火墙规则阻止了 ping。

删除所有规则:

iptables -F
iptables -X

它们可能会在重启时返回。我怀疑它们是由 init 脚本管理的。我猜是禁用 init 脚本:

/sbin/chkconfig iptables off

这在不同的发行版中有所不同。我在之前的回答中对 iptables 进行了简要介绍:

您能推荐一篇关于 iptables 的好介绍吗?

通常,简单地禁用防火墙并不是明智之举。但是,看起来您确实在使用内部网可路由寻址,并且您的描述表明您可能已经在路由的更上层安装了防火墙。除非您了解所做之事的潜在风险,否则请谨慎行事。

相关内容