Cara Mengatur Caching DNS menggunakan dnsmasq di Ubuntu

Diterbitkan: 2022-10-19

DNSmasq dapat digunakan untuk cache permintaan DNS untuk distribusi Linux. Namun, itu bisa sedikit menantang.

Cache DNS berfungsi untuk mempercepat prosedur pencarian DNS yang mengubah nama domain situs web ke alamat IP yang terkait. Saat beberapa pengguna di jaringan Anda mengunjungi alamat situs web yang sama, memanfaatkan server cache DNS lokal dapat mengurangi jumlah waktu yang diperlukan web untuk memuat.

Pertama Mari kita lihat apa itu DNS Caching.

Apa Itu Caching DNS?

DNS digunakan oleh internet untuk melacak semua situs online yang dapat diakses publik dan alamat IP terkaitnya. Ini dapat dibandingkan dengan direktori telepon. Menggunakan DNS mencegah kita dari harus menghafal IP setiap situs, yang diperlukan untuk infrastruktur jaringan untuk berinteraksi dengan situs internet.

Setiap kali Anda meminta mesin pencari untuk menampilkan halaman web, inilah yang sebenarnya terjadi di balik layar.

Meskipun sistem Anda memiliki akses ke sejumlah besar server DNS eksternal, masalahnya adalah memiliki replika pusat DNS masih mempercepat transmisi dan resolusi. Inilah saatnya caching DNS berperan.

dnscache

Sebelum mengirim permintaan ke web, cache DNS menangani resolusi identitas untuk domain yang baru-baru ini dan yang sering diakses dalam upaya untuk lebih mempercepat prosedur.

Server DNS diakses setiap kali diperlukan untuk menyelesaikan alamat IP ke nama domain. Ini dapat memberikan beban tambahan pada server DNS, terutama jika situs web menerima banyak permintaan secara bersamaan.

Cache DNS digunakan untuk mengurangi permintaan DNS dan waktu respons. Alamat IP yang diselesaikan bersama dengan detail host disimpan secara lokal. Daripada memulai kueri DNS baru, hasilnya diambil dari memori cache DNS saat IP atau nama domain berikutnya harus diselesaikan.

Bagaimana caching DNS membantu memperbaiki masalah penyelesaian DNS intermiten pada Instans Amazon EC2?

Sebagian besar sistem Linux tidak menggunakan cache DNS lokal. Ini menyiratkan bahwa semua permintaan DNS dikirim langsung ke resolver DNS otoritatif yang disediakan oleh Amazon, yang memiliki batasan, pada jumlah permintaan yang dapat diproses sekaligus. Masalah resolusi DNS terjadi ketika ada banyak permintaan.

Menyebarkan cache DNS lokal di sistem akan membantu Anda mengurangi penggunaan CPU dan jaringan sekaligus mencegah kesalahan resolusi DNS . Cache DNS lokal merespons kueri yang dibuat ke sumber daya DNS eksternal seperti Amazon RDS dan S3.

Protokol DHCP digunakan selama peluncuran oleh instans Amazon EC2 yang terhubung ke Amazon VPC untuk meminta alamat server DNS.

dnsaw

Saat Anda menggunakan Amazon VPC untuk membangun virtual private cloud, Route 53 DNS Resolver secara efektif menggunakan resolver pada VPC untuk merespons permintaan DNS untuk instans EC2 yang berjalan di bawah alamat web Amazon VPC lokal dan entri di zona yang dikelola secara pribadi. Resolver membuat pencarian berulang di seluruh server DNS publik untuk semua alamat web tambahan.

Cache DNS berfungsi sebagai catatan sementara dari kueri DNS sebelumnya yang dapat diperiksa dengan cepat oleh sistem kami saat mencoba mengakses situs web online. Itu memelihara log dari setiap sesi yang ada dan selanjutnya. Cache DNS ini membuat resolusi domain lebih mudah dan mencegah kesalahan dengan instans Amazon EC2 Linux.

Banyak pengguna biasanya menggunakan layanan Route 53 Amazon untuk DNS saat mengakses AWS. Ini sangat mudah digunakan dan hampir gratis. Namun ada beberapa alasan yang dapat mempengaruhi keputusan pengguna untuk menggunakan server DNS lokal.

