Azure webapp:與 webapp 一起使用時,Site-to-Site VPN 不起作用
我在 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 網關上的連接進行故障排除,它告訴我:
我用Google搜尋了我的 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 地址空間。