答案1
對於有相同問題的其他讀者:另請參閱用於從本機存取 AZURE 資源的私人 IP 位址的位址一些背景資訊。
在我開始回答您的問題之前,請稍作修正,正如您所寫的「...相同的 DNS 名稱」。我認為這是一個誤解,因為Azure 宇宙資料庫是一項完全託管的服務,意味著平台即服務因此具有獨特的名稱。換句話說,兩個 Azure Cosmos DB 服務不可能有相同的 DNS 名稱。不過,我不想在問題中糾正這一點,但更喜歡將參考文獻作為答案的一部分,因為這確實是一個常見的誤解。這一切都歸結為混合解決方案的名稱解析的架構方式。
透過使用唯一的 DNS 名稱(這不是問題,因為 CosmosDB 是 SaaS,因此具有唯一的名稱)並確保可以解析所有資源,解決這種情況很容易。
簡要回答
對於透過 ExpressRoute 或 VPN 連接到本地的公司帳戶下的每個訂閱,配置Azure 私人 DNS和 DNS 轉發器,部署在同一子網路內。集線器連接一切,包括本地部署。
長答案
假設範例(任務定義)
最好用一個例子來解釋它是如何工作的。
鑑於假設的公司“NKOTBINC」有3個部門:
- 金融
- 它
- 行銷
每個部門營運 2 個 Azure 訂閱,一個用於開發,另一個用於生產工作負載。因此,我們總共必須處理至少六個訂閱才能滿足要求。
與網路相關的要求如下:
- 每個訂閱都需要連接到本地。
- 每個訂閱可能會也可能不會使用透過私有連結部署的資源。
- 由於法律限制,所有訂閱中的所有資源目前都部署在地區「美國東部」。
- 計劃擴展業務,最終利用其他地區。因此,在規劃中應考慮到這一點。
實施方式
使用此場景,您最終可能會獲得至少 7 個訂閱:
- 開發金融
- 珠三角金融
- 開發它
- 普德-它
- 開發行銷
- 珠三角行銷
- 中心它透過 VPN 或 ExpressRoute 連接到本地。
所有六個訂閱都需要部署 Azure 私人 DNS 和 DNS 轉發器。此外,它們都使用與中央集線器訂閱對等的 VNET。所以最終您將得到這七個內部 DNS 網域:
- dev.finance.eastus.azure.nkotb
- prd.finance.eastus.azure.nkotb
- dev.it.eastus.azure.nkotb
- prd.it.eastus.azure.nkotb
- dev.marketing.eastus.azure.nkotb
- prd.marketing.eastus.azure.nkotb
- hub.eastus.azure.nkotb
集線器訂閱配置了第二組 DNS 伺服器和轉發器。只有這組 DNS 伺服器知道部署在其他網域中的其他七個 DNS 轉發器,並負責網域「eastus.azure.nkotb」的名稱解析。所有本機 DNS 伺服器都配置為將 *.eastus.azure.nkotb 的所有 DNS 請求轉送至這組 DNS 伺服器。
範例 1:訂閱和本地之間的內部 DNS
鑑於財務團隊決定使用專用連結在生產訂閱中部署名為「Alzheimer」的資料庫。因此,該資料庫的內部 DNS 名稱 (FQDN) 將為alzheimer.prd.finance.eastus.azure.nkotb
.由於內部名稱解析在所有訂閱和本地部署中都保持一致,因此可以在公司網路中的任何位置解析該名稱。
範例 1 的工作原理
- 位於本機的隨機用戶端正在請求本機 DNS 伺服器進行解析
alzheimer.prd.finance.eastus.azure.nkotb
。 - 本機 DNS 伺服器不知道答案,但配置為將所有請求轉送至
*.eastus.azure.nkotb
部署在集線器訂閱內的 DNS 轉送器,因此他知道答案。此 DNS 伺服器是可存取的(網路方面),因為本地部署透過 ExpressRoute/VPN 連接到此中心訂閱。 - 部署在中心訂閱中的 DNS 轉發器不知道答案,但知道部署在生產財務訂閱中的 DNS 轉發器,因此請求會朝這個方向轉送。該 DNS 伺服器是可存取的(網路方面),因為兩個訂閱都已對等 VNET。
- 部署在prd.finance.eastus.azure.nkotb中的DNS伺服器和轉發器可以解析資料庫的IP位址,並將答案傳回鏈中。
- 位於本地的客戶端會收到答案。
- 每個後續 DNS 請求(在記錄的 TTL 內)將立即從本機 DNS 伺服器得到答复,因為答案已被快取。
範例 2:2 個訂閱之間的內部 DNS
鑑於行銷團隊決定在開發訂閱中部署一個名為「Ballyhoo」的資料庫,因此內部 DNS 名稱將為ballyhoo.dev.marketing.eastus.azure.nkotb
.與財務部門部署的其他資料庫一樣,該資料庫也可以在本地進行解析。但在這種情況下,IT 團隊會在 IT 開發訂閱中收集一些數據,這些數據應使用ballyhoo.dev.marketing.eastus.azure.nkotb
資料庫進行儲存。因此,此場景描述如何在 2 個訂閱內解析 DNS 記錄。
範例 2 的工作原理
- 部署在 dev-IT 訂閱中的資料收集應用程式向部署在相同 VNET 中的本機 DNS 解析器詢問 的 IP 位址
ballyhoo.dev.marketing.eastus.azure.nkotb
。 - 本機 DNS 伺服器不知道答案,但配置為將所有請求轉送至部署在集線器訂閱內的 DNS 轉送器,因此他知道答案。該 DNS 伺服器是可存取的(網路方面),因為兩個訂閱都已對等 VNET。
- 部署在中心訂閱中的 DNS 轉發器不知道答案,但知道部署在開發行銷訂閱中的 DNS 轉發器,因此請求會朝這個方向轉送。該 DNS 伺服器是可存取的(網路方面),因為兩個訂閱都已對等 VNET。
- 部署在 dev.marketing.eastus.azure.nkotb 中的 DNS 伺服器和轉送器可以解析資料庫的 IP 位址,並將答案傳回連結中。
- 數據收集應用程式收到答案。
- 每個後續 DNS 請求(在記錄的 TTL 內)將立即從本機 DNS 伺服器得到答复,因為答案已被快取。
筆記
Azure 中的業務聯絡人通常會協助規劃此類方案,因此您不必自行解決所有問題。在規劃過程中還需要考慮其他重要方面,但篇幅不允許在此概述。實現:如果網路團隊從一開始就參與到流程中,通常會有所幫助。
一般來說,我強烈建議使用免費的適用於 Azure 的 Microsoft Learn建立必要的知識和技能。對於您的問題,以下課程就足夠了: