Administrasi Server Jaringan

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.

DHCP Server Modern di Linux (Kea DHCPv4)

DHCP (Dynamic Host Configuration Protocol) adalah protokol jaringan client-server yang bertugas mendistribusikan konfigurasi IP Address, Subnet Mask, Default Gateway, dan DNS Server secara otomatis dan dinamis kepada perangkat client yang terhubung ke jaringan lokal.

Dengan adanya DHCP Server, administrator jaringan tidak perlu memasukkan konfigurasi IP manual (static) ke puluhan hingga ratusan komputer di laboratorium komputer dan kantor sekolah.

Jobsheet Praktikum 06: Administrasi Server Jaringan (ASJ)
Waktu Praktikum: 4 x 45 Menit
Tingkat SMK: XI / XII TJKT (TKJ) — Kurikulum Merdeka
Software Utama:kea-dhcp4-server (Standar Industri Modern Masa Depan)
Modul ini membahas implementasi standar modern menggunakan Kea DHCPv4 yang menjadi paket bawaan di Debian 12 (Bookworm) dan Ubuntu 24.04 LTS.
Jika Anda membutuhkan panduan versi lawas untuk kebutuhan kurikulum lama atau ujian sertifikasi tertentu, silakan buka modul DHCP Server Classic (ISC-DHCP).

1. Mengenal Kea DHCP: Standar Baru Pengganti ISC-DHCP

Pengembang resmi ISC (Internet Systems Consortium) secara resmi mengumumkan penghentian (End-of-Life) untuk software lawas isc-dhcp-server pada akhir tahun 2022. Penerus resminya adalah Kea DHCP.

[ Software Lawas: ISC-DHCP ]              [ Standar Modern: Kea DHCPv4 ]
• Format konfigurasi teks custom          • Format konfigurasi standar JSON
• Database flat-text file                 • Database memfile CSV, MySQL, PostgreSQL
• Restart daemon penuh saat ubah data     • Dukungan integrasi REST API (kea-ctrl-agent)
• Status: End of Life (2022)              • Status: Aktif & Bawaan Debian 12 / Ubuntu 24

Keunggulan Utama Kea DHCP

  1. Format Konfigurasi JSON: Mudah dibaca, divalidasi, dan diintegrasikan dengan otomasi skrip (DevOps / Ansible / Python).
  2. Arsitektur Multi-thread: Mampu melayani ribuan request per detik tanpa bottleneck performa.
  3. Database Lease Fleksibel: Menyimpan peminjaman IP ke file CSV sederhana atau database relasional (PostgreSQL / MySQL) untuk jaringan berskala besar.
  4. REST Control Agent: Konfigurasi dapat diperbarui secara dinamis melalui HTTP REST API tanpa perlu memutus koneksi client.

2. Cara Kerja DHCP (Proses DORA)

Proses negosiasi alokasi IP antara Client dan Server berlangsung melalui 4 tahapan berurutan (DORA):

1. DISCOVER (Client ➔ Server)

Client yang baru terhubung mengirimkan paket broadcast DHCPDISCOVER ke alamat 255.255.255.255 melalui UDP Port 67 untuk mencari apakah ada DHCP Server yang aktif di jaringan.

2. OFFER (Server ➔ Client)

DHCP Server yang mendengar pesan tersebut merespons dengan paket DHCPOFFER (ke UDP Port 68) yang berisi tawaran IP Address kosong, subnet mask, durasi pinjaman (lease time), dan IP server itu sendiri.

3. REQUEST (Client ➔ Server)

Client menerima tawaran tersebut dan membalas dengan DHCPREQUEST, menyatakan bahwa client menyetujui dan secara resmi meminta IP yang ditawarkan tersebut.

4. ACKNOWLEDGE (Server ➔ Client)

Server mengirimkan DHCPACK (Acknowledgment) sebagai konfirmasi final. Konfigurasi dicatat dalam database lease server dan client resmi dapat menggunakan IP tersebut.


3. Topologi Virtual Lab Praktikum

Topologi yang digunakan pada virtual lab (VirtualBox / Proxmox VE / VMware):

┌────────────────────────────────┐
│  Debian 12 / Ubuntu Server     │
│  Nama Host: server-asj.local   │
│  Interface: enp0s8 (Internal)  │
│  IP Statis: 192.168.50.1/24    │
│  Layanan  : kea-dhcp4-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:...  │
│ Dapat: Dinamis     │  │ Dapat: Dinamis     │  │ Static: .50.10     │
└────────────────────┘  └────────────────────┘  └────────────────────┘

Parameter Alokasi Jaringan

