nslookup trova ip, ma ping no


53

So che sembra che tutte le altre domande "possano eseguire il ping tramite IP ma non DNS", ma quelle non mi hanno aiutato affatto.

Inoltre, non è possibile disporre di file host su tutti i computer poiché questo server gestirà alla fine molti computer collegati ad esso.

Ho un server ldap + dns impostato e voglio che i computer della mia rete eseguano l'autenticazione sul server ldap.

La parte di ldap sta funzionando bene e posso usare ssh nel server ldap con le credenziali di ldap bene.

Il problema si presenta con i computer client, il client è impostato per utilizzare il server dns (in questo caso 192.168.0.243) e se arrivo nel terminale e faccio un nslookup, trova il server ldap perfetto.

fernando@desktest:~$ nslookup ldap.mynet.local
Server:     192.168.0.243
Address:    192.168.0.243#53

Name:   ldap.mynet.local
Address: 192.168.0.243

Ma quando lo eseguo il ping, non trova l'indirizzo IP. È semplicemente appeso lì fino a che non lo faccio CTRL-C.

Ovviamente il ping per indirizzo IP funziona bene.

Ecco i file di zona per il server DNS:

fernando@ldap:~$ cat /etc/bind/named.conf.local
zone "mynet.local" {
    type master;
    file "/etc/bind/db.mynet.local";
};

zone "0.168.192.in-addr.arpa" {
    type master;
    notify no;
    file "/etc/bind/db.192";
};
fernando@ldap:~$ cat /etc/bind/db.mynet.local 
;
; BIND data file for local loopback interface
;
$TTL    604800
@   IN  SOA ns.mynet.local. root.mynet.local. (
                  7     ; Serial
             604800     ; Refresh
              86400     ; Retry
            2419200     ; Expire
         604800 )   ; Negative Cache TTL
;
@   IN  NS  ns.mynet.local.
ns  IN  A   192.168.0.243
server  IN  A   192.168.0.250
desktest    IN  A   192.168.0.249
remote  IN  A   192.168.0.248
winserver   IN  A   192.168.0.247
web         IN  A   192.168.0.246
tempfs  IN  A   192.168.0.245
ldap    IN  A   192.168.0.243
antenarfb   IN  A   192.168.0.253
antenapan   IN  A   10.82.223.7
adslgvt IN  A   192.168.0.1
fernando@ldap:~$ cat /etc/bind/db.192 
;
; BIND reverse data file for local loopback interface
;
$TTL    604800
@   IN  SOA mynet.local. root.mynet.local. (
                  6     ; Serial
             604800     ; Refresh
              86400     ; Retry
            2419200     ; Expire
             604800 )   ; Negative Cache TTL
;
@   IN  NS  ns.
1   IN  PTR ns.mynet.local.
2   IN  PTR server.mynet.local.
3   IN  PTR desktest.mynet.local.
4   IN  PTR remote.mynet.local.
5   IN  PTR winserver.mynet.local.
6   IN  PTR web.mynet.local.
7   IN  PTR tempfs.mynet.local.
8   IN  PTR ldap.mynet.local.
9   IN  PTR antenarfb.mynet.local.
10  IN  PTR antenapan.mynet.local.
11  IN  PTR adslgvt.mynet.local.
fernando@ldap:~$ 

Sono davvero in perdita su cosa fare e qualsiasi aiuto sarà molto apprezzato.

---- modificare ----

prima che qualcuno chieda, sì, il server è in esecuzione :)

root@ldap:/etc/bind# rndc status
version: 9.7.0-P1
CPUs found: 1
worker threads: 1
number of zones: 16
debug level: 0
xfers running: 0
xfers deferred: 0
soa queries in progress: 0
query logging is OFF
recursive clients: 0/0/1000
tcp clients: 0/100
server is up and running

---- fine modifica ----


dopo ulteriori test sono abbastanza sicuro che sto facendo qualcosa di sbagliato nella parte del server DNS. fare host ldapmi dà un errore host non trovato (anche sul terminale del server DNS) stessa cosa usando dig, stessa cosa con host 192.168.0.243(la mia macchina ldap.mynet.local).
Fernando,

facendo host ldap.mynet.localsulla macchina client mi dà l'indirizzo IP corretto: /
Fernando

Risposte:


89

Credo che ciò sia causato da mdns - multicast dns, per l'autoconfigurazione del dominio .local.

Se effettui il check-in /etc/nsswitch.conf, probabilmente vedrai:

hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4

mdns4 è ciò che sta facendo multicast dns. Prova a cambiarlo in:

hosts: files dns

E vedi se fa differenza. Se funziona, puoi rimuovere mdns in modo permanente con:

Provare apt-get remove libnss-mdns

Che farà il nsswitch.confcambiamento anche per te.

In alternativa, non usare .local - usa invece .lan o qualcosa del genere.


1
Perfetto! ha funzionato come un fascino! Grazie mille. Il DNS inverso mi sta ancora dando un errore, ma credo che sia un altro problema :)
Fernando,

4
Amico, sei fantastico !!!!!
Thai Tran,

Questa era la vera soluzione al mio problema su Ubuntu Saucy / 13.10.
beerbajay,

2
Qual è la logica? Perché questa è la configurazione predefinita?
Chris,

1
Risposta eccellente! Ha funzionato anche per me su una nuova installazione di Ubuntu 16.
T-Heron,

3

Solo per completare le cose:

  1. nslookup richiede semplicemente al server DNS specificato il record A assegnato, NON garantisce che il dispositivo dietro quel record abbia effettivamente quell'IP.

  2. Anche quando il dispositivo ha l'IP corretto (es .: l'IP fisso del dispositivo corrisponde a quello fornito da DNS) - non garantisce che il dispositivo sia configurato per rispondere ai ping. Questo è un punto comune di frustrazione. (Sto parlando di te, firewall di Windows)

  3. Quando si attraversano le sottoreti, anche il router / gateway / firewall può limitare il traffico ICMP (ecco cos'è un ping).

Quindi è sempre necessario controllare l'intera catena di servizi dal mittente al destinatario e viceversa. Nel caso tre, potrebbero esserci impostazioni come a) gateway predefinito o b) route (predefinite) coinvolte. Quindi aggiungili alla tua lista di controllo.

Ci scusiamo per aver scavato questo vecchio, ma dato dall'intestazione sembrava un po 'di informazione, qualcuno potrebbe trarne profitto.

Greetz.


2
l'OP menziona "ma quando eseguo il ping non trova l'indirizzo IP". Non si tratta di pacchetti che non raggiungono la destinazione, ma di ping stesso che non è in grado di risolvere l'indirizzo IP.
Andras Gyomrey,

Il ping stesso non utilizza la risoluzione dei nomi. Facendo riferimento a stackoverflow.com/questions/17161005/… .
Kay Urbach,

2

Un'altra cosa che ho visto interferire con DNS è l'installazione di winbind. Sembra inserire una winsvoce prima [NOTFOUND=return]in /etc/nsswitch.conf, che causa il fallimento del DNS, ma può essere risolto spostandosi winsdopo la parte "NOTFOUND", anche, preferibilmente dopo dns in modo che avvenga prima la ricerca di dns, vedi questo:

http://ubuntuforums.org/showthread.php?t=1496488

(non sono sicuro del perché ciò accada per impostazione predefinita; commenti benvenuti!)

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.