DHCP Server Pakai DNSMasq

DHCP Server Pakai DNSMasq

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:

                    
[dhcp server]--------{LAN}--------[client (banyak sekali)]
 

Cara kerja sistem ini adalah:

  1. 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.
  2. Ada banyak komputer client. Setiap komputer diset agar TCP/IP nya memakai mode AUTO.
  3. Saat komputer client dihidupkan, dia akan menyebarkan permintaan alamat IP.
  4. 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.
  5. Si client bisa men-set TCP/IP-nya sesuai informasi yang diberikan dan mulai bekerja.
  6. 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.

Sementara itu ada hal tak kalah penting yang harus dilakukan. Saat DHCP server meminjamkan nomor IP, nama domain yang bersangkutan harus disinkronkan agar akses ke nama domain tak salah alamat. Jelas bahwa hal ini erat kaitannya dengan DNS server. Karena DNSMASQ adalah sekaligus dns server, hal ini akan otomatis terjadi. Tidak demikian halnya jika kita memakai paket terpisah, misalnya bind + dhcpd.

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

Kemudian alamat IP yang tersedia kita alokasikan sebagai berikut:

  • 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

Oh ya, sekedar tips. Pembagian tersebut diatur demikian rupa menurut rentang kepangkatan angka binari (128 + 64 + 64) sehingga nantinya enak kalau kita pasang firewall.

Nah, kini kita bisa mulai mengkonfigurasi dnsmasq:

  1. Konfigurasi dnsmasq sebagai dnsserver (lihat artikel sebelumnya).
  2. 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

Silahkan start atau restart dnsmasq. Kini tinggal set client (Linux maupun Windows) agar memakai IP dinamik (auto). Jika semuanya berjalan benar, maka saat diaktifkan client akan mendapat salah satu alamat IP antara 192.168.0.128 s/d 192.168.0.191, demikian pula setting netmask, gateway dan dns server yang sesuai.

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
# 192.168.0.130 and an infinite lease
dhcp-host=dosen01,192.168.0.130,infinite

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.

Atur agar client tertentu mendapat IP yang sesuai dengan nama domain di /etc/hosts

# Enable the address given for "lab01" in /etc/hosts
# to be given to a machine presenting the name "lab01" when
# it asks for a DHCP lease.
dhcp-host=lab01

Hal ini memungkinkan sinkronisasi otomatis dengan dns server.

Atur agar client dengan MAC address tertentu selalu mendapat IP khusus

# Always allocate the host with ethernet address 11:22:33:44:55:66 
# The IP address 192.168.0.129
dhcp-host=11:22:33:44:55:66,192.168.0.129

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.

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

Sekian dulu soal dnsmasq. Silahkan coba, ditanggung beres dalam 30 menit tanpa pusing teori DNS+DHCP yang biasanya harus dibaca dulu kalau mau setting BIND atau DHCPD :)


Dengan RedHat

Manajemen IP address itu penting banget buat seorang admin jaringan. Dengan manajemen IP, seorang administrator dapat membatasi jumlah client yg terkoneksi dgn jaringannya.

DHCP server membagikan IP pada client2 yg ada dlm networknya sesuai rentang yg dikonfigurasikan. Untuk client yg harus menggunakan IP tertentu juga dapat di set di konfigurasinya.

Sekedar tips, kalo ga mau susah2 untuk membatasi IP client anda, pada subnetmask nya isikan dengan angka yg anda inginkan

IP --> 192.168.10.17 -- 222.255.255.0 ----> angka nol disini memungkinkan adanya 254 user yg terkoneksi (IP 192.168.10.0 digunakan sebagai network ID jaringannya dan 192.168.10.255 sebagai broadcastnya)
Ganti segment terakhir pada subnetmask dgn angka sesuae jmlah client, rumusnya 254 dkurangi jumlah client
e.g: ada 62 client, maka 254 - 62 = 192 --> subnetmask anda 255.255.255.192

Namun cara diatas hanya untuk membatasi rentang IP saja, bukan untuk memberikan IP dinamis pada client. Untuk memberi IP pada client ya harus pake dhcp server.
Langkah² membuat DHCP server pada mesin RedHat Linux

1. Instal paket dhcpd.3.*.*.rpm ( * adl versi dhcpd nya)
2. buat file di direktori /etc dengan nama dhcpd.conf dengan teks editor yg anda sukai (saya pake vi yg dasar:))
3. Copy dan paste kan script di bawah ini :
ddns-update-style interim;
# Required for dhcp 3.0+ / Red Hat 8.0+
ignore client-updates;

subnet 192.168.1.0 netmask 255.255.255.0 { <== isikan subneting dan netmask network anda)
# Range of IP addresses to be issued to DHCP clients
range 192.168.1.128 192.168.1.254; <== IP yg akan digunakan oleh host (isikan sesuai jumlah client anda)
# Default subnet mask to be used by DHCP clients
option subnet-mask 255.255.255.0; <== isikan subnetmask network anda (sesuaikan juga dgn jmlh client)
# Default broadcastaddress to be used by DHCP clients
option broadcast-address 192.168.1.255; <== isikan broadcast network anda (broadcast adl IP maximal network anda ditambah 1)
# Default gateway to be used by DHCP clients
option routers 192.168.1.1; <=== isikan gateway server anda
option domain-name "your-domain.org"; <=== isikan domain anda (optional)
# Default DNS to be used by DHCP clients
option domain-name-servers 40.175.42.254, 40.175.42.253; <== dns server anda (optional)
option netbios-name-servers 192.168.1.100;

# (Optional. Specify if used on your network)
# DHCP requests are not forwarded. Applies when there is more than one ethernet device and forwarding is configured.
# option ipforwarding off;
# Amount of time in seconds that a client may keep the IP address <== waktu maximum penggunaan IP (jika melebihi maka harus request lagi)
default-lease-time 21600;
max-lease-time 43200;
# Eastern Standard Time
option time-offset -18000;
# Default NTP server to be used by DHCP clients
# option ntp-servers 192.168.1.1;
# option netbios-name-servers 192.168.1.1;
# --- Selects point-to-point node (default is hybrid). Don't change this unless you understand Netbios very well
# option netbios-node-type 2;
# We want the nameserver "ns2" to appear at a fixed address.
# Name server with this specified MAC address will recieve this IP. <== jika ada komputer yg harus menggunakian IP tertentu isikan mac address NICnya disini dgn IP yg diinginkan

host ns2 {
next-server ns2.your-domain.com;
hardware ethernet 00:02:c3:d0:e5:83;
fixed-address 40.175.42.254;
}

# Laser printer obtains IP address via DHCP. This assures that the
# printer with this MAC address will get this IP address every time. <== untuk penggunaan printer jaringan

host laser-printer-lex1 {
hardware ethernet 08:00:2b:4c:a3:82;
fixed-address 192.168.1.120;
}
}

skrip di atas dpat anda temukan di /usr/share/doc/dhcp-3.X/dhcp.conf.sample

4. simpan dan keluarlah dari text editor anda
5. ketikkan perintah berikut pada konsole
# service dhcpd start
# /etc/rc.d/init.d/dhcpd configtest (gunakan /usr/sbin/dhcpd -f pada distro lain)
6. jika tidak ada pesan error maka anda sudah berhasil....tinggal clientnya dikonfigurasi
7. untuk melihat client yg merequest IP dan IP yg aktif lihat file /var/lib/dhcp/dhcpd.leases dengan text editor anda

Deixe o seu comentario

Posting Komentar