應用程式閘道是虛擬網路內的專用部署。 處理連入流量的應用程式閘道資源的實例 DNS 解析也會受到虛擬網路組態的影響。 本文討論網域名稱系統(DNS)設定及其對名稱解析的影響。
需要名稱解析
應用程式閘道會為完整網域名稱(FQDN)執行 DNS 解析。
客戶提供的 FQDN,例如
- 域名型後端伺服器
- 監聽憑證的金鑰庫端點
- 自訂錯誤頁面 URL
- 在線憑證狀態通訊協定 (OCSP) 驗證 URL
用於各種 Azure 基礎結構端點的管理 FQDN(控制平面)。 這些是構成完整應用程式閘道資源的建置組塊。 例如,與監視端點的通訊可啟用記錄和計量的流程。 因此,應用程式閘道能夠與其他 Azure 服務的端點進行內部通訊非常重要,其後綴如
.windows.net、.azure.net等。
這很重要
應用程式閘道資源互動的管理端點域名列在這裡。 根據應用程式閘道部署的類型(本文詳述),這些 Azure 網域名稱解析問題都可能導致資源功能的部分或完全喪失。
- .windows.net
- .chinacloudapi.cn
- .azure.net
- .azure.cn
- .usgovcloudapi.net
- .azure.us
- .microsoft.scloud
- .msftcloudes.com
- .microsoft.com
短名稱與單一標籤網域名稱
應用閘道支援後端池中的短名稱(例如 server1, webserver)。 解析度取決於你的 DNS 設定:
- Azure DNS(168.63.129.16):僅解析同一虛擬網路內的短名稱
- 自訂 DNS 伺服器:需要搜尋域設定
- 本地 DNS(透過 VPN/ExpressRoute):解析內部主機名稱
備註
如果後端健康狀態顯示使用短名稱的 DNS 解析錯誤,請在同一虛擬網路中的虛擬機器上驗證解析。
DNS 組態類型
客戶有不同的基礎結構需求,需要各種方法來解析名稱。 本檔概述一般 DNS 實作案例,並提供應用程式閘道資源有效率作業的建議。
具有公用 IP 位址的網關 (networkIsolationEnabled: False)
針對公用閘道,所有與 Azure 網域的控制平面通訊都會透過預設 Azure DNS 伺服器在 168.63.129.16 進行。 在本節中,我們將檢查具有公用應用程式閘道的潛在 DNS 區域設定,以及如何防止與 Azure 功能變數名稱解析發生衝突。
使用預設 Azure 提供的 DNS
Azure 提供的 DNS 是 Azure 中所有虛擬網路的預設設定,且 IP 位址為 168.63.129.16。 除了解析任何公用功能變數名稱之外,Azure 提供的 DNS 也為位於相同虛擬網路內的 VM 提供內部名稱解析。 在此案例中,應用程式閘道的所有實例都會連線到168.63.129.16以進行 DNS 解析。
流:
- 在此圖表中,我們可以看到應用程式閘道實例與 Azure 提供的 DNS(168.63.129.16)進行名稱解析,以解析後端伺服器的 FQDN "server1.contoso.com" 和 "server2.contoso.com",如圖中的藍線所示。
- 同樣地,實例會查詢 168.63.129.16,以取得已啟用私人連結之 Key Vault 資源的 DNS 解析,如橙色行所指示。 若要讓應用程式閘道將Key Vault端點解析為其私人IP位址,請務必將私人 DNS 區域與該應用程式閘道的虛擬網路連結。
- 針對這些 FQDN 執行成功的 DNS 解析之後,實例可以與 Key Vault 和後端伺服器端點通訊。
考量因素:
- 請勿建立和連結 Azure 的頂級網域名稱的私人 DNS 區域。 您必須為子域建立最具體的 DNS 區域。 例如,為金鑰保存庫的私人端點設置私人 DNS 區域
privatelink.vaultcore.azure.net在所有情況下都比為vaultcore.azure.net或azure.net設置區域更有效。 - 若要使用私人端點與後端伺服器或任何服務通訊,請確定私人連結 DNS 區域已連結至應用程式網關的虛擬網路。
使用自定義 DNS 伺服器
在您的虛擬網路中,您可以指定自定義 DNS 伺服器。 此設定可能需要,以便獨立管理特定域名的區域。 這類安排指示虛擬網路中的應用程式閘道實例使用指定的自訂 DNS 伺服器來解析非 Azure 網域名稱。
流:
- 此圖顯示應用程式閘道實例使用 Azure 提供的 DNS (168.63.129.16)來解析私人連結 Key Vault 端點 “contoso.privatelink.vaultcore.azure.net”。 Azure 網域名稱的 DNS 查詢,包括
azure.net,查詢會被重新導向至 Azure 提供的 DNS(如橙色線所示)。 - 針對「server1.contoso.com」的 DNS 解析,實例會接受自定義 DNS 設定(如藍線所示)。
考量因素:
在應用程式閘道虛擬網路上使用自定義 DNS 伺服器需要您採取下列措施,以確保不會影響應用程式閘道的運作。
- 變更與應用程式閘道虛擬網路相關聯的 DNS 伺服器之後,您必須重新啟動應用程式閘道(停止和啟動),這些變更才會對實例生效。
- 在應用程式閘道虛擬網路中使用私人端點時,私人 DNS 區域必須保持連結至應用程式閘道虛擬網路,以允許解析私人 IP。 此 DNS 區域必須盡可能針對特定的子域使用。
- 如果自定義 DNS 伺服器位於不同的虛擬網路中,請確定它已與應用程式閘道的虛擬網路對等互連,而不會受到任何網路安全組或路由表設定的影響。
僅限私人 IP 位址的網關(networkIsolationEnabled: True)
私人應用程式閘道部署是設計來分隔客戶的數據平面和管理平面流量。 因此,具有預設的 Azure DNS 或自定義 DNS 伺服器不會影響重要的管理端點名稱解析。 不過,使用自定義 DNS 伺服器時,您必須處理任何資料路徑作業所需的名稱解析。
流:
- 「contoso.com」的 DNS 查詢會透過客戶流量平面到達自定義 DNS 伺服器。
- 「contoso.privatelink.vaultcore.azure.net」的 DNS 查詢也會到達自定義 DNS 伺服器。 不過,由於 DNS 伺服器不是此網域名稱的權威區域,因此它會以遞迴方式將查詢轉送至 Azure DNS 168.63.129.16。 這類設定對於允許透過連結至虛擬網路的私人 DNS 區域進行名稱解析非常重要。
- 所有管理端點的解析均通過管理平面流量,直接與 Azure 提供的 DNS 進行互動。
考量因素:
- 變更與應用程式閘道虛擬網路相關聯的 DNS 伺服器之後,您必須重新啟動應用程式閘道(停止和啟動),這些變更才會對實例生效。
- 您必須設定轉送規則,將所有其他網域解析查詢傳送至 Azure DNS 168.63.129.16。 當您有私人 DNS 區域進行私人端點解析時,此設定特別重要。
- 使用私人端點時,私人 DNS 區域必須保持連結至應用程式閘道虛擬網路,以允許解析私人 IP。