Bagaimana cara mengatur Server Caching DNS lokal di Linux?

Pencarian DNS biasanya bukan sesuatu yang perlu Anda khawatirkan. Terkadang Anda harus melakukannya!


Jika ISP rumah atau kantor Anda memiliki server nama yang lambat atau server Anda melakukan banyak pencarian, maka Anda memerlukan server DNS caching lokal.

Bagaimana server DNS caching membantu saya?

Server DNS caching bekerja dengan melakukan semua permintaan DNS yang dibuat oleh sistem Anda dan kemudian menyimpan, atau caching, hasilnya di memori. Setelah hasilnya di-cache dalam memori kapan saja Anda membuat permintaan duplikat untuk sebuah domain, hasilnya akan dilayani hampir secara instan dari memori.

Ini mungkin kelihatannya tidak terlalu penting, tetapi jika server DNS ISP Anda meluangkan waktu untuk merespons, ini akan sangat memperlambat penelusuran internet Anda. Misalnya, halaman beranda saluran berita AS MSNBC perlu menghubungi lebih dari 100 nama domain unik untuk memuat dengan benar. Jika server nama ISP Anda mengambil bahkan 10 detik lebih lama dari biasanya untuk merespons, itu berarti bahwa halaman tersebut akan memakan waktu 10 detik lebih lama untuk menyelesaikan pemuatan.

Server DNS caching lokal tidak hanya akan membantu di rumah atau kantor Anda, tetapi juga akan membantu di server Anda. Jika Anda memiliki aplikasi yang membuat banyak pencarian DNS, misalnya, server email yang sibuk menjalankan perangkat lunak anti-spam, ia akan menerima peningkatan kecepatan dari server DNS caching lokal.

Akhirnya, systemd-resolved mendukung standar DNS terbaru yang aman DNSSEC dan DNSoverTLS atau Dot. Ini membantu Anda tetap aman dan menjaga privasi Anda online.

DNS caching lokal mana yang akan kami gunakan?

Server DNS caching lokal yang akan kami aktifkan dan konfigurasikan dalam panduan ini adalah systemd-diselesaikan. Alat ini adalah bagian dari systemd seperangkat alat manajemen sistem. Jika sistem Anda menggunakan systemd, dan hampir semua distribusi Linux utama adalah, maka Anda sudah menginstal systemd-diselesaikan tetapi tidak berjalan. Sebagian besar distribusi tidak menggunakan systemd-resolved walaupun itu ada.

systemd-resolved berfungsi dengan menjalankan server DNS caching lokal kecil yang akan kami konfigurasikan untuk mulai saat boot. Kami kemudian akan mengkonfigurasi ulang sisa sistem untuk mengarahkan permintaan DNS mereka ke sistem caching lokal dan DNS yang diselesaikan.

Cara memeriksa apakah Anda sudah menggunakan systemd-diselesaikan?

Beberapa distribusi Linux sudah menggunakan systemd-diselesaikan secara default seperti Ubuntu 19.04.

Jika Anda sudah menjalankan systemd-diselesaikan maka Anda tidak perlu mengaktifkannya atau mengkonfigurasi sistem Anda untuk menggunakannya. Namun, Anda mungkin perlu memastikan bahwa alat manajemen jaringan seperti NetworkManager dikonfigurasi dengan benar karena mereka dapat mengabaikan konfigurasi jaringan sistem.

Sebelum melanjutkan ke bagian selanjutnya jalankan perintah berikut untuk memeriksa apakah Anda sudah menjalankan systemd-resolved:

$ resolvectl status

Jika Anda menerima pesan:

$ resolvectl status
Gagal mendapatkan data global: Unit dbus-org.freedesktop.resolve1.service tidak ditemukan.

Kamu adalah tidak menjalankan systemd-diselesaikan dan harus pindah ke bagian selanjutnya. Sebaliknya, jika Anda melihat output yang dimulai dengan sesuatu seperti berikut:

Global
Pengaturan LLMNR: ya
Pengaturan MulticastDNS: ya
Pengaturan DNSOverTLS: oportunistik
Pengaturan DNSSEC: bolehkan downgrade
DNSSEC didukung: no
Server DNS saat ini: 1.1.1.1
Server DNS: 1.1.1.1
1.0.0.1

Maka Anda sudah menjalankan systemd-resolved dan tidak perlu mengaktifkannya.

Mengaktifkan dan mengonfigurasi systemd-diselesaikan

