Mengapa DNS geo-redundan diperlukan untuk situs kecil?

31

Ini adalah Pertanyaan Canonical tentang DNS geo-redundansi.

Ini adalah pengetahuan yang sangat umum bahwa server DNS geo-redundan yang terletak di lokasi fisik terpisah sangat diinginkan ketika menyediakan layanan web tangguh. Ini dicakup secara mendalam oleh dokumen BCP 16 , tetapi beberapa alasan yang paling sering disebutkan meliputi:

  • Perlindungan terhadap bencana pusat data. Gempa bumi terjadi. Kebakaran terjadi di rak dan memadamkan server dan peralatan jaringan terdekat. Beberapa server DNS tidak akan banyak membantu Anda jika masalah fisik di pusat data mematikan kedua server DNS sekaligus, bahkan jika mereka tidak berada di baris yang sama.

  • Perlindungan terhadap masalah rekan hulu. Beberapa server DNS tidak akan mencegah masalah jika rekan jaringan upstream bersama tidur siang. Apakah masalah hulu benar-benar membuat Anda offline, atau hanya mengisolasi semua server DNS Anda dari sebagian kecil dari pengguna Anda, hasil akhirnya adalah bahwa orang tidak dapat mengakses domain Anda bahkan jika layanan itu sendiri terletak di pusat data yang sama sekali berbeda.

Itu semua baik dan bagus, tetapi apakah server DNS yang berlebihan benar-benar diperlukan jika saya menjalankan semua layanan saya dari alamat IP yang sama? Saya tidak bisa melihat bagaimana memiliki server DNS kedua akan memberi saya manfaat jika tidak ada yang bisa mendapatkan apa pun yang disediakan oleh domain saya.

Saya mengerti bahwa ini dianggap sebagai praktik terbaik, tetapi ini benar-benar tidak ada gunanya!

Andrew B
sumber

Jawaban:

33

Catatan: Konten dalam perselisihan, lihat komentar untuk kedua jawaban. Kesalahan telah ditemukan dan T&J ini membutuhkan perbaikan.

Saya menghapus penerimaan dari jawaban ini untuk saat ini sampai keadaan tanya jawab kanonik ini ditangani dengan benar. (menghapus jawaban ini juga akan menghapus komentar yang terlampir, yang bukan cara IMO. Mungkin akan mengubahnya menjadi jawaban wiki komunitas setelah pengeditan ekstensif.)


Saya bisa mengutip RFC di sini dan menggunakan istilah teknis, tetapi ini adalah konsep yang dilewatkan oleh banyak orang di kedua ujung spektrum pengetahuan dan saya akan mencoba menjawab ini untuk khalayak yang lebih luas.

Saya mengerti bahwa ini dianggap sebagai praktik terbaik, tetapi ini benar-benar tidak ada gunanya!

Ini mungkin tampak tidak berguna ... tetapi sebenarnya tidak!

Server rekursif sangat baik dalam mengingat ketika server jauh tidak menanggapi permintaan, terutama ketika mereka mencoba lagi dan masih tidak pernah melihat balasan. Banyak yang menerapkan caching negatif dari kegagalan komunikasi ini , dan untuk sementara waktu akan menempatkan nameserver yang tidak responsif di kotak penalti untuk jangka waktu tidak lebih dari lima menit. Akhirnya periode "penalti" ini berakhir dan mereka akan melanjutkan komunikasi. Jika kueri buruk gagal lagi, mereka kembali ke kotak, jika tidak kembali ke bisnis seperti biasa.

Di sinilah kita mengalami masalah server nama tunggal:

  • Periode penalti adalah pada dasarnya implementasi akan selalu lebih besar dari atau sama dengan durasi masalah jaringan. Dalam hampir semua kasus itu akan lebih besar, hingga maksimum lima menit tambahan.
  • Jika satu server DNS Anda masuk ke kotak penalti, permintaan yang terkait dengan kegagalan akan benar-benar mati selama durasi penuh.
  • Interupsi routing yang singkat terjadi di internet lebih dari yang disadari kebanyakan orang. Transmisi ulang TCP / IP dan perlindungan aplikasi serupa melakukan pekerjaan yang baik untuk menyembunyikan ini dari pengguna, tetapi itu agak tidak dapat dihindari. Internet melakukan pekerjaan yang baik untuk mengatasi kerusakan ini sebagian besar karena perlindungan yang dibangun ke dalam berbagai standar yang mendukung tumpukan jaringan ... tetapi itu juga termasuk yang dibangun ke dalam DNS, dan memiliki server DNS geo-redundan adalah suatu bagian dari itu.

