Azure webapp:与 webapp 一起使用时,站点到站点 VPN 不起作用

Azure webapp:与 webapp 一起使用时,站点到站点 VPN 不起作用

我在 Azure 中有这样的设置:

  • 地址空间为 172.16.0.0/16 的虚拟网络
    • 名为 WebAppSubnet 且地址为 172.16.1.0/24 的子网,委托给 Microsoft.Web/serverFarms
    • 名为 GatewaySubnet 的子网,其地址为 172.16.255.0/24
  • 地址空间为 172.18.96.76/32 的本地网关
  • 与网关关联的公共 IP
  • 使用自定义配置的连接
    • 采用 AES256、SHA256 和 DHG 1 的 IKE 第 1 阶段
    • IKE 第 2 阶段 (IPSec),采用 AES256、SHA256 且无 PF 组
    • IPsec SA 生存期(以千字节为单位)设置为 102400000
    • IPsec SA 生存期(秒)设置为 28800
    • 已禁用流量选择器
    • DPD 超时设置为 45
    • BGP 和 Azure 专用 IP 已禁用
    • IKE 协议为 IKEv2
  • 虚拟网关,配置到 GatewaySubnet 中,与本地网关和连接相连
    • 未启用指向站点功能

所有资源均位于西欧且属于同一资源组。

该连接报告“已连接”,并且本地 IT 人员也可以看到它已连接。

我想将一个 webapp 连接到 VNET,以便它可以连接到位于 172.18.96.76 的本地 SQL 服务器。因此,我检查 webapp 是否已正确添加到 VNET:

已连接到 VNET 的 Web 应用程序

这很完美。它起作用了:Web 应用程序位于 VNET 中。现在我想将我的连接字符串指向 onprem SQL。我使用此连接字符串

服务器=172.18.96.76;数据库=AutodesktopMirror;用户 ID=myuser;密码=mypass;

但我收到一个错误告诉我:

Win32Exception:访问被拒绝。

未知位置

SqlException:与 SQL Server 建立连接时发生与网络相关或特定于实例的错误。未找到或无法访问服务器。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供程序:命名管道提供程序,错误:40 - 无法打开与 SQL Server 的连接)

因此,它找不到本地 SQL 服务器,这就是我变得有点棘手的地方,因为:

  1. 我无法 ping 通网关
  2. 我无法从 webapp 执行 tracert

我还没有将 WEBSITE_VNET_ROUTE_ALL 添加到 webapp 设置中。我测试过是否使用此功能,结果都一样:访问被拒绝,位置未知。

所以基本上我真的不知道我的流量是否被正确路由。我只知道所有 RFC1918 流量都被路由到 VNET。我的 webapp 在 VNET 中,我的网关在 VNET 中。我可以看到,如果我查看网络图,没有流量到达网关:

虚拟网关网络入口和出口

我已经将健康探测器设置为每两分钟 ping 一次 SQL 服务器 + 我尝试了各种调用。我还尝试对 VPN 网关上的连接进行故障排除,它告诉我:

Azure 连接疑难解答

我已经在 Google 上搜索了好久,但“经典 VNET/点对点 vs 无点对点”的混合让我很困惑。serverfault 上的某个人甚至表示它应该可以正常工作:https://serverfault.com/a/1046325/133202,因为当我的 webapp 位于具有网关的 VNET 上时,它应该能够调用 onprem 数据库。

我的设置中是否缺少了什么?我没有指向站点,我应该有吗?如果我能确认我的 Azure 设置是否正确,包括 VNET、网关和 IP 范围,我会很高兴,因为这样我想我会更深入地了解本地是如何连接的。也许他们需要更新他们那边的一些东西。

我不是网络管理员,因此对于 VPN 设置我有点不太了解。

所有这些都由 ARM 提供。

更新

安装图 VPN 设置

客户端VPN:Fortigate FortiOS 6.2

解决方案

  1. 如果 VNET 和 Web 应用位于同一区域,则不需要站点到站点。如果网关位于 VNET 中,并且连接正常,则所有流量都将通过此网关引导
  2. 请记住,只有所有 RFC1918 流量才会默认路由到 VNET
  3. 您需要按照此处的说明设置网关:https://docs.microsoft.com/en-us/azure/network-watcher/network-watcher-diagnose-on-residential-connectivity#scenario
  4. 检查你的防火墙规则:)然后再次检查
  5. 如果您设置了 VNET、GatewaySubnet 和 WebAppSubnet,并将本地网关正确映射到本地网关中配置的本地地址空间,则此方法有效。您不需要:网关上的指向站点,或 webapp 配置中的 WEBSITE_VNET_ROUTE_ALL(如果您遵循 RFC1918 地址间距)

非常感谢 Massimo,https://serverfault.com/users/6352/massimo!

答案1

“地址空间为 172.18.96.76/32 的本地网关”完全是错误的。

本地网络网关描述您的 LAN 到 Azure;它应该包含您的完整内部地址空间,而不是单个 IP 地址。

您应该将其更改为 172.18.96.0/24 或 172.18.0.0/16 或您的 LAN 地址空间。

相关内容