Menggunakan iDNS di Azure Stack Hub
iDNS adalah fitur jaringan Azure Stack Hub yang memungkinkan Anda menyelesaikan nama DNS eksternal (misalnya, https://www.bing.com.) Ini juga memungkinkan Anda mendaftarkan nama jaringan virtual internal. Dengan melakukannya, Anda dapat menyelesaikan mesin virtual (VM) di jaringan virtual yang sama dengan nama daripada alamat IP. Pendekatan ini menghilangkan kebutuhan untuk menyediakan entri server DNS kustom. Untuk informasi selengkapnya tentang DNS, lihat Ringkasan Azure DNS.
Apa yang dilakukan iDNS?
Dengan iDNS di Azure Stack Hub, Anda mendapatkan kemampuan berikut, tanpa harus menentukan entri server DNS kustom:
- Layanan resolusi nama DNS bersama untuk beban kerja penyewa.
- Layanan DNS otoritatif untuk resolusi nama dan pendaftaran DNS dalam jaringan virtual penyewa.
- Layanan DNS rekursif untuk resolusi nama internet dari VM penyewa. Penyewa tidak perlu lagi menentukan entri DNS kustom untuk menyelesaikan nama internet (misalnya, www.bing.com.)
Anda masih dapat membawa DNS Anda sendiri dan menggunakan server DNS kustom. Namun, dengan menggunakan iDNS, Anda dapat menyelesaikan nama DNS internet dan menyambungkannya ke VM lain di jaringan virtual yang sama tanpa perlu membuat entri DNS kustom.
Apa yang tidak dilakukan iDNS?
iDNS tidak mengizinkan Anda membuat rekaman DNS untuk nama yang dapat diselesaikan dari luar jaringan virtual.
Di Azure, Anda memiliki opsi untuk menentukan label nama DNS yang terkait dengan alamat IP publik. Anda dapat memilih label (awalan), tetapi Azure memilih akhiran, yang didasarkan pada wilayah tempat Anda membuat alamat IP publik.
Seperti yang ditunjukkan gambar sebelumnya, Azure akan membuat rekaman "A" di DNS untuk label nama DNS yang ditentukan pada bagian zona westus.cloudapp.azure.com. Awalan dan akhiran digabungkan untuk membuat nama domain yang sepenuhnya memenuhi syarat (FQDN) yang dapat diselesaikan dari mana saja di internet publik.
Azure Stack Hub hanya mendukung iDNS untuk pendaftaran nama internal, sehingga tidak dapat melakukan hal-hal berikut:
- Membuat rekaman DNS pada bagian zona DNS host yang ada (misalnya, local.azurestack.external.)
- Membuat zona DNS (seperti Contoso.com.)
- Membuat rekaman pada bagian zona DNS kustom Anda sendiri.
- Mendukung pembelian nama domain.
Demo tentang cara kerja iDNS
Semua nama host untuk VM di Virtual Network disimpan sebagai Rekaman Sumber Daya DNS pada bagian zona yang sama, namun pada bagian kompartemen uniknya sendiri yang ditentukan sebagai GUID yang berkorelasi dengan ID VNET di infrastruktur SDN yang disebarkan VM. Nama Domain yang Sepenuhnya Memenuhi Syarat (FQDN) VM Penyewa terdiri dari nama komputer dan string akhiran DNS untuk Virtual Network, dalam format GUID.
Berikut ini adalah lab sederhana untuk mendemonstrasikan cara kerjanya. Kami telah membuat 3 VM di satu VNet dan VM lain di VNet terpisah:
VM | vNet | IP Pribadi | IP Publik | Label 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 | String akhiran DNS |
---|---|---|
VNetA | e71e1db5-0a38-460d-8539-705457a4cf75 | e71e1db5-0a38-460d-8539-705457a4cf75.internal.lnv1.azurestack.local |
VNetB | e8a6e386-bc7a-43e1-a640-61591b5c76dd | e8a6e386-bc7a-43e1-a640-61591b5c76dd.internal.lnv1.azurestack.local |
Anda dapat melakukan beberapa pengujian resolusi nama untuk lebih memahami cara kerja iDNS:
Dari VM-A1 (Linux VM): Mencari VM-A2. Anda dapat melihat bahwa akhiran DNS untuk VNetA ditambahkan dan nama diselesaikan ke IP Privat:
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
Mencari VM-A2-Label tanpa memberikan FQDN gagal, seperti yang diharapkan:
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
Jika Anda memberikan FQDN untuk label DNS, nama tersebut diselesaikan ke IP Publik:
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
Mencoba menyelesaikan VM-B1 (yang berasal dari VNet yang berbeda) gagal karena rekaman ini tidak ada di zona ini.
carlos@caalcobi-vm4:~$ nslookup VM-B1
Server: 127.0.0.53
Address: 127.0.0.53#53
** server can't find VM-B1: SERVFAIL
Menggunakan FQDN untuk VM-B1 tidak membantu karena rekaman ini berasal dari zona yang berbeda.
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
Jika Anda menggunakan FQDN untuk label DNS, ini berhasil diselesaikan:
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
Dari VM-A3 (Windows VM). Perhatikan perbedaan antara jawaban otoritatif dan non-otoritatif.
Rekaman internal:
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
Rekaman eksternal:
> 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
Singkatnya, Anda dapat melihat dari atas bahwa:
- Setiap VNet memiliki zonanya sendiri, berisi rekaman A untuk semua alamat IP privat, yang terdiri dari nama VM dan akhiran DNS dari VNet (yang merupakan GUID-nya).
- <vmname>.<vnetGUID>.internal.<region>.<stackinternalFQDN>
- Hal ini dilakukan secara otomatis
- Jika Anda menggunakan alamat IP Publik, Anda juga dapat membuat label DNS untuk alamat tersebut. Ini diselesaikan seperti alamat eksternal lainnya.
- Server iDNS adalah server otoritatif untuk zona DNS internalnya, dan juga bertindak sebagai penyelesai untuk nama publik saat VM penyewa mencoba menyambungkan ke sumber daya eksternal. Jika ada permintaan untuk sumber daya eksternal, server iDNS meneruskan permintaan ke server DNS otoritatif untuk diselesaikan.
Seperti yang Anda lihat dari hasil lab, Anda memiliki kendali atas IP apa yang digunakan. Jika Anda menggunakan nama VM, Anda akan mendapatkan alamat IP privat dan jika Anda menggunakan label DNS, Anda mendapatkan alamat IP publik.