Meskipun bind9 masih merupakan opsi yang bagus untuk menyiapkan server cache DNS lokal, dnsmasq jauh lebih mudah untuk menginstal dan mengonfigurasi baik pada instans EC2 dan pada mesin lokal.

Apa itu dnsmasq?

DNSmasq adalah alat terkait Linux yang mendukung DNS, DHCP, TFTP, dan caching DNS. Itu dibuat agar ringkas dan ringan, sehingga ideal untuk jaringan dan firewall dengan batasan sumber daya yang lebih sedikit.

Sangat mudah untuk menginstal dan mengkonfigurasi. Untuk mengatur DNS dan DHCP untuk subnetwork, dnsmasq adalah solusi yang fleksibel dan praktis.

Dimungkinkan untuk mengatur pengidentifikasi yang ditetapkan DHCP ini dan instruksi terkait untuk setiap server atau untuk pengontrol yang mendasarinya. Opsi DHCP dinamis dan statis keduanya didukung oleh dnsmasq. Ini portabel dan memiliki kemampuan untuk mengelola DNS dan DHCP untuk setidaknya 1.000 klien.

Ketika permintaan DNS diterima, dnsmasq merespons dari cache lokal atau mengirimkannya ke server DNS yang berwenang. Selain menanggapi permintaan DNS untuk alamat dengan konfigurasi DHCP, ia memeriksa isi file /etc/hosts untuk mengidentifikasi nama host lokal yang tidak terdaftar di DNS publik.

Memanfaatkan alat dnsmasq alih-alih cache DNS bawaan browser sangat meningkatkan kinerja penelusuran internet. Ini sangat ideal untuk lingkungan terintegrasi dengan sumber daya terbatas karena sangat mudah diatur dan membutuhkan ruang disk yang sangat sedikit.

Fitur dnsmasq

  • Sangat mudah untuk mengintegrasikan server DNS internal menggunakan dnsmasq dengan mengonfigurasinya untuk mengirimkan kueri resolusi nama domain tertentu ke server otoritatif tertentu.
  • Beban kerja server berkurang dan keandalan ditingkatkan menggunakan server DNS lokal yang dikonfigurasi.
  • Konfigurasi DNS untuk titik akhir yang diaktifkan firewall agak mudah dan independen dari DNS yang digunakan oleh ISP.
  • Jika port yang terhubung ke Internet tidak dapat diakses saat melakukan pemeriksaan DNS di komputer, operasi pencarian akan langsung dihentikan.
  • Melalui PPP (Point-to-point protocol) atau kueri DHCP, dnsmasq benar-benar dapat dikonfigurasi untuk mengumpulkan data secara berkala langsung dari server resolusi domain yang mendasarinya.

Instalasi

Layanan systemd-resolved harus dimatikan sebelum menginstal dan mengonfigurasi utilitas dnsmasq .

 systemctl stop systemd-resolved

Anda juga dapat menyembunyikannya menggunakan atribut mask sehingga tidak akan dimulai secara otomatis saat Anda reboot.

 systemctl mask systemd-resolved

Menginstal dnsmasq adalah tindakan awal yang perlu Anda lakukan setelah mematikan systemd-resolved . DNSmasq sudah diinstal sebelumnya di hampir semua distribusi Linux. Jika tidak, Anda dapat menginstalnya secara manual. Luncurkan terminal perintah, lalu ketik perintah berikut untuk melakukannya.

 sudo apt-get install dnsmasq

Gunakan perintah berikut jika Anda pengguna yum:

 sudo yum install -y dnsmasq

Perintah ini secara otomatis menginstal alat dan memulai dnsmasq di latar belakang.

dnsmapinstall

Setelah instalasi berhasil, Anda dapat memeriksa status dnsmasq dengan menggunakan perintah di bawah ini.

 systemctl status dnsmasq

Jika menunjukkan statusnya sebagai "aktif (berjalan)", itu berarti instalasi selesai dan dikonfigurasi ke port 53. Jika menunjukkan statusnya sebagai "tidak aktif (mati)", maka Anda perlu me-restart mesin Ubuntu dan dnsmasq lagi. Ini akan memperbaiki kesalahan.

dnsmasqstatus

Konfigurasi

Dnsmasq sekarang siap diatur di mesin Anda sebagai server DNS caching lokal. File konfigurasi default terletak di /etc/dnsmasq.conf . File konfigurasi ini harus dimodifikasi untuk mengatur utilitas dnsmasq di sistem.

