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.

Buat fungsi resolveDns(zone, domain, type) yang mensimulasikan DNS resolution.

zone adalah array of records: [{ name, type, value, ttl }].

Rules:

  1. Cari record yang name === domain dan type === type
  2. Jika ketemu CNAME dan type yang diminta bukan CNAME, follow CNAME: resolve value sebagai domain baru dengan type yang sama (rekursif, max 5 hops)
  3. Jika tidak ketemu → return { error: "NXDOMAIN" }
  4. Jika cycle CNAME terdeteksi atau >5 hops → return { error: "CNAME_LOOP" }
  5. Jika ketemu → return { value, ttl, chain } dimana chain adalah array nama domain yang dilewati (termasuk asal)

Hint