当存在多个网络适配器时,网络被标识为公共网络

当存在多个网络适配器时,网络被标识为公共网络

将 Windows 2012 Hyper-V 服务器添加到网络。该服务器有五张网卡。一张用于 LAN,另外四张用于 MPIO 的私有 SAN 网络。

当 SAN1-4 网卡被禁用时,Windows 在启动时会将 LAN 网络正确识别为域网络。

当启用 SAN1-4 网卡时,Windows 会将 LAN 网络识别为公共网络,然后防火墙就会阻碍网络。

禁用实时网卡并将网络从公共网络更改为域网络。

注意:SAN 网卡上定义的唯一值是静态 IP 地址。没有网关,也没有 DNS。而且,它们位于不同的子网中。SAN 网络也被标识为未识别的公共网络。

知道为什么会发生这种情况吗?

答案1

知道为什么会发生这种情况吗?

是的。Windows Server 有一项服务称为网络位置感知 (NLA)它从一般意义上确定了计算机连接到哪个网络,设置了网络配置文件(公共、私有、域),进而激活了一系列默认设置。

当启用 SAN1-4 网卡时,Windows 会将 LAN 网络识别为公共网络,然后防火墙就会阻碍网络。

这很奇怪。在 Windows 7/Windows Server 2008 R2(可能还有 Windows 8/Windows Server 2012)中,您应该能够分配每个接口的网络配置文件,因此您的 LAN 接口可以使用域配置文件,而您的 WAN 接口可以使用公共配置文件。因此,我不确定为什么启用 SAN NIC 会更改 LAN NIC 的网络配置文件。一种方法是看看您是否能弄清楚为什么您不能拥有多个活动配置文件,因为据我记得您应该能够做到这一点。

另一方面,您可能只希望您的 LAN NIC 使用域配置文件,而您的 SAN NIC 使用公共配置文件(参见@joequerty 的评论)或甚至使用配置了相应防火墙规则的自定义网络配置文件。

将域配置文件分配给接口需要发生以下操作:

如果连接特定 DNS 名称与“HKEY_Local_Machine\Software\Microsoft\Windows\CurrentVersion\Group Policy\History\NetworkName”注册表项匹配,则计算机将尝试通过 LDAP 联系域控制器。NLASVC 通过在林根名称上调用 DsGetDcName 并在 UDP 端口 389 上向根域控制器发出 LDAP 查询来执行此操作。该服务希望能够连接到林域中的 PDC 以填充以下注册表子项:HKEY_LOCAL_MACHINE\Software\Microsoft\Windows NT\CurrentVersion\NetworkList\Nla\Cache\IntranetForests。如果这两个步骤都成功,您将获得域配置文件。

您可以使用 GPO 强制对未识别的网络分配默认网络配置文件:

计算机配置->Windows 设置->安全设置->网络列表管理器策略

禁用 Windows Server 网络位置?了解更多信息。

答案2

我知道这是一个老话题,但我想我会发布一个完整的解决方案,这是我通过研究上述细节刚刚发现的。所以我遇到了同样的问题,我的所有 NIC 都显示在公共配置文件下。我查看了上面的注册表项,发现这个位置缺少一些数据:“HKEY_Local_Machine\Software\Microsoft\Windows\CurrentVersion\Group Policy\History\NetworkName”

“MachineDomain”键已填充正确的域,但“NetworkName”键为空。我将域添加到“NetworkName”键,将 PolicyOverdue REG_DWORD 设置为 1,然后重新启动网络位置感知服务。

现在正确的 NIC 位于域配置文件中。

答案3

您可以通过 PowerShell 在每个接口上更改此设置。机器中的每个 NIC 都会收到自己的索引号,您可以使用 PowerShell 手动更改该索引号,然后您可以在其中指定网络类型。

请参阅本教程以了解如何通过 powershell 执行此操作:http://www.1337admin.org/windows-server/windows-server-2012-r2/change-network-location-using-powershell-in-windows/

答案4

在 Oracle Virtualbox 主机(也可能是 VM)上:如果不需要,请禁用 VirtualBox 仅主机网络适配器。

相关内容