Latihan 1: DNS Basics — DevOps

Latihan 1 dari materi DNS Basics di DevOps — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.

Lengkapi function resolveDns(zone, domain, type) supaya meniru resolver: mencari record di zone dan mengikuti CNAME.

zone adalah array record { name, type, value, ttl }.

  1. Simpan chain = [] dan nama yang sedang dicari, mulai dari domain.
  2. Masukkan nama itu ke chain. Kalau ada record dengan name itu dan type yang diminta, kembalikan { value, ttl, chain } dari record itu, dengan urutan key persis begitu.
  3. Kalau gak ada, cari record CNAME dengan name itu. Ketemu? Ganti nama yang dicari jadi value CNAME-nya, lalu ulangi langkah 2.
  4. Gak ada record yang cocok sama sekali? Kembalikan { error: "NXDOMAIN" }.

Batasi jumlah lompatan (misalnya 10) supaya CNAME yang saling menunjuk gak berputar selamanya. Bagian ini gak dinilai, tapi jangan sampai loop-mu jalan terus.

Yang dicek:

Zona dan console.log(...) di kode awal sudah ada, biarkan saja.

Hint