我在 Azure 中有这个设置:
- 具有地址空间的 vnet:172.16.0.0/16
- 具有 172.16.1.0/24 的子网名为 WebAppSubnet 并委托给 Microsoft.Web/serverFarms
- 一个名为 GatewaySubnet 的 172.16.255.0/24 子网
- 地址空间为 172.18.96.76/32 的本地网关
- 与网关关联的公共 IP
- 使用自定义配置配置的连接
- 使用 AES256、SHA256 和 DHG 1 的 IKE 阶段 1
- 具有 AES256、SHA256 和无 PF 组的 IKE 阶段 2 (IPSec)
- IPsec SA 生命周期(以千字节为单位)设置为 102400000
- IPsec SA 生命周期(以秒为单位)设置为 28800
- 禁用流量选择器
- DPD 超时设置为 45
- 禁用 BGP 和 Azure 专用 IP
- IKE 协议是 IKEv2
- 一个虚拟网关,配置到 GatewaySubnet,与本地网关和连接连接
- 未启用指向站点
所有资源都位于西欧和同一资源组中。
连接报告“已连接”,本地 IT 人员也可以看到它已连接。
我想将一个 webapp 连接到 VNET,以便它可以连接到位于 172.18.96.76 的本地 SQL 服务器。因此,我检查是否将 webapp 正确添加到 VNET:
太棒了。它有效:webapp 在 VNET 中。现在我想将我的连接字符串指向 onprem SQL。我使用这个连接字符串
服务器=172.18.96.76;数据库=AutodesktopMirror;用户ID=myuser;密码=mypass;
但我收到一个错误告诉我:
Win32Exception:访问被拒绝。
位置不明
SqlException:建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者:命名管道提供者,错误:40 - 无法打开与 SQL Server 的连接)
所以,它没有找到本地 SQL 服务器,这就是我有点棘手的地方,因为:
- 我无法 ping 网关
- 我不能从 webapp 做 tracert
我还没有将 WEBSITE_VNET_ROUTE_ALL 添加到 webapp 设置中。我已经测试了有无它,它给了我相同的结果:拒绝访问,未知位置。
所以基本上我真的不知道我的流量是否正确路由。我所知道的是所有 RFC1918 流量都被路由到 VNET。我的 webapp 在 VNET 中,我的网关在 VNET 中。如果我查看网络图,我可以看到没有流量到达网关:
我已经将健康探测设置为每两分钟对 SQL 服务器执行一次 ping 操作 + 我尝试了各种调用。我还尝试对 VPN 网关上的连接进行故障排除,它告诉我:
我用谷歌搜索了我的 a**,我对“经典 VNET/点到站点与无点到站点”的混合感到非常困惑。serverfault 上的某个人甚至说它应该可以工作:https://serverfault.com/a/1046325/133202,因为当我的 web 应用程序位于带有网关的 VNET 上时,它应该能够调用 onprem 数据库。
我的设置中缺少什么吗?我没有指向站点,我应该有吗?我很高兴我能确认我的 Azure 设置是否正常,包括 VNET、网关和 IP 范围,因为我想我会更多地研究 onprem 的连接方式。也许他们需要更新一些东西。
我不是网络管理员,所以在 VPN 设置方面我有点不知所措。
所有这些都由 ARM 提供。
更新
客户端 VPN:Fortigate FortiOS 6.2
解决方案
- 如果 VNET 和 webapps 在同一区域,则不需要站点到站点。如果网关在 VNET 中,并且连接正常,则所有流量都通过此引导
- 请记住,只有所有 RFC1918 流量默认路由到 VNET
- 您需要按照此处所述设置网关:https ://docs.microsoft.com/en-us/azure/network-watcher/network-watcher-diagnose-on-premises-connectivity#scenario
- 检查您的防火墙规则 :) 然后再次检查它们
- 如果您使用 GatewaySubnet 和 WebAppSubnet 设置 VNET,并且将本地网关正确映射到在 onprem 网关中配置的 onprem 地址空间,这将起作用。您不需要:网关上的点到站点,或 webapp 配置中的 WEBSITE_VNET_ROUTE_ALL(如果您遵循 RFC1918 地址间距)
非常感谢 Massimo,https://serverfault.com/users/6352/massimo!!
“地址空间为 172.18.96.76/32 的本地网关”是完全错误的。
本地网络网关将您的 LAN 描述为 Azure;它应该包含您的完整内部地址空间,而不是单个 IP 地址。
您应该将其更改为 172.18.96.0/24 或 172.18.0.0/16 或任何您的 LAN 地址空间。