Dnsmasq adalah singkatan dari "kependekan dari DNS masquerade" adalah forwarder DNS sederhana, ringan dan mudah digunakan yang digunakan untuk jaringan kecil. Itu dapat dikonfigurasi sebagai cache DNS dan server DHCP dan mendukung protokol IPv4 dan IPv6. Saat menerima permintaan DNS apa pun, itu akan menjawabnya dari cache atau meneruskan ke server DNS yang berbeda.
Dnsmasq dibuat dari tiga subsistem:
- Subsistem DNS : Ini digunakan untuk menyimpan berbagai jenis catatan termasuk, A, AAAA, CNAME, dan PTR.
- Subsistem DHCP : Mendukung DHCPv4, DHCPv6, BOOTP dan PXE
- Subsistem Iklan Router : Ini menyediakan konfigurasi otomatis dasar untuk host IPv6. Ini dapat digunakan sendiri atau bersama dengan DHCPv6.
Dalam tutorial ini, kami akan menunjukkan cara menyiapkan server DNS lokal dengan Dnsmasq di server Ubuntu 20.04.
Prasyarat
- Server yang menjalankan Ubuntu 20.04.
- Sandi root dikonfigurasi untuk server.
Memulai
Pertama, disarankan untuk memperbarui paket sistem Anda ke versi terbaru. Anda dapat memperbarui semua paket dengan menjalankan perintah berikut:
apt-get update -y
Setelah memperbarui semua paket, Anda harus menonaktifkan layanan yang diselesaikan Systemd di sistem Anda. Layanan yang diselesaikan dengan sistem digunakan untuk resolusi nama jaringan ke aplikasi lokal.
Anda dapat menonaktifkannya dengan menjalankan perintah berikut:
systemctl disable --now systemd-resolved
Setelah layanan dinonaktifkan, Anda harus menghapus file resolv.conf default dan membuat yang baru dengan detail server DNS kustom Anda.
Anda dapat menghapus file resolv.conf default dengan perintah berikut:
rm -rf /etc/resolv.conf
Selanjutnya, tambahkan server DNS Google ke file resolv.conf dengan perintah berikut:
echo "nameserver 8.8.8.8" > /etc/resolv.conf
Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.
Instal Dnsmasq
Secara default, Dnsmasq tersedia di repositori default Ubuntu 20.04. Anda dapat menginstalnya hanya dengan menjalankan perintah berikut:
apt-get install dnsmasq dnsutils ldnsutils -y
Setelah instalasi selesai, layanan Dnsmasq akan dimulai secara otomatis. Anda dapat memeriksa status Dnsmasq dengan perintah berikut:
systemctl status dnsmasq
Anda akan mendapatkan output berikut:
dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server Loaded: loaded (/lib/systemd/system/dnsmasq.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2020-11-02 11:02:01 UTC; 15s ago Main PID: 17726 (dnsmasq) Tasks: 1 (limit: 2282) Memory: 868.0K CGroup: /system.slice/dnsmasq.service ??17726 /usr/sbin/dnsmasq -x /run/dnsmasq/dnsmasq.pid -u dnsmasq -7 /etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new --local-service --trust-anchor=.,20326,8,2,e> Nov 02 11:02:12 ubuntu2004 systemd[1]: Starting dnsmasq - A lightweight DHCP and caching DNS server... Nov 02 11:02:12 ubuntu2004 dnsmasq[17705]: dnsmasq: syntax check OK. Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: started, version 2.80 cachesize 150 Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: DNS service limited to local subnets Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: compile time options: IPv6 GNU-getopt DBus i18n IDN DHCP DHCPv6 no-Lua TFTP conntrack ipset auth DNSSEC loop-detect inotify dumpfi> Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: reading /etc/resolv.conf Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: using nameserver 8.8.8.8#53 Nov 02 11:02:12 ubuntu2004 dnsmasq[17726]: read /etc/hosts - 7 addresses Nov 02 11:02:12 ubuntu2004 systemd[1]: Started dnsmasq - A lightweight DHCP and caching DNS server.
Setelah selesai, Anda dapat melanjutkan ke langkah berikutnya.
Konfigurasi Dnsmasq
Selanjutnya, Anda perlu mengkonfigurasi Dnsmasq sebagai server DNS lokal. Anda dapat melakukannya dengan mengedit file konfigurasi utama Dnsmasq:
nano /etc/dnsmasq.conf
Ubah baris berikut:
port=53 domain-needed bogus-priv listen-address=127.0.0.1,your-server-ip expand-hosts domain=dns-example.com cache-size=1000
Simpan dan tutup file setelah Anda selesai.
Selanjutnya, Anda perlu menambahkan alamat ip server Anda sebagai server nama utama di file resolv.conf Anda. Anda dapat menambahkannya dengan perintah berikut:
nano /etc/resolv.conf
Tambahkan baris berikut di atas baris "nameserver 8.8.8.8":
nameserver your-server-ip
Simpan dan tutup file setelah Anda selesai. Selanjutnya, verifikasi server untuk kesalahan konfigurasi dengan perintah berikut:
dnsmasq --test
Jika semuanya baik-baik saja, Anda akan mendapatkan output berikut:
dnsmasq: syntax check OK.
Terakhir, restart layanan Dnsmasq untuk menerapkan perubahan:
systemctl restart dnsmasq
Pada titik ini, Dnsmasq dimulai dan mendengarkan pada port 53. Anda dapat memverifikasinya dengan perintah berikut:
ss -alnp | grep -i :53
Anda akan mendapatkan output berikut:
udp UNCONN 0 0 0.0.0.0:53 0.0.0.0:* users:(("dnsmasq",pid=41051,fd=4)) udp UNCONN 0 0 [::]:53 [::]:* users:(("dnsmasq",pid=41051,fd=6)) tcp LISTEN 0 32 0.0.0.0:53 0.0.0.0:* users:(("dnsmasq",pid=41051,fd=5)) tcp LISTEN 0 32 [::]:53 [::]:* users:(("dnsmasq",pid=41051,fd=7))
Tambahkan Data DNS ke Server Dnsmasq
Selanjutnya, Anda perlu mengedit file /etc/hosts Anda dan menambahkan entri server DNS lokal.
nano /etc/hosts
Tambahkan baris berikut:
your-server-ip host1.dns-example.com
Simpan dan tutup file setelah Anda selesai.
Verifikasi Resolusi Server Dnsmasq
Pada titik ini, Dnsmasq diinstal dan dikonfigurasi. Tidak, saatnya memverifikasi resolusi DNS.
Anda dapat menggunakan perintah dig untuk memeriksa resolusi DNS seperti yang ditunjukkan di bawah ini:
dig host1.dns-example.com +short
Jika semuanya baik-baik saja, Anda akan melihat ip server Anda di output berikut:
your-server-ip
Anda juga dapat memverifikasi resolusi DNS eksternal dengan perintah berikut:
dig howtoforge.com +short
Anda akan mendapatkan output berikut:
172.67.68.93 104.26.3.165 104.26.2.165
Konfigurasikan Klien Jarak Jauh untuk Menggunakan Server DNS Dnsmasq
Selanjutnya, Anda perlu mengonfigurasi klien jarak jauh untuk menggunakan server DNS DNS Anda sebagai server DNS default.
Pertama, instal alat DNS dengan perintah berikut:
apt-get install dnsutils ldnsutils -y
Setelah terinstal, Anda perlu mengedit file /etc/resolv.conf dan entri server DNS Dnsmasq Anda.
nano /etc/resolv.conf
Tambahkan baris berikut di awal file:
nameserver your-server-ip
Simpan dan tutup file setelah Anda selesai.
Selanjutnya, verifikasi resolusi DNS lokal dengan perintah berikut:
dig host1.dns-example.com
Anda akan melihat output berikut:
; DiG 9.9.5-3ubuntu0.4-Ubuntu host1.dns-example.com ;; global options: +cmd ;; Got answer: ;; HEADER opcode: QUERY, status: NOERROR, id: 26401 ;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;host1.dns-example.com. IN A ;; ANSWER SECTION: host1.dns-example.com. 0 IN A 45.58.32.165 ;; Query time: 301 msec ;; SERVER: 45.58.32.165#53(45.58.32.165) ;; WHEN: Mon Nov 02 16:49:37 IST 2020 ;; MSG SIZE rcvd: 66
Selanjutnya, Anda perlu memverifikasi server DNS Anda untuk caching. Anda dapat memeriksanya menggunakan utilitas bor.
Pertama, jalankan perintah berikut:
drill google.com | grep "Query time"
Anda akan melihat output berikut:
;; Query time: 290 msec
Selanjutnya, jalankan kembali perintah untuk memeriksa apakah caching berfungsi atau tidak:
drill google.com | grep "Query time"
Anda akan melihat bahwa waktu kueri sekarang berkurang menjadi 4 mdtk:
;; Query time: 4 msec
Kesimpulan
Selamat! Anda telah berhasil menginstal dan mengkonfigurasi Dnsmasq sebagai server DNS lokal dan Ubuntu 20.04. Saya harap Anda sekarang dapat dengan mudah menerapkannya di jaringan lokal Anda untuk resolusi nama.