Singkatnya, jika Anda menggunakan server DNS tunggal (ini termasuk menggunakan alamat IP yang sama beberapa kali di seluruh NScatatan), ini akan terjadi. Ini juga akan terjadi jauh lebih banyak daripada yang Anda sadari, tetapi masalahnya akan sangat sporadis sehingga kemungkinan kegagalan 1) dilaporkan kepada Anda, 2) direproduksi, dan 3) diikat dengan masalah khusus ini sangat dekat dengan nol. Mereka cukup banyak yang nol jika Anda datang ke ini Q & A tidak mengetahui bagaimana proses ini bekerja, tapi untungnya itu tidak boleh terjadi sekarang!

Haruskah ini mengganggumu? Ini bukan tempat saya untuk mengatakan. Beberapa orang tidak akan peduli dengan masalah interupsi lima menit ini sama sekali, dan saya di sini bukan untuk meyakinkan Anda tentang itu. Apa yang saya saya di sini untuk meyakinkan Anda adalah bahwa anda sebenarnya pengorbanan sesuatu dengan hanya menjalankan DNS server tunggal, dan dalam semua skenario.

Andrew B
sumber
1
Beberapa sistem juga sangat bergantung pada dns-lookup yang tidak gagal. Ini adalah titik kegagalan umum yang tidak memiliki redundansi yang menyebabkan banyak masalah.
artifex
18
Mail, sedang di-cache, adalah contoh klasik tentang bagaimana Anda dapat menembak diri sendiri dengan DNS turun pada saat yang sama dengan infrastruktur lainnya. Dengan DNS yang berlebihan, ketika situs Anda tidak aktif, kirimkan saja antrian di server pengirim, dan dikirim setelah pemulihan. Dengan DNS tunggal, email masuk yang dikirim saat Anda turun sering ditolak secara permanen oleh server pengirim dengan domain yang tidak ada atau kesalahan serupa. Surat keluar yang dikirim dari sistem periferal (masih naik) mungkin juga gagal, karena domain pengirim saat ini tidak menyelesaikan.
MadHatter mendukung Monica
5
Juga, nama domain biasanya tidak hanya web - itu juga email. Jika Anda menggunakan penyedia layanan email untuk domain Anda, mereka mungkin tidak turun meskipun server web Anda, dan jika Anda memiliki DNS yang berlebihan Anda masih bisa mendapatkan email.
Jenny D mengatakan Reinstate Monica
5m hanya periode coba lagi dari satu server? Apakah ini tidak akan berlipat ganda dengan banyak server di rantai, dan klien akan men-cache permintaan yang buruk juga?
Nils
@Nils Bisakah Anda menulis ulang sedikit? Saya mengalami kesulitan menentukan apakah maksud Anda banyak server di kluster rekursif, atau banyak server otoritatif. Interval caching negatif 5m adalah per server, jadi Anda harus mendapatkan banyak permintaan untuk mendapatkan satu rekaman negatif yang di-cache pada seluruh cluster rekursif - membuat kegagalan lebih sporadis.
Andrew B
-1

OP bertanya:

Itu semua baik dan bagus, tetapi apakah server DNS yang berlebihan benar-benar diperlukan jika saya menjalankan semua layanan saya dari alamat IP yang sama? Saya tidak bisa melihat bagaimana memiliki server DNS kedua akan memberi saya manfaat jika tidak ada yang bisa mendapatkan apa pun yang disediakan oleh domain saya.

Pertanyaan bagus!

Jawaban terbaik diberikan oleh Profesor Daniel J. Bernstein, PhD Berkeley , yang tidak hanya seorang peneliti, ilmuwan, dan kriptologis terkenal di dunia, tetapi juga telah menulis paket DNS yang sangat populer dan diterima dengan baik yang dikenal sebagai DJBDNS ( terakhir dirilis tahun 2001- 02-11 , masih populer hingga hari ini).

