DNS 请求异常

DNS 请求异常

高手,我的DNS服务器配置出现问题,网络图如图所示:

在此处输入图片描述

问题表现如下:

  1. 有 2 台 DNS 服务器同时为内部和外部请求提供服务;第一个是域控制器,另一个是邮件和 Web 服务器;

  2. 为外部请求提供服务的服务器位于局域网内,地址为192.168.1.11;为了服务外网,路由器提供了地址到地址的静态NAT;

  3. 局域网内的客户端使用域控制器作为DNS服务器,它有对应的区域(对该区域有权威性),在该区域将名称解析为本地地址;

  4. 处理外部网络请求的服务器将名称解析为外部地址,它已从外部测试成功。如果从家里运行查询,例如

    dig @8.8.8.8 mail.company com.
    

    然后它就会给出正确的答案:

    ;; ANSWER SECTION:
    mail.company.com.           0       IN      A       111.111.111.111
    

然而,进入局域网后,出现了奇怪的异常:

dig @8.8.8.8 mail.company.com.

;; ANSWER SECTION:
mail.company.com.           0       IN      A       192.168.1.11

nslookup 的响应如下:

nslookup -type=A -class=IN mail.company.com. 8.8.8.8

Server:  google-public-dns-a.google.com
Address:  8.8.8.8

Non-authoritative:

Name:    mail.company.com
Address:  192.168.1.11

无论指定哪个外部服务器来服务 DNS 请求(Google DNS、Open DNS、ISP DNS),它们都会返回 LAN 地址。

对于 192.168.1.101(域控制器),这看起来没问题,但对于外部服务器则不行。清除解析器的缓存、更改客户端 PC 上的 DNS 服务器都无济于事:外部 DNS 服务器正在发回本地地址,这是不可行的。当从外部(从家里或其他办公室)请求时,相同的 DNS 服务器会返回正确的外部地址。

值得注意的是,当我向服务外部请求的服务器发送直接请求时,我得到了正确的答复:

Server:  ns.company.com.
Address:  192.168.1.11

Name:    mail.company.com.
Address:  111.111.111.111

实际上,我正在寻求帮助来帮助我解决问题。

答案1

因此,首先,当您查询外部 DNS 服务器时,请不要忘记它们正在缓存结果。区域 SOA 中的值之一就是缓存结果的时间。更好的测试方法是直接查询 DNS 服务器。

其次,请记住 8.8.8.8 是一个任播地址,因此您永远无法确定您正在访问哪个实际 DNS 服务器。

当您从 LAN 执行 dig @192.168.1.11 -tA mail.company.com 时,会发生什么情况

如果您得到了正确的响应,那么我认为您需要做的就是等待您一直在测试的外部 DNS 服务器的缓存过期。

祝你好运

相关内容