思科 DNS 篡改或发夹?

思科 DNS 篡改或发夹?

我有以下配置:CISCO 881,IOS 15.2(4)M6。WAN 接口上配置了来自我们 ISP 的 86.34.156.48/29 子网。路由器后面有 2 个 Web 服务器。NAT:86.34.156.51 <> 10.10.10.100(私有 IP,服务器 1)。如果我使用服务器的外部 IP(86.34.156.51)配置 BIND DNS 服务器 A 记录,外界永远不会收到来自我的 DNS 服务器的响应(我不知道那里发生了什么,也许路由器进行了 DNS 修改或类似操作(这是一个问题)),并且确保 DNS 服务器已配置并正常工作(我使用 TCPdump 捕获了 IP 数据包)。但是,如果我使用服务器私有 IP(10.10.10.100)配置 DNS 服务器 A 记录,数据包将始终到达正确的目的地(使用服务器外部 IP,也许还进行了 DNS 修改)。唯一的问题是 DNS 数据包 TTL 值消失,正如您在下面的 digs 输出中所看到的那样。

我能做什么???

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

这里有一些挖掘(Linux下的dns诊断工具):

来自主机 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

来自主机 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

来自主机 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

来自主机 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

答案1

好吧,如果你没有解决 DNS 问题,问题可能有两个方面:

  1. DNS 配置不正确 - 全球 DNS 系统是否能够分辨出您的域名的 NS 是什么?您需要在名称提供商处设置此项。dig style2take.ro NS输出是什么?

  2. 您的路由器不允许 DNS 请求。进入外部服务器并尝试远程登录到 DNS 的 53 端口telnet 86.34.156.51- DNS 应该可以通过 UDP 和 TCP 工作,这至少可以测试 TCP 部分。

答案2

您不需要在任何 DNS 设置(命名)配置中使用外部 IP。您可以在任何地方使用内部 IP(10.10.10.100),并将其从路由器 NAT 到 86.34.156.51(ip nat inside source static 10.10.10.100 86.34.156.51)。如果您想配置辅助 DNS,同样适用:使用 10.10.10.101(作为 NS2)NAT 到其他地址(如 86.34.156.51)。此外,请确保 DNS 端口确实在路由器中转发,并且未被 Linux 服务器中的防火墙阻止。使用基于 Web 的端口检查器确保 UDP 53 已打开。

相关内容