FreeBSD Knot Resolver - Implementasi Resolver DNS Caching
· 2 min read · Label UnixBSD
Knot Resolver adalah resolver caching DNS yang dapat digunakan pada jaringan besar seperti penyedia ISP dan juga sangat direkomendasikan untuk digunakan pada router jaringan rumah. Knot Resolver adalah implementasi resolver modern yang dirancang untuk skalabilitas, ketahanan, dan fleksibilitas. Desain Knot Resolver berbeda dari resolver lainnya. Arsitektur intinya kecil dan efisien, dan sebagian besar fiturnya dapat diimplementasikan sebagai modul opsional, yang membatasi permukaan serangan dan meningkatkan kinerja Knot Resolver.
Knot DNS Resolver menyertakan aplikasi implementasi cache resolver lengkap yang ditulis dalam LuaJIT dan C. Dalam resolver Knot terdapat banyak modul yang dapat Anda gunakan, seperti modul API untuk ekstensi dan lainnya. Secara umum, terdapat tiga modul bawaan, yaitu iterator, cache, validator, dan banyak modul eksternal lainnya.
Dalam modul Lua, cache resolver Knot dapat dirutekan dan dibagikan, dan pengikatan FFI yang cepat membuatnya sangat bagus untuk memanfaatkan proses resolusi, atau digunakan untuk layanan DNS rekursif Anda. Ini adalah OpenResty dari DNS.
Server DNS resolver Knot mengadopsi strategi penskalaan yang berbeda dari rekursif server DNS lainnya, ia bekerja tanpa threading, tidak ada arsitektur yang dibagikan (kecuali cache MVCC yang dapat dibagikan). Anda dapat memulai dan menghentikan node tambahan tergantung pada pertentangannya tanpa waktu henti.
Dalam artikel ini, kita akan mempelajari cara menginstal, mengonfigurasi, dan menggunakan resolver Knot pada mesin FreeBSD.
Ketik perintah berikut untuk mulai menginstal resolver Knot.
Setelah Anda menjalankan perintah "make install clean", sistem FreeBSD ports secara otomatis akan melakukan proses instalasi. Tunggu hingga proses selesai.
Ternyata menginstal Knot resolver cukup mudah, siapa pun bisa melakukannya. Ternyata prosesnya tidak berhenti di sini. Masih ada proses konfigurasi dan cara penggunaannya.
Buka berkas "kresd.conf", edit skrip dan sesuaikan dengan spesifikasi server FreeBSD Anda. Sebagai panduan, Anda dapat menggunakan skrip "kresd.conf" seperti di bawah ini.
IP "192.168.5.2" adalah IP lokal server FreeBSD, sedangkan IP "8.8.8.8,8.8.4.4,1.1.1.1,1.0.0.1,9.9.9.9" adalah IP DNS Publik. Jadi resolver Knot akan "meneruskan" ke IP DNS Publik. Nama domain lokal dalam skrip di atas adalah "datainchi.com".
Setelah Anda mengonfigurasi file "kresd.conf", lanjutkan dengan mengedit file "/etc/resolv.conf". Ketik skrip di bawah ini dalam file tersebut.
Setelah itu, Anda menjalankan perintah "chown" untuk memberikan hak kepemilikan file.
Knot DNS Resolver menyertakan aplikasi implementasi cache resolver lengkap yang ditulis dalam LuaJIT dan C. Dalam resolver Knot terdapat banyak modul yang dapat Anda gunakan, seperti modul API untuk ekstensi dan lainnya. Secara umum, terdapat tiga modul bawaan, yaitu iterator, cache, validator, dan banyak modul eksternal lainnya.
Dalam modul Lua, cache resolver Knot dapat dirutekan dan dibagikan, dan pengikatan FFI yang cepat membuatnya sangat bagus untuk memanfaatkan proses resolusi, atau digunakan untuk layanan DNS rekursif Anda. Ini adalah OpenResty dari DNS.
Server DNS resolver Knot mengadopsi strategi penskalaan yang berbeda dari rekursif server DNS lainnya, ia bekerja tanpa threading, tidak ada arsitektur yang dibagikan (kecuali cache MVCC yang dapat dibagikan). Anda dapat memulai dan menghentikan node tambahan tergantung pada pertentangannya tanpa waktu henti.
Dalam artikel ini, kita akan mempelajari cara menginstal, mengonfigurasi, dan menggunakan resolver Knot pada mesin FreeBSD.
1. Proses Instal Knot Resolver
Seperti kebanyakan aplikasi yang berjalan di FreeBSD, aplikasi ini menggunakan PKG dan port untuk proses instalasi. Begitu pula dengan resolver Knot, Anda dapat menggunakan PKG atau sistem port. Meskipun proses instalasi dengan sistem port memakan waktu lama, pustaka yang diinstal sangat lengkap. Jadi, kami sarankan Anda menggunakan sistem port untuk mulai menginstal resolver Knot.Ketik perintah berikut untuk mulai menginstal resolver Knot.
Pada perintah "make config" akan muncul menu pilihan yang harus Anda aktifkan. Jika sudah aktif, tinggal tekan "OK".
Setelah Anda menjalankan perintah "make install clean", sistem FreeBSD ports secara otomatis akan melakukan proses instalasi. Tunggu hingga proses selesai.
Ternyata menginstal Knot resolver cukup mudah, siapa pun bisa melakukannya. Ternyata prosesnya tidak berhenti di sini. Masih ada proses konfigurasi dan cara penggunaannya.
2. Proses Konfigurasi Knot Resolver
Konfigurasi merupakan tahap yang paling penting, Anda harus mengubah, menambah, dan menghapus skrip yang terdapat dalam berkas konfigurasi. Secara default direktori resolver Knot adalah "/usr/local/etc/knot-resolver", dan berkas konfigurasinya diberi nama "kresd.conf".Buka berkas "kresd.conf", edit skrip dan sesuaikan dengan spesifikasi server FreeBSD Anda. Sebagai panduan, Anda dapat menggunakan skrip "kresd.conf" seperti di bawah ini.
net.listen('192.168.5.2', 53, { kind = 'dns' })
-- Load useful modules
modules = {
'hints > iterate', -- Allow loading /etc/hosts or custom root hints
'stats', -- Track internal statistics
'predict', -- Prefetch expiring/frequent records
}
internal_domains = policy.todnames({
'datainchi.com.'
})
-- The authoritative server runs on 127.0.0.1, port 2153
policy.add(policy.suffix(policy.STUB({'127.0.0.1@2153'}), internal_domains))
-- Cache size
cache.size = 100 * MB
policy.add(
policy.all(
policy.TLS_FORWARD({
{'8.8.8.8', hostname='dns.google' },
{'8.8.4.4', hostname='dns.google' },
{'1.1.1.1', hostname='cloudflare-dns.com' },
{'1.0.0.1', hostname='cloudflare-dns.com' },
{'9.9.9.9', hostname='dns.quad9.net' }
})
))
Setelah Anda mengonfigurasi file "kresd.conf", lanjutkan dengan mengedit file "/etc/resolv.conf". Ketik skrip di bawah ini dalam file tersebut.
3. Cara Menggunakan Knot Resolver
Meskipun Anda telah mengonfigurasi file "kresd.conf", resolver Knot belum dapat digunakan, sudah terinstal tetapi belum berjalan. Agar resolver Knot dapat berjalan secara otomatis, buka file "/etc/rc.conf" dan ketik skrip di bawah ini ke dalam file tersebut.kresd_enable="YES"
kresd_config="/usr/local/etc/knot-resolver/kresd.conf"
kresd_user="kresd"
kresd_group="kresd"
kresd_rundir="/var/run/kresd"
krescachegc_enable="YES"
krescachegc_millis="1000"
Muat ulang (Restart) Knot resolver.
Sekarang resolver Knot Anda aktif dan dapat digunakan. Coba lakukan pengujian dengan perintah "dig".
Perhatikan skrip berwarna biru, Anda telah berhasil menjalankan resolver Knot, karena yang menjawab panggilan DNS google.com adalah IP lokal server FreeBSD Anda. Lakukan pengujian lagi dengan perintah di bawah ini.
Dalam artikel ini Anda telah mempelajari cara menginstal paket knot-resolver, mengonfigurasinya, dan menjalankannya di server FreeBSD. Anda dapat mengubah berkas "kresd.conf" untuk mendapatkan hasil maksimal dari aplikasi resolver Knot. Isi artikel ini hanya terbatas pada teori dasar resolver Knot, akan kami lanjutkan pada pembahasan berikutnya, agar Anda dapat merasakan manfaat dari semua fitur resolver Knot.
Silahkan Berkomentar, Kakak...! Bunda...!
Posting Komentar