Problèmes DNS sur la nouvelle installation de CentOS


8

J'ai des problèmes DNS sur une nouvelle boîte que j'installe avec CentOS 6.2.

Je peux rechercher des noms en utilisant nslookup, dig ou host. Je peux cingler des machines par nom ou par adresse IP. Cependant, lorsque j'essaie d'autres outils, tels que ssh, wget ou yum, ils ne parviennent pas à résoudre les noms. Par exemple:

# 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

Mon fichier /etc/nsswitch.conf est la valeur par défaut, y compris cette ligne (standard):

hosts:      files dns

/etc/resolv.conf est tel que configuré par DHCP:

; generated by /sbin/dhclient-script
nameserver 192.168.1.254

192.168.1.254 est un serveur DNS fonctionnel (mon modem DSL, fonctionnant pendant des années avec d'autres machines)

Quelqu'un sait pourquoi le ping fonctionnerait, mais ssh / wget échouerait?


Selon la suggestion de NcA, j'ai essayé de changer /etc/resolv.conf pour pointer vers 8.8.8.8. Curieusement, cela le fait fonctionner. De toute évidence, mon modem DSL répond aux demandes DNS d'une manière que certaines parties du système de résolution de Linux n'aiment pas. En regardant le tcpdump, je ne peux pas voir quelle est la différence. Certes, les deux serveurs envoient les mêmes adresses.

Voici la sortie de tcpdump -nn -Xavec le serveur défini sur le serveur DNS sur le modem DSL. Il répond clairement avec les bonnes adresses, mais ssh / wget ne semble pas satisfait avec cela pour une raison quelconque:

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

Je ne suis pas assez expert pour savoir si cela est mal formé d'une manière ou d'une autre, mais le ping semble faire ce qu'il faut.

À titre de comparaison, voici la même chose lors de l'interrogation de 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                                     .<

Je ne sais toujours pas pourquoi la réponse du serveur est adéquate pour ping mais pas pour ssh / wget.

Si quelqu'un a des idées, je serais heureux de les entendre. Pour l'instant, cependant, je peux faire référence à un serveur DNS extérieur ou configurer mon propre serveur sur la nouvelle boîte. C'est une solution de contournement qui semble ne pas être nécessaire, mais qui me permettra de continuer.


Essayez d'ajouter "nameserver 8.8.8.8" à votre /etc/resolv.conf et publiez vos résultats. Réduisons-le à une erreur client ou serveur.
NcA

À quoi ressemble votre /etc/host.conf ?
Nils

@Nils: /etc/host.conf est la valeur par défaut, contenant uniquement la ligne 'multi on'
Rick Koshi

Pourriez-vous publier la sortie de fouille de votre serveur local et de la version 8.8.8.8 dans son intégralité? Depuis combien de temps cette boîte Centos existe-t-elle? Avez-vous d'autres ordinateurs derrière ce modem DSL? Que se passe-t-il avec ces requêtes DNS WRT? Avez-vous essayé de redémarrer la box Centos? Sauf si vous avez accidentellement tronqué la sortie ci-dessus, les deux vidages ne se ressemblent pas. Avez-vous essayé de redémarrer le modem DSL?
kls

1
Problème intéressant. Et un travail assez solide pour le dépanner.
jamieb

Réponses:


2

En utilisant ceci: https://www.centos.org/modules/newbb/viewtopic.php?topic_id=39343

J'ai trouvé un raccourci clavier qui m'a aidé à dépanner:

[root@localhost ~]# wget -6 URL -Échoué

[root@localhost ~]# wget -4 URL -Travaillé

C'est quelque chose à voir avec la pile ipv6 par défaut qui cause des problèmes avec certains utilitaires. Désactivez ipv6 pour résoudre.


+1 à ipv6. pingest une chose uniquement v4 (il y a ping6pour les pings v6) et c'est pourquoi cela fonctionne. Cependant, je ne conseillerais pas de le désactiver - beaucoup de FAI modernes font pire sur v4. Beaucoup font de la NAT de leur côté ... de façon insensée. Je soupçonne que le serveur DNS du modem ne prend pas correctement en charge les enregistrements AAAA, ce qui cause cet échec maladroit. Google DNS ou OpenDNS peuvent être une bonne solution de contournement.
rvs

2

J'ai le même problème mais je l'ai résolu.

Vous devez ajouter DNS dans le fichier de configuration d' interface, /etc/sysconfig/network-scripts/ifcfg-eth0. Ajoutez la ligne

DNS1=xxx.xxx.xxx.xxx

Et puis vous devez redémarrer le service réseau.

# systemctl restart NetworkManager

n'a pas fonctionné pour moi :(
VaTo

1

Arrêtez d'abord le pare-feu. Éliminez toujours cela lors du dépannage des problèmes de réseau (dans la mesure du possible). Si vous supprimez le pare-feu et que votre problème disparaît, le problème est résolu, sinon, au moins il n'est pas réglé pour l'instant.

1) iptables -L voir s'il y a des règles DROP qui pourraient affecter les paquets sortants

2) Vérifiez si selinux fonctionne et fait quelque chose de bizarre (/ etc / selinux / config)

3) quelle est la sortie des éléments suivants: route -n

4) À quoi ressemble / etc / sysconfig / network-scripts / ifcfg-eth0

5) pouvez-vous cingler votre passerelle sans problème?

Espérons que l'un d'eux fournira le peu d'informations dont vous avez besoin pour diagnostiquer le problème.


1

Sur la base du message d'origine, j'ai ajouté 8.8.8.8 à /etc/resolv.confet aucune des /etc/sysconfig/network-scripts/ifcfg-eth0deux modifications n'a résolu mon problème.

J'ai ensuite édité /etc/nsswitch.conf:

Original

hosts:          files  mdns4_minimal [NOTFOUND=return] dns mdns4

Édité

hosts:          files  dns mdns4_minimal [NOTFOUND=return] mdns4

Maintenant, DNS fonctionne pour yum et wget.


0

Essayez d'ajouter des hôtes de commande, liez à /etc/host.conf .


-1

Essayez d'ajouter la ligne "options single-request" à votre /etc/resolv.conf. Cela indiquera à libc de faire 2 requêtes (A et AAAA) au lieu de les envoyer depuis le même port. Ça devrait aider.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.