CentOS全新安装上的DNS问题


8

我在用CentOS 6.2安装的新机器上遇到一些DNS问题。

我可以使用nslookup,dig或host查找名称。我可以按名称或IP地址ping计算机。但是,当我尝试使用其他工具(例如ssh,wget或yum)时,它们无法解析名称。例如:

# wget http://www.google.com
--2012-03-08 14:48:06--  http://www.google.com/
Resolving www.google.com... failed: Name or service not known.
wget: unable to resolve host address `www.google.com'
# ssh www.google.com
ssh: Could not resolve hostname www.google.com: Name or service not known
# ping -c 1 www.google.com
PING www.l.google.com (74.125.113.106) 56(84) bytes of data.
64 bytes from vw-in-f106.1e100.net (74.125.113.106): icmp_seq=1 ttl=46 time=43.6 ms

--- www.l.google.com ping statistics ---
1 packets transmitted, 1 received, 0% packet loss, time 59ms
rtt min/avg/max/mdev = 43.665/43.665/43.665/0.000 ms
# host www.google.com
www.google.com is an alias for www.l.google.com.
www.l.google.com has address 74.125.113.99
www.l.google.com has address 74.125.113.103
www.l.google.com has address 74.125.113.104
www.l.google.com has address 74.125.113.105
www.l.google.com has address 74.125.113.106
www.l.google.com has address 74.125.113.147

我的/etc/nsswitch.conf文件是默认文件,包括以下(标准)行:

hosts:      files dns

/etc/resolv.conf由DHCP设置:

; generated by /sbin/dhclient-script
nameserver 192.168.1.254

192.168.1.254是可正常使用的DNS服务器(我的DSL调制解调器,可与其他计算机一起使用多年)

任何人都知道为什么ping会起作用,但是ssh / wget会失败吗?


根据NcA的建议,我尝试将/etc/resolv.conf更改为指向8.8.8.8。奇怪的是,这确实使它起作用。显然,我的DSL调制解调器以某种Linux解析系统不喜欢的方式响应DNS请求。看着tcpdump,我看不出有什么区别。当然,两个服务器都发送相同的地址。

这是tcpdump -nn -X服务器设置为DSL调制解调器上的DNS服务器时的输出。显然,它用正确的地址答复,但是ssh / wget出于某种原因似乎不满意:

15:53:52.133580 IP 192.168.1.254.53 > 192.168.1.2.54836: 33157 7/0/0 CNAME www.l.google.com., A 74.125.115.105, A 74.125.115.106, A 74.125.115.147, A 74.125.115.99, A 74.125.115.103, A 74.125.115.104 (148)
        0x0000:  4500 00b0 e33a 0000 ff11 53b1 c0a8 01fe  E....:....S.....
        0x0010:  c0a8 0102 0035 d634 009c 7528 8185 8180  .....5.4..u(....
        0x0020:  0001 0007 0000 0000 0377 7777 0667 6f6f  .........www.goo
        0x0030:  676c 6503 636f 6d00 0001 0001 c00c 0005  gle.com.........
        0x0040:  0001 0007 acd0 0008 0377 7777 016c c010  .........www.l..
        0x0050:  c02c 0001 0001 0000 0001 0004 4a7d 7369  .,..........J}si
        0x0060:  c02c 0001 0001 0000 0001 0004 4a7d 736a  .,..........J}sj
        0x0070:  c02c 0001 0001 0000 0001 0004 4a7d 7393  .,..........J}s.
        0x0080:  c02c 0001 0001 0000 0001 0004 4a7d 7363  .,..........J}sc
        0x0090:  c02c 0001 0001 0000 0001 0004 4a7d 7367  .,..........J}sg
        0x00a0:  c02c 0001 0001 0000 0001 0004 4a7d 7368  .,..........J}sh
15:53:52.135669 IP 192.168.1.254.53 > 192.168.1.2.54836: 65062- 0/0/0 (32)
        0x0000:  4500 003c e33b 0000 ff11 5424 c0a8 01fe  E..<.;....T$....
        0x0010:  c0a8 0102 0035 d634 0028 98f9 fe26 8000  .....5.4.(...&..
        0x0020:  0001 0000 0000 0000 0377 7777 0667 6f6f  .........www.goo
        0x0030:  676c 6503 636f 6d00 001c 0001            gle.com.....

我还没有足够的专家来知道这是否在某种程度上不正确,但是ping似乎可以对付它。

为了进行比较,在查询8.8.8.8时,这是相同的:

15:57:27.990270 IP 8.8.8.8.53 > 192.168.1.2.49028: 59114 7/0/0 CNAME www.l.google.com., A 74.125.113.105, A 74.125.113.103, A 74.125.113.106, A 74.125.113.147, A 74.125.113.104, A 74.125.113.99 (148)
        0x0000:  4500 00b0 5530 0000 2f11 6453 0808 0808  E...U0../.dS....
        0x0010:  c0a8 0102 0035 bf84 009c 39f8 e6ea 8180  .....5....9.....
        0x0020:  0001 0007 0000 0000 0377 7777 0667 6f6f  .........www.goo
        0x0030:  676c 6503 636f 6d00 0001 0001 c00c 0005  gle.com.........
        0x0040:  0001 0001 516a 0008 0377 7777 016c c010  ....Qj...www.l..
        0x0050:  c02c 0001 0001 0000 0116 0004 4a7d 7169  .,..........J}qi
        0x0060:  c02c 0001 0001 0000 0116 0004 4a7d 7167  .,..........J}qg
        0x0070:  c02c 0001 0001 0000 0116 0004 4a7d 716a  .,..........J}qj
        0x0080:  c02c 0001 0001 0000 0116 0004 4a7d 7193  .,..........J}q.
        0x0090:  c02c 0001 0001 0000 0116 0004 4a7d 7168  .,..........J}qh
        0x00a0:  c02c 0001 0001 0000 0116 0004 4a7d 7163  .,..........J}qc
15:57:28.018909 IP 8.8.8.8.53 > 192.168.1.2.49028: 31984 1/1/0 CNAME www.l.google.com. (102)
        0x0000:  4500 0082 7b1b 0000 2f11 3e96 0808 0808  E...{.../.>.....
        0x0010:  c0a8 0102 0035 bf84 006e c67e 7cf0 8180  .....5...n.~|...
        0x0020:  0001 0001 0001 0000 0377 7777 0667 6f6f  .........www.goo
        0x0030:  676c 6503 636f 6d00 001c 0001 c00c 0005  gle.com.........
        0x0040:  0001 0001 517f 0008 0377 7777 016c c010  ....Q....www.l..
        0x0050:  c030 0006 0001 0000 0258 0026 036e 7334  .0.......X.&.ns4
        0x0060:  c010 0964 6e73 2d61 646d 696e c010 0016  ...dns-admin....
        0x0070:  91f3 0000 0384 0000 0384 0000 0708 0000  ................
        0x0080:  003c                                     .<

我仍然不知道为什么服务器的回复足以进行ping操作,但不足以用于ssh / wget。

如果有人有想法,我很乐意听到。不过,到目前为止,我可以引用外部DNS服务器,也可以在新框中设置自己的服务器。这是一种变通方法,似乎应该没有必要,但可以让我继续。


尝试将“ nameserver 8.8.8.8”添加到/etc/resolv.conf中,然后发布结果。让我们将其范围缩小到客户端或服务器错误。
NcA 2012年

您的/etc/host.conf看起来如何?
尼尔斯2012年

@Nils:/etc/host.conf是默认设置,仅包含“ multi on”行
Rick Koshi

您可以从本地服务器上完整发布8.8.8.8的挖掘输出吗?这个Centos盒子已经存在多久了?您在此DSL调制解调器后面还有其他计算机吗?他们的WRT dns查询会发生什么?您是否尝试过重新启动Centos盒?除非您不小心将上面的输出截断了,否则这两个转储看起来并不相同。您是否尝试过重新启动DSL调制解调器?
kls 2012年

1
有趣的问题。并为解决该问题提供了扎实的工作。
jamieb

Answers:


2

使用此方法:https : //www.centos.org/modules/newbb/viewtopic.php?topic_id=39343

我发现了一个关键命令可以帮助我进行故障排除:

[root@localhost ~]# wget -6 URL -失败

[root@localhost ~]# wget -4 URL -工作

这与导致某些实用程序出现问题的默认ipv6堆栈有关。禁用ipv6即可解决。


+1到IPv6。pingping6适用于v4(适用于v6 ping),这就是它起作用的原因。但是我不建议禁用它-许多现代ISP在v4上的表现更糟。许多人都在做NAT ... 我怀疑调制解调器的DNS服务器不正确支持AAAA记录,从而导致此尴尬的故障。Google DNS或OpenDNS可能是一个很好的解决方法。
rvs

2

我有同样的问题,但我已解决。

您必须在接口配置文件中添加DNS /etc/sysconfig/network-scripts/ifcfg-eth0。添加行

DNS1=xxx.xxx.xxx.xxx

然后,您必须重新启动网络服务。

# systemctl restart NetworkManager

不适用于我:(
VaTo

1

首先停止防火墙。对网络问题进行故障排除时,请尽可能避免这种情况发生。如果您放下防火墙,而您的问题消失了,那么问题就解决了,如果没有解决,至少目前还没有解决。

1)iptables -L查看是否有任何DROP规则可能会影响传出数据包

2)检查selinux是否正在运行并且做任何奇怪的事情(/ etc / selinux / config)

3)以下内容的输出是:route -n

4)/ etc / sysconfig / network-scripts / ifcfg-eth0看起来像什么

5)您可以对网关执行ping操作吗?

希望其中之一可以提供诊断问题所需的一些信息。


1

根据原始帖子,我添加了8.8.8.8,/etc/resolv.conf并且/etc/sysconfig/network-scripts/ifcfg-eth0两个编辑都没有解决我的问题。

然后我编辑/etc/nsswitch.conf

原版的

hosts:          files  mdns4_minimal [NOTFOUND=return] dns mdns4

已编辑

hosts:          files  dns mdns4_minimal [NOTFOUND=return] mdns4

现在DNS适用于yum和wget。



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.