Tutorial Konfigurasi Dnsmasq dan DHCP Server Menggunakan Debian

June 11, 2023

Domain Name System

Domain Name System atau sering disingkat menjadi DNS merupakan layanan translasi alamat dari semula alamat IP address menjadi nama yang mudah diingat. Translasi juga dilakukan pada kondisi sebaliknya dimana nama yang kita ketik ketika memanggil sebuah layanan dengan menggunakan sebuah nama, maka akan ditranslasikan menjadi sebuah alamat IP.
Pada jaringan public/internet, server-server DNS saling berbagi library pasangan alamat IP beserta nama domainnya. Hal ini memungkinkan bagi kita untuk mendaftarkan nama domain yang kita kehendaki, melalui salah satu platform penyedia layanan DNS dan nama domain tersebut dapat dikenali oleh semua komputer di seluruh dunia.
Pada prakteknya, jaringan yang dikelola oleh sebuah perusahaan tidak selalu merupakan jaringan publik atau internet. Beberapa perusahaan menyediakan server untuk melayani kebutuhan internal perusahaan saja sehingga hanya dapat diakses dari jaringan lokal. Untuk memenuhi kebutuhan DNS di jaringan lokal, kita dapat membangun layanan DNS server yang menyediakan library pasangan alamat IP beserta domainnya yang dapat diakses hanya dari jaringan lokal. Model DNS server tersebut biasa disebut dengan internal DNS server.

Dynamic Host Control Protocol (DHCP)

DHCP merupakan layanan yang disediakan untuk memberikan konfigurasi IP address secara dinamis dan otomatis untuk setiap host atau komputer yang terhubung di jaringan. Sebagai gambaran, ketika anda menggunakan smartphone atau laptop anda untuk terhubung dengan jaringan WiFi atau hotspot. Maka anda tidak perlu memasukan konfigurasi alamat IP untuk smartphone atau laptop anda. Alamat IP akan terisi secara otomatis dan anda akan langsung dapat terhubung dengan jaringan internet jika tersedia pada hotspot tersebut.

Dnsmasq

Dnsmasq merupakan sebuah layanan yang memberikan berbagai layanan berkaitan dengan penyediaan DNS bagi komputer-komputer dalam jaringan lokal. Dnsmasq dapat memforward permintaan domain yang datang dari client untuk diteruskan ke DNS server sebeneranya yang terkonfigurasi di konfigurasi interface server tersebut. Dengan demikian, maka pengguna komputer client tidak perlu mencari alamat IP DNS server sendiri. Pada sisi client, DNS server dapat diisi dengan alamat IP penyedia dnsmasq yang berada dalam jaringan lokal.
Selain itu, kita juga dapat menambahkan static DNS yang hanya dapat dikenali oleh jaringan lokal kita. Ini sangat mempermudah dalam menggantikan internal DNS server yang biasanya menggunakan bind.
Pada prakteknya, sering kali dnsmasq dikombinasikan dengan layanan gateway internet sehingga alamat DNS server akan sama dengan alamat gateway. Hal ini akan memudahkan kita dalam mengkonfigurasi network adapter pada komputer client.
Fitur lain yang disediakan oleh dnsmasq yaitu DHCP server untuk memberikan alamat IP secara dinamis kepada setiap komputer/host yang terhubung dalam jaringan. Dengan demikian maka dnsmasq dapat disebut sebagai paket lengkap penyedia DHCP server, static DNS internal, sekaligus DNS server publik.

Desain Topologi Jaringan

Topologi Gateway Server
Desain Topologi Jaringan Untuk Latihan
Untuk dapat memulai mengikuti tutorial ini dengan baik, kami merekomendasikan anda untuk menyelesaikan terlebih dahulu artikel tutorial konfigurasi Debian sebagai intenet gateway Pada artikel tersebut anda akan belajar setup environment sesuai topologi diatas, sekaligus konfigurasi IP address, IP forwarding dan firewall NAT. Tutorial dnsmasq dan DHCP ini akan membantu melengkapi konfigurasi yang telah dilakukan pada artikel tersebut.

Dnsmasq vs Bind

Selain dnsmasq, sudah anda bind yang banyak digunakan sebagai layanan penyedia domain name. Namun ada sedikit perbedaan karakteristik pada keduanya. Bind sangat cocok diimplementasikan untuk external network atau public DNS server. Meskipun dapat juga digunakan untuk internal network, konfigurasi pada bind terlalu kompleks dan rumit.
Dnsmasq sangat ideal untuk digunakan pada jaringan lokal atau jaringan internal (intranet). Hal ini karena dnsmasq bekerja dengan membuat library domain yang sederhana. Selain itu dnsmasq juga dapat meresolve layanan DNS yang diikuti oleh server untuk digunakan kepada komputer lain melalui IP dari pemilik dnsmasq itu sendiri. Dengan demikian, seperti yang sudah saya jelaskan sebelumnya, komputer lain dapat menjadikan alamat dari sebuah server gateway sekaligus sebagai server DNS.
Dnsmasq dan bind berjalan pada port yang sama yaitu port 53. Sehingga kita tidak dapat menjalankan kedua program tersebut bersamaan pada sebuah server. Jika anda pernah meng-install bind sebelumnya, maka anda perlu mematikan servicenya atau meng-uninstall bind terlebih dahulu. Kita akan mematikan service bind dengan perintah berikut :
# systemctl stop bind9
# systemctl disable bind9

