DNS, kependekan dari Domain Name System protokol, digunakan pada sistem Linux untuk mengambil alamat IP yang terkait dengan nama.
Misalnya, saat Anda melakukan permintaan ping, kemungkinan besar Anda menggunakan protokol DNS untuk mengambil IP server.
Biasanya, permintaan DNS yang Anda lakukan disimpan dalam cache lokal di sistem operasi Anda.
Namun, dalam beberapa kasus, Anda mungkin ingin menghapus cache DNS server Anda .
Mungkin karena Anda mengubah IP server di jaringan Anda dan Anda ingin perubahan tersebut segera terlihat.
Dalam tutorial ini, Anda akan mempelajari bagaimana Anda dapat dengan mudah membersihkan cache DNS di Linux , apakah Anda menggunakan systemd atau dnsmasq.
Prasyarat
Agar dapat membersihkan cache DNS, Anda harus mengetahui cara kerja resolusi DNS di sistem Linux .
Bergantung pada distribusi Anda, Anda mungkin menghadapi berbagai layanan Linux yang bertindak sebagai penyelesai DNS .
Sebelum memulai, sangat penting bagi Anda untuk mengetahui bagaimana resolusi DNS akan benar-benar terjadi pada sistem operasi Anda.
Jika Anda membaca artikel ini, Anda sedang mencari untuk membersihkan cache dari resolver DNS lokal Anda . Tetapi seperti yang Anda lihat, ada banyak cache yang berbeda dari aplikasi lokal Anda hingga server DNS Internet yang sebenarnya.
Dalam tutorial ini, kita akan fokus pada kotak kuning yang berarti resolver rintisan lokal diimplementasikan pada setiap sistem Linux.
Menemukan resolver DNS lokal Anda
Pada kebanyakan sistem Linux, resolver DNS adalah "systemd-resolved" atau dnsmasq. Untuk mengetahui apakah Anda berurusan dengan satu atau yang lain, Anda dapat menjalankan perintah berikut
$ sudo lsof -i :53 -S
Catatan :jadi mengapa kita menjalankan perintah ini? Saat DNS berjalan pada port 53, kami mencari perintah yang terkait dengan layanan yang berjalan pada port 53, yang merupakan resolver atau “rintisan” DNS lokal Anda.
Seperti yang Anda lihat, pada distribusi Ubuntu 20.04 baru-baru ini, layanan yang mendengarkan pada port 53 diselesaikan dengan sistem. Namun, jika Anda menjalankan perintah ini di Ubuntu 14.04, Anda akan mendapatkan output yang berbeda.
Dalam hal ini, DNS lokal yang digunakan di dnsmasq dan perintah jelas berbeda.
Mengetahui informasi ini, Anda dapat melanjutkan ke bab yang Anda minati. Jika Anda memiliki keluaran yang berbeda di server Anda, pastikan untuk meninggalkan komentar agar kami memperbarui artikel ini.
Siram DNS menggunakan systemd-resolved
Cara termudah untuk membersihkan DNS di Linux, jika Anda menggunakan systemd-resolved, adalah dengan menggunakan perintah “systemd-resolve” diikuti dengan “–flush-caches”.
Atau, Anda dapat menggunakan perintah “resolvectl” diikuti dengan opsi “flush-caches”.
$ sudo systemd-resolve --flush-caches
$ sudo resolvectl flush-caches
Untuk memverifikasi bahwa cache DNS Linux Anda benar-benar dihapus, Anda dapat menggunakan "–statistik ” yang akan menyorot “Ukuran Cache Saat Ini” di bawah bagian “Cache”.
$ sudo systemd-resolve --statistics
Selamat, Anda berhasil menghapus cache DNS di Linux!
Hapus cache DNS menggunakan sinyal
Cara lain untuk membersihkan cache DNS dapat dicapai dengan mengirimkan sinyal “USR2” ke layanan “systemd-resolved” yang akan memerintahkannya untuk membersihkan cache DNS-nya.
$ sudo killall -USR2 systemd-resolved
Untuk memeriksa apakah cache DNS benar-benar dihapus, Anda dapat mengirim “USR1 ” memberi sinyal ke layanan yang diselesaikan systemd. Dengan cara ini, ia akan membuang statusnya saat ini ke dalam jurnal systemd.
$ sudo killall -USR1 systemd-resolved
$ sudo journalctl -r -u systemd-resolved
Bagus, cache DNS Anda dibersihkan dengan benar menggunakan sinyal!
Siram DNS menggunakan dnsmasq
Cara termudah untuk membersihkan resolver DNS Anda, saat menggunakan dnsmasq, adalah mengirimkan sinyal “SIGHUP” ke proses “dnsmasq” dengan perintah “killall”.
$ sudo killall -HUP dnsmasq
Sama halnya dengan systemd-resolved, Anda dapat mengirim “USR1 ” ke proses untuk mencetak statistiknya ke file log “syslog”. Menggunakan perintah "ekor" sederhana, kami dapat memverifikasi bahwa cache DNS benar-benar dihapus.
Sekarang bagaimana jika Anda menjalankan dnsmasq sebagai layanan?
Dnsmasq menjalankan layanan
Dalam beberapa kasus, Anda dapat menjalankan “dnsmasq” sebagai layanan di server Anda. Untuk memeriksa apakah ini masalahnya atau tidak, Anda dapat menjalankan perintah “systemctl” atau perintah “layanan” jika Anda menggunakan sistem SysVinit.
$ sudo systemctl is-active dnsmasq
# On SysVinit systems
$ sudo service dnsmasq status
Jika Anda melihat bahwa dnsmasq berjalan sebagai layanan, Anda dapat memulai ulang menggunakan “systemctl yang biasa ” atau “layanan ” perintah.
$ sudo systemctl restart dnsmasq
# On SysVinit systems
$ sudo service dnsmasq restart
Setelah menjalankan perintah tersebut, selalu pastikan bahwa layanan Anda dimulai ulang dengan benar.
$ sudo systemctl status dnsmasq
# On SysVinit systems
$ sudo service dnsmasq status
Kesimpulan
Dalam tutorial ini, Anda telah mempelajari cara membersihkan cache DNS dengan cepat dan mudah di Linux.
Dengan menggunakan artikel ini, Anda dapat dengan mudah menghapus cache untuk resolver lokal systemd dan dnsmasq. Namun, Anda harus tahu bahwa ada DNS umum lainnya, bernama bind , yang sengaja dihilangkan dalam artikel ini.
Artikel lain tentang menyiapkan server cache DNS lokal menggunakan BIND akan segera hadir.
Jika Anda tertarik dengan kueri DNS dan bagaimana kinerjanya, Anda dapat menggunakan artikel yang sangat berguna ini dari “zwischenzugs” bernama “ Anatomi kueri DNS “ . Artikel ini sangat berguna jika Anda ingin men-debug kueri DNS dan ingin tahu bagaimana kinerjanya.
Juga jika Anda tertarik dengan Administrasi Sistem Linux , kami memiliki bagian lengkap tentangnya di situs web, jadi pastikan untuk memeriksanya.