共用方式為


在 Azure Stack Hub 中使用 iDNS

iDNS 是 Azure Stack Hub 網路功能,可讓您解析外部 DNS 名稱(例如 。 https://www.bing.com)它也可讓您註冊內部虛擬網路名稱。 如此一來,您可以依名稱而非IP位址解析相同虛擬網路上的虛擬機(VM)。 此方法可移除提供自定義 DNS 伺服器項目的需求。 如需 DNS 的詳細資訊,請參閱 Azure DNS 概觀

iDNS 有何用途?

在 Azure Stack Hub 中使用 iDNS 時,您可以取得下列功能,而不需要指定自定義 DNS 伺服器專案:

  • 租戶工作負載的 DNS 名稱解析共用服務。
  • 租戶虛擬網路內的名稱解析和 DNS 註冊的權威 DNS 服務。
  • 遞歸 DNS 服務,用於解析租使用者 VM 中的因特網名稱。 租戶不再需要指定自訂 DNS 項目來解析網路名稱(例如,www.bing.com)。

您仍然可以攜帶自己的 DNS 並使用自訂 DNS 伺服器。 不過,藉由使用 iDNS,您可以解析網際網路 DNS 名稱,並連接到同一虛擬網路中的其他 VM,而不需要建立自定義 DNS 記錄。

iDNS 不會做什麼?

iDNS 不允許您為可從虛擬網路外部解析的名稱建立 DNS 記錄。

在 Azure 中,您可以選擇指定與公用 IP 位址相關聯的 DNS 名稱標籤。 您可以選擇標籤(前置詞),但 Azure 會選擇後綴,其以您建立公用 IP 位址的區域為基礎。

DNS 名稱標籤的範例

如上圖所示,Azure 會在 DNS 中 為區域 westus.cloudapp.azure.com 下指定的 DNS 名稱標籤建立「A」記錄。 字首和字尾結合組成的完整功能變數名稱(FQDN)可以從公用互聯網的任何地方解析。

Azure Stack Hub 僅支援 iDNS 進行內部名稱註冊,因此無法執行下列動作:

  • 在現有的託管 DNS 區域下建立 DNS 記錄(例如 local.azurestack.external.)
  • 建立 DNS 區域 (例如 Contoso.com.)
  • 在您自己的自定義 DNS 區域下建立記錄。
  • 支持購買網域名稱。

iDNS 運作方式的示範

虛擬網路上的所有 VM 主機名都會儲存為同一區域中的 DNS 資源記錄,但會歸入每個主機名自己的獨立區間,該區間由 GUID 定義,並與部署 VM 所針對的 SDN 基礎架構中的 VNET 識別碼相互關聯。 租用戶 VM 完整網域名稱 (FQDN) 是由虛擬網路的電腦名稱和 DNS 尾碼字串所組成,且為 GUID 格式。

以下是示範其運作方式的簡單實驗室。 我們在一個 VNet 上建立 3 部 VM,並在個別的 VNet 上建立另一個 VM:

VM(虛擬機器) vNet 私有 IP 公用 IP DNS 標籤
VM-A1 VNetA 10.0.0.5 172.31.12.68 VM-A1-Label.lnv1.cloudapp.azscss.external
VM-A2 VNetA 10.0.0.6 172.31.12.76 VM-A2-Label.lnv1.cloudapp.azscss.external
VM-A3 VNetA 10.0.0.7 172.31.12.49 VM-A3-Label.lnv1.cloudapp.azscss.external
VM-B1 VNetB 10.0.0.4 172.31.12.57 VM-B1-Label.lnv1.cloudapp.azscss.external
VNet GUID(國際唯一識別碼) DNS 後綴字串
VNetA e71e1db5-0a38-460d-8539-705457a4cf75 e71e1db5-0a38-460d-8539-705457a4cf75.internal.lnv1.azurestack.local
VNetB e8a6e386-bc7a-43e1-a640-61591b5c76ddd e8a6e386-bc7a-43e1-a640-61591b5c76dd.internal.lnv1.azurestack.local

您可以執行一些名稱解析測試,以進一步瞭解 iDNS 的運作方式:

從 VM-A1 (Linux VM):查詢 VM-A2,您可以看到已新增 VNetA 的 DNS 後綴,並且該名稱已解析為私有 IP 位址。

carlos@VM-A1:~$ nslookup VM-A2
Server:         127.0.0.53
Address:        127.0.0.53#53
 
Non-authoritative answer:
Name:   VM-A2.e71e1db5-0a38-460d-8539-705457a4cf75.internal.lnv1.azurestack.local
Address: 10.0.0.6

如預期般:查詢 VM-A2-Label 而不提供 FQDN,結果失敗。

carlos@VM-A1:~$ nslookup VM-A2-Label
Server:         127.0.0.53
Address:        127.0.0.53#53
 
** server can't find VM-A2-Label: SERVFAIL

如果您提供 DNS 標籤的 FQDN,則名稱會解析為公用 IP:

carlos@VM-A1:~$ nslookup VM-A2-Label.lnv1.cloudapp.azscss.external
Server:         127.0.0.53
Address:        127.0.0.53#53
 
Non-authoritative answer:
Name:   VM-A2-Label.lnv1.cloudapp.azscss.external
Address: 172.31.12.76

嘗試解析 VM-B1(來自不同 VNet)失敗,因為此記錄不存在於此區域。

carlos@caalcobi-vm4:~$ nslookup VM-B1
Server:         127.0.0.53
Address:        127.0.0.53#53
 
** server can't find VM-B1: SERVFAIL

針對 VM-B1 使用 FQDN 並無幫助,因為此記錄來自不同的區。

carlos@VM-A1:~$ nslookup VM-B1.e8a6e386-bc7a-43e1-a640-61591b5c76dd.internal.lnv1.azurestack.local
Server:         127.0.0.53
Address:        127.0.0.53#53
 
** server can't find VM-B1.e8a6e386-bc7a-43e1-a640-61591b5c76dd.internal.lnv1.azurestack.local: SERVFAIL

如果您針對 DNS 標籤使用 FQDN,則會成功解析:

carlos@VM-A1:~$ nslookup VM-B1-Label.lnv1.cloudapp.azscss.external
Server:         127.0.0.53
Address:        127.0.0.53#53
 
Non-authoritative answer:
Name:   VM-B1-Label.lnv1.cloudapp.azscss.external
Address: 172.31.12.57

從 VM-A3 (Windows VM) 。 請注意授權和非授權答案之間的差異。

內部記錄:

C:\Users\carlos>nslookup
Default Server:  UnKnown
Address:  168.63.129.16
 
> VM-A2
Server:  UnKnown
Address:  168.63.129.16
 
Name:    VM-A2.e71e1db5-0a38-460d-8539-705457ª4cf75.internal.lnv1.azurestack.local
Address:  10.0.0.6

外部記錄:

> VM-A2-Label.lnv1.cloudapp.azscss.external
Server:  UnKnown
Address:  168.63.129.16
 
Non-authoritative answer:
Name:    VM-A2-Label.lnv1.cloudapp.azscss.external
Address:  172.31.12.76

簡言之,您可以看到上述內容:

  • 每個 VNet 都有自己的區域,其中包含所有私人 IP 位址的 A 記錄,其中包含 VM 名稱和 VNet 的 DNS 後綴(也就是其 GUID)。
    • <vmname>。<vnetGUID.internal>。<region>。<stackinternalFQDN>
    • 這會自動完成
  • 如果您使用公用IP位址,您也可以為其建立 DNS 標籤。 這些位址解析方式就像任何其他外部位址一樣。
  • iDNS 伺服器是其內部 DNS 區域的授權伺服器,而在租用戶 VM 嘗試連線至外部資源時,也會作為公用名稱的解析程式。 如果有外部資源的查詢,則 iDNS 伺服器會將要求轉送至授權 DNS 伺服器以解析。

如您在實驗室結果中看到的,您可以控制使用的IP。 如果您使用 VM 名稱,則會取得私人 IP 位址,而如果您使用 DNS 標籤,則會取得公用 IP 位址。

後續步驟

在 Azure Stack Hub 中使用 DNS