Bagikan melalui


Cara mengelola Zona DNS menggunakan PowerShell

Artikel ini memperlihatkan kepada Anda cara mengelola zona DNS Anda dengan menggunakan Azure PowerShell. Anda juga dapat mengelola zona DNS Anda menggunakan Azure CLI lintas platform atau portal Microsoft Azure.

Panduan ini secara khusus berhubungan dengan zona DNS Publik. Untuk informasi tentang menggunakan Azure PowerShell untuk mengelola Zona Privat di Azure DNS, lihat Mulai dengan Zona Privat Azure DNS menggunakan Azure PowerShell.

Zona DNS digunakan untuk menghosting rekaman DNS untuk domain tertentu. Untuk mulai menghosting domain Anda di Azure DNS, Anda perlu membuat zona DNS untuk nama domain tersebut. Setiap rekaman DNS untuk domain Anda kemudian dibuat di dalam zona DNS ini.

Misalnya, domain 'contoso.com' mungkin berisi beberapa data DNS seperti 'mail.contoso.com' (untuk server email) dan 'www.contoso.com' (untuk situs web).

Saat membuat zona DNS di Azure DNS:

  • Nama zona harus unik dalam grup sumber daya, dan zona harus belum ada. Jika tidak, operasi akan gagal.
  • Nama zona yang sama dapat digunakan kembali dalam grup sumber daya yang berbeda atau langganan Azure yang berbeda.
  • Jika beberapa zona memiliki nama yang sama, setiap instans diberi alamat server nama yang berbeda. Hanya satu set alamat yang dapat dikonfigurasi dengan pendaftar nama domain.

Catatan

Anda tidak harus memiliki nama domain untuk membuat zona DNS dengan nama domain tersebut di Azure DNS. Namun, Anda perlu memiliki domain untuk mengonfigurasi server nama Azure DNS sebagai server nama yang benar untuk nama domain dengan pendaftar nama domain.

Untuk informasi lebih lanjut, lihat Mendelegasikan domain ke Azure DNS.

Menyiapkan Azure PowerShell untuk Azure DNS

Sebelum Anda mulai

Penting

Untuk menggunakan fitur Azure ini dari PowerShell wajib menginstal modul AzureRM. Ini adalah modul lama yang hanya tersedia untuk Windows PowerShell 5.1 yang tidak lagi mendapatkan fitur baru. Modul Az dan AzureRMtidak kompatibel ketika diinstal untuk versi PowerShell yang sama. Jika Anda memerlukan kedua versi:

  1. Hapus instalan modul Az dari sesi PowerShell 5.1.
  2. Instal modul AzureRM dari sesi PowerShell 5.1.
  3. Unduh dan instal PowerShell Core 6.x atau yang lebih baru.
  4. Instal modul Az dalam sesi PowerShell Core.

Verifikasi bahwa Anda memiliki item berikut sebelum memulai konfigurasi Anda.

Masuk ke akun Azure Anda

Buka konsol PowerShell Anda dan sambungkan ke akun Anda. Untuk informasi selengkapnya, lihat Masuk dengan Azure PowerShell.

Connect-AzAccount

Pilih langganan

Periksa langganan untuk akun tersebut.

Get-AzSubscription

Pilih langganan Azure mana yang akan digunakan.

Select-AzSubscription -SubscriptionName "your_subscription_name"

Buat grup sumber daya

Azure Resource Manager mengharuskan semua grup sumber daya menentukan lokasi. Lokasi ini digunakan sebagai lokasi default untuk sumber daya di grup sumber daya tersebut. Namun, karena semua sumber daya DNS global, bukan regional, pilihan lokasi grup sumber daya tidak berdampak pada Azure DNS.

Anda bisa melewati langkah ini jika Anda menggunakan grup sumber daya yang ada.

New-AzResourceGroup -Name MyDNSResourceGroup -location "West US"

Membuat zona DNS

Zona DNS dibuat dengan menggunakan New-AzDnsZone cmdlet.

Contoh berikut membuat zona DNS yang disebut contoso.com di grup sumber daya bernama MyDNSResourceGroup:

New-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup

Contoh berikut menunjukkan cara membuat zona DNS dengan dua tag Azure Resource Manager, project = demo dan env = test:

New-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup -Tag @{ project="demo"; env="test" }

Dapatkan zona DNS

Untuk mengambil zona DNS, gunakan Get-AzDnsZone cmdlet. Operasi ini mengembalikan objek zona DNS yang terkait dengan zona yang sudah ada di Azure DNS. Objek berisi data tentang zona (seperti jumlah kumpulan catatan), tetapi tidak berisi kumpulan catatan itu sendiri (lihat Get-AzDnsRecordSet).

Get-AzDnsZone -Name contoso.com –ResourceGroupName MyDNSResourceGroup

Name                  : contoso.com
ResourceGroupName     : myresourcegroup
Etag                  : 00000003-0000-0000-8ec2-f4879750d201
Tags                  : {project, env}
NameServers           : {ns1-01.azure-dns.com., ns2-01.azure-dns.net., ns3-01.azure-dns.org.,
                        ns4-01.azure-dns.info.}
