Vpn

Azure webapp:與 webapp 一起使用時,Site-to-Site VPN 不起作用

  • February 19, 2021

我在 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

太棒了。它有效:webapp 在 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 中。如果我查看網路圖,我可以看到沒有流量到達網關:

虛擬網關網路入口和出口

我已經將健康探測設置為每兩分鐘對 SQL 伺服器執行一次 ping 操作 + 我嘗試了各種呼叫。我還嘗試對 VPN 網關上的連接進行故障排除,它告訴我:

Azure 連接疑難解答

我用Google搜尋了我的 a**,我對“經典 VNET/點到站點與無點到站點”的混合感到非常困惑。serverfault 上的某個人甚至說它應該可以工作:https://serverfault.com/a/1046325/133202,因為當我的 web 應用程序位於帶有網關的 VNET 上時,它應該能夠呼叫 onprem 數據庫。

我的設置中缺少什麼嗎?我沒有指向站點,我應該有嗎?我很高興我能確認我的 Azure 設置是否正常,包括 VNET、網關和 IP 範圍,因為我想我會更多地研究 onprem 的連接方式。也許他們需要更新一些東西。

我不是網路管理員,所以在 VPN 設置方面我有點不知所措。

所有這些都由 ARM 提供。

更新

設置圖 VPN 設置

客戶端 VPN:Fortigate FortiOS 6.2

解決方案

  1. 如果 VNET 和 webapps 在同一區域,則不需要站點到站點。如果網關在 VNET 中,並且連接正常,則所有流量都通過此引導
  2. 請記住,只有所有 RFC1918 流量預設路由到 VNET
  3. 您需要按照此處所述設置網關:https ://docs.microsoft.com/en-us/azure/network-watcher/network-watcher-diagnose-on-premises-connectivity#scenario
  4. 檢查您的防火牆規則 :) 然後再次檢查它們
  5. 如果您使用 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 地址空間。

引用自:https://serverfault.com/questions/1054000