我正在尝试设置网络管理器/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 自动执行此操作。