Dnsmasq adalah server jaringan ringan yang menyediakan fungsi DNS, DHCP, TFTP, dan PXE. Dalam panduan ini, kita akan melihat konfigurasi instalasi baru Dnsmasq sebagai server DHCP mandiri.
DHCP (Dynamic Host Configuration Protocol) adalah proses dimana perangkat jaringan mendapatkan alamat IP. Server DHCP jaringan Anda bertanggung jawab untuk menetapkan alamat unik untuk setiap perangkat baru. Alamat bisa statis atau dinamis, yang terakhir berarti bahwa mereka diberikan secara sewa pendek sehingga IP setiap perangkat dapat berubah dari waktu ke waktu.
Router bertindak sebagai server DHCP di sebagian besar jaringan kecil. Menyiapkan Dnsmasq pada kotak Linux memberi Anda kendali atas proses, serta meningkatkan visibilitas ke setiap kesalahan yang terjadi.
Mempersiapkan Dnsmasq
Dnsmasq disertakan dengan sebagian besar distribusi Linux. Anda biasanya dapat menambahkan dnsmasq paket jika Anda tidak memilikinya. File konfigurasi standar terletak di /etc/dnsmasq.conf; Anda juga dapat menambahkan file ke /etc/dnsmasq.d direktori jika Anda ingin menyimpan pengaturan Anda terpisah dari default.
Dnsmasq pada dasarnya mendengarkan semua antarmuka jaringan Anda. Jika Anda ingin menggunakan antarmuka tertentu, atur sekarang dengan menambahkan atau menghapus komentar pada baris berikut ke file konfigurasi Anda:
# Only operate on eth0
interface=eth0
Mengaktifkan server DNS diaktifkan secara default. Anda dapat mematikannya dengan mengubah port ke 0:
port=0
Dnsmasq sekarang siap bekerja dalam mode khusus DCHP.
Mengonfigurasi Server DHCP Anda
Server DHCP diaktifkan dengan menentukan rentang alamat IP DHCP:
dhcp-range=192.168.0.101,192.168.0.150,255.255.255.0,6h
Contoh ini menginstruksikan Dnsmasq untuk menawarkan alamat IP antara 192.168.0.101 dan 192.168.0.150 pada subnet 255.255.255.0. IP yang diterbitkan akan memiliki masa sewa enam jam, setelah itu klien perlu meminta sewa baru.
Anda harus memodifikasi parameter di atas agar sesuai dengan kebutuhan jaringan Anda. Disarankan untuk mengonfigurasi rentang DHCP sehingga tidak menyertakan alamat IP apa pun yang Anda rencanakan untuk ditetapkan ke perangkat. Ini akan memastikan bahwa perangkat yang menerima sewa dinamis tidak pernah diberi alamat “cadangan”.
Dengan ini, server Dnsmasq Anda akan menjadi gateway default ke perangkat Anda ketika mereka menerima alamat IP. Jika Anda juga tidak menyiapkan DNS, Anda harus mengubahnya sehingga Dnsmasq berhenti menawarkan dirinya sebagai gateway.
dhcp-option=3,192.168.0.50
Ubah alamat IP di router Anda. Perangkat Anda sekarang dapat menggunakan router seperti biasa setelah mendapatkan alamat IP dari Dnsmasq.
Menyiapkan IP Statis
Anda dapat mengatur alamat IP statis dalam file konfigurasi Dnsmasq. Ini memungkinkan Anda memusatkan reservasi IP Anda, alih-alih menyebarkannya ke seluruh file jaringan di perangkat individual.
Untuk menetapkan IP statis, gunakan dhcp-host pengajaran. Ini membutuhkan alamat MAC dan nama host dan IP untuk menetapkan:
dhcp-host=ab:cd:ef:12:34:56,example-host,192.168.0.10,infinite
Ini adalah perangkat dengan MAC ab:cd:ef:12:34:56 diberi nama host example-host dan IP tetap sebesar 192.168.0.10. Durasi sewa ditetapkan sebesar infinite untuk memastikan bahwa tidak ada pembaruan yang diperlukan dan IP tidak akan pernah berubah.
Untuk mengatur IP statis tambahan, cukup ulangi dhcp-host mengajar sebanyak yang Anda butuhkan. Minimal, pertimbangkan untuk menambahkan host DHCP eksplisit untuk router Anda sehingga Anda dapat mengaksesnya dengan IP tetap dengan andal. Itu harus sesuai dengan nilai yang Anda tetapkan dhcp-option garis di atas.
Anda dapat memuat informasi host dari file atau direktori terpisah menggunakan --dhcp-hostsfile dan --dhcp-hostsdir Pilihan. Dalam hal direktori, Dnsmasq akan secara otomatis memuat perubahan baru tanpa perlu memulai ulang.
Menggunakan Server DHCP Anda
Setelah selesai menyiapkan Dnsmasq, uji konfigurasinya untuk memastikan perubahan Anda valid:
dnsmasq --test
Selanjutnya restart layanan Dnsmasq untuk menerapkan perubahan Anda:
sudo systemctl restart dnsmasq
Nonaktifkan server DHCP bawaan router Anda. Kemudian atur router atau perangkat klien Anda untuk menggunakan IP server Dnsmasq Anda untuk DHCP. Langkah-langkahnya akan bervariasi menurut produsen router, jadi lihat dokumentasi perangkat Anda jika Anda tersesat.
Sekarang instans Anda berjalan sebagai server DHCP jaringan Anda, Anda harus memaksa pembaruan alamat IP pada perangkat Anda untuk menerima sewa dari Dnsmasq. Mulai ulang layanan jaringan, systemctl restart networkingatau gunakan ifdown dan ifup untuk menjatuhkan dan membangun kembali koneksi Anda.
Dnsmasq mencatat alamat IP yang ditetapkan dalam file sewanya. Anda dapat memeriksa file ini untuk melihat perangkat aktif di jaringan Anda dan memeriksa IP yang disewa dengan benar:
cat /var/lib/misc/dnsmasq.leases
Jika Anda menemukan kesalahan, periksa log layanan Dnsmasq untuk melihat apa yang salah:
sudo journalctl -u dnsmasq.service
Mode Resmi
Satu tantangan yang mungkin Anda hadapi saat memperkenalkan server Anda ke jaringan yang ada adalah waktu perangkat habis saat memperbarui IP mereka. Setiap klien akan mengirimkan IP lamanya ke server DHCP, memungkinkan IP yang sama untuk ditetapkan jika masih tersedia. Dalam kasus instance baru Dnsmasq, ia tidak memiliki catatan pasangan klien/IP yang ada sehingga permintaan akan diabaikan.
Akhirnya klien kehabisan waktu dan mengajukan permintaan baru, kali ini meminta alamat IP yang tersedia. Permintaan kedua akan berhasil tetapi batas waktu mungkin cukup lama, berpotensi menyebabkan penundaan yang nyata selama startup atau inisialisasi tumpukan jaringan.
Menambahkan baris ini ke file konfigurasi Anda akan menyelesaikan masalah ini jika Dnsmasq akan menjadi satu-satunya server DHCP di jaringan Anda:
dhcp-authoritative
Mode otoritatif menginstruksikan Dnsmasq untuk menerima permintaan dari klien bahkan jika mereka mengklaim sebelumnya memegang IP yang tidak mereka rekam. Klien masih akan masuk ke jaringan dan diberi IP, menghilangkan kebutuhan untuk membuat dua permintaan yang dipisahkan oleh batas waktu yang lama.
Menyesuaikan Pengaturan Lainnya
Beberapa pengaturan lain yang layak disebutkan:
dhcp-sequential-ip
Dnsmasq pada dasarnya meng-hash setiap alamat MAC klien untuk menentukan IP yang mereka terima. Ini berarti bahwa klien biasanya menerima alamat IP yang sama setiap kali mereka terhubung, bahkan jika tidak ada host statis yang dikonfigurasi. Pengaturan dhcp-sequential-id opsi berarti bahwa Dnsmasq akan mengeluarkan IP dalam urutan numerik berurutan, mulai dari awal rentang IP yang Anda tentukan.
dhcp-lease-max=100
Pengaturan ini mengontrol berapa banyak sewa bersamaan yang akan diterbitkan Dnsmasq. Standarnya adalah 1000. Jika Anda berada di jaringan kecil, pertimbangkan untuk mengurangi nilai ini untuk melindungi Dnsmasq dari serangan penolakan layanan. Host yang disusupi dapat mengirim permintaan DHCP berbahaya untuk membuat ribuan sewa yang berlebihan.
dhcp-alternate-port=8068,8068
Ubah nomor port yang digunakan untuk server dan klien DHCP. Port default adalah 67 dan 68; ini biasanya tidak boleh diubah kecuali diperlukan oleh infrastruktur jaringan Anda.
dhcp-leasefile=/dhcp-leases
Ubah jalur file yang digunakan untuk menyimpan informasi sewa DHCP. Ini default untuk /var/lib/misc/dnsmasq.leases.
Ringkasan
Dnsmasq mudah diatur sebagai server DHCP sederhana untuk jaringan lokal Anda. Ini dapat bekerja bersama atau secara independen dari fungsionalitas DNS perangkat lunak.
Meskipun merupakan server yang sengaja dibuat ringan, Dnsmasq mendukung banyak opsi konfigurasi yang berbeda untuk memfasilitasi instalasi yang lebih kompleks. Anda dapat menggunakannya untuk mengatur relai dan proxy DHCP, mengonfigurasi kepatuhan Dnsmasq dengan spesifikasi DHCP, dan menambahkan skrip khusus yang akan dieksekusi saat sewa dibuat dan dimusnahkan. Fasilitas ini memungkinkan Anda untuk dengan cepat mengembangkan instans Dnsmasq eksperimental menjadi instans yang diperkeras yang lebih cocok untuk penggunaan tingkat produksi pada jaringan yang lebih besar.

