nslookup encuentra ip, pero ping no

53

Sé que esto se parece a todas las otras preguntas "puede hacer ping a través de ip pero no dns", pero realmente no me ayudaron en absoluto.

Además, tener archivos de host en todas las máquinas no es factible ya que este servidor eventualmente manejará muchas computadoras conectadas a él.

Tengo un servidor ldap + dns configurado y quiero que las computadoras de mi red se autentiquen en el servidor ldap.

La parte ldap está funcionando bien y puedo ingresar al servidor ldap con las credenciales ldap bien.

El problema viene con las máquinas cliente, el cliente está configurado para usar el servidor dns (en este caso 192.168.0.243) y si entro en la terminal y hago un nslookup, encuentra que el servidor ldap está bien.

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

Pero cuando lo hago ping, no encuentra la dirección IP. Simplemente cuelga allí luciendo bonita hasta que lo CTRL-C.

Por supuesto, hacer ping por dirección IP funciona bien.

Aquí están los archivos de zona para el servidor 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:~$ 

Estoy realmente perdido acerca de qué hacer y cualquier ayuda será muy apreciada.

---- editar ----

antes de que alguien pregunte, sí, el servidor se está ejecutando :)

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

---- fin editar ----

Fernando
fuente
Después de más pruebas, estoy bastante seguro de que estoy haciendo algo mal en la parte del servidor DNS. hacer host ldapme da un error de host no encontrado (incluso en el terminal del servidor dns) lo mismo usando dig, lo mismo con host 192.168.0.243(mi máquina ldap.mynet.local).
Fernando
hacer host ldap.mynet.localen la máquina del cliente me da la dirección IP correcta: /
Fernando

Respuestas:

89

Creo que esto es causado por mdns, multidifusión dns, para la autoconfiguración del dominio .local.

Si se registra /etc/nsswitch.conf, probablemente verá:

hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4

mdns4 es lo que está haciendo multidifusión dns. Intenta cambiar esto a:

hosts: files dns

Y ver si hace alguna diferencia. Si lo hace funcionar, puede eliminar permanentemente mdns con:

Tratar apt-get remove libnss-mdns

Que también hará el nsswitch.confcambio por ti.

Alternativamente, no use .local - use .lan o algo en su lugar.

Cesio
fuente
1
¡Perfecto! ¡trabajado como un encanto! Muchas gracias. El DNS inverso todavía me da un error, pero ese es otro problema, supongo :)
Fernando
44
Amigo, eres increíble!
Thai Tran
Esta fue la solución real a mi problema en Ubuntu Saucy / 13.10.
beerbajay
2
Cual es la logica ¿Por qué es esta la configuración predeterminada?
Chris
1
Excelente respuesta! También funcionó para mí en una nueva instalación de Ubuntu 16.
T-Heron
3

Solo para completar cosas:

  1. nslookup solo le pide al servidor DNS dado el registro A asignado, NO garantiza que el dispositivo detrás de ese registro realmente TIENE esa IP.

  2. Incluso cuando el dispositivo tiene la IP correcta (por ejemplo: la IP fija del dispositivo coincide con la proporcionada por DNS), no garantiza que el dispositivo esté configurado para responder a pings. Este es un punto común de frustración. (Estoy hablando de ti, firewall de Windows)

  3. Cuando cruza subredes, el enrutador / puerta de enlace / firewall también puede restringir el tráfico ICMP (eso es un ping).

Por lo tanto, siempre debe verificar la cadena de servicio completa del remitente al destinatario y viceversa. En el caso tres, puede haber configuraciones como a) puerta de enlace predeterminada o b) rutas (predeterminadas) involucradas. Entonces agréguelos a su lista de verificación.

Perdón por desenterrar este viejo, pero dado el encabezado parecía un poco de información, alguien podría beneficiarse.

Greetz

Kay Urbach
fuente
2
el OP menciona "pero cuando hago ping no encuentra la dirección IP". No se trata de que los paquetes no lleguen al destino, sino de que el ping en sí mismo no pueda resolver la dirección IP.
Andras Gyomrey
El ping en sí mismo no usa la resolución de nombres. Refiriéndose a stackoverflow.com/questions/17161005/… .
Kay Urbach
2

Otra cosa que he visto interferir con DNS es instalar winbind. Parece poner una winsentrada antes [NOTFOUND=return]en /etc/nsswitch.conf, lo que hace que DNS falle, pero se puede solucionar moviéndose winsa después de la parte "NOTFOUND", también, preferiblemente después de dns para que la búsqueda de dns ocurra primero, vea esto:

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

(No estoy seguro de por qué sucede esto de forma predeterminada; ¡comentarios bienvenidos!)

Latanius
fuente