Windows如何决定使用AD DC通信的IP地址?

我有一个奇怪的问题。

我正在正确设置“站点和子网”,以便我的AD客户端连接到适当的DC(而不是全球的另一端)。

要做到这一点,我开始在DC上过滤日志“NO_CLIENT_SITE”的错误 – 而且,虽然我可以很容易地find大多数的客户端地址,但有一些是不可能的。

我在组织中只使用私有IP地址,有些人可以使用VPN(也可以使用私有IP进行隧道接口)。 但在日志中,有一些客户端会报告公有IP地址或APIPA地址,例如:

05/24 16:28:45 APAC:NO_CLIENT_SITE:CN070E141 169.254.87.93

坦率地说,这是不可能的 – 我100%肯定使用API​​PA的客户端将无法连接到任何地方。 同样,使用公共IP地址的客户端将无法达到DC。

我想到的唯一解释是客户端上有多个接口,其中一个接口工作正常,并且便于与DC通信,另一个接口具有APIPA或公共IP,并将该地址报告给DC。

这就引出了一个主要问题:如何确保提供给DC的地址始终是用于通信的接口的地址?

或者也许有人可以提供替代解释?

只要客户有一个很好的地址,就可以连接,在那一点上,我认为它会报告所有的地址。 我不知道有什么方法来改变这种行为。

如果将169.254.0.0/16的子网添加到站点configuration,则可以防止loggingNO_CLIENT_SITE ... 169消息。 其实并不重要。

或者以不同的方式查看日志。 就像是:

 get-content netlogon.log | select-string -notmatch "NO_CLIENT_SITE: \S+ 169\.254" 

Backslash Capital S Plus是一个正则expression式,它将匹配一个或多个非空格字符,在这种情况下是客户端名称。