为什么拨号后服务器名称会解析到它的 VPN 地址
多宿主服务器可能发布自己的 PPP 地址并破坏 LAN 客户端。请在修复注册者与只清除过期记录之间做出选择。
一台办公室文件服务器整个上午都以其 LAN 地址应答,随后有远程用户拨号接入,名称却开始解析成一个隧道地址。DNS 中并没有人手工编辑,这正是线索:记录是由机器自己发布的。三个条件决定你要修复注册者、记录还是客户端的视角,而顺序弄错就意味着记录会在下一次连接后重新出现。
两个地址、一个名称、三个条件
多宿主的 Windows 服务器可能拥有一个 LAN 地址、一个或多个拨号地址,有时还有第二块网卡。如果允许动态注册,每个接口都可以在 DNS 中注册自己的地址。当 PPP 适配器注册时,同一个主机名会多出一个只有隧道对端才能到达的地址,而 LAN 客户端会把它当作有效答案接收。
三个条件决定如何修复。第一,这个额外地址对接收它的客户端是否可达?第二,是否还有使用方依赖该注册?第三,该记录是动态因而会再次出现,还是静态因而属于有意录入?
在动任何东西之前先回答这些问题。如果地址从发起查询的网络不可达,清理客户端缓存并不能长久解决问题。如果有东西依赖它,例如隧道对端自己使用的管理路径,删除反而会破坏那条路径。而删除动态记录却不处理其发布者,它会在下一次注册事件时重新出现。
在更改注册者之前先读取记录
从报告问题的网络查询准确的完全限定名称,并将答案与服务器实际的接口和监听器进行比较。一个名称返回多个地址是正常的;问题在于每个地址对接收它的客户端是否可用。
dig +short files.corp.example A dig @10.20.0.10 +short files.corp.example A Resolve-DnsName files.corp.example -Server 10.20.0.10 -Type A
第一个查询使用本地解析器,第二个直接询问指定的 DNS 服务器,第三个在 Windows 上从 PowerShell 做同样的事。比较它们可以把过期的客户端缓存与权威答案区分开。如果直接查询已经返回隧道地址,那么问题出在已发布的数据上,而不是本地缓存。
记录下该记录的时间戳,以及 DNS 控制台是否把它显示为动态。仅这一个属性就能告诉你上面三个条件中哪一个适用,也决定了是五分钟的清理还是能持久的修复。
修复发布者或修复记录,但要分清是哪一个
如果记录是动态且不受欢迎的,持久的修复方式是阻止该接口注册。Windows 提供按接口的注册设置,DNS 客户端服务会在下一次连接或地址变更时重新发布。关闭拨号适配器的注册会保留 LAN 适配器的注册,这通常正是你想要的结果。
要小心作用于整台机器的开关。禁用动态更新的全局设置会影响该主机上的每个接口,包括其他客户端所依赖其注册的那个接口。在域控制器上,同样的谨慎更为重要,因为该主机还可能拥有客户端登录所依赖的服务位置记录。
如果记录是静态的,那就是有意放置的,应当与放置它的人沟通。因为今天不方便就删除静态记录,会抹掉它为何存在的唯一证据。两种情况下,都要先处理发布者,再删除过期答案,并记录你改了什么,以便下一个人能区分有意录入和意外产生。
从出问题的客户端网络验证
验证应在报告症状的网络上进行,而不是在服务器上。通过受支持的方式清除客户端解析器缓存,然后按名称重复最初的查询和最初的服务连接。
ipconfig /flushdns ipconfig /displaydns | findstr /i files.corp.example
第一条命令清除 Windows 解析器缓存,第二条显示名称是否再次被缓存以及存下的是哪个地址。服务器成功连接自身并不能证明 LAN 客户端的情况,删除通往不想要地址的路由也不能纠正 DNS 发布的内容。
最后,重复过去引入该地址的事件:重新连接 VPN 客户端,或续订拨号会话。在这次生命周期变更后再次检查已发布的名称。只能撑到下一次连接的修复只是清理,不是修复;知道你做的是哪一种,正是关闭工单与下周重新打开它的区别。