Kita tidak perlu menginstal systemd-diselesaikan karena sudah menjadi bagian dari systemd. Yang perlu kita lakukan adalah memulainya untuk menjalankan server cache DNS dan kemudian mengaktifkannya untuk memulainya saat boot.

Jalankan perintah berikut dari prompt shell saat sudo mengaktifkan pengguna non-root untuk memulai penyelesaian sistemd:

$ sudo systemctl mulai systemd-resolved.service

Selanjutnya, jalankan perintah berikut untuk memulai systemd-diselesaikan pada boot-up sistem:

$ sudo systemctl mengaktifkan systemd-resolved.service

Item terakhir dari konfigurasi yang tersisa adalah untuk mengatur server DNS yang akan diselesaikan oleh systemd-query ke domain yang diselesaikan. Ada banyak opsi di sini, tetapi salah satu dari pasangan berikut ini gratis, cepat, dan keduanya mendukung DNSSEC dan DoT:

Google Public DNS

  • 8.8.8.8
  • 8.8.4.4

Cloudflare Public DNS

  • 1.1.1.1
  • 1.0.0.1

Buka file konfigurasi utama yang diselesaikan sistemd dengan editor teks favorit Anda, di sini saya telah menggunakan nano:

$ sudo nano /etc/systemd/resolved.conf

Edit baris dimulai

# DNS =

Sehingga sepasang alamat IP terdaftar. Di sini, server Cloudflare DNS ditunjukkan:

DNS = 1.1.1.1 1.0.0.1

Simpan dan keluar dari editor teks. Kita sekarang perlu me-restart systemd-resolved sehingga mulai menggunakan nameserver:

$ sudo systemctl restart systemd-resolved.service

systemd-resolved sekarang berjalan dan siap untuk mulai mempercepat dan mengamankan permintaan DNS segera setelah kami mengkonfigurasi sistem untuk mulai menggunakannya.

Mengkonfigurasi sistem untuk menggunakan systemd-diselesaikan

Sistem Anda dapat dikonfigurasi dalam beberapa cara untuk menggunakan systemd-diselesaikan, tetapi kami akan melihat dua konfigurasi yang mencakup sebagian besar kasus penggunaan. Yang pertama adalah konfigurasi yang disarankan, dan yang kedua adalah konfigurasi kompatibilitas. Perbedaan antara keduanya adalah bagaimana file /etc/resolv.conf dikelola.

File /etc/resolv.conf menyimpan alamat IP nameserver yang diminta oleh program pada sistem. Program yang perlu membuat kueri DNS akan berkonsultasi file ini untuk mencari tahu server apa yang harus mereka hubungi untuk membuat kueri tersebut.

Dua mode systemd-diselesaikan pusat tentang bagaimana konten file ini dikelola. Dalam mode yang direkomendasikan, /etc/resolv.conf dibuat symlink ke /run/systemd/resolve/stub-resolv.conf. File ini dikelola oleh systemd-resolved dan karenanya systemd-resolved mengelola informasi konfigurasi DNS untuk semua program lain pada sistem.

Ini dapat menyebabkan masalah ketika program lain mencoba untuk mengelola konten /etc/resolv.conf. Mode kompatibilitas meninggalkan /etc/resolv.conf di tempatnya memungkinkan program lain untuk mengelolanya sementara sistemd diselesaikan menggunakan informasi DNS itu. Dalam mode ini, program lain yang mengelola /etc/resolv.conf harus dikonfigurasi untuk menetapkan 127.0.0.53 sebagai server nama sistem di /etc/resolv.conf.

Mengkonfigurasi mode yang disarankan

Ketika kita mengkonfigurasi mode ini systemd-resolved akan mengelola /etc/resolv.conf dengan menjadikannya symlink ke /run/systemd/resolve/stub-resolv.conf. Kami perlu melakukan ini dengan tangan karena tidak dikonfigurasi secara otomatis.

Pertama, hapus atau ganti nama file /etc/resolv.conf yang ada. Mengganti nama adalah pilihan yang lebih baik untuk menghapusnya karena akan memiliki efek yang sama tetapi Anda selalu dapat merujuk ke yang asli jika Anda memerlukan informasi yang dikandungnya. Di sini, kami mengganti nama /etc/resolv.conf menggunakan perintah mv:

$ sudo mv /etc/resolv.conf /etc/resolv.conf.original

Selanjutnya, buat symlink:

$ sudo ln -s /run/systemd/resolve/stub-resolv.conf /etc/resolv.conf

Akhirnya, restart systemd-diselesaikan:

$ sudo systemctl restart systemd-resolved.service

