Menggunakan Cloud DNS

Halaman ini menunjukkan cara mengonfigurasi setelan DNS untuk domain menggunakan Cloud DNS dan Cloud Tools untuk PowerShell. Panduan ini membahas contoh sederhana pembuatan zona terkelola untuk mengatur domain dan subdomainnya, lalu menambahkan data resource ke zona untuk memberikan informasi yang menentukan perilaku server DNS saat menangani permintaan ke domain zona.

Dokumen ini mengasumsikan bahwa Anda memiliki nama domain dan alamat IP yang dapat Anda arahkan ke nama domain. Jika tidak, Anda dapat mendaftarkan nama domain melalui Google Domains atau registrar domain lain pilihan Anda.

Baca referensi cmdlet Cloud Tools for PowerShell untuk mempelajari cmdlet Cloud DNS lebih lanjut. Untuk mempelajari Cloud DNS lebih lanjut secara umum, baca Ringkasan Cloud DNS.

Membuat zona terkelola untuk domain Anda

Seluruh namespace DNS terdiri dari banyak domain, yang akan segera menyertakan nama domain Anda sendiri. Zona terkelola di Cloud DNS memodelkan zona DNS dan berfungsi sebagai penampung untuk mengatur data DNS (seperti entri A, CNAME, atau TXT) untuk akhiran nama DNS yang sama. Misalnya, data untuk "example.com." dan subdomain seperti "first.example.com." dapat berada di zona yang sama karena memiliki akhiran "example.com." yang sama. Perhatikan titik di akhir, yang diperlukan dan menandakan nama DNS absolut.

Untuk memulai, siapkan zona terkelola guna mengatur data DNS yang akan Anda buat untuk nama domain. Anda dapat membuat zona terkelola baru dan menambahkannya ke project konsol Google Cloud menggunakan cmdlet Add-GcdManagedZone:

Add-GcdManagedZone `
    -Name "my-new-zone" `
    -DnsName "example.com." `
    -Description "This is my first zone."

Tindakan ini akan membuat zona baru dengan detail yang ditentukan dan menambahkannya ke project saat ini dari konfigurasi gcloud CLI yang aktif, meskipun Anda juga memiliki opsi untuk menentukan ID project yang berbeda jika diinginkan. Tindakan ini juga akan membuat data SOA dan NS default di zona untuk Anda.

Namun, untuk memublikasikan data baru di zona ke internet, Anda juga perlu memperbarui server nama domain untuk menggunakan Cloud DNS. Meskipun domain Anda terdaftar dengan Google Domains, Anda tetap harus mengupdate server namanya.

Anda dapat menemukan server nama Cloud DNS yang ditetapkan ke domain dengan menggunakan cmdlet Get-GcdManagedZone di zona terkelola yang mengatur domain untuk menampilkan informasi tentang zona:

Get-GcdManagedZone -Zone "my-new-zone"

Menambahkan dan menghapus kumpulan data resource

Data resource DNS memberikan informasi yang menentukan perilaku server DNS saat menangani permintaan yang dikirim ke domain. Misalnya, data DNS dapat digunakan untuk memberi tahu server alamat IP mana yang di-resolve oleh domain, menunjukkan server mail exchange yang dapat digunakan untuk domain, dan banyak lagi.

Di Cloud DNS, Anda dapat menambahkan atau menghapus data DNS di zona untuk mengonfigurasi perilaku tersebut. Untuk menambahkan atau menghapus kumpulan data resource yang tidak dapat diubah, Anda tidak beroperasi pada data di zona secara langsung. Sebagai gantinya, Anda membuat data resource independen atau mengambil data yang ada menggunakan cmdlet New-GcdResourceRecordSet dan Get-GcdResourceRecordSet, lalu mengirim permintaan perubahan dengan data ini ke zona tertentu menggunakan cmdlet Add-GcdChange.

Membuat kumpulan data resource

Anda dapat menggunakan cmdlet helper New-GcdResourceRecordSet untuk membuat kumpulan data resource yang dapat Anda masukkan dalam perubahan, lalu menambahkan ke atau menghapus dari zona terkelola.

Misalnya, jika Anda ingin membuat data A untuk mengarahkan domain ke alamat IPv4 eksternal dalam format #.#.#.# (jika Anda memiliki alamat IPv6, gunakan data AAAA), Anda dapat menggunakan perintah berikut:

$ARecord = New-GcdResourceRecordSet `
    -Name "example.com." -Rrdata "107.1.23.134" -Type "A"

Demikian pula, untuk membuat data CNAME untuk subdomain www sehingga "www.example.com" me-resolve ke IP yang sama dan berperilaku sama seperti "example.com", Anda dapat menggunakan perintah berikut:

$CNAMERecord = New-GcdResourceRecordSet `
    -Name "www.example.com." -Rrdata "example.com." -Type "CNAME"

Jenis data resource yang didukung yang dapat Anda buat dan sertakan dalam perubahan pada zona adalah A, AAAA, CNAME, MX, NAPTR, NS, PTR, SOA, SPF, SRV, dan TXT. Untuk mendapatkan bantuan dalam menentukan data yang Anda perlukan dan cara membuatnya, lihat format data resource yang didukung untuk Cloud DNS.

Mengambil kumpulan data resource

Jika ingin mengambil kumpulan data resource yang ada di zona, Anda dapat menggunakan cmdlet Get-GcdResourceRecordSet untuk menampilkan semua data di zona, lalu mengindeks hasilnya:

$allRecords = Get-GcdResourceRecordSet -Zone "my-new-zone"
$record0 = $allRecords[0]

Jika hanya menginginkan data dari jenis tertentu, Anda dapat memfilter hasil sesuai kebutuhan:

$ARecord = Get-GcdResourceRecordSet -Zone "my-new-zone" -Filter "A"

Menerapkan perubahan pada zona terkelola

Cmdlet New-GcdResourceRecordSet dan Get-GcdResourceRecordSet menampilkan set data resource, tetapi tidak menambahkan data ke atau menghapusnya dari apa pun. Untuk itu, gunakan cmdlet Add-GcdChange:

Add-GcdChange `
    -Zone "my-new-zone" -Add $record1,$record2 -Remove $record0

Misalnya, untuk menambahkan data A dan CNAME yang Anda buat di atas ke zona kami, lakukan tindakan berikut:

Add-GcdChange -Zone "my-new-zone" -Add $ARecord,$CNAMERecord

Jika nanti ingin mengubah alamat IPv4 yang di-resolve domain Anda, Anda dapat membuat data jenis A baru, lalu menambahkannya ke zona terkelola sekaligus menghapus data A lama:

$oldARecord = Get-GcdResourceRecordSet -Zone "my-new-zone" -Filter "A"
$newARecord = New-GcdResourceRecordSet `
    -Name "example.com." -Rrdata "104.1.34.167" -Type "A"
Add-GcdChange -Zone "my-new-zone" -Remove $oldARecord -Add $newARecord

Setiap panggilan ke cmdlet Add-GcdChange akan menampilkan objek permintaan perubahan yang baru dieksekusi. Anda juga dapat meneruskan objek permintaan perubahan ke cmdlet Add-GcdChange untuk dieksekusi secara langsung, bukan daftar kumpulan data resource:

Add-GcdChange -Zone "my-new-zone" -ChangeRequest $change0

Membuat objek permintaan perubahan secara manual tidak direkomendasikan, tetapi objek tersebut berguna jika Anda ingin menerapkan kembali perubahan yang dibuat sebelumnya atau perubahan yang dibuat di zona lain. Anda dapat mengambil semua objek permintaan perubahan sebelumnya yang diterapkan ke zona dengan menggunakan cmdlet Get-GcdChange:

$allChanges = Get-GcdChange -Zone "my-new-zone"

Anda dapat memilih perubahan tertentu dengan mengindeks hasil sebelumnya, atau menentukan perubahan yang akan diambil dengan ChangeId. Permintaan perubahan biasanya diberi nomor dari 0 dan seterusnya berdasarkan urutan pengirimannya ke zona:

$firstChange = Get-GcdChange -Zone "my-new-zone" -ChangeId 0
Add-GcdChange -Zone "my-new-zone" -ChangeRequest $firstChange

Menghapus zona terkelola

Terkadang, Anda mungkin ingin menghapus zona terkelola sepenuhnya. Hal ini dapat disebabkan oleh berbagai alasan. Mungkin Anda telah mengelola zona "user1-zone" untuk subdomain "user1.example.com", tetapi user1 menghapus akunnya. Dalam hal ini, Anda ingin menghapus subdomain ini dan semua data DNS terkait.

Untuk menghapus zona terkelola dari project Anda, gunakan cmdlet Remove-GcdManagedZone:

Remove-GcdManagedZone -Zone "user1-zone"

Jika berhasil, perintah tidak akan menampilkan apa pun.

Namun, cmdlet ini tidak langsung berfungsi pada zona terkelola yang dianggap Cloud DNS sebagai "tidak kosong", atau zona yang berisi data jenis non-NS atau non-SOA (data non-default). Misalnya, Anda tidak akan dapat menghapus "my-new-zone", tempat Anda menambahkan data jenis A dan CNAME, tanpa memberikan izin ke cmdlet selama pemrosesan atau menggunakan tombol -Force:

Remove-GcdManagedZone -Zone "my-new-zone" -Force

Cmdlet Remove-GcdManagedZone juga menerima input pipeline untuk zona yang akan dihapus. Misalnya, perintah berikut akan menghapus semua zona yang dikelola secara paksa di project saat ini. Hal ini mungkin berguna jika Anda tidak lagi mengelola domain apa pun yang disiapkan dalam project:

Get-GcdManagedZone | Remove-GcdManagedZone -Force