DHCP Server Classic (ISC-DHCP)
DHCP Server Classic di Linux (ISC-DHCP-Server)
ISC-DHCP-Server (isc-dhcp-server) adalah paket perangkat lunak server DHCP legendaris yang dikembangkan oleh Internet Systems Consortium (ISC) dan telah menjadi fondasi distribusi IP otomatis di sistem operasi Linux selama lebih dari dua dekade.
Meskipun ISC secara resmi telah menetapkan status End-of-Life (EOL) untuk software ini pada akhir 2022, pemahaman mengenai isc-dhcp-server tetap sangat penting bagi siswa SMK TKJ karena masih banyak digunakan pada infrastruktur jaringan sekolah eksisting (legacy), modul praktikum, dan materi Uji Kompetensi Keahlian (UKK).
Waktu Praktikum: 4 x 45 Menit
Tingkat SMK: XI / XII TJKT (TKJ)
Software Utama:
isc-dhcp-server (Standar Klasik / Legacy)1. Cara Kerja DHCP (Proses DORA)
Komunikasi antara DHCP Client dan DHCP Server berlangsung melalui 4 proses negosiasi berurutan (DORA):
1. DISCOVER
Client yang baru menyala menyiarkan (broadcast) paket DHCPDISCOVER ke seluruh jaringan (255.255.255.255) melalui UDP Port 67 untuk mencari DHCP Server yang aktif.
2. OFFER
DHCP Server merespons dengan paket DHCPOFFER ke UDP Port 68 berisi penawaran IP Address kosong, durasi peminjaman (lease time), gateway, dan DNS.
3. REQUEST
Client memilih penawaran server dan membalas dengan DHCPREQUEST untuk mengonfirmasi bahwa ia bersedia menyewa IP yang ditawarkan.
4. ACKNOWLEDGE
Server mengirimkan DHCPACK sebagai konfirmasi final. Konfigurasi dicatat dalam file database lease server dan client resmi mengaktifkan IP tersebut.
2. Topologi Virtual Lab Praktikum
┌────────────────────────────────┐
│ Debian / Ubuntu Server │
│ Interface: enp0s8 (Internal) │
│ IP Statis: 192.168.50.1/24 │
│ Layanan : isc-dhcp-server │
└───────────────┬────────────────┘
│
[ Virtual Switch / Internal Network: "sw-lab-tkj" ]
│
┌───────┴───────────────┬───────────────────────┐
│ │ │
┌───────┴────────────┐ ┌───────┴────────────┐ ┌───────┴────────────┐
│ Client 1 (Debian) │ │ Client 2 (Windows) │ │ Komputer Guru (PC) │
│ Mode: DHCP Client │ │ Mode: DHCP Client │ │ MAC: aa:bb:cc:... │
│ Alokasi: Dinamis │ │ Alokasi: Dinamis │ │ Static: .50.10 │
└────────────────────┘ └────────────────────┘ └────────────────────┘
| Parameter Jaringan | Nilai Konfigurasi | Keterangan |
|---|---|---|
| Interface Server | enp0s8 (atau ens33 / eth1) | Interface yang mengarah ke switch client |
| IP Address Server | 192.168.50.1/24 | IP Statis server sebagai Gateway jaringan |
| DHCP Pool (Range) | 192.168.50.100 – 192.168.50.200 | 101 IP dialokasikan untuk client dinamis |
| Subnet Mask | 255.255.255.0 (/24) | Subnet kelas C |
| Default Gateway | 192.168.50.1 | Router penerus traffic |
| DNS Resolver | 192.168.50.1, 8.8.8.8 | DNS Server lokal & Google Public DNS |
| Domain Search | smk-tkj.sch.id | Nama domain lokal sekolah |
enp0s8) telah diset dengan IP Statis terlebih dahulu sebelum memulai instalasi (lihat Jobsheet 03).3. Instalasi Paket isc-dhcp-server
Jalankan perintah instalasi paket:
# Update index repositori
sudo apt update
# Pasang paket ISC DHCP Server
sudo apt install isc-dhcp-server -y
Catatan: Setelah selesai diinstall, service
isc-dhcp-serverakan otomatis berstatus failed atau error. Hal ini normal karena file konfigurasi utama dan parameter interface belum disesuaikan.
4. Konfigurasi File Utama /etc/dhcp/dhcpd.conf
Sesuai standar praktikum SMK TKJ, kita terlebih dahulu mengonfigurasi file pengaturan utama /etc/dhcp/dhcpd.conf.
Cadangkan file konfigurasi asli terlebih dahulu:
sudo cp /etc/dhcp/dhcpd.conf /etc/dhcp/dhcpd.conf.bak
Buka file konfigurasi menggunakan editor nano:
sudo nano /etc/dhcp/dhcpd.conf
Cara Cepat Menemukan Baris Subnet
Di dalam file bawaan Debian/Ubuntu, terdapat ratusan baris contoh yang diawali tanda pagar (#). Cara termudah adalah mencari blok komentar a slightly different:
- Pada editor nano, tekan tombol Ctrl + W (fungsi Search/Where Is).
- Ketik kata kunci:
slightlylalu tekan Enter. - Kursor Anda akan langsung menuju ke baris:
# A slightly different configuration for an internal subnet.
Tampilan Sebelum Diubah (Bawaan Default)
Perhatikan blok template aslinya yang masih tertutup tanda komentar (#):
# A slightly different configuration for an internal subnet.
#subnet 10.5.5.0 netmask 255.255.255.224 {
# range 10.5.5.26 10.5.5.30;
# option domain-name-servers ns1.internal.example.org;
# option domain-name "internal.example.org";
# option subnet-mask 255.255.255.224;
# option routers 10.5.5.1;
# option broadcast-address 10.5.5.31;
# default-lease-time 600;
# max-lease-time 7200;
#}
Tampilan Sesudah Diubah (Hilangkan # & Sesuaikan IP Lab)
Hilangkan tanda pagar (#) dari baris subnet sampai tanda kurung kurawal tutup (}), lalu ubah nilainya sesuai IP laboratorium TKJ berikut:
# A slightly different configuration for an internal subnet.
subnet 192.168.50.0 netmask 255.255.255.0 {
range 192.168.50.100 192.168.50.200;
option domain-name-servers 192.168.50.1, 8.8.8.8;
option domain-name "smk-tkj.sch.id";
option subnet-mask 255.255.255.0;
option routers 192.168.50.1;
option broadcast-address 192.168.50.255;
default-lease-time 43200;
max-lease-time 86400;
}
Menambahkan Static Lease (IP Reservation)
Jika ada perangkat yang membutuhkan IP permanen (misalnya Komputer Guru atau Printer Lab), tambahkan deklarasi host tepat di bawah blok subnet di atas:
# ─── Static Lease (IP Reservation Komputer Guru) ─────────────────────────
host pc-guru {
hardware ethernet 08:00:27:aa:bb:cc;
fixed-address 192.168.50.10;
}
# ─── Static Lease (Printer Laboratorium) ─────────────────────────────────
host printer-lab {
hardware ethernet 08:00:27:11:22:33;
fixed-address 192.168.50.20;
}
Simpan file di nano: tekan Ctrl + O, tekan Enter, lalu keluar dengan Ctrl + X.
Bagi siswa yang ingin langsung mengganti isi file konfigurasi secara otomatis tanpa mencari baris nano secara manual, Anda cukup klik tombol Copy pada perintah berikut dan paste ke terminal:
cat << 'EOF' | sudo tee /etc/dhcp/dhcpd.conf
default-lease-time 43200;
max-lease-time 86400;
authoritative;
ddns-update-style none;
subnet 192.168.50.0 netmask 255.255.255.0 {
range 192.168.50.100 192.168.50.200;
option routers 192.168.50.1;
option subnet-mask 255.255.255.0;
option domain-name-servers 192.168.50.1, 8.8.8.8;
option domain-name "smk-tkj.sch.id";
option broadcast-address 192.168.50.255;
}
host pc-guru {
hardware ethernet 08:00:27:aa:bb:cc;
fixed-address 192.168.50.10;
}
EOF
5. Penentuan Interface di /etc/default/isc-dhcp-server
Setelah file utama /etc/dhcp/dhcpd.conf selesai dikonfigurasi dan disimpan, langkah berikutnya adalah menentukan kartu jaringan (interface) yang akan melayani permintaan DHCP.
Buka file konfigurasi interface bawaan:
sudo nano /etc/default/isc-dhcp-server
Gulir ke baris paling bawah, lalu cari baris INTERFACESv4. Masukkan nama interface jaringan lokal yang mengarah ke switch client (cek dengan perintah ip a, contoh: enp0s8):
# Interface kartu jaringan yang melayani DHCP client
INTERFACESv4="enp0s8"
INTERFACESv6=""
Simpan file: tekan Ctrl + O, Enter, lalu Ctrl + X.
6. Validasi Sintaks & Menjalankan Service
A. Uji Validitas Sintaks Konfigurasi
Sebelum me-restart layanan, jalankan perintah uji sintaks untuk memastikan tidak ada kesalahan penulisan atau titik koma (;) yang tertinggal:
sudo dhcpd -t -cf /etc/dhcp/dhcpd.conf
Jika tidak ada pesan error merah atau fatal, konfigurasi Anda siap dijalankan.
B. Menjalankan & Mengaktifkan Layanan
# Restart service ISC DHCP
sudo systemctl restart isc-dhcp-server
# Aktifkan auto-start saat booting server
sudo systemctl enable isc-dhcp-server
# Periksa status operasional
sudo systemctl status isc-dhcp-server
Status yang diharapkan saat normal:
● isc-dhcp-server.service - LSB: DHCP server
Loaded: loaded (/etc/init.d/isc-dhcp-server; generated)
Active: active (running) since ...
7. Monitoring Client Lease & Realtime Log
ISC-DHCP-Server mencatat seluruh aktivitas peminjaman IP client ke dalam file teks datar:
# Melihat seluruh riwayat peminjaman IP
cat /var/lib/dhcp/dhcpd.leases
Atau gunakan utilitas pemantau ringkas bawaan:
dhcp-lease-list
Untuk memantau pertukaran paket DORA secara langsung (realtime):
sudo journalctl -u isc-dhcp-server -f
8. Pengujian dari Sisi Client
Skenario A: Client Linux (Debian / Ubuntu)
# Lepas IP lama
sudo dhclient -r enp0s3
# Minta IP baru dari server
sudo dhclient -v enp0s3
# Periksa IP yang diperoleh
ip a show enp0s3
ip route show
Skenario B: Client Windows
Buka Command Prompt (CMD):
ipconfig /release
ipconfig /renew
ipconfig /all
Pastikan baris DHCP Server tertera alamat IP server Anda (192.168.50.1).
9. Konfigurasi Firewall Server (UFW)
Buka port UDP 67 dan 68 jika firewall UFW dalam kondisi aktif:
sudo ufw allow 67/udp
sudo ufw allow 68/udp
sudo ufw status
10. Troubleshooting Error Umum ISC-DHCP
| Gejala Error | Kemungkinan Penyebab | Langkah Solusi |
|---|---|---|
isc-dhcp-server failed to start | Kesalahan sintaks (misal titik koma lupa di akhir baris) | Jalankan sudo dhcpd -t -cf /etc/dhcp/dhcpd.conf untuk menemukan nomor baris yang bermasalah. |
| Not configured to listen on any interfaces | Interface di /etc/default/isc-dhcp-server belum diisi atau salah | Sesuaikan nama interface pada INTERFACESv4="enp0s8" dengan output ip a. |
| No subnet declaration for interface | Subnet di dhcpd.conf tidak cocok dengan IP statis interface | Pastikan IP interface server (192.168.50.1) satu subnet dengan blok subnet 192.168.50.0. |
| Client tidak dapat IP (Timeout) | Firewall memblokir atau beda virtual switch | Buka port 67/udp dan pastikan kedua VM terhubung ke switch internal yang sama. |
11. Lembar Kerja Praktikum Siswa
- Instalasi: Pasang paket
isc-dhcp-serverdi server Linux Anda dan tunjukkan outputsystemctl status isc-dhcp-server. - Konfigurasi File Utama: Buka
/etc/dhcp/dhcpd.conf, cari blok# A slightly different configuration..., hilangkan tanda komentar#, dan sesuaikan subnet192.168.50.0/24. - Konfigurasi Interface: Atur
INTERFACESv4pada file/etc/default/isc-dhcp-serveragar mengarah ke kartu jaringan lab (enp0s8). - Validasi Sintaks: Jalankan
sudo dhcpd -t -cf /etc/dhcp/dhcpd.confdan buktikan konfigurasi bebas dari error sintaks. - Pengujian Client: Hubungkan VM Client, minta IP otomatis via DHCP, dan lampirkan tangkapan layar
ip aatauipconfig. - Static Lease: Tambahkan reservasi IP permanen
192.168.50.15untuk client Anda berdasarkan MAC Address-nya.
Sudah Selesai Mempelajari Modul Ini?
Tandai modul ini untuk mencatat progress belajar Anda.
DHCP Server Modern (Kea DHCPv4)
Panduan praktikum instalasi dan konfigurasi DHCP Server modern menggunakan Kea DHCP (kea-dhcp4-server) di Debian 12 & Ubuntu Server. Mencakup proses DORA, konfigurasi JSON, pool scope, static lease reservation, monitoring lease CSV, dan troubleshooting.
DNS Server (BIND9)
Panduan praktikum instalasi dan konfigurasi DNS Server menggunakan BIND9 di Debian & Ubuntu Server. Mencakup konsep Domain Name System, Forward & Reverse Zone, Subdomain, DNS Record (A, CNAME, PTR, MX), DNS Resolver, dan Troubleshooting.