使用当前的设置,我有一个dnsmasq实例在我的主服务器(Void )和3个GNU/Linux设备上操作,这些设备使用它作为默认的dns (1 Manjaro,1 Arch,1 Linux 20.1)。
由于看似不相关的问题,我正在用getent测试mdns的名称解析,通过查看dnsmasq日志和运行strace getent,我注意到如果未指定域,getent将自动附加.station顶级域。
getent hosts home-server的结果
dnsmasq[24671]: query[AAAA] home-server.station from 192.168.0.6
dnsmasq[24671]: forwarded home-server.station to 9.9.9.9
dnsmasq[24671]: query[AAAA] home-server.station from 192.168.0.6
dnsmasq[24671]: forwarded home-server.station to 9.9.9.9
dnsmasq[24671]: query[AAAA] home-server.station from 192.168.0.6
dnsmasq[24671]: forwarded home-server.station to 9.9.9.9
dnsmasq[24671]: forwarded home-server.station to 95.216.24.230
dnsmasq[24671]: forwarded home-server.station to 89.233.43.71
dnsmasq[24671]: forwarded home-server.station to 78.46.244.143
dnsmasq[24671]: forwarded home-server.station to 146.255.56.98
dnsmasq[24671]: forwarded home-server.station to 78.46.244.143
dnsmasq[24671]: forwarded home-server.station to 146.255.56.98
dnsmasq[24671]: forwarded home-server.station to 78.46.244.143
dnsmasq[24671]: forwarded home-server.station to 146.255.56.98
dnsmasq[24671]: forwarded home-server.station to 45.90.57.121
dnsmasq[24671]: forwarded home-server.station to 80.67.169.40
dnsmasq[24671]: forwarded home-server.station to 104.244.78.231
dnsmasq[24671]: reply home-server.station is NXDOMAIN
dnsmasq[24671]: query[AAAA] home-server from 192.168.0.6在dnsmasq日志
socket(AF_INET, SOCK_DGRAM|SOCK_CLOEXEC|SOCK_NONBLOCK, IPPROTO_IP) = 4
setsockopt(4, SOL_IP, IP_RECVERR, [1], 4) = 0
connect(4, {sa_family=AF_INET, sin_port=htons(53), sin_addr=inet_addr("192.168.0.100")}, 16) = 0
poll([{fd=4, events=POLLOUT}], 1, 0) = 1 ([{fd=4, revents=POLLOUT}])
sendto(4, "\2\17\1\0\0\1\0\0\0\0\0\0\vhome-server\7station"..., 37, MSG_NOSIGNAL, NULL, 0) = 3用getent调用strace。
我没能找到任何关于.station TLD的信息。
有人知道为什么getent会有这种默认行为吗?.station从何而来?
我在曼吉罗的/etc/nsswitch.conf hosts线路
hosts: files mymachines mdns4_minimal [NOTFOUND=return] resolve dns mdns4 myhostname论铸币
hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname发布于 2021-05-03 12:20:35
getent hosts按nsswitch.conf的hosts行要求它执行。strace表示它正在向192.168.0.100发送一个单播DNS查询。
您有两个可以使用单播DNS的主机名解析服务:resolve和dns。其中一项或两项显然已被您的DHCP客户端配置为使用station作为您的DNS默认域。
对于resolve,运行resolvectl status。对于dns,运行cat /etc/resolv.conf。这将告诉您哪些DNS解析服务配置了station域。
(除非resolve被配置为不使用常规DNS,否则将resolve和dns一起使用有点像带吊杆的配置:通常您只需要一个或另一个。)
如果您正在使用NetworkManager配置网络接口,并且正在使用DHCP,则可以查看/var/lib/NetworkManager中最新的*.lease文件(或等效文件;这可能取决于配置了哪个DHCP客户端NetworkManager ),以查看哪个DHCP服务器实际上为您提供了IP地址,以及它附带了哪些附加的DHCP选项。
查看DHCP服务器提供的DHCP选项的另一种方法是运行nmcli c show,列出已配置的连接,查找活动连接的名称,然后使用nmcli c show <name of active connection> | grep DHCP..OPTION。
由于沃达丰发电站是您的路由器,它很可能也充当您的家庭网络的DHCP服务器。.station可能只是它的DNS域的默认设置,它将该设置传播到其所有DHCP客户端。它可能会从路由器的设置中改变。
发布于 2021-05-03 11:44:46
由于这个无关的问题,我最终检查了/etc/resolv.conf,它是由NetworkManager在我用作客户端的所有发行版上创建的。
根据@Kusalananda的S建议,沃达丰电站似乎会导致网络经理将search station选项添加到文件中,并将其ip地址作为DNS服务器;删除这一行将导致http://vodafone.station名称解析在火狐上失败(这本身很奇怪,因为该名称仍由该站点的DNS解析)
https://unix.stackexchange.com/questions/647832
复制相似问题