Selamat Datang Orang Gila !!! .:: Welcome Lunatic ::.

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

  3. 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 :)

Menurut anda tentang blog ini?