Problemi DNS sulla nuova installazione di CentOS


8

Sto riscontrando alcuni problemi DNS su una nuova scatola che sto installando con CentOS 6.2.

Sono in grado di cercare nomi usando nslookup, scavare o host. Sono in grado di eseguire il ping delle macchine in base al nome o all'indirizzo IP. Tuttavia, quando provo altri strumenti, come ssh, wget o yum, non sono in grado di risolvere i nomi. Per esempio:

# 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

Il mio file /etc/nsswitch.conf è l'impostazione predefinita, inclusa questa riga (standard):

hosts:      files dns

/etc/resolv.conf è impostato da DHCP:

; generated by /sbin/dhclient-script
nameserver 192.168.1.254

192.168.1.254 è un server DNS funzionante (il mio modem DSL, che lavora da anni con altre macchine)

Qualcuno sa perché il ping dovrebbe funzionare, ma ssh / wget fallirebbe?


Come suggerito da NcA, ho provato a cambiare /etc/resolv.conf per puntare a 8.8.8.8. Stranamente, questo lo fa funzionare. Ovviamente, il mio modem DSL sta rispondendo alle richieste DNS in qualche modo che alcune parti del sistema di risoluzione di Linux non gradiscono. Guardando il tcpdump, non riesco a vedere quale sia la differenza. Certamente, entrambi i server stanno inviando gli stessi indirizzi.

Ecco l'output tcpdump -nn -Xcon il server impostato sul server DNS sul modem DSL. Sta chiaramente rispondendo con gli indirizzi corretti, ma ssh / wget non sembrano contenti per qualche motivo:

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

Non sono abbastanza esperto da sapere se questo è malformato in qualche modo, ma il ping sembra fare la cosa giusta con esso.

Per fare un confronto, ecco la stessa cosa quando si interrogano 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                                     .<

Non so ancora perché la risposta del server sia adeguata per il ping ma non per ssh / wget.

Se qualcuno ha delle idee, sarei felice di ascoltarle. Per ora, tuttavia, posso fare riferimento a un server DNS esterno o impostare il mio server sulla nuova casella. È una soluzione alternativa che sembra non essere necessaria, ma mi permetterà di procedere.


Prova ad aggiungere "nameserver 8.8.8.8" al tuo /etc/resolv.conf e pubblica i risultati. Restringiamolo all'errore client o server.
NC

Come appare il tuo /etc/host.conf ?
Nils,

@Nils: /etc/host.conf è l'impostazione predefinita, contenente solo la riga "multi on"
Rick Koshi

Potresti pubblicare l'output di scavo dal tuo server locale e da 8.8.8.8 per intero? Da quanto tempo è in circolazione questo box Centos? Hai altri computer dietro questo modem DSL? Cosa succede con le loro domande DNS dns? Hai provato a riavviare la casella Centos? A meno che non abbiate accidentalmente troncato l'output sopra, i due dump non sembrano uguali. Hai provato a riavviare il modem DSL?
kls

1
Problema interessante. E un lavoro abbastanza solido per risolverlo.
Jamieb,

Risposte:


2

Utilizzando questo: https://www.centos.org/modules/newbb/viewtopic.php?topic_id=39343

Ho trovato un comando chiave che mi ha aiutato a risolvere:

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

[root@localhost ~]# wget -4 URL -Lavorato

Ha a che fare con lo stack ipv6 predefinito che causa problemi con alcuni programmi di utilità. Disabilita ipv6 per la risoluzione.


Da +1 a ipv6. pingè l'unica cosa v4 (c'è ping6per i ping v6) ed è per questo che funziona. Tuttavia, non consiglierei di disabilitarlo: molti ISP moderni fanno peggio sulla v4. Molti fanno NAT dalla loro parte ... schifosamente. Sospetto che il server DNS del modem non supporti correttamente i record AAAA causando questo errore imbarazzante. Google DNS o OpenDNS potrebbero essere una buona soluzione.
camper

2

Ho lo stesso problema ma l'ho risolto.

È necessario aggiungere il file di configurazione DNS nell'interfaccia, /etc/sysconfig/network-scripts/ifcfg-eth0. Aggiungi la linea

DNS1=xxx.xxx.xxx.xxx

E quindi è necessario riavviare il servizio di rete.

# systemctl restart NetworkManager

non ha funzionato per me :(
Va

1

Fermare prima il firewall. Toglilo sempre di mezzo quando risolvi i problemi di rete (quando possibile). Se lasci cadere il firewall e il problema scompare, il problema è risolto, in caso contrario, almeno non è per il momento.

1) iptables -L verifica se ci sono regole DROP che potrebbero influenzare i pacchetti in uscita

2) Controlla se selinux è in esecuzione e fa qualcosa di strano (/ etc / selinux / config)

3) qual è l'output di quanto segue: route -n

4) che aspetto ha / etc / sysconfig / network-scripts / ifcfg-eth0

5) puoi eseguire il ping del gateway senza problemi?

Speriamo che uno di questi fornisca le informazioni necessarie per diagnosticare il problema.


1

Sulla base del post originale ho aggiunto 8.8.8.8 /etc/resolv.confe /etc/sysconfig/network-scripts/ifcfg-eth0nessuna modifica ha risolto il mio problema.

Ho quindi modificato /etc/nsswitch.conf:

Originale

hosts:          files  mdns4_minimal [NOTFOUND=return] dns mdns4

Modificato

hosts:          files  dns mdns4_minimal [NOTFOUND=return] mdns4

Ora DNS funziona per yum e wget.


0

Prova ad aggiungere host ordine, associa a /etc/host.conf .


-1

Prova ad aggiungere la riga "opzioni richiesta singola" al tuo /etc/resolv.conf. Questo dirà a libc di fare 2 richieste (A e AAAA) invece di inviarle dalla stessa porta. Dovrebbe aiutare.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.