首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果没有指定TLD,getent为什么默认为.station?

如果没有指定TLD,getent为什么默认为.station?
EN

Unix & Linux用户
提问于 2021-05-03 10:41:11
回答 2查看 231关注 0票数 3

使用当前的设置,我有一个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的结果

代码语言:javascript
复制
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日志

代码语言:javascript
复制
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线路

代码语言:javascript
复制
hosts: files mymachines mdns4_minimal [NOTFOUND=return] resolve dns mdns4 myhostname

论铸币

代码语言:javascript
复制
hosts: files mdns4_minimal [NOTFOUND=return] dns myhostname
EN

回答 2

Unix & Linux用户

回答已采纳

发布于 2021-05-03 12:20:35

getent hostsnsswitch.confhosts行要求它执行。strace表示它正在向192.168.0.100发送一个单播DNS查询。

您有两个可以使用单播DNS的主机名解析服务:resolvedns。其中一项或两项显然已被您的DHCP客户端配置为使用station作为您的DNS默认域。

对于resolve,运行resolvectl status。对于dns,运行cat /etc/resolv.conf。这将告诉您哪些DNS解析服务配置了station域。

(除非resolve被配置为不使用常规DNS,否则将resolvedns一起使用有点像带吊杆的配置:通常您只需要一个或另一个。)

如果您正在使用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客户端。它可能会从路由器的设置中改变。

票数 3
EN

Unix & Linux用户

发布于 2021-05-03 11:44:46

由于这个无关的问题,我最终检查了/etc/resolv.conf,它是由NetworkManager在我用作客户端的所有发行版上创建的。

根据@Kusalananda的S建议,沃达丰电站似乎会导致网络经理将search station选项添加到文件中,并将其ip地址作为DNS服务器;删除这一行将导致http://vodafone.station名称解析在火狐上失败(这本身很奇怪,因为该名称仍由该站点的DNS解析)

票数 1
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/647832

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档