DNS-Probleme bei der Neuinstallation von CentOS


8

Ich habe einige DNS-Probleme mit einer neuen Box, die ich mit CentOS 6.2 installiere.

Ich kann Namen mit nslookup, dig oder host nachschlagen. Ich kann Maschinen nach Name oder IP-Adresse anpingen. Wenn ich jedoch andere Tools wie ssh, wget oder yum ausprobiere, können sie keine Namen auflösen. Zum Beispiel:

# 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

Meine Datei /etc/nsswitch.conf ist die Standarddatei, einschließlich dieser (Standard-) Zeile:

hosts:      files dns

/etc/resolv.conf ist wie von DHCP eingerichtet:

; generated by /sbin/dhclient-script
nameserver 192.168.1.254

192.168.1.254 ist ein funktionierender DNS-Server (mein DSL-Modem, das jahrelang mit anderen Computern zusammenarbeitet)

Weiß jemand, warum Ping funktionieren würde, aber ssh / wget würde fehlschlagen?


Gemäß dem Vorschlag von NcA habe ich versucht, /etc/resolv.conf so zu ändern, dass es auf 8.8.8.8 zeigt. Seltsamerweise funktioniert es dadurch. Offensichtlich reagiert mein DSL-Modem auf DNS-Anfragen auf eine Weise, die einige Teile des Linux-Auflösungssystems nicht mögen. Wenn ich mir den tcpdump ansehe, kann ich den Unterschied nicht erkennen. Natürlich senden beide Server die gleichen Adressen.

Hier ist die Ausgabe von tcpdump -nn -Xmit dem Server auf den DNS-Server des DSL-Modems eingestellt. Es antwortet eindeutig mit den richtigen Adressen, aber ssh / wget scheint aus irgendeinem Grund nicht damit zufrieden zu sein:

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.....

Ich bin kein Experte genug, um zu wissen, ob dies auf irgendeine Weise fehlerhaft ist, aber Ping scheint das Richtige damit zu tun.

Zum Vergleich ist hier dasselbe, wenn 8.8.8.8 abgefragt wird:

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                                     .<

Ich weiß immer noch nicht, warum die Antwort des Servers für Ping ausreichend ist, aber nicht für ssh / wget.

Wenn jemand Ideen hat, würde ich mich freuen, sie zu hören. Im Moment kann ich jedoch entweder auf einen externen DNS-Server verweisen oder meinen eigenen Server auf der neuen Box einrichten. Es ist eine Problemumgehung, die unnötig erscheinen sollte, die es mir jedoch ermöglicht, fortzufahren.


Fügen Sie Ihrer /etc/resolv.conf "Nameserver 8.8.8.8" hinzu und veröffentlichen Sie Ihre Ergebnisse. Lassen Sie es uns auf Client- oder Serverfehler eingrenzen.
NcA

Wie sieht Ihre /etc/host.conf aus?
Nils

@Nils: /etc/host.conf ist die Standardeinstellung und enthält nur die Zeile 'multi on'
Rick Koshi

Könnten Sie die Dig-Ausgabe von Ihrem lokalen Server und von 8.8.8.8 vollständig veröffentlichen? Wie lange gibt es diese Centos-Box schon? Haben Sie andere Computer hinter diesem DSL-Modem? Was passiert mit ihnen WRT DNS-Abfragen? Haben Sie versucht, die Centos-Box neu zu starten? Sofern Sie die Ausgabe oben nicht versehentlich abgeschnitten haben, sehen die beiden Speicherauszüge nicht gleich aus. Haben Sie versucht, das DSL-Modem neu zu starten?
kls

1
Interessantes Problem. Und ein ziemlich solider Job zur Fehlerbehebung.
Jamieb

Antworten:


2

Verwenden Sie dazu: https://www.centos.org/modules/newbb/viewtopic.php?topic_id=39343

Ich habe einen Schlüsselbefehl gefunden, der mir bei der Fehlerbehebung half:

[root@localhost ~]# wget -6 URL -Gescheitert

[root@localhost ~]# wget -4 URL -Hat funktioniert

Dies hat etwas mit dem Standard-IPv6-Stack zu tun, der Probleme mit bestimmten Utils verursacht. Deaktivieren Sie ipv6 zum Auflösen.


+1 bis ipv6. pingist nur v4 (es gibt ping6für v6 Pings) und deshalb funktioniert es. Ich würde jedoch nicht raten, es zu deaktivieren - viele moderne ISPs schneiden in Version 4 schlechter ab. Viele machen NAT auf ihrer Seite ... beschissen. Ich vermute, dass der DNS-Server des Modems AAAA-Einträge nicht ordnungsgemäß unterstützt, was zu diesem unangenehmen Fehler führt. Google DNS oder OpenDNS können eine gute Problemumgehung sein.
RVS

2

Ich habe das gleiche Problem, aber ich habe es behoben.

Sie müssen DNS in der Schnittstellenkonfigurationsdatei hinzufügen /etc/sysconfig/network-scripts/ifcfg-eth0. Fügen Sie die Zeile hinzu

DNS1=xxx.xxx.xxx.xxx

Und dann müssen Sie den Netzwerkdienst neu starten.

# systemctl restart NetworkManager

hat bei mir nicht funktioniert :(
VaTo

1

Stoppen Sie zuerst die Firewall. Stellen Sie dies bei der Behebung von Netzwerkproblemen immer aus dem Weg (wann immer möglich). Wenn Sie die Firewall fallen lassen und Ihr Problem behoben ist, ist das Problem behoben. Wenn nicht, ist es zumindest vorerst nicht im Weg.

1) iptables -L sehen, ob es DROP-Regeln gibt, die ausgehende Pakete beeinflussen könnten

2) Überprüfen Sie, ob Selinux ausgeführt wird und etwas Seltsames tut (/ etc / selinux / config).

3) Was ist die Ausgabe von Folgendem: route -n

4) Wie sieht / etc / sysconfig / network-scripts / ifcfg-eth0 aus?

5) Können Sie Ihr Gateway ohne Probleme anpingen?

Hoffentlich liefert eine davon die Informationen, die Sie zur Diagnose des Problems benötigen.


1

Basierend auf dem ursprünglichen Beitrag habe ich 8.8.8.8 hinzugefügt /etc/resolv.confund /etc/sysconfig/network-scripts/ifcfg-eth0Keine Bearbeitung hat mein Problem gelöst.

Ich habe dann bearbeitet /etc/nsswitch.conf:

Original

hosts:          files  mdns4_minimal [NOTFOUND=return] dns mdns4

Bearbeitet

hosts:          files  dns mdns4_minimal [NOTFOUND=return] mdns4

Jetzt funktioniert DNS für yum und wget.


0

Versuchen Sie, Auftragshosts hinzuzufügen , und binden Sie sie an /etc/host.conf .


-1

Versuchen Sie, Ihrer /etc/resolv.conf die Zeile "options single-request" hinzuzufügen. Dadurch wird libc angewiesen, zwei Anforderungen (A und AAAA) zu stellen, anstatt sie über denselben Port zu senden. Es sollte helfen.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.