我有一个 Azure 虚拟网络网关,其中使用 OpenVPN 和 Azure AD 身份验证进行 P2S VPN 设置。 就连接和路由而言,效果很好。 但它不会从 vnet 设置 DNS 服务器。 它说它在 Azure VPN 客户端中起作用,但当您尝试解决某些问题时,它仍然使用本地网络的 DNS (192.168.1.1)。
要在对 P2S VPN 网关使用 Azure AD 身份验证时确认正在使用的 DNS 设置,您可以在 PowerShell 中查阅
Get-DnsClientNrptPolicy
。获取参考这里。
根据常见问题解答,Azure DNS 服务器优先于客户端中配置的本地 DNS 服务器(除非以太网接口的指标较低)。您可以使用 PowerShell 中的 Get-NetIPInterface 来检查指标。对我来说,以太网接口的指标越低,优先级越高。
当您未设置特定的 DNS 服务器时,
Nslookup
工具将使用本地默认系统 DNS 服务器。如果您想查询,可以附加自定义 DNS 服务器值。
例如,我在 Azure VNet 中有一个 DNS 服务器,并在该 VNet 中的自定义 DNS 服务器中设置了 DNS 服务器 IP 地址
10.0.0.4
。要通过 Azure DNS 服务器获取名称解析,请在 nslookup
时附加 DNS 服务器 IP。
最初,请随意为最终用户尝试此解决方案:通过 VPN 客户端连接到 Azure VPN 时启用本地 Internet
如果上述解决方案不适合您,我已经测试了辅助解决方案 - 特别适用于 Azure 或混合中的组织基础架构。
替代/公司步骤:
将 MS EDGE DNS 设置(在之前的解决方案中提到)设置为默认值并关闭/打开网络浏览器
登录您的 Azure 门户 - Portal.azure.com。
检查您那里是否有任何 DNS 转发服务器(例如,VM 上带有 DNS 的 Active Directory DC、VM 上的 Linux 绑定 DNS 或 Azure 容器中的某些 DNS)并收集其 IP 地址(您可能有更多 DNS 服务器,因此 2-3 个 IP)这样的地址就足够了) - PS:不要使用 Azure DNS,因为它无法通过 VPN 隧道进行路由。 如果您没有此类 DNS,则必须创建它(例如,VM 上带有 DNS 的 Active Directory DC、VM 上的 Linux 绑定 DNS 或 Azure 容器中的某些 DNS)。记下您的 DNS 服务器 IP 地址(目前最多 1-3 个)。这些 DNS 服务器需要能够解析本地地址,并具有用于外部 IP 地址的 DNS 转发器。注意:DNS 转发器服务器不能与 Azure VPN 网关位于 Azure 中的同一子网中。
当您的 DNS 服务器位于 Azure VNet 之一中时,请在 Azure 门户中转到“虚拟网络”。
对于每个“Azure 虚拟网络”,进入其“设置/DNS 服务器”并检查/设置上述 DNS 转发器的 IP 地址(目前最多 1-3 个)。验证所有 IP 地址是否有效。删除无效一次。
当 Azure 中的所有 VNet 都配置了正确的 DNS 转发器(DNS 服务器)时,IP 地址将进入 Azure VPN 网关并需要 P2S 连接。
下载 Azure VPN 客户端配置文件(注意:每次更改 VNet 上的 DNS 服务器时,都需要在客户端计算机上下载并更新该文件)
删除旧的 Azure VPN 连接(如果有)并将新的 Azure VPN 客户端配置文件导入客户端计算机上的 Azure VPN 客户端应用程序。 (如果尚未安装 Azure VPN 客户端,请安装它)
导入新的 Azure VPN 连接后,使用它并通过 P2S VPN 连接到 Azure。
当 Azure VPN P2S 连接处于活动状态时,互联网现在应该可以正常运行,Outlook 等桌面应用程序也可以正常运行。您应该能够通过 RDP 连接到 Azure 资源以及虚拟机。
此外 - 如果您仍然遇到一些问题 - 您可以检查客户端计算机网络接口的指标和索引:来自 PowerShell 的“netsh interface ipv4 show faces”命令。
度量/接口编号最低的网络接口具有较高的优先级,因此您可以在必要时尝试进行调整。但在开始深入研究文本和命令之前,首先尝试正确设置环境并使用 DNS 转发器的有效 IP。
结论:Azure VPN 客户端和互联网/桌面应用程序连接处于活动状态时的问题根源主要是 DNS 服务器/DNS 转发器的有效 DNS 配置和可用性、所有 Azure VNet 上更新的 DNS 设置以及更新/下载/导入到客户端计算机 Azure VPN P2S 配置文件。