Cisco DNS doctoring o Hairpinning?

8

Tengo la siguiente configuración: CISCO 881, IOS 15.2 (4) M6. En la interfaz WAN se configura la subred 86.34.156.48/29 de nuestro ISP. Detrás del enrutador hay 2 servidores web. NAT: 86.34.156.51 <> 10.10.10.100 (IP privada, servidor1). Si configuro los registros del servidor A de BIND DNS A con la IP externa del servidor (86.34.156.51), el mundo exterior nunca recibe la respuesta de mi servidor DNS (no sé qué sucede allí, tal vez el enrutador se encarga del DNS o algo así) similar (es una pregunta)), y es seguro que el servidor DNS está configurado y funciona correctamente (capturé los paquetes IP con TCPdump). Pero si configuro los registros del servidor DNS A con la IP privada del servidor (10.10.10.100), los paquetes siempre están llegando al destino adecuado (con la IP externa del servidor, quizás también con DNS).

¿¿¿Qué puedo hacer???

        +-----+
        |     |  an other host somewhere on internet(C)
        |     |
        +-----+
            |
            |
            :
            :  internet
            :

            |  

        +-----+
        |     |      ISP's router
        |     |       black box, without acces
        +-----+

            |
            | 86.34.456.48/29
        +-----+
        |     |      CISCO 881,
        |     |       IOS 15.2(4)M6
        +-----+
            |
            |
------------------------------------------------------------  local private network 10.10.10.0/24
    |                                           |
    | (86.34.156.51)                            | (Nat rule not yet attached)
    | 10.10.10.100                              | 10.10.10.101
    |                                           |
+-----+                                       +-----+
|     |                                       |     |
|     |                                       |     |
+-----+                                       +-----+
linux server (A)                                linux server (B)
BIND DNS server
 style2take.ro

Aquí hay algunas excavaciones (herramienta de diagnóstico dns en linux):

Desde el host B: $ dig style2take.ro

;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 42222
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;style2take.ro.                 IN      A

;; ANSWER SECTION:
style2take.ro.          0       IN      A       10.10.10.100                                                <-- here you can see the TTL is 0

;; Query time: 52 msec
;; SERVER: 193.231.100.130#53(193.231.100.130)
;; WHEN: Fri Feb 20 10:27:25 EET 2015
;; MSG SIZE  rcvd: 58

Desde el host B: $ dig @ 10.10.10.100 style2take.ro

;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 65374
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 3
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
;; QUESTION SECTION:
;style2take.ro.                 IN      A

;; ANSWER SECTION:
style2take.ro.          3600    IN      A       10.10.10.100                                                <-- here you can see the TTL is 3600

;; AUTHORITY SECTION:
style2take.ro.          3600    IN      NS      ns1.style2take.ro.
style2take.ro.          3600    IN      NS      ns2.style2take.ro.

;; ADDITIONAL SECTION:
ns1.style2take.ro.      3600    IN      A       10.10.10.100
ns2.style2take.ro.      3600    IN      A       10.10.10.100

;; Query time: 0 msec
;; SERVER: 10.10.10.100#53(10.10.10.100)
;; WHEN: Fri Feb 20 10:28:58 EET 2015
;; MSG SIZE  rcvd: 126

Desde el host C: $ dig style2take.ro

;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 32364
;; flags: qr rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 6, ADDITIONAL: 0

;; QUESTION SECTION:
;style2take.ro.                 IN      A

;; ANSWER SECTION:
style2take.ro.          0       IN      A       86.34.156.51                                                <-- here you can see the TTL is 0

;; AUTHORITY SECTION:
ro.                     106161  IN      NS      sns-pb.isc.org.
ro.                     106161  IN      NS      primary.rotld.ro.
ro.                     106161  IN      NS      sec-dns-a.rotld.ro.
ro.                     106161  IN      NS      sec-dns-b.rotld.ro.
ro.                     106161  IN      NS      dns-at.rotld.ro.
ro.                     106161  IN      NS      dns-ro.denic.de.

;; Query time: 149 msec
;; SERVER: 82.79.24.74#53(82.79.24.74)
;; WHEN: Fri Feb 20 10:29:52 2015
;; MSG SIZE  rcvd: 201

Desde el host C: $ dig @ 86.34.156.51 style2take.ro

; (1 server found)
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 48385
;; flags: qr aa rd; QUERY: 1, ANSWER: 1, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;style2take.ro.                 IN      A

;; ANSWER SECTION:
style2take.ro.          0       IN      A       86.34.156.51                                                <-- here you can see the TTL is 0

;; AUTHORITY SECTION:
style2take.ro.          0       IN      NS      ns2.style2take.ro.
style2take.ro.          0       IN      NS      ns1.style2take.ro.

;; ADDITIONAL SECTION:
ns1.style2take.ro.      0       IN      A       86.34.156.51
ns2.style2take.ro.      0       IN      A       86.34.156.51

;; Query time: 29 msec
;; SERVER: 86.34.156.51#53(86.34.156.51)
;; WHEN: Fri Feb 20 10:35:05 2015
;; MSG SIZE  rcvd: 115
Szilveszter Zsigmond
fuente
¿Dónde entra en juego?
bao7uo

Respuestas:

0

Bueno, si no resuelve el DNS, el problema puede ser doble:

  1. Configuración de DNS incorrecta: ¿es capaz el sistema DNS global de saber cuál es el NS para su dominio? Esto es algo que debe configurar en su proveedor de nombre. ¿Qué es la dig style2take.ro NSsalida?

  2. Su enrutador no permite solicitudes de DNS. Conéctese a un servidor externo e intente hacer telnet al puerto 53 de su DNS telnet 86.34.156.51: el DNS debería funcionar tanto sobre UDP como sobre TCP, esto prueba al menos la parte TCP.

StanTastic
fuente
0

No necesita tener la IP externa en ninguna de sus configuraciones de DNS (con nombre). Puede usar el interno (10.10.10.100) en todas partes y NAT desde el enrutador a 86.34.156.51 ( ip nat inside source static 10.10.10.100 86.34.156.51). Si desea configurar un DNS secundario, se aplica lo mismo: use 10.10.10.101 (como NS2) NAT'ed a otra cosa (como 86.34.156.51). Además, asegúrese de que los puertos DNS se envíen en el enrutador y no estén bloqueados por el firewall en el servidor Linux. Utilice un comprobador de puertos basado en web para asegurarse de que UDP 53 esté abierto.

Overmind
fuente