NumberOfRecordSets    : 2
MaxNumberOfRecordSets : 5000

Daftar zona DNS

Dengan menghilangkan nama zona dari Get-AzDnsZone, Anda dapat menghitung semua zona dalam grup sumber daya. Operasi ini mengembalikan array objek zona.

$zoneList = Get-AzDnsZone -ResourceGroupName MyDNSResourceGroup
$zoneList

Dengan menghilangkan nama zona dan nama grup sumber daya Get-AzDnsZone dari, Anda dapat menghitung semua zona dalam langganan Azure.

$zoneList = Get-AzDnsZone
$zoneList

Perbarui zona DNS

Perubahan pada sumber daya zona DNS dapat dilakukan menggunakan Set-AzDnsZone. Cmdlet ini tidak memperbarui kumpulan catatan DNS apa pun di dalam zona (lihat Cara Mengelola Catatan DNS). Ini hanya digunakan untuk memperbarui properti sumber daya zona itu sendiri. Properti zona bisa tulis saat ini terbatas pada 'tag' Azure Resource Manager untuk sumber daya zona.

Gunakan salah satu dari dua cara berikut ini untuk memperbarui zona DNS:

Tentukan zona menggunakan nama zona dan grup sumber daya

Pendekatan ini menggantikan tag zona yang ada dengan nilai yang ditentukan.

Set-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup -Tag @{ project="demo"; env="test" }

Tentukan zona menggunakan objek $zone

Pendekatan ini mengambil objek zona yang ada, memodifikasi tag, lalu melakukan perubahan. Dengan cara ini, tag yang ada dapat dipertahankan.

# Get the zone object
$zone = Get-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup

# Remove an existing tag
$zone.Tags.Remove("project")

# Add a new tag
$zone.Tags.Add("status","approved")

# Commit changes
Set-AzDnsZone -Zone $zone

Saat Anda menggunakan Set-AzDnsZone dengan objek $zone, pemeriksaan Etag digunakan untuk memastikan perubahan bersamaan tidak ditimpa. Anda dapat menggunakan tombol -Overwrite opsional untuk menekan pemeriksaan ini.

Hapus zona DNS

Zona DNS dapat dihapus menggunakan Remove-AzDnsZone cmdlet.

Catatan

Menghapus zona DNS juga menghapus semua catatan DNS di dalam zona tersebut. Tindakan ini tidak dapat dibatalkan. Jika zona DNS sedang digunakan, layanan yang menggunakan zona tersebut akan gagal saat zona dihapus.

Untuk melindungi dari penghapusan zona yang tidak disengaja, lihat Cara melindungi zona dan catatan DNS.

Gunakan salah satu dari dua cara berikut ini untuk menghapus zona DNS:

Tentukan zona menggunakan nama dari zona dan grup sumber daya

Remove-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup

Tentukan zona menggunakan objek $zone

Anda dapat menentukan zona yang akan dihapus menggunakan $zone objek yang dikembalikan oleh Get-AzDnsZone.

$zone = Get-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup
Remove-AzDnsZone -Zone $zone

Objek zona juga dapat disalurkan alih-alih diteruskan sebagai parameter:

Get-AzDnsZone -Name contoso.com -ResourceGroupName MyDNSResourceGroup | Remove-AzDnsZone

Seperti halnya Set-AzDnsZone, menentukan zona menggunakan $zone objek yang memungkinkan pemeriksaan Etag untuk memastikan perubahan serentaknya tidak dihapus. Gunakan -Overwrite tombol untuk menekan pemeriksaan ini.

Permintaan konfirmasi

Cmdlet New-AzDnsZone, Set-AzDnsZone, dan Remove-AzDnsZone semua permintaan konfirmasi dukungan.

Baik New-AzDnsZone dan Set-AzDnsZone meminta untuk konfirmasi jika variabel $ConfirmPreference preferensi PowerShell memiliki nilai Medium atau lebih rendah. Karena dampak yang berpotensi tinggi untuk menghapus zona DNS, Remove-AzDnsZone cmdlet meminta konfirmasi jika $ConfirmPreference variabel PowerShell memiliki nilai selain None.

Karena nilai default untuk $ConfirmPreference adalah High, hanya Remove-AzDnsZone permintaan untuk konfirmasi secara default.

Anda dapat ambil alih setelan $ConfirmPreference saat ini menggunakan -Confirm parameter. Jika Anda menentukan -Confirm atau -Confirm:$True , cmdlet akan meminta konfirmasi sebelum dijalankan. Jika Anda menentukan -Confirm:$False , cmdlet tidak meminta Anda untuk konfirmasi.

Untuk informasi selengkapnya tentang -Confirm dan $ConfirmPreference, lihat Tentang Variabel Preferensi.

Langkah berikutnya

Pelajari cara mengelola rangkaian data dan data di zona DNS Anda.
Pelajari cara mendelegasikan domain Anda ke Azure DNS.
Tinjau Dokumentasi referensi PowerShell Azure DNS.