У меня возникла проблема с настройкой DNS BIND9 на моем домашнем сервере.
Когда я использую nslookup
и dig
из SSH на домашнем сервере (192.168.1.20), я получаю результаты обратно, а curl
также возвращаю веб-страницы, где это применимо, так что домашний сервер правильно видит мои конфигурации зоны.
Однако, когда я захожу в интрасеть с локального клиента (192.168.1.30, мой ПК с Windows), я получаю доступ can't connect to the server
через Firefox, the remote name could not be resolved
через curl и *** No internal type for both IPv4 and IPv6 Addresses (A+AAAA) records available for REDACTED
через nslookup. Разрешение DNS должно правильно перенаправляться маршрутизатором (192.168.1.1), но, по-видимому, это не работает или есть какая-то другая проблема, поскольку домашний сервер работает нормально.
Маршрутизатор NetgearDD-WRT (192.168.1.1):
RouterName: REDACTED
HostName: REDACTED (Same as RouterName)
LocalIP: 192.168.1.1
SubnetMask: 255.255.255.0
Gateway: 0.0.0.0
LocalDNS: 192.168.1.20 (is this correct? should this be 0.0.0.0?)
StaticDNS1: 192.168.1.20
StaticDNS2: 1.1.1.1
StaticDNS3: 1.0.0.1
WINS: 0.0.0.0
DnsMasqDHCP: Enabled
DnsMasqDNS: Enabled
DnsMasqAuth: Enabled
ForceDNSRedir: Disabled
Для DHCP-сервера:
UsedDomain: LAN & WLAN
LANDomain: inet (*.REDACTED.inet is BIND9 intranet zone. could this be interfering?)
Для DnsMasq Srv:
DNSMasq: Enabled
EncryptDNS: Disabled
CacheDNSSEC: Disabled
ValidateDNSRep: Disabled
CheckUnsDNSRep: Disabled
LocalDNS: Enabled (is this correct?)
NoDNSRebind: Enabled
QueryDNSStrict: Enabled
RequestorMAC: Disabled
И никаких дополнительных опций.
Домашний сервер Linux(192.168.1.20):
/etc/hostname
S001
/etc/hosts
127.0.0.1 localhost S001
/etc/resolv.conf
nameserver 192.168.1.20
nameserver 1.1.1.1
nameserver 1.0.0.1
Я новичок в настройке DNS в целом. Что-нибудь не так? Есть ли у вас какие-либо соображения, почему DNS не попадает, или что No internal type for both IPv4/v6
означает эта ошибка?
ОБНОВЛЯТЬ: Я установил dig
на своем клиенте Windows дополнительную информацию, и обращение к DNS через 192.168.1.1 дало мне действительный запрос статуса NOERROR
, но без каких ANSWER SECTION
-либо A
записей.
Я жестко закодировал DNS-адреса на сетевой карте моего клиента на 192.168.1.20 и получил это из dig
примера запроса к одному из моих DNS-имен:
; <<>> DiG 9.14.0 <<>> REDACTED
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 60944
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 1, ADDITIONAL: 3
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 4096
; COOKIE: f57ba5147d707a93c2a4328f5c9ae973c0bd569d9d31e87a (good)
;; QUESTION SECTION:
;REDACTED IN A
;; ANSWER SECTION:
REDACTED 38400 IN CNAME REDACTED
REDACTED 38400 IN A 192.168.1.20
;; AUTHORITY SECTION:
REDACTED 38400 IN NS localhost.
;; ADDITIONAL SECTION:
localhost. 604800 IN A 127.0.0.1
localhost. 604800 IN AAAA ::1
;; Query time: 0 msec
;; SERVER: 192.168.1.20#53(192.168.1.20)
;; WHEN: REDACTED
;; MSG SIZE rcvd: 168
И я могу попасть на веб-страницы через имена DNS. При возвращении к автоматическим настройкам DNS он снова ломается. Очень похоже, что проблема связана с конфигурацией маршрутизатора DD-WRT.
решение1
Проблема решена. Оказалось, что виновником был сам DNSMasq. После снятия отметок Use DNSMasq for DHCP
, Use DNSMasq for DNS
, и DHCP-Authoritative
последующего отключения DNSMasq запросы DNS и навигация по сайту снова заработали.
Я не уверен, существует ли простой способ пересылать запросы через DNSMasq, если кто-то захочет сделать то же самое, что и я, но с включенным DNSMasq, но поскольку у меня нет в этом необходимости, я просто оставлю его отключенным.