我正在嘗試設置網路管理器/dnsmasq在 ArchLinux 盒子上組合併連接到 VPN (OpenVPN)。它似乎按預期工作,除了日誌中一堆與 相關的奇怪條目dnsmasq
,例如
using nameserver 10.1.0.1#53 for domain 0.8.10.in-addr.arpa
using nameserver 10.1.0.1#53 for domain 0.1.10.in-addr.arpa
using nameserver 10.1.0.1#53 for domain 1.1.10.in-addr.arpa
using nameserver 10.1.0.1#53 for domain 2.1.10.in-addr.arpa
using nameserver 10.1.0.1#53 for domain 3.1.10.in-addr.arpa
using nameserver 10.1.0.1#53 for domain 4.1.10.in-addr.arpa
using nameserver 10.1.0.1#53 for domain 5.1.10.in-addr.arpa
using nameserver 10.1.0.1#53 for domain 6.1.10.in-addr.arpa
...
大約有 50 個這樣的域。為什麼NetworkManager
要推送這樣的域名dnsmasq
以及它們應該如何使用?
答案1
in-addr.arpa 和 ip6.arpa 域用於反向 DNS。也就是說,當您有一個 IP 位址並想要尋找描述它的網域名稱時。
您不能要求 DNS 向您提供指向該位址的所有網域。由於 DNS 資訊分佈在不同的機構之間,這或多或少是不可能的;沒有一個伺服器知道所有網域。 (曾經有一個用於反向查詢的 DNS 操作碼,但我認為它從未被使用過。)
相反,反向 DNS 是作為 in-addr.arpa 下特定網域下的常規查詢來實現的。
例如,如果您想對 進行反向查找10.1.5.7
,則可以將其轉換為如下所示的網域:7.5.1.10.in-addr.arpa
然後針對該網域發出 PTR 查詢。 (位址本身是相反的,以符合 DNS 委託中從右到左的層次結構。)
# dig -x 10.1.5.7
;; ANSWER SECTION
7.5.1.10.in-addr.arpa. PTR fileserver01.example.com.
因此,每當您的 VPN 伺服器聲明特定 IP 位址範圍的路由時,它也會對與該位址範圍對應的反向 DNS 後綴執行相同的操作。這使您可以快速確定(例如,每當您用於netstat
查看活動連線時)例如 10.1.5.7 屬於您的檔案伺服器「fileserver01.example.corp」。
我假設這些域名已被聲明手動透過 VPN 伺服器,因為我從未見過 dnsmasq 或 NetworkManager 自動執行此操作。