在 Virtual WAN 中使用 Private Link

Azure Private Link 是一種可讓您透過公開私人端點,使用私人 IP 位址連線能力來連線 Azure 平台即服務供應項目的技術。 透過使用 Azure Virtual WAN,您可以在連線至任何虛擬中樞的其中一個虛擬網路中部署私人端點。 此私人連結可讓您連線至與相同虛擬 WAN 連線的任何虛擬網路或分支。

開始之前

本文步驟會假設您已部署了具有一或多個中樞的虛擬 WAN,以及至少兩個連線至虛擬 WAN 的虛擬網路。

若要建立新的虛擬 WAN 與新的中樞,請使用下列文章中的步驟:

建立私人連結端點

您可以為許多不同的服務建立私人連結端點。 在此範例中,我們會使用 Azure SQL Database。 如需有關如何建立 Azure SQL Database 私人端點的詳細資訊,請參閱快速入門:使用 Azure 入口網站建立私人端點。 下圖顯示 Azure SQL Database 的網路設定:

create private link

建立 Azure SQL Database 之後,您可以透過瀏覽私人端點來驗證私人端點 IP 位址:

private endpoints

按一下所建立的私人端點,您應該會看到其私人 IP 位址,以及其完整網域名稱 (FQDN)。 私人端點在 VNet 的範圍內具有 IP 位址,其已部署 (10.1.3.0/24):

SQL endpoint

驗證來自相同 VNet 的連線能力

在此範例中,我們會驗證 Linux 虛擬機器 (已安裝 MS SQL 工具) 是否能連線到 Azure SQL Database。 第一個步驟是驗證 DNS 解析是否正常運作,而且 Azure SQL Database 完整網域名稱解析為私人 IP 位址,並在已部署私人端點的相同 VNet 中 (10.1.3.0/24):

nslookup wantest.database.windows.net
Server:         127.0.0.53
Address:        127.0.0.53#53

Non-authoritative answer:
wantest.database.windows.net    canonical name = wantest.privatelink.database.windows.net.
Name:   wantest.privatelink.database.windows.net
Address: 10.1.3.228

如您在上一個輸出中所見,FQDN wantest.database.windows.net 會對應至 wantest.privatelink.database.windows.net,而沿著私人端點建立的私人 DNS 區域將會解析到私人 IP 位址 10.1.3.228。 查看私人 DNS 區域,確認私人端點有對應至私人 IP 位址的 A 記錄:

DNS zone

驗證正確的 DNS 解析之後,我們可以嘗試連線到資料庫:

query="SELECT CONVERT(char(15), CONNECTIONPROPERTY('client_net_address'));"
sqlcmd -S wantest.database.windows.net -U $username -P $password -Q "$query"
10.1.3.75

如您所見,我們會使用特殊的 SQL 查詢,以提供 SQL 伺服器從用戶端看到的來源 IP 位址。 在此案例中,伺服器會透過其私人 IP (10.1.3.75) 看到用戶端,這表示流量會直接從 VNet 進入私人端點。

設定變數 usernamepassword 以符合 Azure SQL Database 中所定義的認證,以執行本指南中的範例。

從不同的 VNet 連線

既然 Azure 虛擬 WAN 中的一個 VNet 具有私人端點的連線能力,那麼所有其他連線至虛擬 WAN 的 VNet 和分支也可以對其進行存取。 您必須透過 Azure 虛擬 WAN 支援的任何模型提供連線能力,例如任意情節共用服務 VNet 情節以命名兩個範例。

在 VNet 或分支之間具有連線到已部署私人端點的 VNet 連線能力之後,您就必須設定 DNS 解析:

  • 如果從 VNet 連線到私人端點,您可以使用和 Azure SQL Database 一起建立的相同私人區域。
  • 如果從分支 (站對站 VPN、點對站 VPN 或 ExpressRoute) 連線到私人端點,您就必須使用內部部署 DNS 解析。

在此範例中,我們會從不同的 VNet 進行連線。 首先將私人 DNS 區域附加至新的 VNet,讓其工作負載可以將 Azure SQL Database 的完整網域名稱解析至私人 IP 位址。 這是透過將私人 DNS 區域連結至新的 VNet 來完成:

DNS link

現在,連結 VNet 中的任何虛擬機器都應該正確地將 Azure SQL Database 完整網域名稱解析至私人連結的私人 IP 位址:

nslookup wantest.database.windows.net
Server:         127.0.0.53
Address:        127.0.0.53#53

Non-authoritative answer:
wantest.database.windows.net    canonical name = wantest.privatelink.database.windows.net.
Name:   wantest.privatelink.database.windows.net
Address: 10.1.3.228

若要重複檢查此 VNet (10.1.1.0/24) 已具有連線至設定私人端點 (10.1.3.0/24) 的原始 VNet 連線能力 ,您可以在 VNet 中的任何虛擬機器中驗證有效的路由表:

effective routes

如您所見,有一個路由指向 Azure 虛擬 WAN 中虛擬網路閘道所插入的 VNet 10.1.3.0/24。 現在我們終於可以測試資料庫的連線能力:

query="SELECT CONVERT(char(15), CONNECTIONPROPERTY('client_net_address'));"
sqlcmd -S wantest.database.windows.net -U $username -P $password -Q "$query"
10.1.1.75

在此範例中,我們已了解如何在連結至虛擬 WAN 的其中一個 VNet 中建立私人端點,以提供虛擬 WAN 中其餘 VNet 和分支的連線能力。

下一步

如需虛擬 WAN 的詳細資訊,請參閱常見問題集