ParameterNilai KonfigurasiKeterangan
Interface Serverenp0s8 (atau ens33 / eth1)Interface yang mengarah ke switch client
IP Address Server192.168.50.1 / 24IP Statis server sebagai Gateway jaringan
DHCP Pool (Range)192.168.50.100 – 192.168.50.200101 IP dialokasikan untuk client dinamis
Subnet Mask255.255.255.0 (/24)Subnet kelas C
Default Gateway192.168.50.1Router penerus traffic
DNS Resolver192.168.50.1, 8.8.8.8DNS Server lokal & Google Public DNS
Domain Searchsmk-tkj.sch.idDomain lokal jaringan sekolah
Lease Time43200 detik (12 Jam)Waktu berlaku peminjaman IP
Sebelum menjalankan DHCP Server, wajib memastikan interface server (enp0s8) telah diset dengan IP Statis192.168.50.1/24 (lihat materi Jobsheet 03). DHCP Server akan menolak berjalan jika interface pengampu masih berstatus DHCP Client.

4. Instalasi Paket Kea DHCPv4

Jalankan perintah pembaruan repository dan instal paket kea-dhcp4-server:

# Update repository
sudo apt update

# Install paket Kea DHCPv4 Server
sudo apt install kea-dhcp4-server -y

Periksa ketersediaan service Kea setelah instalasi:

sudo systemctl status kea-dhcp4-server

Catatan: Service Kea mungkin berstatus inactive atau failed saat pertama kali terpasang karena belum disesuaikan dengan interface fisik server Anda. Hal ini wajar.


5. Konfigurasi File /etc/kea/kea-dhcp4.conf

Cadangkan file konfigurasi asli bawaan distro terlebih dahulu:

sudo cp /etc/kea/kea-dhcp4.conf /etc/kea/kea-dhcp4.conf.bak

File template bawaan Kea berisi lebih dari 350 baris komentar contoh. Anda dapat memilih salah satu dari dua metode di bawah ini untuk menerapkan konfigurasi laboratorium TKJ:

Metode A: Salin-Tempel Cepat Sekali Klik (Sangat Direkomendasikan)

Klik tombol Copy di pojok kanan atas blok berikut, lalu tempel (Paste dengan klik kanan / Ctrl+Shift+V) langsung ke terminal Linux/SSH server Anda:

/etc/kea/kea-dhcp4.conf
cat << 'EOF' | sudo tee /etc/kea/kea-dhcp4.conf
{
  "Dhcp4": {
    "interfaces-config": {
      "interfaces": [ "enp0s8" ]
    },
    "control-socket": {
      "socket-type": "unix",
      "socket-name": "/run/kea/kea4-ctrl-socket"
    },
    "lease-database": {
      "type": "memfile",
      "persist": true,
      "name": "/var/lib/kea/kea-leases4.csv",
      "lfc-interval": 3600
    },
    "valid-lifetime": 43200,
    "renew-timer": 21600,
    "rebind-timer": 37800,
    "subnet4": [
      {
        "id": 1,
        "subnet": "192.168.50.0/24",
        "pools": [
          { "pool": "192.168.50.100 - 192.168.50.200" }
        ],
        "option-data": [
          {
            "name": "routers",
            "data": "192.168.50.1"
          },
          {
            "name": "domain-name-servers",
            "data": "192.168.50.1, 8.8.8.8"
          },
          {
            "name": "domain-name",
            "data": "smk-tkj.sch.id"
          }
        ],
        "reservations": [
          {
            "hw-address": "08:00:27:aa:bb:cc",
            "ip-address": "192.168.50.10",
            "hostname": "pc-guru"
          },
          {
            "hw-address": "08:00:27:11:22:33",
            "ip-address": "192.168.50.20",
            "hostname": "printer-lab"
          }
        ]
      }
    ],
    "loggers": [
      {
        "name": "kea-dhcp4",
        "output_options": [
          {
            "output": "stdout"
          }
        ],
        "severity": "INFO"
      }
    ]
  }
}
EOF
Perintah cat << 'EOF' | sudo tee otomatis menggantikan seluruh isi file /etc/kea/kea-dhcp4.conf dengan data konfigurasi yang bersih tanpa perlu repot menghapus ratusan baris di editor nano satu per satu.

Metode B: Edit Manual Menggunakan Editor nano

Jika Anda ingin menulis secara manual di nano, kosongkan file template bawaan terlebih dahulu:

# Kosongkan file bawaan secara instan
sudo truncate -s 0 /etc/kea/kea-dhcp4.conf

