Memecahkan masalah Cloud DNS

Dokumen ini memberikan panduan tentang cara memecahkan masalah Cloud DNS di Google Distributed Cloud (GDC) dengan air gap. Panduan ini membahas potensi error dan masalah yang mungkin Anda alami saat melakukan operasi pengelolaan pada konfigurasi DNS, serta memberikan tips dan saran untuk men-debug masalah terkait resolusi DNS. Audiens yang dituju untuk dokumen ini adalah administrator platform dan operator aplikasi yang bertanggung jawab mengelola data DNS dalam project.

Memecahkan masalah operasi pengelolaan Cloud DNS

Bagian ini memberikan informasi pemecahan masalah untuk masalah umum yang dihadapi saat melakukan operasi Create, Read, Update, dan Delete (CRUD) pada zona dan set data Cloud DNS.

Pemecahan masalah dasar

  • Pastikan Anda memiliki peran IAM yang benar, seperti yang dijelaskan dalam Menyiapkan izin IAM.
  • Jika menggunakan gdcloud, Anda dapat memperbarui token autentikasi dengan menjalankan gdcloud auth login.

Penamaan dan validasi resource (RFC 1123)

Masalah: Pembuatan atau pembaruan gagal dengan argumen yang tidak valid atau error validasi.

Details:

  • Nama Resource: Nama untuk zona DNS dan set data harus sesuai dengan RFC
    1. Nama hanya boleh berisi karakter alfanumerik huruf kecil atau -, dan harus diawali dan diakhiri dengan karakter alfanumerik.
  • Nama DNS: Nilai untuk nama domain dan Fully Qualified Domain Name (FQDN) harus berupa nama domain yang valid.
  • Nilai Enum: Nilai seperti visibilitas (PUBLIC atau PRIVATE) dan jenis data (misalnya, A, CNAME) peka huruf besar/kecil dan harus sama persis dengan string yang diharapkan.

Tidak dapat menghapus zona yang tidak kosong

Masalah: Tidak dapat menghapus zona terkelola; operasi ditolak.

Detail: Zona DNS Terkelola harus kosong dari set data resource sebelum dapat dihapus. Anda harus menghapus semua data dalam zona terlebih dahulu.

Konflik penamaan dan domain

Masalah: Gagal membuat resource dengan error yang menunjukkan bahwa nama atau domain sudah digunakan.

Details:

  • Nama Resource Kubernetes: Nama objek (misalnya, nama di metadata.name) harus unik dalam namespace project tertentu.
  • DNS Name (FQDN): Nama domain sebenarnya (misalnya, dnsName untuk zona atau data) harus unik dalam visibility tertentu (PUBLIC atau PRIVATE). Anda tidak dapat membuat dua zona atau dua data dengan nama domain yang sama di tingkat visibilitas yang sama.

Memecahkan masalah resolusi DNS

Bagian ini membantu administrator platform dan operator aplikasi memecahkan masalah resolusi DNS saat mengakses layanan yang dihosting di Google Distributed Cloud.

Menunggu propagasi dan menghapus cache DNS

Saat data DNS dibuat atau diperbarui, perubahan mungkin tidak langsung terlihat. Keterlambatan ini biasanya disebabkan oleh:

  1. Waktu Rekonsiliasi: Sistem memerlukan waktu untuk memproses permintaan dan memperbarui konfigurasi server DNS. Proses ini biasanya memerlukan waktu beberapa menit.
  2. Penundaan Penyebaran DNS (Caching): DNS resolver dan klien meng-cache data untuk mempercepat pencarian. Klien dapat terus menggunakan data lama hingga periode Time to live (TTL) berlalu.

Rekomendasi:

  • Tunggu: Berikan waktu yang cukup untuk rekonsiliasi dan masa berlaku cache.
  • Flush Cache: Hapus cache DNS lokal Anda untuk memaksa pencarian baru.

Memverifikasi konfigurasi resolver lokal

Pastikan klien Anda menggunakan server DNS yang benar. Jika Anda tidak mengetahui alamat IP yang benar, hubungi tim Infrastructure Operations (IO) untuk menemukan IP server DNS yang benar.

  • Linux/macOS: Periksa konten /etc/resolv.conf.
  • Windows: Jalankan ipconfig /all dan periksa Server DNS yang tercantum.

