Dns

為什麼 nslookup 對設置為私有地址的 DNS 記錄失敗?

  • October 13, 2020

設置

在某些網路上,我可以用來nslookup解析指向私有 IP 地址的域名:

@work> nslookup my192.ddns.net
Server:     10.1.2.3
Address:    10.1.2.3#53

Non-authoritative answer:
Name:   my192.ddns.net
Address: 192.168.20.20

但是,在我的家庭網路上,同樣的查詢失敗了:

@home> nslookup my192.ddns.net
Server:     192.168.0.1
Address:    192.168.0.1#53

Non-authoritative answer:
*** Can't find my192.ddns.net: No answer

什麼有效

我發現如果我更改 A 記錄以my192.ddns.net使其指向公共 IP 範圍,它將正常工作:

@home> nslookup my192.ddns.net
Server:     192.168.0.1
Address:    192.168.0.1#53

Non-authoritative answer:
Name:   my192.ddns.net
Address: 172.217.12.238

在家裡,如果我為 nslookup 指定 DNS 伺服器,或者nslookup按預期將筆記型電腦的 DNS 伺服器設置為 Google 的作品:

@home> nslookup my192.ddns.net 8.8.8.8
Server:     8.8.8.8
Address:    8.8.8.8#53

Non-authoritative answer:
Name:   my192.ddns.net
Address: 192.168.20.20

但我想繼續使用我的家庭路由器作為我的主 DNS,以便它可以解析本地網路名稱。我只是希望它在嘗試查找指向私有範圍地址的 DNS 記錄時不會失敗(例如192.168.20.20:)

家庭網路

我在家用路由器上執行LEDE(以前稱為OpenWRT),它執行dnsmasq. 我查看了DNS 的文件,甚至設置了系統,以便它用來解析地址的 DNS 伺服器是 Google 的 ( 8.8.8.8) - 但它仍然失敗,我似乎無法弄清楚原因。

問題

這裡發生了什麼,我該如何解決?

這是 的一個特點dnsmasq。人們dnsmasq稱之為“重新綁定保護”,您可以在dnsmasq手冊中看到它作為--stop-dns-rebind命令行選項和在 LEDE doco 作為rebind_protection選項。

它預設為開啟。將其關閉,或將您希望使用的域添加到白名單rebind_domain域集中。

它聲稱要防止的攻擊是攻擊者利用您的 WWW 瀏覽器將自動下載並執行來自世界各地的攻擊者提供的程序這一事實,使 xyr 域名似乎在外部IP 地址和 LAN 內部的一個,允許您的機器成為 LAN 上具有該 IP 地址的另一台機器與一些攻擊者執行的內容伺服器之間的管道。

引用自:https://unix.stackexchange.com/questions/417101