内部 DNS 和解析外部 IP 的软件/服务

内部 DNS 和解析外部 IP 的软件/服务

因此,我的网络上有一个 DNS 服务器,它具有外部区域(服务器的公共 IP)和内部区域(服务器的 LAN IP)。当我在区域中的服务器上执行 nslookup 时,它会解析本地 IP,这正是我想要的。但如果我使用 ping 或 tracrt,如果我使用 putty 访问服务器(www.blahblah.com 而不是 IP),它们都会使用公共 IP。有什么想法可以解释为什么 dns 会在 nslookup 中解析本地 IP,但在尝试执行其他任何操作时,它会找到公共 IP。

对于外部来说,视图是:

view "external"{
    match-clients { any; };
    recursion no;

对于内部而言:

view "internal"{
    match-clients { x.x.x.x/24; };
    recursion yes;

xxxx 不是实际值,而是使用正确的 IP 掩码。区域位于每个视图的 {} 集合内。

内部视图和区域位于 named.conf.internal 中

外部视图和区域位于 named.conf.external 中

它们包含在named.conf中。

命名的.conf:

include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.internal";
include "/etc/bind/named.conf.external";

注意:这仅适用于 Windows 系统,Linux 服务器似乎可以正常解析。

示例(xxxx = 本地 IP bbbb = 公共):

C:\Users\[user]>nslookup www.[website].com
Server:  UnKnown
Address:  [dns server ip]

Name:    www.[website].com
Address:  x.x.x.x


C:\Users\[user]>ping www.[website].com

Pinging www.[website].com [b.b.b.b] with 32 bytes of data:
Reply from b.b.b.b: bytes=32 time=2ms TTL=64
Reply from b.b.b.b: bytes=32 time=3ms TTL=64
Reply from b.b.b.b: bytes=32 time=3ms TTL=64
Reply from b.b.b.b: bytes=32 time=3ms TTL=64

Ping statistics for b.b.b.b:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 2ms, Maximum = 3ms, Average = 2ms

答案1

事实证明,问题不是 Bind 或 DNS 服务器,而是 Windows。在我确认多台 Linux 服务器上解析内部和外部之间没有问题后,我删除了辅助 DNS(远程服务器没有本地区域),并在 Windows 系统上刷新了 DNS,它开始正确解析。

相关内容