Dnsmasq Sebagai DNS Server

Langkah pertama tentu kita harus menginstall dnsmasq dengan perintah berikut :
# apt install dnsmasq
Selanjutnya kita dapat mengkonfigurasikan dnsmasq dengan mengedit file /etc/dnsmasq.conf seperti berikut ini
#Cari dengan ctrl+w, Never forward plain names. Kemudian uncomment line di bawahnya menjadi
domain-needed

#Cari dengan ctrl+w, Never forward addresses. Kemudian uncomment line di bawahnya mejadi
bogus-priv

#Cari dengan ctrl+w, strict-order. Kemudian uncomment line tersebut menjadi
strict-order

#Untuk menambahkan domain lokal jika ada, misal nama domain wildanil.lab dengan alamat IP 172.16.0.254
#Cari dengan ctrl+w, non-public domains. Kemudian uncomment line di bawahnya seperti berikut ini
server=/gw.wildanil.lab/172.16.0.254

#Untuk menambahkan domain simple dari file /etc/hosts, maka cari dan uncomment lin berikut
expand-hosts

#Cari dengan ctrl+w, domain for dnsmasq. Kemudian uncomment line di bawah penjelasannya dan diisikan domain name dari server dnsmasq anda. Di contoh ini saya menggunakan wildanil.lab
domain=wildanil.lab

Simpan file tersebut kemudian restart service dnsmasq dengan perintah
#systemctl restart dnsmasq

Jika kita ingin menambahkan static domain, kita dapat menambahkannya di file /etc/hosts dengan contoh seperti berikut, kemudian restart dnsmasq kembali.

10.100.100.1  wildanil.lab  root.wildanil.lab  gw.wildanil.lab
172.16.0.254  wildanil.lab  root.wildanil.lab  gw.wildanil.lab

Pengujian Domain Name

Untuk menguji domain, kita dapat melakukan pemeriksaan domain dengan perintah dig. Jika kita berhasil, maka dig akan memperoleh answer seperti pada gambar berikut.
Hasil Pengujian Domain menggunakan Dnsmasq
Hasil Pengujian Domain menggunakan Dnsmasq

Dnsmasq sebagai DHCP Server

Untuk mengkonfigurasi DHCP server menggunakan dnsmasq kita dapat mengedit file yang sama dengan sebelumnya yaitu /etc/dnsmasq.conf. Kemudian edit pada bagian-bagian berikut.
#Temukan konfigurasi range DHCP dengan mencari line ke 158 kemudian uncomment dan definisikan IP awal, IP akhir, dan leases time.
dhcp-range=172.16.0.101,172.16.0.200,12h

#Temukan default gateway dengan mencari line ke 335 dengan cara tekan ctrl+shift+_. Kemudian uncomment dan definisikan alamat gateway bagi client.
dhcp-option=option:router,172.16.0.254

#Temukan line ke 344 dengan cara tekan ctrl+shift+_. Kemudian uncomment dan tambahkan NTP, DNS, dan subnetmask
dhcp-option=option:ntp-server,172.16.0.254
dhcp-option=option:dns-server,172.16.0.254
dhcp-option=option:netmask,255.255.255.0

#Definisikan interface yang tidak diijinkan menerima DHCP dengan mencari kata kunci no-dhcp-interface kemudian uncomment line tersebut dan definisikan inteface yang tidak diijinkan menerima DHCP
no-dhcp-interface=enp0s3
no-dhcp-interface=enp0s8
Simpan file konfigurasi kemudian restart kembali service dnsmasq dengan perintah
# systemctl restart dnsmasq

Pengujian DHCP Server Menggunakan Dnsmasq

Pengujian dilakukan secara langsung pada Windows 7 VM Client untuk memastikan client berhasil mendapatkan alamat IP ketika konfigurasi IP dibuat obtain IP address automaticly sebagai DHCP client. DHCP server kita berhasil jika status inteface pada windows 7 VM Client seperti pada gambar berikut ini.
DHCP Client Berhasil Mendapatkan IP
DHCP Client Berhasil Mendapatkan IP

Kesimpulan

Tutorial ini melanjutkan tutorial sebelumnya yaitu pada artikel tutorial konfigurasi Debian sebagai intenet gateway. Pada tahap ini kita berhasil menambahkan layanan DNS dan DHCP Server untuk PC Client. Dengan demikian, maka client tidak perlu lagi konfigurasi IP secara manual.
Jika ada yang kurang jelas dari tutorial ini, silahkan tanyakan di kolom komentar.

Terima kasih.

You Might Also Like

0 comments