在这里,用例:
服务器B上的用户可以使用其主机名平服务器A:
ping server_a
服务器A重新启动并获得一个新IP。
现在,服务器B上的用户不能再使用其主机名ping服务器A,因为"server_a“仍然映射到不推荐的IP。
是否可以在服务器A和服务器B上执行请求DHCP更新映射的操作?
发布于 2022-06-09 12:55:05
首先,您确定服务器B从DNS获得了错误的IP吗?它可能有一个本地DNS缓存,这可能导致不推荐的信息继续存在。
某些版本的nscd
(名称服务器缓存守护进程)可以选择在每个用户的基础上刷新DNS缓存:nscd -I hosts
。如果这不起作用,您可能需要以root用户的身份运行一些命令:
systemd-resolved.service
,则命令将为systemd-resolve --flush-caches
nscd
或unscd
,而且上面提到的每个用户命令都不能工作,nscd -i hosts
将在系统范围内刷新其DNS缓存。rndc flush
将是刷新缓存的命令。甚至可能根本没有DNS服务器:主机名解析可能依赖于mDNS (多播DNS) Zeroconf/Avahi/Bonjour功能。在服务器B上,如果在ping server_a.local
中启用了mDNS主机名解析库,则可以尝试/etc/nsswitch.conf
显式请求基于mDNS的IP地址。
如果您确信不推荐的信息实际上来自DNS服务器(即您已经使用nslookup
或dig
显式查询了该DNS服务器,并且它使用了错误的IP地址),那么下一个问题将是: DNS注册应该如何被更新?
有几种选择。DHCP服务器可以配置为更新正向和反向DNS记录;也可以配置为只更新反向- DNS记录,并允许客户端执行自己的转发记录(就像Windows AD域默认执行的操作,使用其域成员资格凭据来发出安全的DNS更新请求),或者DHCP服务器可能允许DHCP客户端使用DHCP选项指定是否希望完成DNS更新。
或者,如果DNS服务器管理员没有与DHCP服务器管理员协调,则可能根本没有自动的DNS更新,而且所有DNS信息实际上都是手动更新的。显然,在启用DHCP的网络中,这不是一个理想的情况,但如果存在大量可用的IP地址,则可能会工作得非常好,因为DHCP客户端和服务器都将尝试在可能的情况下将任何先前分配的IP地址保存在同一台主机上。
(有时,Internet服务提供商的DHCP服务器故意破坏这一功能,以阻止用户依赖保持不变的IP地址,除非制定了指定静态IP地址的额外成本服务协议。)
如果DNS信息以前已经根据匹配的DHCP自动更新,默认假设是这应该仍然有效。
您可以尝试检查DHCP客户端的设置,以验证它正在设置必要的DHCP选项,以请求DHCP服务器执行DNS更新,然后禁用并重新启用服务器A上的网络接口。
如果您的系统正在使用NetworkManager,请使用nmcli c show <connection name>
查看所使用的连接的所有设置:为了将主机名传递给DHCP服务器,应该在启用ipv4.dhcp-send-hostname
的情况下设置ipv4.dhcp-hostname
或ipv4.dhcp-fqdn
(互斥),ipv4.dhcp-hostname-flags
应该具有默认值0或值3显式设置NM_DHCP_HOSTNAME_FLAG_FQDN_SERV_UPDATE (0x1)和NM_DHCP_HOSTNAME_FLAG_FQDN_ENCODED (0x2)标志。
如果不使用NetworkManager,请参阅DHCP客户端的文档,以了解如何使用该特定的DHCP客户端设置DHCP /fqdn/ the更新选项。
https://unix.stackexchange.com/questions/705565
复制