Cisco DNS Doctoring oder Hairpinning?

8

Ich habe die folgende Konfiguration: CISCO 881, IOS 15.2 (4) M6. Auf der WAN-Schnittstelle ist das Subnetz 86.34.156.48/29 von unserem ISP konfiguriert. Hinter dem Router bleiben 2 Webserver. NAT: 86.34.156.51 <> 10.10.10.100 (private IP, Server1). Wenn ich die BIND-DNS-Server-A-Einträge mit der externen IP des Servers (86.34.156.51) konfiguriere, erhält die Außenwelt nie die Antwort von meinem DNS-Server (ich weiß nicht, was dort passiert, möglicherweise führt der Router DNS-Doctoring oder ähnliches durch ähnlich (es ist eine Frage)), und es ist sicher, dass der DNS-Server konfiguriert ist und ordnungsgemäß funktioniert (ich habe die IP-Pakete mit TCPdump erfasst). Wenn ich jedoch die DNS-Server-A-Einträge mit der privaten IP-Adresse des Servers (10.10.10.100) konfiguriere, kommen die Pakete immer am richtigen Ziel an (mit der externen IP des Servers, möglicherweise auch DNS-Doctoring).

Was könnte ich tuen???

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

Hier ist ein Dig (DNS-Diagnosetool unter Linux):

Von 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

Von 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

Von 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

Von 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
quelle
Wo kommt die Haarnadelung ins Spiel?
Bao7uo

Antworten:

0

Wenn Sie DNS nicht lösen können, kann es zwei Probleme geben:

  1. Falsche DNS-Konfiguration - Kann das globale DNS-System feststellen, wie hoch der NS für Ihre Domain ist? Dies müssen Sie bei Ihrem Namensanbieter einstellen. Was ist die dig style2take.ro NSAusgabe?

  2. Ihr Router lässt keine DNS-Anforderungen zu. Stellen Sie sich auf einen Server außerhalb und versuchen Sie, Telnet an Port 53 Ihres DNS zu senden. telnet 86.34.156.51DNS sollte sowohl über UDP als auch über TCP funktionieren. Dies testet mindestens den TCP-Teil.

StanTastic
quelle
0

Sie müssen die externe IP in keiner Ihrer DNS-Einstellungen (benannt) haben. Sie können die interne (10.10.10.100) überall verwenden und vom Router auf 86.34.156.51 ( ip nat inside source static 10.10.10.100 86.34.156.51) NAT . Wenn Sie ein sekundäres DNS konfigurieren möchten, gilt dasselbe: Verwenden Sie 10.10.10.101 (als NS2) NAT'ed für etwas anderes (wie 86.34.156.51). Stellen Sie außerdem sicher, dass die DNS-Ports tatsächlich im Router weitergeleitet und nicht von der Firewall auf dem Linux-Server blockiert werden. Verwenden Sie eine webbasierte Portprüfung, um sicherzustellen, dass UDP 53 geöffnet ist.

Überdenken
quelle