DNS 2
Domain Name System (DNS) adalah sistem yang me-resolve sebuah Fully Qualified Domain Name (FQDN) seperti www.cisco.com menjadi IP address. Manusia gampang mengingat nama, tapi komunikasi jaringan bekerja dengan IP address — DNS adalah jembatan di antara keduanya.
Analogi paling gampang: DNS itu buku kontak di HP. Lo nggak hafal nomor telepon teman lo, lo hafal namanya. Waktu lo pencet "Budi", HP yang menerjemahkan ke nomor aslinya. DNS melakukan hal yang sama untuk hostname → IP address.
Fully Qualified Domain Name (FQDN)
FQDN adalah nama lengkap sebuah host, dibaca dari kanan ke kiri (dari yang paling umum ke paling spesifik):
www . cisco . com
--- ----- ---
| | |
hostname domain TLD
(Top Level Domain)
- TLD — top level domain:
.com,.org,.id, dst. - Domain — nama organisasi/entitas:
cisco,google, dst. - Hostname — host spesifik di dalam domain itu:
www,mail,ftp, dst.
Cara Kerja DNS di Jaringan Enterprise
Perusahaan biasanya punya internal DNS server sendiri yang bisa me-resolve IP address host-host internal (server internal, printer, dsb. yang tidak terdaftar di DNS publik).
Alurnya:
- Host mengirim DNS query ke internal DNS server (yang dikonfigurasi sebagai DNS server-nya, biasanya via DHCP).
- Kalau internal DNS server tahu jawabannya (record internal, atau ada di cache) → langsung jawab.
- Kalau tidak tahu → query di-forward ke public DNS server di Internet (misalnya 8.8.8.8).
- Jawaban dikembalikan ke host, dan biasanya di-cache supaya query berikutnya lebih cepat.
+--------+ query: www.cisco.com? +----------------+
| Host | -------------------------> | Internal DNS |
| | <------------------------- | Server |
+--------+ answer: 72.163.4.185 +----------------+
| ^
tidak tahu? | |
forward query v | answer
+----------------+
| Public DNS |
| (Internet) |
+----------------+
Port yang Dipakai
DNS request dikirim menggunakan UDP port 53, dan bisa failover ke TCP port 53.
Kenapa UDP? Karena query DNS itu kecil dan sifatnya satu-tembakan (satu pertanyaan, satu jawaban) — overhead three-way handshake TCP tidak sepadan. TCP dipakai kalau response terlalu besar untuk muat di satu paket UDP, atau untuk zone transfer antar DNS server.
| Protokol | Port | Kapan dipakai |
|---|---|---|
| UDP | 53 | Query/response normal (default) |
| TCP | 53 | Response besar, zone transfer |
Fakta ini (UDP 53, bisa failover TCP) sering keluar sebagai soal hafalan di ujian CCNA.
DNS pada Cisco Router
Cisco router bisa berperan sebagai DNS client (me-resolve nama untuk keperluan dirinya sendiri, misalnya ping servername dari CLI) dan juga sebagai DNS server (menjawab query dari host lain). Di jaringan production, router jarang dijadikan DNS server — biasanya pakai server dedicated — tapi command-nya tetap materi ujian.
Konfigurasi DNS Client
R1(config)# ip domain-lookup R1(config)# ip name-server 172.23.4.1 R1(config)# ip domain-name flackboxA.lab R1(config)# ip domain-list flackboxB.lab
Penjelasan per command:
ip domain-lookup— mengaktifkan DNS resolution di router. Ini default-nya sudah aktif.ip name-server 172.23.4.1— menunjuk DNS server yang akan ditanya router.ip domain-name flackboxA.lab— primary domain name. Kalau lo ketikping LinuxA(bukan FQDN), router otomatis menambahkan suffix ini → query jadiLinuxA.flackboxA.lab.ip domain-list flackboxB.lab— daftar suffix tambahan yang dicoba kalau primary domain tidak menghasilkan jawaban. Bisa diisi lebih dari satu.
Catatan: no ip domain-lookup
Ada behavior menyebalkan yang perlu diketahui: kalau lo typo command di CLI, IOS menganggap kata itu adalah hostname yang mau di-telnet, lalu mencoba resolve via DNS. Kalau tidak ada DNS server yang menjawab, CLI nge-hang beberapa puluh detik menunggu timeout.
R1# pnig 10.10.10.2 Translating "pnig"...domain server (255.255.255.255) % Unknown command or computer name, or unable to find computer address
Karena itu di lab, banyak orang mematikan DNS lookup:
R1(config)# no ip domain-lookup
Trade-off: router jadi tidak bisa resolve hostname sama sekali. Di lab ini fine, di production pertimbangkan lagi.
Konfigurasi DNS Server
R1(config)# ip dns server R1(config)# ip host LinuxA 172.23.4.2
ip dns server— mengaktifkan fungsi DNS server pada router, sehingga router mau menjawab query DNS dari host lain.ip host LinuxA 172.23.4.2— membuat static hostname-to-IP mapping di router (mirip file/etc/hostsdi Linux). Entry ini dipakai router untuk dirinya sendiri dan untuk menjawab query kalau fungsi DNS server aktif.
Verifikasi
R1# show hosts
Menampilkan tabel hostname yang diketahui router — baik dari static entry (ip host) maupun hasil resolve DNS yang di-cache.
Tes paling praktis: ping pakai nama, bukan IP:
R1# ping LinuxA
Kalau resolve berhasil, ping jalan ke IP hasil translasi.
Posisi DNS di OSI Model
DNS adalah protokol Layer 7 (Application). Tapi perhatikan dependensinya: DNS berjalan di atas UDP/TCP (Layer 4) yang berjalan di atas IP (Layer 3). Ini contoh bagus encapsulation: satu query DNS yang lo kirim sebenarnya adalah data L7 yang dibungkus header UDP (L4), dibungkus header IP (L3), dibungkus header Ethernet (L2).