Mengkonfigurasi mode kompatibilitas

Dalam mode ini, Anda perlu memastikan bahwa server nama lokal yang telah diselesaikan dengan systemd telah dipertanyakan oleh layanan sistem. Buka /etc/resolv.conf di editor teks, di sini editor nano digunakan:

$ sudo nano /etc/resolv.conf

Hapus semua baris yang Anda temui yang dimulai dengan “nameserver” dan tambahkan baris ini:

nameserver 127.0.0.53

Hasil edit ini dapat diubah oleh program lain yang mengelola /etc/resolv.conf. Jika demikian, Anda harus mengonfigurasi program tersebut untuk menggunakan server nama ini agar pengeditan permanen.

Debugging systemd diselesaikan

Menemukan persis bagaimana sistem Anda membuat permintaan DNS setelah Anda membuat perubahan ini bisa sulit. Metode cara paling efektif untuk mengamati apa yang terjadi adalah dengan menempatkan systemd-resolved ke mode debugging dan menonton file log.

systemd-resolved adalah layanan systemd, yang berarti dapat dengan mudah dimasukkan ke mode debugging dengan membuat file layanan drop-in yang berisi pengaturan debug. Perintah berikut akan membuat file yang benar di lokasi yang benar:

$ sudo systemctl edit systemd-resolved.service

Rekatkan baris berikut ke editor lalu simpan dan keluar:

[Layanan]
Lingkungan = SYSTEMD_LOG_LEVEL = debug

Layanan yang diselesaikan sistem akan secara otomatis dimuat ulang pada penyimpanan yang berhasil dan keluar.

Buka terminal kedua ke server yang sama dan ikuti jurnal journald untuk layanan yang diselesaikan sistem:

$ sudo journalctl -f -u systemd-diselesaikan

Baris yang dimulai “Menggunakan server DNS” mis .: .:

Menggunakan server DNS 1.1.1.1 untuk transaksi 19995.

Memberitahu Anda server DNS mana yang sedang digunakan untuk permintaan DNS. Dalam hal ini, server Cloudflare DNS di 1.1.1.1 dipertanyakan.

Baris yang menjadi “Cache miss” menunjukkan bahwa nama domain belum di-cache. Misalnya.:

Cache miss for example.com DI SOA

Baris yang memulai “Cache hit positif” mis .: .:

Hit cache positif untuk example.com IN A

Tunjukkan bahwa systemd-diselesaikan telah menanyakan domain ini sebelumnya dan jawabannya disajikan dari cache di memori lokal.

Anda harus menonaktifkan mode debugging ketika Anda telah selesai bekerja systemd-diselesaikan karena akan membuat file log yang sangat besar pada sistem yang sibuk. Anda dapat menonaktifkan logging debug dengan menjalankan:

$ sudo systemctl edit systemd-resolved.service

dan menghapus dua baris, Anda menambahkan lalu menyimpan dan keluar dari editor.

Menggunakan kueri DNS aman

systemd-diselesaikan adalah salah satu dari sedikit, server DNS yang tersedia saat ini yang mendukung baik DNSSEC dan DNSoverTLS. Kedua hal ini membantu untuk memastikan bahwa Anda menerima informasi DNS asli (DNSSEC) dan tidak ada yang bisa mengintip lalu lintas DNS Anda saat melewati internet. (Dot).

Opsi ini mudah diaktifkan dengan membuka file konfigurasi utama yang diselesaikan dengan systemd dengan editor teks:

$ sudo nano /etc/systemd/resolved.conf

Dan mengedit file sehingga dua baris berikut diatur:

DNSSEC = bolehkan downgrade
DNSOverTLS = oportunistik

Simpan dan keluar dari editor kemudian muat ulang systemd-diselesaikan:

$ sudo systemctl restart systemd-resolved.service

Selama server DNS yang Anda tetapkan mendukung DNSSEC dan DoT, permintaan DNS Anda akan terlindungi. Server DNS publik Google dan Cloudflare keduanya mendukung protokol ini.

Kesimpulan

Sistem Anda sekarang dikonfigurasikan untuk secara cepat dan efisien membuat permintaan DNS bahkan ketika server DNS ISP Anda tidak merespons secepat yang seharusnya. Selain itu, kehidupan digital Anda lebih aman karena Anda menggunakan protokol DNS aman terbaru untuk melindungi permintaan DNS Anda.

Jika Anda adalah penggemar Linux dan ingin belajar lebih banyak, lihat ini fantastis kursus online.

TAGS:

  • Linux

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map