
Итак, в моей сети есть DNS-сервер с внешней зоной (публичные IP-адреса для серверов) и внутренней зоной (LAN IP-адреса для серверов). Когда я выполняю nslookup на сервере в зоне, он разрешает локальный IP-адрес, что как раз то, что мне нужно. Но если я использую ping или tracrt, и если я использую putty для перехода на сервер (www.blahblah.com вместо IP), они все используют публичный IP-адрес. Есть идеи, почему dns разрешает локальные IP-адреса в nslookup, но при попытке сделать что-то еще он находит публичные 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 (удаленный сервер без локальных зон) и очистил DNS в системе Windows, и она начала разрешаться правильно.