DNS Server (BIND9)
DNS Server di Linux (BIND9)
Domain Name System (DNS) adalah protokol jaringan fundamental yang berfungsi menerjemahkan nama domain yang mudah diingat manusia (Fully Qualified Domain Name / FQDN), seperti smk-tkj.sch.id, menjadi alamat IP numerik komputer (IP Address), seperti 192.168.50.2, dan sebaliknya.
DNS sering diibaratkan sebagai "Buku Telepon Internet". Tanpa adanya DNS Server, setiap pengguna harus menghafal kombinasi deretan angka IP Address dari setiap server dan website yang ingin diakses.
Waktu Praktikum: 4 x 45 Menit
Tingkat SMK: XI / XII TJKT (TKJ)
1. Konsep & Arsitektur DNS
A. Struktur Hierarki DNS
DNS diorganisasikan dalam struktur pohon terbalik (inverted tree) yang berjenjang secara hierarkis:
[ . (Root Domain) ]
│
┌──────────────────┼──────────────────┐
[ .id ] [ .com ] [ .net ] (Top-Level Domain / TLD)
│ │
[ .sch.id ] [ google.com ] (Second-Level Domain / SLD)
│
[ smk-tkj.sch.id ] (Third-Level / Domain Name)
│
┌───────┴───────┬───────────────┐
[ www ] [ mail ] [ portal ] (Subdomain / Hostname)
- Root Domain (
.): Tingkat tertinggi dalam hierarki DNS yang dikelola oleh 13 kluster Root Server global. - Top-Level Domain (TLD): Ekstensi domain global seperti
.com,.org,.net, maupun ccTLD (country-code) seperti.id,.uk,.sg. - Second-Level Domain (SLD): Kategori turunan domain di bawah TLD, contohnya
.sch.id(sekolah),.ac.id(kampus),.co.id(perusahaan). - Third-Level Domain / Domain: Nama unik instansi atau organisasi, misalnya
smk-tkj.sch.id. - Subdomain / Hostname: Bagian spesifik yang mengarah ke layanan server tertentu, misalnya
www(Web),mail(Email),portal(Portal Siswa).
B. Tipe-Tipe DNS Record Utama
| Tipe Record | Nama Lengkap | Fungsi & Penjelasan |
|---|---|---|
| A | IPv4 Address | Memetakan nama host / domain ke alamat IPv4 32-bit (contoh: smk-tkj.sch.id → 192.168.50.2). |
| AAAA | IPv6 Address | Memetakan nama host / domain ke alamat IPv6 128-bit. |
| CNAME | Canonical Name | Membuat nama alias (alias/nickname) yang merujuk ke domain atau record A lainnya (contoh: www alias ke smk-tkj.sch.id). |
| PTR | Pointer | Memetakan alamat IP ke nama domain (Reverse Lookup), vital untuk verifikasi keamanan email server. |
| NS | Name Server | Menentukan DNS Server yang berwenang (authoritative) atas suatu zona domain. |
| SOA | Start of Authority | Menyimpan metadata otoritatif zona: Nama server utama, email administrator, nomor serial (serial number), dan interval waktu refresh/expire. |
| MX | Mail Exchange | Mengarahkan email yang ditujukan ke domain ke Mail Server penanggung jawab, dilengkapi dengan nilai prioritas (preference). |
| TXT | Text | Menyimpan catatan teks sembarang, sering digunakan untuk autentikasi keamanan SPF, DKIM, dan verifikasi domain Google/Cloudflare. |
C. Alur Kerja Resolusi DNS (Query DNS)
Proses pencarian alamat IP dari nama domain berlangsung melalui langkah-langkah berikut:
1. Cek DNS Cache Lokal
Client (Web Browser / OS) memeriksa cache internal. Jika pernah dikunjungi, IP langsung digunakan tanpa query ke jaringan.
2. Recursive Query ke DNS Resolver
Jika tidak ada di cache, client mengirim permintaan ke DNS Server lokal (Resolver / ISP / BIND9).
3. Iterative Query ke Root Server & TLD
DNS Resolver mencari informasi secara berjenjang: Root Server (.) → TLD Server (.id) → Authoritative Name Server (ns1.smk-tkj.sch.id).
4. Jawaban Otoritatif & Caching
Authoritative Name Server mengembalikan IP 192.168.50.2. Resolver menyimpannya ke cache dan meneruskannya ke browser client.
2. Topologi & Skema Lab Praktikum
Pada jobsheet ini, kita akan membangun sebuah Authoritative DNS Server lokal menggunakan software BIND9 di Debian / Ubuntu Server:
[ Client VM / Komputer Siswa ]
IP Address : 192.168.50.100 (DHCP / Statis)
DNS Server : 192.168.50.2
│
│ (LAN / Host-Only Network: 192.168.50.0/24)
▼
[ Debian / Ubuntu BIND9 Server ]
IP Address : 192.168.50.2/24
Gateway : 192.168.50.1
Domain Name : smk-tkj.sch.id
Zone Reverse: 50.168.192.in-addr.arpa
Tabel Rencana DNS Record
| Tipe Record | Nama Host / Subdomain | Target Tujuan | Keterangan |
|---|---|---|---|
| SOA | @ | ns1.smk-tkj.sch.id. | Master Name Server & Admin |
| NS | @ | ns1.smk-tkj.sch.id. | Name Server Otoritatif |
| A | @ (smk-tkj.sch.id.) | 192.168.50.2 | Domain Utama (Root Zone) |
| A | ns1 | 192.168.50.2 | Host Name Server |
| A | server | 192.168.50.2 | Host Mesin Server |
| CNAME | www | server.smk-tkj.sch.id. | Alias Web Server |
| CNAME | portal | server.smk-tkj.sch.id. | Alias Portal Pembelajaran |
| A | mail | 192.168.50.2 | Host Server Mail |
| MX (10) | @ | mail.smk-tkj.sch.id. | Mail Exchanger Prioritas 10 |
| PTR | 2 | ns1.smk-tkj.sch.id. | Reverse IP 192.168.50.2 |
3. Instalasi Paket BIND9
Jalankan perintah pembaruan repository dan instalasi paket BIND9 beserta utilitas diagnostiknya:
# Update repository
sudo apt update
# Install BIND9 dan tools pengujian DNS
sudo apt install bind9 bind9utils bind9-doc dnsutils -y
dnsutils (atau bind9-dnsutils pada Debian/Ubuntu rilis baru) berisi utilitas pengujian vital seperti nslookup, dig, dan host.Periksa status layanan BIND9 setelah selesai diinstal:
sudo systemctl status named
(Catatan: Layanan BIND9 di Linux Debian/Ubuntu dapat dipanggil dengan nama named maupun bind9).
4. Konfigurasi Opsi Global (named.conf.options)
File /etc/bind/named.conf.options mengatur perilaku global BIND9 seperti DNS Forwarder, hak akses query (ACL), dan validasi DNSSEC.
Buat salinan backup terlebih dahulu:
sudo cp /etc/bind/named.conf.options /etc/bind/named.conf.options.bak
sudo nano /etc/bind/named.conf.options
Sesuaikan isinya seperti konfigurasi di bawah ini:
options {
directory "/var/cache/bind";
// ─── IP Listener ────────────────────────────────────────────────────────
// Izinkan BIND9 mendengarkan query pada port 53 dari localhost & semua interface
listen-on port 53 { any; };
listen-on-v6 { any; };
// ─── Hak Akses Query (Access Control) ───────────────────────────────────
// Izinkan query dari localhost dan subnet client lab (192.168.50.0/24)
allow-query { any; };
allow-recursion { localhost; 192.168.50.0/24; };
// ─── DNS Forwarders (Penerusan ke Internet) ────────────────────────────
// Jika domain bukan domain lokal smk-tkj.sch.id, teruskan ke DNS Public
forwarders {
8.8.8.8;
1.1.1.1;
};
// ─── Keamanan & Validasi ───────────────────────────────────────────────
// Ubah ke "no" jika lab praktikum tidak memiliki koneksi internet aktif
dnssec-validation auto;
auth-nxdomain no; # Sesuai standar RFC1035
};
5. Deklarasi Zona Domain (named.conf.local)
File /etc/bind/named.conf.local digunakan untuk mendaftarkan zona yang dikelola oleh server kita:
- Forward Zone: Mengonversi nama domain
smk-tkj.sch.id→ IP Address. - Reverse Zone: Mengonversi IP Address
192.168.50.2→ Nama Domain.
Buka file konfigurasi:
sudo nano /etc/bind/named.conf.local
Tambahkan blok zona berikut pada baris paling bawah:
// ─── Zona Forward (Domain ke IP) ──────────────────────────────────────────
zone "smk-tkj.sch.id" {
type master;
file "/etc/bind/db.smk-tkj.sch.id";
};
// ─── Zona Reverse (IP ke Domain) ──────────────────────────────────────────
// Subnet 192.168.50.x dibalik 3 oktet pertamanya menjadi 50.168.192.in-addr.arpa
zone "50.168.192.in-addr.arpa" {
type master;
file "/etc/bind/db.192";
};
Perhatikan penulisan nama zona reverse: Tiga oktet pertama dari subnet 192.168.50.0 harus ditulis secara terbalik (50.168.192) diikuti dengan domain khusus .in-addr.arpa.
6. Membuat File Database Forward Zone
Salin template bawaan db.local menjadi file zona forward kita:
sudo cp /etc/bind/db.local /etc/bind/db.smk-tkj.sch.id
sudo nano /etc/bind/db.smk-tkj.sch.id
Ubah seluruh isinya menjadi seperti berikut:
;
; BIND data file for forward zone smk-tkj.sch.id
;
$TTL 604800
@ IN SOA ns1.smk-tkj.sch.id. root.smk-tkj.sch.id. (
2026082901 ; Serial (Format: YYYYMMDDNN)
604800 ; Refresh (1 minggu)
86400 ; Retry (1 hari)
2419200 ; Expire (4 minggu)
604800 ) ; Negative Cache TTL (1 minggu)
;
; ─── Name Server (NS Record) ────────────────────────────────────────────────
@ IN NS ns1.smk-tkj.sch.id.
; ─── Mail Exchanger (MX Record) ────────────────────────────────────────────
@ IN MX 10 mail.smk-tkj.sch.id.
; ─── A Records (Alamat IPv4 Utama & Host) ──────────────────────────────────
@ IN A 192.168.50.2
ns1 IN A 192.168.50.2
server IN A 192.168.50.2
mail IN A 192.168.50.2
; ─── CNAME Records (Nama Alias) ────────────────────────────────────────────
www IN CNAME server.smk-tkj.sch.id.
portal IN CNAME server.smk-tkj.sch.id.
ftp IN CNAME server.smk-tkj.sch.id.
.) di Akhir FQDN:Selalu perhatikan tanda titik di akhir nama domain (contoh:
ns1.smk-tkj.sch.id.). Jika Anda lupa menulis tanda titik di akhir, BIND9 akan otomatis menambahkan nama domain zona sehingga terbaca menjadi ns1.smk-tkj.sch.id.smk-tkj.sch.id (Error!).7. Membuat File Database Reverse Zone
Salin template bawaan db.127 menjadi file zona reverse kita:
sudo cp /etc/bind/db.127 /etc/bind/db.192
sudo nano /etc/bind/db.192
Ubah seluruh isinya menjadi konfigurasi berikut:
;
; BIND reverse data file for 192.168.50.0/24 (50.168.192.in-addr.arpa)
;
$TTL 604800
@ IN SOA ns1.smk-tkj.sch.id. root.smk-tkj.sch.id. (
2026082901 ; Serial
604800 ; Refresh
86400 ; Retry
2419200 ; Expire
604800 ) ; Negative Cache TTL
;
; ─── Name Server ────────────────────────────────────────────────────────────
@ IN NS ns1.smk-tkj.sch.id.
; ─── PTR Records (Oktet Terakhir IP -> FQDN) ────────────────────────────────
; 192.168.50.2 -> ns1, domain utama, mail, dll
2 IN PTR ns1.smk-tkj.sch.id.
2 IN PTR smk-tkj.sch.id.
2 IN PTR server.smk-tkj.sch.id.
2 IN PTR mail.smk-tkj.sch.id.
Keterangan Angka 2 di Kolom Kiri:
Karena zona mencakup 192.168.50.0/24, angka 2 merepresentasikan host IP 192.168.50.2.
8. Uji Validasi Sintaks Konfigurasi BIND9
Sebelum merestart service, selalu lakukan pengujian sintaks untuk memastikan tidak ada kesalahan ketik atau titik yang tertinggal.
A. Uji Sintaks File Konfigurasi BIND9
sudo named-checkconf
(Jika tidak ada output teks yang muncul, artinya konfigurasi named sudah 100% valid tanpa error).
B. Uji Database Forward Zone
sudo named-checkzone smk-tkj.sch.id /etc/bind/db.smk-tkj.sch.id
Output yang Diharapkan:
zone smk-tkj.sch.id/IN: loaded serial 2026082901
OK
C. Uji Database Reverse Zone
sudo named-checkzone 50.168.192.in-addr.arpa /etc/bind/db.192
Output yang Diharapkan:
zone 50.168.192.in-addr.arpa/IN: loaded serial 2026082901
OK
9. Menerapkan Konfigurasi & Menjalankan BIND9
Jika semua pengujian menghasilkan status OK, restart dan aktifkan service BIND9:
# Restart layanan BIND9
sudo systemctl restart named
# Aktifkan agar otomatis berjalan saat booting
sudo systemctl enable named
# Cek status running
sudo systemctl status named
Pastikan status layanan menunjukkan Active: active (running).
10. Konfigurasi DNS Resolver
Agar mesin server dan perangkat client menggunakan BIND9 server kita untuk menjawab permintaan domain, kita perlu mengonfigurasi DNS Resolver.
A. Di Mesin DNS Server Sendiri
Edit file /etc/resolv.conf:
sudo nano /etc/resolv.conf
Tambahkan baris berikut di bagian atas:
nameserver 127.0.0.1
nameserver 192.168.50.2
search smk-tkj.sch.id
systemd-resolved atau resolvconf, pastikan konfigurasi DNS permanen diatur melalui /etc/network/interfaces (Debian) atau /etc/netplan/*.yaml (Ubuntu) dengan menambahkan parameter nameservers: [192.168.50.2, 8.8.8.8].B. Di Mesin Client (Linux / Windows)
- Linux Client: Tambahkan
nameserver 192.168.50.2pada/etc/resolv.confatau Netplan. - Windows Client: Buka Network Connections → Properties IPv4 → Isi Preferred DNS server:
192.168.50.2. - Integrasi DHCP Server: Jika menggunakan ISC-DHCP-Server, ubah parameter di
/etc/dhcp/dhcpd.conf:option domain-name-servers 192.168.50.2, 8.8.8.8; option domain-name "smk-tkj.sch.id";
11. Pengujian Resolusi DNS
Lakukan pengujian dari server maupun client menggunakan perintah-perintah berikut:
A. Pengujian Menggunakan nslookup
1. Forward Lookup (Domain Utama & Subdomain):
nslookup smk-tkj.sch.id 192.168.50.2
Hasil Output:
Server: 192.168.50.2
Address: 192.168.50.2#53
Name: smk-tkj.sch.id
Address: 192.168.50.2
2. Forward Lookup CNAME Alias (www & portal):
nslookup www.smk-tkj.sch.id 192.168.50.2
Hasil Output:
Server: 192.168.50.2
Address: 192.168.50.2#53
www.smk-tkj.sch.id canonical name = server.smk-tkj.sch.id.
Name: server.smk-tkj.sch.id
Address: 192.168.50.2
3. Reverse Lookup (IP ke Domain):
nslookup 192.168.50.2 192.168.50.2
Hasil Output:
2.50.168.192.in-addr.arpa name = ns1.smk-tkj.sch.id.
2.50.168.192.in-addr.arpa name = smk-tkj.sch.id.
B. Pengujian Menggunakan dig (Domain Information Groper)
dig memberikan informasi detail mengenai flag, header DNS, dan waktu respon query:
dig @192.168.50.2 smk-tkj.sch.id
Perhatikan bagian berikut pada output:
status: NOERROR→ Query sukses dijawab.flags: qr aa rd ra→ Hurufaaberarti Authoritative Answer (jawaban resmi dari master zone server).ANSWER SECTION→ Menampilkan recordsmk-tkj.sch.id. IN A 192.168.50.2.
Cek Record MX (Mail Server):
dig @192.168.50.2 smk-tkj.sch.id MX
Cek Reverse Lookup (dig -x):
dig @192.168.50.2 -x 192.168.50.2
C. Pengujian Menggunakan host dan ping
# Perintah ringkas host
host smk-tkj.sch.id
host www.smk-tkj.sch.id
host 192.168.50.2
# Pengujian konektivitas ICMP via domain
ping smk-tkj.sch.id -c 3
ping portal.smk-tkj.sch.id -c 3
12. Konfigurasi Firewall (UFW)
Jika server mengaktifkan firewall UFW (Uncomplicated Firewall), buka port layanan DNS (TCP dan UDP port 53):
# Buka port DNS 53 UDP dan TCP
sudo ufw allow 53/tcp
sudo ufw allow 53/udp
# Atau menggunakan profil bawaan aplikasi
sudo ufw allow "Bind9"
# Muat ulang & cek status UFW
sudo ufw reload
sudo ufw status
13. Monitoring & Troubleshooting DNS
A. Memeriksa Log BIND9 secara Realtime
Gunakan journalctl untuk mendeteksi error zona atau query yang ditolak:
sudo journalctl -u named -f
B. Tabel Troubleshooting Umum
| Gejala Masalah | Kemungkinan Penyebab | Solusi Praktis |
|---|---|---|
Status query SERVFAIL | 1. Forwarders internet tidak terjangkau. 2. dnssec-validation gagal saat server offline. | Ubah dnssec-validation no; di named.conf.options jika di lab offline tanpa internet. |
Status query NXDOMAIN | Record subdomain belum terdaftar di file database zona. | Tambahkan record A / CNAME yang sesuai di /etc/bind/db.smk-tkj.sch.id lalu naikkan Serial Number. |
Status query REFUSED | Parameter allow-query atau allow-recursion memblokir IP client. | Pastikan allow-query { any; }; aktif di named.conf.options. |
Domain menjadi ganda: www.smk-tkj.sch.id.smk-tkj.sch.id | Lupa membubuhkan tanda titik (.) di akhir FQDN pada file database zone. | Tambahkan titik di akhir nama domain, contoh: server.smk-tkj.sch.id. lalu restart service. |
| Perubahan record tidak berefek pada client | 1. Lupa menaikkan nilai Serial Number SOA. 2. Cache DNS pada OS client belum dibersihkan. | Naikkan Serial Number di zone file, restart named, lalu di client Windows jalankan ipconfig /flushdns. |
BIND9 gagal start (Job failed) | Terdapat kesalahan sintaks titik koma (;) atau kurung kurawal ({ }). | Jalankan named-checkconf untuk menemukan nomor baris yang error. |
14. Jobsheet Praktikum Siswa
- Instalasi & Verifikasi Service: Pasang paket
bind9,bind9utils, dandnsutilspada mesin Linux Server Anda. Tunjukkan screenshot status aktifsystemctl status named. - Konfigurasi Forward & Reverse Zone: Buat zona domain dengan format nama Anda sendiri, misalnya
nama-siswa.sch.id(IP Server Anda). Konfigurasikan file/etc/bind/named.conf.local,/etc/bind/db.nama-siswa, dan/etc/bind/db.ip. - Uji Validasi Sintaks: Jalankan perintah
named-checkconf,named-checkzoneforward, dannamed-checkzonereverse. Pastikan semuanya menghasilkan output OK. - Pembuatan Subdomain & Alias: Tambahkan minimal 3 subdomain record (
www,portal,mail) dan 1 recordMX. - Uji Resolusi dari Client: Dari PC/VM Client, lakukan pengujian menggunakan
nslookupdanpingke domain utama serta subdomain yang telah dibuat. Buktikan hasil Forward Lookup dan Reverse Lookup berhasil. - Laporan Praktikum: Dokumentasikan seluruh tangkapan layar langkah 1 s/d 5 ke dalam format Laporan Praktikum ASJ.
Sudah Selesai Mempelajari Modul Ini?
Tandai modul ini untuk mencatat progress belajar Anda.
DHCP Server Classic (ISC-DHCP)
Panduan praktikum instalasi dan konfigurasi DHCP Server klasik menggunakan isc-dhcp-server di Debian & Ubuntu Server. Mencakup penyesuaian blok subnet "a slightly different", konfigurasi interface, static lease reservation, dan troubleshooting.
Pengantar Keamanan Jaringan
Pengantar mata pelajaran Keamanan Jaringan (KJ) SMK TKJ/TJKT. Capaian Pembelajaran, Silabus Firewall MikroTik, NAT, dan Encrypted VPN.