# Buka file konfigurasi dengan editor nano
sudo nano /etc/kea/kea-dhcp4.conf

Salin dan tempel kode JSON konfigurasi berikut:

/etc/kea/kea-dhcp4.conf
{
  "Dhcp4": {
    "interfaces-config": {
      "interfaces": [ "enp0s8" ]
    },
    "control-socket": {
      "socket-type": "unix",
      "socket-name": "/run/kea/kea4-ctrl-socket"
    },
    "lease-database": {
      "type": "memfile",
      "persist": true,
      "name": "/var/lib/kea/kea-leases4.csv",
      "lfc-interval": 3600
    },
    "valid-lifetime": 43200,
    "renew-timer": 21600,
    "rebind-timer": 37800,
    "subnet4": [
      {
        "id": 1,
        "subnet": "192.168.50.0/24",
        "pools": [
          { "pool": "192.168.50.100 - 192.168.50.200" }
        ],
        "option-data": [
          {
            "name": "routers",
            "data": "192.168.50.1"
          },
          {
            "name": "domain-name-servers",
            "data": "192.168.50.1, 8.8.8.8"
          },
          {
            "name": "domain-name",
            "data": "smk-tkj.sch.id"
          }
        ],
        "reservations": [
          {
            "hw-address": "08:00:27:aa:bb:cc",
            "ip-address": "192.168.50.10",
            "hostname": "pc-guru"
          },
          {
            "hw-address": "08:00:27:11:22:33",
            "ip-address": "192.168.50.20",
            "hostname": "printer-lab"
          }
        ]
      }
    ],
    "loggers": [
      {
        "name": "kea-dhcp4",
        "output_options": [
          {
            "output": "stdout"
          }
        ],
        "severity": "INFO"
      }
    ]
  }
}

Simpan file di nano: tekan Ctrl + O, tekan Enter, lalu keluar dengan Ctrl + X.


Penjelasan Parameter Penting Kea

Bagian ParameterFungsi dan Keterangan
interfaces-config.interfacesKartu jaringan server yang aktif mendengarkan paket request DHCP (enp0s8).
control-socketSocket komunikasi lokal untuk daemon Kea (wajib bernilai "socket-type": "unix").
lease-databaseTempat penyimpanan catatan alokasi IP client dalam format file CSV memfile.
valid-lifetimeMasa berlaku sewa IP (detik). 43200 setara dengan 12 jam.
subnet4.subnetAlamat subnet jaringan yang dilayani (192.168.50.0/24).
subnet4.poolsRentang alokasi IP dinamis untuk client (192.168.50.100 - 192.168.50.200).
option-data: routersAlamat IP default gateway yang dikirim ke client (192.168.50.1).
option-data: domain-name-serversAlamat IP DNS server yang dikirim ke client.
reservationsStatic Lease / IP Reservation: Mempermanenkan IP tertentu ke perangkat client berdasarkan MAC Address.

6. Validasi Sintaks & Menjalankan Service

A. Uji Validitas Konfigurasi JSON Kea

Gunakan perintah bawaan Kea untuk memeriksa kebenaran struktur file konfigurasi sebelum me-restart service:

sudo kea-dhcp4 -t /etc/kea/kea-dhcp4.conf

Output jika konfigurasi valid:

Configuration file /etc/kea/kea-dhcp4.conf is valid.

B. Menjalankan & Mengaktifkan Layanan

# Restart layanan Kea DHCPv4
sudo systemctl restart kea-dhcp4-server

# Aktifkan auto-start saat booting
sudo systemctl enable kea-dhcp4-server

# Periksa status operasional
sudo systemctl status kea-dhcp4-server

Output status yang diharapkan (Active: running):

● kea-dhcp4-server.service - Kea DHCPv4 Server
     Loaded: loaded (/lib/systemd/system/kea-dhcp4-server.service; enabled; preset: enabled)
     Active: active (running) since Wed 2026-09-09 10:30:00 WIB; 10s ago
   Main PID: 2841 (kea-dhcp4)
      Tasks: 4 (limit: 2322)
     Memory: 6.8M
        CPU: 42ms
     CGroup: /system.slice/kea-dhcp4-server.service
             └─2841 /usr/sbin/kea-dhcp4 -c /etc/kea/kea-dhcp4.conf

7. Monitoring Lease Database & Realtime Log

Kea DHCP menyimpan data peminjaman IP client dalam format file CSV yang rapi:

# Memeriksa data client yang sedang meminjam IP
cat /var/lib/kea/kea-leases4.csv

Contoh tampilan isi file lease Kea:

address,hwaddr,client_id,valid_lifetime,expire,subnet_id,fqdn_fwd,fqdn_rev,hostname,state
192.168.50.100,08:00:27:fe:12:34,,43200,1757425800,1,0,0,debian-client,0
192.168.50.10,08:00:27:aa:bb:cc,,43200,1757425800,1,0,0,pc-guru,0

Untuk memantau aktivitas proses pertukaran paket DORA client secara realtime:

sudo journalctl -u kea-dhcp4-server -f

8. Pengujian dari Sisi Client

Skenario A: Client Linux (Debian / Ubuntu)

  1. Pastikan interface client diatur ke mode DHCP Client pada /etc/network/interfaces:
    auto enp0s3
    iface enp0s3 inet dhcp
    
  2. Minta alokasi IP baru dari server Kea:
    # Lepas IP lama (Release)
    sudo dhclient -r enp0s3
    
    # Minta IP baru (Discover/Request)
    sudo dhclient -v enp0s3
    
  3. Periksa IP dan Gateway yang didapatkan:
    ip a show enp0s3
    ip route show
    

Skenario B: Client Windows

  1. Buka Command Prompt (CMD).
  2. Jalankan perintah permohonan IP:
    ipconfig /release
    ipconfig /renew
    ipconfig /all
    
  3. Pastikan baris DHCP Server menunjuk ke IP server Kea (192.168.50.1).

Skenario C: Uji Static Reservation

Hubungkan perangkat client dengan MAC Address yang telah didaftarkan pada blok "reservations" (misal 08:00:27:aa:bb:cc). Pastikan perangkat tersebut selalu mendapatkan IP tetap 192.168.50.10.


9. Konfigurasi Firewall Server (UFW)

Jika server mengaktifkan UFW, buka port traffic protokol DHCP (UDP 67 dan 68):

# Izinkan port DHCP
sudo ufw allow 67/udp
sudo ufw allow 68/udp

# Atau izinkan seluruh traffic dari jaringan lab
sudo ufw allow from 192.168.50.0/24

# Cek status firewall
sudo ufw status verbose

10. Troubleshooting Error Umum Kea

Pesan Error / KendalaKemungkinan PenyebabLangkah Solusi
Invalid 'socket-type' parameter value stdoutParameter socket-type pada blok control-socket salah isiGanti "socket-type": "stdout" menjadi "socket-type": "unix" dan sertakan "socket-name": "/run/kea/kea4-ctrl-socket".
kea-dhcp4-server gagal startKesalahan sintaks JSON (misal tanda koma trailing)Jalankan sudo kea-dhcp4 -t /etc/kea/kea-dhcp4.conf untuk melihat baris yang salah.
Failed to open socket on interfaceNama interface di config salah atau IP belum diset statisPastikan interface fisik aktif dengan IP statis 192.168.50.1 menggunakan perintah ip a.
Client tidak dapat IP (Timeout)Firewall memblokir UDP 67/68 atau beda switch virtualNonaktifkan sementara firewall sudo ufw disable dan pastikan kedua VM berada pada jaringan internal yang sama.
Client dapat IP tapi salah subnetAda DHCP Server lain aktif (misal DHCP VirtualBox)Matikan DHCP server bawaan pada adapter virtualbox Anda.

11. Lembar Kerja Praktikum Siswa

Tugas Praktik Mandiri Siswa:
  1. Instalasi Kea: Lakukan instalasi kea-dhcp4-server pada Debian 12 Server. Sertakan screenshot systemctl status kea-dhcp4-server yang aktif berjalan.
  2. Konfigurasi Scope: Konfigurasikan pool IP 192.168.50.100 - 192.168.50.150, gateway 192.168.50.1, DNS 192.168.50.1, 8.8.8.8, dan domain smk-tkj.sch.id. Tunjukkan isi file /etc/kea/kea-dhcp4.conf.
  3. Uji Validasi JSON: Jalankan perintah kea-dhcp4 -t /etc/kea/kea-dhcp4.conf dan lampirkan bukti konfigurasi Anda valid.
  4. Pengujian Client Dinamis: Hubungkan 1 client VM, perbarui IP via DHCP, dan buktikan client memperoleh IP dari pool.
  5. Static Reservation: Dapatkan MAC Address client Anda, tetapkan reservasi IP 192.168.50.25, dan buktikan client berhasil mengunci IP tersebut.
  6. Inspeksi Database Lease: Tampilkan output cat /var/lib/kea/kea-leases4.csv yang memuat riwayat peminjaman IP client Anda.

Sudah Selesai Mempelajari Modul Ini?

Tandai modul ini untuk mencatat progress belajar Anda.