- DNS telah digunakan selama lebih dari 35 tahun sejak era 1980-an dan strukturnya juga stabil, tetapi banyak programmer tetap butuh waktu lama hingga bisa men-debug masalah dasar dengan percaya diri
- Kesulitannya bukan hanya pada kompleksitas DNS itu sendiri, melainkan karena ada banyak komponen yang tidak terlihat seperti cache resolver, library DNS lokal, dan percakapan dengan authoritative nameserver
dig memang kuat, tetapi struktur output dan istilahnya terasa asing, dan fitur seperti +norecurse tetap tidak intuitif untuk ditafsirkan hasilnya
- Jebakan umum seperti negative caching, riwayat tidak didukungnya TCP DNS di
musl, resolver yang mengabaikan TTL, caching permanen oleh nginx, dan ndots di Kubernetes sulit dipelajari sebelum ada yang memberi tahu
- Bagi orang yang jarang berurusan dengan DNS, cheat sheet bisa membantu, dan masalah yang terasa berat untuk diuji bisa diringankan dengan lingkungan eksperimen aman seperti Mess With DNS
DNS tetap sulit meski teknologinya sudah tua
- DNS telah digunakan selama lebih dari 35 tahun sejak masa RFC 1034, dipakai di semua situs web di internet, dan dalam banyak hal masih bekerja mirip seperti 30 tahun lalu
- Meski begitu, perlu waktu lama untuk men-debug masalah dasar seperti “domain sudah dikonfigurasi dengan benar tetapi tidak ter-resolve” atau “hasil DNS dari
dig berbeda dengan browser”
- Orang yang kesulitan dengan DNS biasanya tersandung di titik-titik berikut
- Bahkan perubahan DNS sederhana untuk situs web pun tidak terasa nyaman dilakukan
- Bingung dengan fakta bahwa record DNS tidak di-push melainkan ditarik (pull)
- Meski memahami konsep dasarnya, tetap bingung pada detail perilaku seperti negative caching atau perbedaan kueri DNS antara
dig dan browser
Resolver dan nameserver yang tidak terlihat
- Alur dasar saat mengirim permintaan DNS dari komputer tampak sederhana
- Komputer mengirim permintaan ke server yang disebut resolver
- Resolver memeriksa cache, lalu jika perlu meminta lagi ke authoritative nameserver
- Banyak elemen yang penting saat debugging justru tidak terlihat secara bawaan
- Sulit mengetahui apa yang ada di dalam cache milik resolver
- Tidak selalu jelas library DNS mana yang menangani permintaan di lokal
- Bisa berupa libc
getaddrinfo, glibc, musl, implementasi Apple, kode DNS milik browser sendiri, atau implementasi kustom terpisah
- Masing-masing implementasi sedikit berbeda dalam konfigurasi, cara caching, dan dukungan fitur
- DNS di
musl tidak mendukung TCP hingga awal 2023
- Percakapan antara resolver dan authoritative nameserver tidak terlihat
- Jika bisa melacak authoritative nameserver mana yang ditanyai dan bagaimana responsnya, banyak masalah DNS akan lebih mudah dipahami
Pendekatan untuk menampakkan sistem yang tersembunyi
- Hanya dengan memberi tahu komponen tersembunyi apa saja yang ada sudah sangat membantu proses belajar
- Jika tidak tahu bahwa dalam satu komputer pun bisa ada beberapa library DNS yang digunakan tergantung situasi, orang bisa lama kebingungan
- Mess With DNS mencoba eksperimen bergaya fishbowl yang memperlihatkan bagian yang biasanya tidak terlihat
- Tool ini memungkinkan kita melihat sebagian percakapan antara resolver dan authoritative nameserver
- Ada juga pendekatan memasukkan informasi debugging ke dalam respons DNS
- Fitur seperti Extended DNS Errors atau EDE sudah ada
- Tool-tool perlahan mulai menambahkan dukungan EDE
Petunjuk yang diberikan Extended DNS Errors
- Extended DNS Errors adalah cara baru agar server DNS dapat memberikan informasi debugging tambahan di dalam respons
- Jika domain yang tidak ada
xjwudh.com dikueri dengan dig @8.8.8.8 xjwudh.com, bisa muncul kesalahan tambahan berikut
; EDE: 12 (NSEC Missing): (Invalid denial of existence of xjwudh.com/a)
- Contoh ini tampak berkaitan dengan DNSSEC, dan yang penting adalah bahwa pesan debug tambahan ikut dimasukkan ke dalam respons
- Untuk melihat contoh di atas, diperlukan versi
dig yang lebih baru
dig kuat, tetapi sulit dibaca
dig berguna untuk memeriksa status internal DNS
- Dengan
dig +norecurse, kita bisa melihat record apa yang dimiliki cache milik resolver DNS tertentu
8.8.8.8 tampaknya mengembalikan SERVFAIL jika jawaban tidak ada di cache
google.com ada di cache sehingga mengembalikan NOERROR dan record A
homestarrunner.com tidak ada di cache sehingga mengembalikan SERVFAIL, tetapi ini bukan berarti record DNS-nya tidak ada
- Output
dig sulit dibaca jika belum terbiasa
- Judul seperti
->>HEADER<<-, flags:, OPT PSEUDOSECTION:, QUESTION SECTION:, ANSWER SECTION: terasa asing
- Pemisah baris dan spasi antarbagian terasa tidak konsisten
- Dari
MSG SIZE rcvd: 47, sulit mengetahui apakah ada field lain selain rcvd
- Kita harus tahu bahwa saat tertulis ada 1 record di bagian
ADDITIONAL, peran itu sebenarnya diisi oleh OPT PSEUDOSECTION
- Output
dig terlihat bukan seperti format yang sejak awal dirancang dengan sengaja, melainkan seperti skrip yang tumbuh organik seiring waktu
Cara membuat tool DNS lebih mudah dibaca
- Dokumentasi yang menjelaskan output
dig itu sendiri akan membantu
- how to use dig menjelaskan struktur output
dig dan cara mengatur output dasar yang lebih ringkas
- Bisa juga membuat tool yang lebih ramah
- Ada alternatif seperti dog, doggo, DNS lookup tool
- Namun saat membutuhkan fitur lanjutan seperti
+norecurse, mungkin lebih baik tetap memakai dig saja
- Menggantikan cakupan fitur
dig yang sangat luas adalah pekerjaan besar
- Bisa juga menambahkan opsi seperti
+human pada output dig agar informasi yang sama tampil lebih terstruktur
- Header, kueri, jawaban, bagian tambahan, waktu, server, protokol, dan ukuran respons bisa dipisahkan dengan jelas
- Pendekatannya bukan mengurangi informasi, melainkan menyajikan informasi yang sama agar lebih mudah dibaca
dig versi terbaru punya format output +yaml
- Ini bisa terasa lebih jelas, tetapi untuk respons DNS sederhana pun bisa terlalu panjang sampai tidak muat di layar
Jebakan DNS yang sering ditemui tetapi sulit dipelajari
- Dalam DNS ada jebakan yang relatif sering muncul, tetapi sulit diketahui sebelum ada yang memberi tahu
-
negative caching
- Jika mengunjungi domain yang record DNS-nya belum ada, status “tidak ada” untuk record itu bisa ikut tercache
- Jika status ini tercache selama beberapa jam, dampaknya bisa sangat merepotkan
-
Perbedaan implementasi getaddrinfo
musl tidak mendukung TCP DNS hingga awal 2023
-
Resolver yang mengabaikan TTL
- Meski TTL record DNS diset 5 menit, beberapa resolver bisa mengabaikannya dan menyimpan cache jauh lebih lama, misalnya 24 jam
-
Masalah konfigurasi nginx
- Jika nginx dikonfigurasi dengan buruk, ia bisa menyimpan cache record DNS selamanya
-
Kubernetes ndots
- ndots dapat membuat DNS Kubernetes menjadi lambat
Cara berbagi dan mendokumentasikan jebakan
- Pengetahuan tentang jebakan aneh sulit didapat, dan tidak efisien jika orang harus terus menemukan kembali masalah yang sama
- Saat menjelaskan suatu topik, sangat membantu jika jebakan umum ikut dibahas
- Cara komunitas mengumpulkan jebakan umum juga berguna
- Di Bash, shellcheck sangat berguna sebagai kumpulan jebakan bash
- Mendokumentasikan jebakan DNS juga sulit karena masalah yang ditemui tiap pengguna bisa berbeda
- Orang yang mengatur DNS domain pribadi sekali tiap 3 tahun dan orang yang mengelola DNS domain dengan trafik tinggi akan menghadapi jebakan yang berbeda
Penggunaan yang jarang dan sulitnya bereksperimen
- Banyak orang sangat jarang berurusan dengan DNS
- Jika hanya menyentuh DNS sekali tiap 3 tahun, wajar jika sulit dipelajari
- Cheat sheet seperti “prosedur mengganti nameserver” bisa membantu
- DNS juga menakutkan untuk diuji coba karena ada beban bahwa kita bisa merusak domain sendiri
- Mess With DNS dibuat untuk mengurangi beban eksperimen semacam ini
1 komentar
Opini Hacker News
Saya tidak setuju dengan tulisan ini. DNS hanya jarang dipelajari orang dengan meluangkan waktu; menurut saya sebenarnya tidak sulit dipelajari
Hal bagus dari DNS adalah sistemnya memberi tahu keadaan internalnya sendiri saat ada kueri. Mudah untuk memeriksa server DNS pada zona yang diketahui dan memahami cara kerjanya, dan alat gratis seperti
digjuga tersedia luasSepanjang karier, saya selalu heran bahwa orang-orang yang pernah bekerja bersama saya paling mengingat pengetahuan DNS saya, karena saya tidak merasa tahu sesuatu yang misterius atau istimewa. DNS sangat terstandarisasi, implementasi server dan klien yang umum juga mengikuti standar dengan ketat, dan mudah diamati dengan alat gratis. Memang butuh usaha dan waktu, tetapi sebenarnya tidak sulit
Dulu saya mengira “Tidak, sebenarnya mudah kok!” adalah dorongan semangat untuk pernyataan “sulit dipelajari”. Saya menyukai DNS, dan dalam banyak hal menurut saya DNS sangat sederhana sampai mengejutkan. Misalnya, di https://implement-dns.wizardzines.com ditunjukkan cara mengimplementasikan resolver DNS mainan dari awal dengan kode Python sederhana
Namun seiring waktu saya belajar bahwa “Tidak, ini mudah dipelajari!” sering diterima bukan sebagai dorongan “Kamu bisa!”, melainkan seperti “Ini bukan sulit, kamu saja yang bodoh”. Ketika ada topik yang membuat bingung selama bertahun-tahun, mendengar “sebenarnya itu mudah kok?” tidak terlalu membantu
Jadi sekarang saya tidak lagi berkata begitu, dan saya berusaha keras memahami mengapa orang merasa hal tertentu sulit serta mengurangi hambatan itu
BIND menjalankan perannya dengan sangat baik, tetapi berkas konfigurasinya kurang bagus, manualnya panjang dan kaku, dan kadang rumit tanpa perlu.
digmemang kuat, tetapi menyingkat semuanya seperti pada era terminal 80 kolom. Saat men-debug masalah DNS, ada kalanya Wireshark menjadi alat yang lebih baik daripadadigJika orang memakai PowerDNS atau server DNS modern lain, rasanya mereka bisa menyiapkan server DNS yang berfungsi dengan jauh lebih mudah. Saya tidak terlalu tahu klien DNS modern yang bagus, jadi akhirnya terbiasa dengan
dig. Sebagai pengguna flag--colorpada perintahip, saya berharap alat sepertidigjuga memberi keluaran yang lebih modern. Flag baris perintah akan saya bungkus dalam alias, jadi saya hanya ingin fiturnya ditambahkanSerius,
MSG SIZE rcvd: 71tidak perlu disingkat.flags: qr rd rajuga bisa ditulis lengkap. Saya juga tidak tahu apa yang ingin disampaikan titik koma di awal baris, dan itu malah membingungkanTidak aneh jika orang bingung saat belajar DNS dari materi yang tersedia
Kalau “hanya butuh sedikit usaha dan waktu”, seberapa banyak usaha dan waktu yang dibutuhkan? Beberapa orang di thread ini mengatakan mereka belajar dengan mengimplementasikan server, mengatakan butuh beberapa bulan untuk paham, lalu mengulang bahwa “setelah paham, ini cukup mudah”. Kalau begitu, bukankah kita bisa sepakat bahwa untuk sesuatu yang begitu umum dan secara konsep sederhana, DNS memang sulit dipelajari dalam praktiknya
Misalnya, apa aturan browser dalam menyimpan cache dan menghapus entri DNS saat kedaluwarsa? Apakah aturan itu konsisten antar-browser?
Menurut saya tulisan ini tepat mengenai inti masalah. DNS itu sendiri tidak sulit, tetapi mempelajari DNS di dunia nyata itu sulit. Sebab, banyak bagian di tengah antara melakukan lookup dan mendapatkan hasil yang diniatkan serta diharapkan tersembunyi
Dulu model koneksi internet dasar adalah satu antarmuka, satu gateway, dan satu penyedia server DNS. Sekarang perangkat bisa terhubung ke beberapa WAN sekaligus seperti LTE dan WiFi, dan pengguna sulit mengetahui jalur resolusi apa yang sebenarnya dipakai. Tidak jelas apakah itu browser, antarmuka standar dari pustaka C sistem, resolver lokal atau resolver rekursif di tengah, apakah ada cache lokal, sampai apakah opsi khusus ditambahkan secara default
Bahkan jika semuanya berfungsi, Anda tidak bisa begitu saja percaya bahwa kueri dan respons satu aplikasi memakai jalur yang sama dengan aplikasi lain. Tiga browser masing-masing memakai cara berbeda, sistem operasi juga berperilaku lain lagi, dan mDNS bisa menambahkan pilihan kelima
Ada lelucon bahwa dalam ilmu komputer hanya ada tiga masalah sulit: invalidasi cache dan penamaan
Dan DNS adalah sistem caching untuk nama benda
https://reddit.com/comments/15c2ul2/comment/jtty9dy
Dikelola secara global (IANA), hierarkis, federatif, dan mudah diubah
DNS adalah jenis teknologi yang memiliki ketidaksesuaian antara seberapa mudah ia terlihat dan tingkat kesulitan yang sebenarnya muncul
Kita memakai DNS setiap hari, dan kelihatannya sangat mudah. Bahasa DNS sehari-hari adalah nama domain, lookup, dan alamat IP. Bahasa ini terekspos apa adanya di browser, dan dari paparan itu kita membangun model mental tentang cara kerjanya
Namun di dalamnya ada bahasa yang sama sekali berbeda: zone, resolver, delegated authority, dan titik aneh di belakang top-level domain
Misalnya kita berdua tahu apa arti
host.example.co.uk, tetapi tanpa titik di belakang, resolver bisa mencoba melakukan lookup kehost.example.co.uk.example.co.ukDalam konfigurasi default Windows, pada kasus seperti ini ia bisa mencoba
host.example.co.uk.example.co,host.example.co.uk.example, laluhost.example.co.uk.examplelagi, danhost.example.co.uk., sampai mendapatkan hasil. Meski begitu, saya belum pernah melihat Windows benar-benar melakukan percobaan pertama itu, dan perilaku ini tampaknya dirancang agar DNS bisa menangani lingkungan perusahaan besar yang punya Active Directory federatif seperti monsterBrowser masa kini besar kemungkinan diam-diam menuju server DNS over HTTPS(DoH) tanpa persetujuan pengguna dan bergaul dengan segala macam pihak mencurigakan. Lookup DNS adalah data mendasar, jadi ISP memang suka melihat pengguna pergi ke mana. Vendor sistem operasi tentu saja juga bisa mengirim “telemetri”. Google tidak memiliki desktop, tetapi memiliki browser; jadi bagi mereka menguntungkan jika pengguna dibuat memakai server DNS “aman” alih-alih DNS yang sudah dikonfigurasi pengguna. Karena trik-trik seperti ini, pemecahan masalah IT menjadi jauh lebih seru dibanding dulu
Titik di belakang tidak perlu terlalu dikhawatirkan. Toh kemungkinan besar Anda hampir pasti tidak sedang memakai server DNS yang Anda kira. Saya mengerti mengapa DoH dibuat, dan sebagian pengguna umum memang punya alasan untuk memakainya. Misalnya, ketika seseorang yang bukan profesional IT memakai hotspot WiFi berbahaya, browser yang pulang dengan aman ke markas untuk melakukan lookup DNS memberi perlindungan sampai batas tertentu. Namun apakah vendor browser boleh menginjak-injak pilihan keamanan endpoint pengguna adalah persoalan lain
DNS jauh lebih rumit daripada sekadar mencari alamat. Sekarang ini soal uang, dan sebetulnya sudah begitu sejak sekitar tahun 2000. Kini ada banyak perusahaan raksasa yang sangat keras kepala dan ingin menentukan siapa yang mendapat keuntungan lewat pengguna
DNS itu sendiri mudah. Distribusi informasi yang tidak bergantung pada organisasi benar-benar rumit
Beberapa tahun lalu saya menyadari bahwa pemahaman saya tentang DNS hanya berupa potongan-potongan. Saya tahu
dig(1), BIND, dan konsep setingkat CS101 tentang cara kerja resolusi DNS rekursif, tetapi kurang memiliki pengetahuan praktis yang diperlukan untuk merancang dan mengimplementasikan sistem yang tidak sepele, atau men-debug sistem yang tidak berjalanJadi saya membaca “DNS and BIND” hampir dari awal sampai akhir, dan juga menyiapkan server BIND sungguhan untuk beberapa situs web pribadi yang tidak terlalu penting. Itu tidak sulit, tetapi butuh investasi waktu yang cukup besar. BIND bukan jawaban yang tepat untuk banyak use case, tetapi karena banyak konsep dan istilah DNS masih berasal dari BIND, pengalaman itu sangat berharga
Saya rasa buku diremehkan untuk mempelajari hal-hal seperti ini. Materi yang ditemukan di web biasanya berupa teori tingkat tinggi, misalnya diagram blok lookup rekursif; materi berorientasi tugas seperti cara melakukan lookup rekursif dengan
dig; atau materi tingkat rendah seperti membaca source untuk memahami kebijakan retry klien DNS lokal. Untuk memahami tiap potongan dan bagaimana semuanya saling terkait, mulai dari apa yang ingin dicapai hingga implementasi seperti di mana cache berada, hampir tidak ada pengganti pendekatan menyeluruh yang lazim ditemukan di buku. Di web bukannya sama sekali tidak ada, tetapi jarangSemua orang IT sebaiknya memiliki pengetahuan praktis tentang debugging masalah DNS
DNS secara historis merupakan jalur bagi kerentanan keamanan penting, dan kemungkinan besar akan terus begitu. Kerentanan semacam ini menjadi jalur serangan untuk hampir semua protokol lain seperti SMTP. Bahkan sistem certificate authority yang dipakai HTTPS pun sangat bergantung pada protokol yang pada dasarnya tidak aman. Jika bank membeli sertifikat DV alih-alih OV, apakah Anda akan menyadarinya? Mungkin tidak
Jadi tidak selalu buruk jika DNS tampak sulit dipelajari bagi orang yang kurang berminat. Sebab bahkan sekarang masih terlihat orang yang membuat fitur terkait DNS tanpa meluangkan waktu untuk benar-benar memahami sejarah hal-hal seperti port randomization, cache poisoning, dan AXFR
Sedikit promosi proyek sampingan yang memalukan: tulisan itu mengatakan alangkah baiknya jika resolusi DNS punya mode “debug”, dan ComfyDNS web UI punya fitur itu :3
https://comfydns.com/
Gambar di bagian atas yang bertuliskan
TRACE google.com A INadalah fitur tersebutComfyDNS juga merupakan proyek untuk menggaruk rasa gatal pribadi. Saya lelah mengedit file zone bind9 dengan tangan, dan juga penasaran bagaimana DNS bekerja. Saya tahu hal-hal permukaannya, tetapi tidak tahu detailnya, jadi saya mengimplementasikan RFC “dari awal”. Saya memakai netty, tetapi tidak memakai library DNS. Cukup menyenangkan
Mohon maaf kalau situsnya tidak tahan trafik lalu down. Ini aplikasi Rails yang berjalan di free tier Oracle Cloud
Lelucon yang selalu saya dengar adalah bahwa DNS menggabungkan dua masalah tersulit dalam ilmu komputer: penamaan dan invalidasi cache
Ini bukan jenis invalidasi cache yang sulit. Bahkan sebenarnya hampir tidak perlu melakukan “invalidasi”
Di sisi server pun, mengirim campuran versi lama dan versi baru selama beberapa waktu sepenuhnya diperbolehkan
Rasanya muncul lagi tulisan seperti ini. Pada 1990-an, internet lebih kecil dan komputer jauh lebih lambat serta kurang bertenaga, tetapi kami mempelajarinya dengan sangat mudah
Saat itu, bagi ISP, hal-hal seperti DNS, LDAP, SMTP, IMAP adalah dasar dari dasar, dan orang benar-benar membaca dokumen resmi seperti RFC. Kalau ingin menjalankan server di internet, itu harus dipelajari, dan dengan sedikit investasi waktu—yakni memakai jam kerja berbayar—hal itu bisa dipelajari
Generasi developer dan DevOps sekarang tidak punya kesabaran atau inisiatif, berharap disuapi, lalu menyalin-tempel apa saja dari StackOverflow dan blog bernilai rendah. Alih-alih mempelajari fondasi tempat internet dibangun, mereka mengambil tool wrapper tren terbaru minggu itu dan mengikuti instruksi blog yang buruk; ketika semuanya runtuh dan perusahaan kehilangan banyak uang, mereka merasa diperlakukan tidak adil. Itu karena mereka tidak meluangkan waktu untuk mempelajari dasar-dasar tentang bagaimana internet benar-benar bekerja
Saya terus melihat hal seperti ini. Sebenarnya tidak sesulit itu. Tinggal kerjakan PR-nya
Tidak sulit. DNS adalah salah satu dari sedikit teknologi yang tidak banyak berubah, dan cara kerjanya juga cukup intuitif
digmemang bisa agak membingungkan. Fiturnya lebih banyak daripadanslookupyang lama, tetapi kurang intuitif. Sebagai catatan,nslookupmasih berfungsi dengan baikMenurut saya, salah satu alasan orang-orang muda di industri ini bingung dengan DNS dan protokol inti adalah karena sekarang terlalu banyak hal yang “langsung berjalan”
Misalnya, router WiFi sekarang “langsung berjalan” begitu dikeluarkan dari kotak. Pada awal 2000-an, untuk mengatur hal semacam itu dibutuhkan network engineer yang memahami DNS, IP, Ethernet, RFC1918, protokol routing nyata, dan banyak hal lain, serta kemungkinan besar tahu betul mengapa pengaturannya dibuat seperti itu
Kalau menurut Anda DNS dari sudut pandang klien membingungkan, coba konfigurasi BIND ;-)
/gerutuan si tua berjanggut leher
Seharusnya server DHCP di WRT54G membagikan IP statis domain controller sebagai server DNS agar resolusi nama berjalan benar, tetapi saya membuat semuanya berjalan hanya dengan alamat IP dan entri file hosts. Saya juga mengatur record MX domain ke IP WAN router, tanpa record PTR. Kalau dipikir-pikir, kelancaran pengiriman email waktu itu benar-benar ajaib
Beberapa tahun kemudian saya baru memahami bagaimana DNS sebenarnya bekerja, dan pada awal usia 20-an saya mewarisi intranet internal yang memakai BIND sebagai nameserver untuk semua zona domain perusahaan yang eksternal. Saat memindahkan konfigurasi ini ke VPS demi meningkatkan keandalan, saya belajar sangat banyak tentang zone transfer, SOA, dan sebagainya. Saya bersyukur atas pengalaman itu, tetapi sekarang hampir semuanya ditangani untuk kita, sehingga menjadi aktivitas bernilai rendah. Baik atau buruk, “IT” tidak dinilai dengan cara yang sama seperti “software engineering”
Saya tidak bisa melupakan saat Firefox merilis update yang mengaktifkan DNS-over-HTTPS secara default. Kami membagikan server DNS internal ke workstation lewat DHCP, lalu tiba-tiba bermunculan keluhan “email saya hilang! semuanya rusak!” Webmail internal dan server web intranet seolah-olah menghilang begitu saja
Butuh waktu lebih lama dari semestinya untuk memahami apa yang terjadi. Sebagian karena pikiran “ini kan DNS, kenapa tiba-tiba rusak?” Namun cukup jelas bahwa Mozilla tidak mengantisipasi masalah yang sebenarnya mudah diprediksi ini
Misalnya, ketika melakukan lookup
thing.behind.cdn.it, saya mendapat satu jawaban, sementara orang lain mendapat jawaban berbeda untuk nama yang sama. Itu sendiri cukup jelas, tetapi menjadi rumit ketika seseorang secara masuk akal bertanya, “bisakah Anda membuka celah firewall untukthing.behind.cdn.it?”Ada server yang meneruskan request, ada server yang melakukan delegasi, ada server yang melakukan lookup atas nama kita dan ada yang tidak. Ada juga keajaiban search domain di sisi klien, dan belum tentu klien atau library resolver internal akan mematuhi TTL
Jenis record juga sangat banyak, dan kadang server meminta klien menyambung ulang lewat TCP alih-alih UDP
Jadi DNS cukup kompleks. Ia bekerja sangat baik, dan sebagian besar bagian yang rumit diabstraksikan menjadi hal-hal yang “umumnya langsung berjalan”, sehingga muncul ilusi bahwa DNS itu sederhana
Mengejutkan betapa jauh lebih percaya diri saya dalam memahami networking pada level tinggi, termasuk DNS dan hal-hal di bawahnya seperti
ethtoolserta frame EthernetSaya suka memahami sesuatu dari dasar, jadi saya memilih teknik elektro alih-alih ilmu komputer di universitas; mungkin itu sebenarnya tidak terlalu mengejutkan
Prinsip DNS tidak terlalu sulit jika Anda memahami bahwa ia bersifat rekursif. Namun jika ingin mengonfigurasinya dengan mempertimbangkan keamanan, memiliki infrastruktur yang tepat, dan menyetel sampai detail terakhir, ada banyak hal yang harus dipelajari. Kalau tidak memasukkan BIND, sebenarnya tidak terlalu sulit