Windows 使用什么机制在 DNS 中注册其地址?

Windows 使用什么机制在 DNS 中注册其地址?

在这份 Microsoft 白皮书中Windows 管理员的 IPv6:在 IPv4/IPv6 双环境中名称解析的工作原理结果表明 Windows 将尝试向 DNS 服务器注册其地址。

它是如何“在线”工作的?这是 Microsoft 特定的 API 调用吗?它只在 Windows 客户端和 Windows DNS 服务器之间起作用吗?

或者这是使用标准 DNS 查询消息,以便可以进行注册以与其他 DNS 服务器(例如 dnsmasq)一起工作?

我特别感兴趣的是它如何与 IPv6 配合使用。

(我猜测这不适用于 dnsmasq,因为据我所知,它只会提供从 dhcp 分配的地址或已静态分配的地址的 DNS 地址信息)。

编辑:

我在 ServerFault 上发现了类似的问题:Active Directory 动态 DNS 更新在后台如何工作?但这实际上并没有提供任何细节,尽管它暗示它是 Windows 和 Microsoft DNS 服务器之间的 Microsoft 特定机制。

答案1

Windows 使用 DNS“UPDATE”操作,指定RFC 2136。如果计算机是 Active Directory 成员,它将使用 GSS-TSIG(在RFC 3645质谱法)。独立系统发送的更新是未经身份验证的。

尽管至少后一种协议是由微软发明的,但它们都是开放的,并且与 ISC BIND 和其他软件兼容——您可以使用 BIND 更新 Windows DNS 服务器nsupdate,反之亦然。

该机制不受双栈主机的影响,因为客户端明确指定了它想要添加的地址(记录),包括 IPv4 和 IPv6;服务器方面无需猜测。这也意味着 NAT 后面的主机将发送包含其内部的IPv4 地址(在这种情况下这是一件好事——否则企业 LAN DNS 将毫无用处)。

(另请注意,协议才不是要求计算机直接使用 AD 域控制器作为其 DNS 服务器。相反,客户端将专门向域的 SOA 记录中“mname”字段中提到的服务器发送更新。)

虽然 Microsoft DNS 服务器确实有自己特定的基于 MSRPC 的 API,工作站不使用它进行自动注册。它仅用于管理工具,例如控制台dnsmgmt.mscsamba-tool dns。当充当 AD 域控制器时,Samba 4 中存在兼容的服务器实现。


较旧的 NT4(AD 之前)和 Win9x 系列不太依赖 DNS – 相反,NT4 域使用 Microsoft 的半专有 WINS 作为中央名称查找机制(基于 NetBIOS 工作组名称服务,但集中式而不是广播式)。WINS 包括更新操作作为基本协议的一部分,并且没有身份验证。

看看会发生什么在线, 使用Wireshark

答案2

像往常一样,在我发布问题几分钟后,我就通过正确的 Google 搜索词组合找到了真正的答案……

本文档适用于 Windows Server 2008,但我认为仍然具有相关性Windows Server-允许动态更新:-

域名系统 (DNS) 客户端计算机可以使用动态更新在 DNS 服务器上注册并在发生更改时动态更新其资源记录。

...

动态更新是符合 RFC 的 DNS 标准扩展。DNS 更新过程在 RFC 2136“域名系统中的动态更新 (DNS UPDATES)”中定义。

其中 RFC 描述了用于此目的的特定 DNS 消息包。

相关内容