Workstation administrator platform (PA) dan operator aplikasi (AO) di jaringan pelanggan harus menggunakan resolusi DNS yang terpisah dari jaringan IO WAN dan OIRv2. Karena nama domain GDC yang identik di-resolve ke alamat IP yang berbeda, bergantung pada apakah kueri tiba melalui WAN IO atau interkoneksi pelanggan, konfigurasi DNS bersama tidak dapat digunakan untuk workstation IO dan PA atau AO. Untuk mengetahui informasi selengkapnya, lihat Interkoneksi sistem, Skema penamaan domain DNS, dan runbook DNS-R0016.

Menguji resolusi menggunakan alat standar

Gunakan alat command line standar untuk menguji resolusi dan mengidentifikasi tempat terjadinya kegagalan.

  • Pencarian Dasar:

    dig <domain_name>
    

    atau

    nslookup <domain_name>
    
  • Membuat Kueri untuk Server DNS Tertentu: Jika Anda mengetahui IP server ManagedDNS publik, buat kueri langsung untuk melewati resolver lokal:

    dig @<public_dns_server_ip> <domain_name>
    
  • Membuat Kueri Server Nama Publik: Untuk mengesampingkan masalah resolver lokal, coba buat kueri resolver publik seperti DNS Google:

    dig @8.8.8.8 <domain_name>
    

Menganalisis kode respons DNS

Saat menggunakan dig atau nslookup, periksa kode status dalam respons:

  • NXDOMAIN: Nama domain tidak ditemukan. Periksa apakah ada kesalahan ketik atau verifikasi apakah data tersebut ada.
  • SERVFAIL: Server gagal memproses kueri. Hal ini sering kali menunjukkan masalah di sisi server atau kegagalan komunikasi antara server DNS.
  • NOERROR: Kueri berhasil, tetapi mungkin tidak ada jawaban. Verifikasi apakah jenis data yang diminta (misalnya, A, CNAME) ada.
  • REFUSED: Server menolak menjawab kueri, kemungkinan karena setelan kebijakan atau kontrol akses.

Periksa konektivitas jaringan

Pastikan traffic jaringan ke server DNS tidak diblokir.

  • DNS menggunakan port 53 untuk UDP dan TCP.
  • Uji konektivitas menggunakan nc (netcat):

    nc -zv <dns_server_ip> 53
    
  • Pastikan aturan firewall mengizinkan traffic di port 53.

Membersihkan cache DNS

Mengosongkan cache DNS akan menghapus semua entri dari cache DNS lokal Anda. Tindakan ini akan memaksa sistem operasi Anda mengkueri server DNS lagi untuk nama domain, sehingga memastikan Anda mendapatkan data terbaru, bukan data yang sudah tidak berlaku dan di-cache.

  • Windows: ipconfig /flushdns
    • Fungsi: Menghapus cache DNS resolver yang dikelola oleh layanan DNS Client.
  • macOS: sudo killall -HUP mDNSResponder
    • Fungsi: Mengirim sinyal hangup (HUP) ke proses mDNSResponder, sehingga memaksanya untuk memuat ulang dan menghapus cache-nya.
  • Linux (systemd-resolved): sudo systemd-resolve --flush-caches atau sudo resolvectl flush-caches
    • Fungsi: Memberi tahu layanan systemd-resolved untuk menghapus cache DNS internalnya.

Memeriksa status resource dengan API atau gdcloud

Jika Anda adalah tenant atau memiliki akses ke GDC API, Anda dapat memeriksa status resource secara langsung:

  • Memeriksa zona DNS:

    kubectl describe manageddnszone <zone_name> -n <project_namespace>
    
  • Memeriksa Set Data Resource:

    kubectl describe resourcerecordset <record_name> -n <project_namespace>
    

    Cari kondisi dan peristiwa yang mungkin mengindikasikan kegagalan dalam proses rekonsiliasi.

Jika Anda memiliki akses ke command line gdcloud, Anda dapat menggunakan sub-perintah describe seperti yang didokumentasikan dalam Mencantumkan data DNS atau Mencantumkan zona DNS.