FreeBSD Knot Resolver - Implementasi Resolver DNS Caching

· 2 min read

Knot DNS Resolver menyertakan aplikasi implementasi cache resolver lengkap yang ditulis dalam LuaJIT dan C. Dalam resolver Knot terdapat banyak modul

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.


freebsd knot resolver

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.
root@ns3:~ # cd /usr/ports/dns/knot-resolver
root@ns3:/usr/ports/dns/knot-resolver # make config
root@ns3:/usr/ports/dns/knot-resolver # make install clean
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' }
    })
))

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.
root@ns3:~ # ee /etc/resolv.conf

domain datainchi.com
nameserver 192.168.5.2

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"

Setelah itu, Anda menjalankan perintah "chown" untuk memberikan hak kepemilikan file.
root@ns3:~ # chown -R kresd:kresd /usr/local/etc/knot-resolver
Muat ulang (Restart) Knot resolver.
root@ns3:~ # service kresd restart
root@ns3:~ # service krescachegc restart
Sekarang resolver Knot Anda aktif dan dapat digunakan. Coba lakukan pengujian dengan perintah "dig".
root@ns3:~ # dig google.com

; <<>> DiG 9.18.20 <<>> google.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 52479
;; flags: qr rd ra; QUERY: 1, ANSWER: 6, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
;; QUESTION SECTION:
;google.com.                    IN      A

;; ANSWER SECTION:
google.com.             162     IN      A       142.251.10.113
google.com.             162     IN      A       142.251.10.138
google.com.             162     IN      A       142.251.10.139
google.com.             162     IN      A       142.251.10.100
google.com.             162     IN      A       142.251.10.101
google.com.             162     IN      A       142.251.10.102

;; Query time: 94 msec
;; SERVER: 192.168.5.2#53(192.168.5.2) (UDP)
;; WHEN: Mon Jan 29 16:57:48 WIB 2024
;; MSG SIZE  rcvd: 135
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.
root@ns3:~ # dig oracle.com +trace
root@ns3:~ # dig -x 108.59.161.1
root@ns3:~ # nslookup facebook.com
root@ns3:~ # dig oracle.com +short
root@ns3:~ # dig NS +short unixwinbsd.site
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.
Subscribe on LinkedIn FreeBSD Knot Resolver - Implementasi Resolver DNS Caching

Enclosures Link: FreeBSD Knot Resolver - Implementasi Resolver DNS Caching

Silahkan Berkomentar, Kakak...! Bunda...!

Posting Komentar