http://cr.yp.to/djbdns/third-party.html (2003-01-11)

Biaya dan manfaat layanan DNS pihak ketiga

Perhatikan bagian singkat dan ringkas ini:

Argumen yang salah untuk layanan DNS pihak ketiga

...

Taktik kedua adalah untuk mengklaim bahwa klien DNS luas akan melakukan sesuatu yang khususnya jahat ketika mereka tidak dapat mencapai semua server DNS. Masalah dengan argumen ini adalah bahwa klaim tersebut salah. Klien semacam itu jelas-jelas bermasalah, dan tidak akan dapat bertahan di pasar: pertimbangkan apa yang terjadi jika router klien turun sebentar, atau jika jaringan klien dibanjiri sementara.

Dengan demikian, jawaban asli untuk pertanyaan ini tidak salah.

Ya, pemadaman jaringan sementara singkat yang berlangsung beberapa detik bisa terjadi setiap saat. Tidak, kegagalan untuk menyelesaikan nama selama pemadaman seperti itu tidak akan di-cache selama beberapa menit (jika tidak, bahkan memiliki pengaturan server nama otoritatif terbaik yang tersedia di dunia tidak akan membantu).

Setiap perangkat lunak yang secara bebas mengimplementasikan pedoman konservatif hingga 5 menit dari RFC 1998-03 ke kegagalan cache hanya rusak oleh desain, dan memiliki server geo-redundan tambahan tidak akan membuat penyok.

Bahkan, sesuai berapa lama waktu tunggu DNS di-cache untuk? , di BIND, SERVFAILkondisi ini secara tradisional TIDAK di-cache sama sekali sebelum 2014, dan sejak 2015, di-cache secara default hanya 1 detik , kurang dari yang dibutuhkan pengguna rata-rata untuk mencapai batas waktu penyelesai dan menekan tombol Segarkan lagi .

(Dan bahkan sebelum kita sampai pada titik di atas apakah upaya resolusi harus di-cache atau tidak, dibutuhkan lebih dari beberapa paket yang dijatuhkan bahkan untuk SERVFAIL pertama terjadi di tempat pertama.)

Selain itu, pengembang BIND bahkan telah menerapkan plafon untuk fitur, hanya 30-an, yang, bahkan sebagai plafon (misalnya, nilai maksimum yang akan diterima fitur), sudah 10 kali lebih rendah daripada saran 5 menit (300-an) dari RFC, memastikan bahwa bahkan admin yang paling berniat baik (dari pengguna bola mata) tidak akan dapat menembak pengguna mereka sendiri di kaki.


Selain itu, ada banyak alasan mengapa Anda mungkin tidak ingin menjalankan layanan DNS pihak ketiga - membaca keseluruhan djbdns/third-party.htmluntuk semua detail , dan menyewa server ekstra kecil hanya untuk DNS untuk mengelola sendiri hampir tidak dijamin ketika tidak perlu selain BCP 16 ada untuk usaha seperti itu.

Dalam pengalaman "anekdotal" pribadi saya dalam memiliki dan mengatur nama domain setidaknya sejak tahun 2002, saya dapat memberi tahu Anda dengan semua kepastian dan kejujuran bahwa secara total saya benar-benar memiliki waktu henti yang signifikan dari berbagai domain saya karena dikelola secara profesional server pihak ketiga dari pendaftar dan penyedia hosting saya , yang, satu penyedia pada suatu waktu, dan selama bertahun-tahun, semua memiliki insiden mereka, tidak tersedia, membawa domain saya turun secara tidak perlu, pada saat yang sama persis ketika alamat IP saya sendiri (di mana HTTP dan SMTP untuk domain tertentu di-host dari) sepenuhnya dapat dicapai jika tidak. Perhatikan bahwa pemadaman ini terjadi dengan beberapa penyedia independen, dihormati dan dikelola secara profesional, dan sama sekali tidak insiden yang terisolasi, dan memang terjadi setiap tahun, dan, sebagai layanan pihak ketiga,sepenuhnya di luar kendali Anda ; Kebetulan beberapa orang yang pernah membicarakannya jangka panjang.