Gunakan perintah ini untuk membuka dan mengedit file konfigurasi.

 nano /etc/dnsmasq.conf

File konfigurasi harus diedit hanya dengan hak akses root. Hapus saja semua yang ada di file termasuk komentar dan cukup salin-tempel dan simpan pengaturan konfigurasi ini.

 port=53 domain-needed bogus-priv listen-address=127.0.0.1 expand-hosts domain=geek-demo.com cache-size=1000

Mari saya jelaskan secara singkat apa arti masing-masing parameter.

  • Port – Untuk menentukan atau mengikat port yang akan digunakan Dnsmasq untuk menerima permintaan DNS.
  • domain-needed – Mengirim hanya nama domain ke server DNS upstream.
  • bogus-priv – mencegah penerusan domain dan port
  • mendengarkan-alamat – Untuk menentukan alamat server nama. Biasanya, localhost digunakan sebagai default, untuk menyiapkan server DNS lokal.
  • domain – Untuk mengonfigurasi domain yang ditambahkan dnsmasq ke pengidentifikasi pendek.
  • cache-size – Ukuran caching DNS maksimum yang diizinkan dalam penyimpanan.
dnsmasqhost

Setelah melakukan semua perubahan yang diperlukan, simpan dan tutup file konfigurasi. Dan langkah selanjutnya adalah mengedit file /etc/resolv.conf untuk menambahkan alamat resolusi host lokal. Gunakan perintah di bawah ini untuk membuka dengan editor nano.

 nano /etc/resolv.conf

Di sini, Anda dapat menemukan semua server nama yang digunakan sistem Anda untuk resolusi alamat. Dalam daftar itu, tambahkan juga alamat loopback. Tambahkan " nameserver 127.0.0.1 " dan simpan di baris pertama.

dnsresolve

Simpan dan keluar dari file konfigurasi. Agar pengaturan yang diperbarui berlaku, mulai ulang utilitas dnsmasq.

 systemctl restart dnsmasq

Menguji server Caching DNS Lokal

Sangat mudah untuk menguji server DNS lokal. Buka baris perintah dan gunakan perintah dig untuk memeriksa caching DNS. Saat Anda menjalankan perintah dig untuk pertama kalinya, hasilnya seharusnya cukup umum.

 ┌──(rootkali)-[/home/writer] └─# dig geekflare.com 1 ; <<>> DiG 9.18.0-2-Debian <<>> geekflare.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 623 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 512 ;; QUESTION SECTION: ;geekflare.com. IN A ;; ANSWER SECTION: geekflare.com. 227 IN A 172.66.43.163 geekflare.com. 227 IN A 172.66.40.93 ;; Query time: 31 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP) ;; WHEN: Sat Oct 15 07:52:49 EDT 2022 ;; MSG SIZE rcvd: 74

Di sini, harap perhatikan bahwa waktu kueri adalah sekitar 31 mdtk untuk menanyakan detail dari server nama upstream. Jalankan perintah dig yang sama sekali lagi, dan Anda akan melihat penurunan waktu kueri yang signifikan.

 ┌──(rootkali)-[/home/writer] └─# dig geekflare.com 1 ; <<>> DiG 9.18.0-2-Debian <<>> geekflare.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 21942 ;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;geekflare.com. IN A ;; ANSWER SECTION: geekflare.com. 281 IN A 172.66.40.93 geekflare.com. 281 IN A 172.66.43.163 ;; Query time: 0 msec ;; SERVER: 127.0.0.1#53(127.0.0.1) (UDP) ;; WHEN: Sat Oct 15 07:58:10 EDT 2022 ;; MSG SIZE rcvd: 74

Di sini, waktu kueri adalah 0 mdtk. Hal ini disebabkan oleh fakta bahwa setelah melakukan pencarian awal, dnsmasq menyimpan data, dan semua pencarian selanjutnya dilakukan seketika karena pemanfaatan cache yang disimpan. Restart dnsmasq diperlukan jika Anda ingin menghapus cache DNS yang tersimpan.

Membungkus

Pada artikel ini, kita telah melihat cara mengatur dan mengkonfigurasi dnsmasq agar berfungsi sebagai server DNS lokal. Anda mungkin juga tertarik untuk mempelajari tentang cara mengubah server DNS untuk Penjelajahan Lebih Cepat di berbagai sistem operasi.