DHCP server adalah layanan yang memberikan alamat IP otomatis kepada komputer-komputer client pada suatu LAN. Layanan DHCP ini kini makin penting dengan makin maraknya jaringan wireless. Untungnya, hal ini mudah disetup pakai dnsmasq.
Bayangkan kita punya sebuah LAN dengan banyak komputer. Setiap komputer tentunya perlu alamat IP yang unik. Dengan cara manual, kita harus berikan alamat IP ini secara statik ke masing-masing komputer. kalau komputernya ada 100 atau lebih, pegel juga kan ;-)
Nah di sinilah perlunya DHCP (Dynamic Host Control Protocol). Secara umum, konfigurasi DHCP adalah sebagai berikut:
Cara kerja sistem ini adalah:
[dhcp server]--------{LAN}--------[client (banyak sekali)]
- pada suatu LAN, cukup ada SATU DHCP server. DHCP server ini diset untuk membagikan alamat IP dengan rentang tertentu, misal 192.168.0.100 - 192.168.0.199.
- Ada banyak komputer client. Setiap komputer diset agar TCP/IP nya memakai mode AUTO.
- Saat komputer client dihidupkan, dia akan menyebarkan permintaan alamat IP.
- Si DHCP server akan menangkap permintaan ini, lalu memberikan nomor IP unik dalam rentang yang telah ditentukan. Bersamaan dengan itu, juga dapat diberikan informasi lain seperti netmask, alamat dns server, maupun gateway.
- Si client bisa men-set TCP/IP-nya sesuai informasi yang diberikan dan mulai bekerja.
- Alamat IP ini hanya pinjaman. Setelah selang waktu yang ditentukan, DHCP server akan menagihnya kembali agar dapat dipinjamkan ke client lain. Jadi si client harus memperbaharui pinjamannya (leasing) secara berkala.
DHCP SERVER SEDERHANA
Kini mari kita coba setup dnsmasq untuk konfigurasi sebagai berikut
[client]---{LAN}---[gateway (dnsmasq)]---{INTERNET}----[provider (dns server)]Dalam hal ini, dnsmasq bertindak sebagai dhcp server sekaligus dns server. Misalkan saja LAN ini memiliki data sebagai berikut:
- Nomor IP : 192.168.0.1 - 192.168.0.254
- Netmask : 255.255.255.0
- Gateway : 192.168.0.254
- DNS server : 192.168.0.254
- Untuk client dengan IP statik : 192.168.0.1 - 192.168.0.127
- Untuk client dengan IP dinamik : 192.168.0.128 - 192.168.0.191
- Untuk server eksternal : 192.168.0.192 - 192.168.0.223
- Untuk server internal : 192.168.0.224 - 192.168.0.254
Nah, kini kita bisa mulai mengkonfigurasi dnsmasq:
- Konfigurasi dnsmasq sebagai dnsserver (lihat artikel sebelumnya).
- Untuk mengaktifkannya sebagai dhcp server, astaga, ternyata mudah sekali. Cukup edit /etc/dnsmasq.conf pada bagian-bagian berikut:
# Set the domain for dnsmasq. this is optional, but if it is set, it
# does the following things.
# 1) Allows DHCP hosts to have fully qualified domain names, as long
# as the domain part matches this setting.
# 2) Sets the "domain" DHCP option thereby potentially setting the
# domain of all systems configured by DHCP
# 3) Provides the domain part for "expand-hosts"
domain=kampus.lan
# Uncomment this to enable the integrated DHCP server, you need
# to supply the range of addresses available for lease and optionally
# a lease time. If you have more than one network, you will need to
# repeat this for each network on which you want to supply DHCP
# service.
dhcp-range=192.168.0.128,192.168.0.191,12h
# Send options to hosts which ask for a DHCP lease.
# See RFC 2132 for details of available options.
# Note that all the common settings, such as netmask and
# broadcast address, DNS server and default route, are given
# sane defaults by dnsmasq. You very likely will not need any
# any dhcp-options. If you use Windows clients and Samba, there
# are some options which are recommended, they are detailed at the
# end of this section.
# For reference, the common options are:
# subnet mask - 1
# default router - 3
# DNS server - 6
# broadcast address - 28
dhcp-option=1,255.255.255.0
dhcp-option=3,192.168.0.254
dhcp-option=6,192.168.0.254
dhcp-option=28,192.168.0.255
# The DHCP server needs somewhere on disk to keep its lease database.
# This defaults to a sane location, but if you want to change it, use
# the line below.
dhcp-leasefile=/var/run/dnsmasq/dnsmasq.leases - Jangan lupa menyediakan tempat untuk lease file
# mkdir -p /var/run/dnsmasq
# touch /var/run/dnsmasq/dnsmasq.leases
DHCP SERVER LEBIH JAUH
Ada beberapa setting di dnsmasq.conf untuk fitur-fitur lebih kompleks, misalkan saja:
- Atur agar client dengan nama domain tertentu selalu mendapat IP khusus
# Give the machine which says it's name is "dosen01" IP address
Agar hal ini bisa bekerja, pastikan tiap client memiliki nama yang benar. Di Linux, set /etc/HOSTNAME. Sementara itu di Windows, isikan nama domain pada setting TCP/IP.
# 192.168.0.130 and an infinite lease
dhcp-host=dosen01,192.168.0.130,infinite - Atur agar client tertentu mendapat IP yang sesuai dengan nama domain di /etc/hosts
# Enable the address given for "lab01" in /etc/hosts
Hal ini memungkinkan sinkronisasi otomatis dengan dns server.
# to be given to a machine presenting the name "lab01" when
# it asks for a DHCP lease.
dhcp-host=lab01 - Atur agar client dengan MAC address tertentu selalu mendapat IP khusus
# Always allocate the host with ethernet address 11:22:33:44:55:66
Untuk yang satu ini, anda perlu mendata semua MAC address client. Untuk mengetahui MAC address sebuah Linux client, panggil saja ifconfig. Sementara di Windows client gunakan ipconfig.
# The IP address 192.168.0.129
dhcp-host=11:22:33:44:55:66,192.168.0.129 - Blok komputer yang anda tahu suka nakal
# Never offer DHCP service to a machine whose ethernet
# address is 11:22:33:44:55:66
dhcp-host=11:22:33:44:55:66,ignore