Pendeknya:

DNS geo-redundan sama sekali TIDAK diperlukan untuk situs kecil.

Jika Anda menjalankan semua layanan Anda di luar dari alamat IP yang sama , menambahkan DNS kedua kemungkinan besar akan menghasilkan titik kegagalan tambahan, dan akan merusak keberlanjutan ketersediaan domain Anda. "Kearifan" untuk selalu harus melakukannya dalam situasi apa pun yang dapat dibayangkan adalah mitos yang sangat populer; PECAH.

Tentu saja, sarannya akan sangat berbeda jika beberapa layanan dari domain, baik itu web (HTTP / HTTPS), mail (SMTP / IMAP) atau suara / teks (SIP / XMPP), sudah dilayani oleh pihak ketiga penyedia, dalam hal menghilangkan IP Anda sendiri sebagai satu-titik-kegagalan memang akan menjadi pendekatan yang sangat bijaksana, dan geo-redundansi memang akan sangat berguna.

Demikian juga, jika Anda memiliki situs yang sangat populer dengan jutaan pengunjung, dan secara sadar membutuhkan fleksibilitas tambahan dan perlindungan DNS geo-redundan sesuai BCP 16, maka ... Anda mungkin tidak menggunakan server / situs tunggal untuk web / mail / suara / teks sudah, jadi pertanyaan dan jawaban ini jelas tidak berlaku. Semoga berhasil!

cnst
sumber
Sementara saya lebih dari senang untuk mengundang para profesional mapan untuk meninjau kedua jawaban, saya mendapatkan lebih dari sekadar getaran teater dari kata-kata ini. Karena itu, sementara saya akan menerima pendapat apa pun yang diberikan oleh pihak-pihak yang pendapatnya saya percayai jauh lebih dari milik Anda atau milik saya, saya memilih untuk mengundurkan diri untuk berpartisipasi lebih jauh dalam utas komentar ini.
Andrew B
Saya tidak yakin apa maksud komentar Anda. Anda menjawab pertanyaan Anda sendiri dengan argumen yang tidak valid sesuai poin yang diilustrasikan dalam jawaban saya, dikutip langsung dari DJB. Jawaban Anda salah; dengan demikian, Anda melakukan tindakan merugikan komunitas dengan menjunjung tinggi mitos. Jika Anda ingin membatalkan jawaban Anda, dan menerima jawaban saya, saya senang menerima kritik / suntingan yang konstruktif.
cnst
2
Perangkat lunak yang baik akan mengenali respons SERVFAIL (dihasilkan oleh server rekursif jika tidak ada server otoritatif yang dapat dijangkau) dan menanganinya dengan tepat, yaitu dengan mengantri surat SMTP. Sayangnya tidak semua perangkat lunak bagus. Ada seorang profesor tertentu yang pendekatan dogmatis untuk mengimplementasikan protokol telah diketahui menyebabkan masalah interoperabilitas yang signifikan ...
Alnitak
2
Keadaan industri saat ini dan apa yang ada di alam liar jauh lebih relevan daripada apa pun dari tahun 2003, apalagi tahun 2001. Inilah sebabnya mengapa pendapat pihak ketiga yang relevan lebih bernilai daripada menilai masalah tersebut dengan editorial bertanggal, meskipun yang bisa memiliki berpotensi selamat dari ujian waktu. Alnitak menunjukkan bahwa ingatan saya tentang bagaimana BIND menangani kasus ini salah, dan saya memperkuat bahwa ingatan dengan kata-kata dari RFC 2308 memang salah. Pencabutan akan mengikuti minggu ini karena saya menemukan waktu.
Andrew B
2
Catatan: Saya mengalah untuk tidak melibatkan Anda demi mengakui kesalahan faktual di pihak saya, tetapi tampaknya kita kembali ke wilayah pertempuran garis perbatasan. Saya minta maaf karena menyebarkan informasi yang salah dan telah mengakui kesalahannya, tetapi saya tidak ingin terlibat lagi dengan Anda. (saya juga tidak, karena Anda tampaknya memiliki sejarah tentang hal itu di sini)
Andrew B