Cara yang benar untuk mengatur DNS primer / sekunder / ... untuk redundansi dan pengurangan latensi?

12

Saya pikir DNS primer / sekunder untuk keperluan redundansi sangat mudah. Pemahaman saya adalah bahwa Anda harus memiliki primer dan setidaknya satu sekunder, dan bahwa Anda harus mengatur sekunder Anda di lokasi yang berbeda secara geografis, tetapi juga di belakang router yang berbeda (lihat misalnya /server/48087 / why-are-there-many-nameserver-untuk-my-domain )

Saat ini, kami memiliki dua server nama di pusat data utama kami. Baru-baru ini, kami mengalami beberapa pemadaman karena berbagai alasan yang menyebabkan kedua server nama, dan meninggalkan kami dan pelanggan kami tanpa bekerja DNS selama beberapa jam. Saya telah meminta tim sysadmin saya untuk menyelesaikan pengaturan server DNS di pusat data lain dan mengkonfigurasinya sebagai server nama sekunder.

Namun, sysadmin kami mengklaim bahwa ini tidak banyak membantu jika pusat data lain setidaknya tidak dapat diandalkan seperti pusat data primer. Mereka mengklaim bahwa sebagian besar klien masih gagal melihat ke atas dengan benar, atau waktu terlalu lama, ketika pusat data utama sedang down.

Secara pribadi, saya yakin kami bukan satu-satunya perusahaan dengan masalah seperti ini dan kemungkinan besar sudah merupakan masalah yang diselesaikan. Saya tidak bisa membayangkan semua perusahaan internet terpengaruh oleh masalah kita. Namun, saya tidak dapat menemukan dokumen daring yang bagus yang menjelaskan apa yang terjadi dalam kasus kegagalan (misalnya, waktu tunggu klien) dan bagaimana cara mengatasinya.

Argumen apa yang bisa saya gunakan untuk menyodok alasan sysadmin kami? Sumber daya online apa pun yang dapat saya hubungi untuk lebih memahami masalah yang mereka klaim ada?

Beberapa catatan tambahan setelah membaca balasan:

  • kita ada di Linux
  • kami memiliki kebutuhan DNS rumit tambahan; entri DNS kami dikelola oleh beberapa perangkat lunak khusus, dengan BIND saat ini bekerja keras dari implementasi Twisted DNS, dan beberapa tampilan dalam campuran juga. Namun kami sepenuhnya mampu mengatur server DNS kami sendiri di pusat data lain.
  • Saya sedang berbicara tentang DNS otoritatif untuk orang luar untuk menemukan server kami, bukan server DNS rekursif untuk klien lokal kami.
Thomas Vander Stichele
sumber

Jawaban:

4

Ada dokumen "Praktik Terbaik" yang benar-benar hebat, meskipun cukup teknis yang mungkin berguna saat memerangi sysadmin Anda. http://www.cisco.com/web/about/security/intelligence/dns-bcp.html

Jika dia tidak mengakui validitas artikel yang ditulis oleh Cisco, maka Anda mungkin juga berhenti berdebat dengan sysadmin - naik tingkat manajemen.

Banyak dokumen "Praktik Terbaik" lainnya merekomendasikan pemisahan server nama primer dan sekunder Anda tidak hanya dengan blok IP, tetapi oleh lokasi fisik. Bahkan, RFC 2182 merekomendasikan agar layanan DNS sekunder dipisahkan secara geografis. Bagi banyak perusahaan, ini berarti menyewa server di pusat data lain, atau berlangganan ke penyedia DNS yang dihosting seperti ZoneEdit atau UltraDNS .

Joe
sumber
3

Namun, sysadmin kami mengklaim bahwa ini tidak banyak membantu jika pusat data lain tidak setidaknya dapat diandalkan seperti pusat data primer. Mereka mengklaim bahwa sebagian besar klien masih gagal melihat ke atas dengan benar, atau waktu terlalu lama, ketika pusat data utama sedang down.

Ah, fokusnya bisa diandalkan . Sepertinya mereka mengambil jab di tautan Anda ke luar, daripada mengatur DNS sekunder. Semua sama, lakukan pengaturan DNS sekunder dan lanjutkan dari sana. Ini akan membantu dengan beban dan akan menopang segalanya dalam keadaan darurat ... tetapi tanyakan mengapa mereka berpikir lokasi lain tidak dapat diandalkan .

Secara pribadi, saya yakin kami bukan satu-satunya perusahaan dengan masalah seperti ini dan kemungkinan besar sudah merupakan masalah yang diselesaikan. Saya tidak bisa membayangkan semua perusahaan internet terpengaruh oleh masalah kita.

Anda bukan satu-satunya perusahaan, dan ini mungkin telah diulangi jutaan kali di perusahaan-perusahaan di seluruh dunia.

Namun, saya tidak dapat menemukan dokumen daring yang bagus yang menjelaskan apa yang terjadi dalam kasus kegagalan (misalnya, waktu tunggu klien) dan bagaimana cara mengatasinya.

Argumen apa yang bisa saya gunakan untuk menyodok alasan sysadmin kami? Sumber daya online apa pun yang dapat saya hubungi untuk lebih memahami masalah yang mereka klaim ada?

  • Saya sedang berbicara tentang DNS otoritatif untuk orang luar untuk menemukan server kami, bukan server DNS rekursif untuk klien lokal kami.

Anda dapat melakukan segala macam hal, termasuk menyiapkan layanan DNS eksternal yang terdaftar sebagai otoritas untuk zona Anda, tetapi secara diam-diam membuat server otoritatif (luar) menjadi sekunder untuk server DNS Anda sendiri (di dalam). Konfigurasi ini mengerikan, salah, menunjukkan bahwa saya benar-benar SysAdmin jahat, dan seekor anak kucing mati setiap kali saya merekomendasikannya. Tetapi ada dua hal:

  • Anda mendapatkan layanan DNS Anda untuk menangani beban yang paling berat, memberikan pertanyaan tentang kapasitas DNS (internal) Anda sendiri sebagai moot.
  • Anda membuat layanan DNS Anda tetap terjaga sementara server DNS internal Anda mungkin turun, sehingga tidak masalah seberapa andal tautan Anda - yang penting adalah seberapa dapat diandalkan penyedia layanan DNS Anda .

Alasan bahwa ini adalah hal yang salah untuk dilakukan:

  • Anda akan mengatur apa yang disebut "server nama siluman", karena sementara itu akan muncul di catatan zona Anda, dan Anda dapat meminta IP untuk nama server, itu tidak akan pernah disentuh oleh luar. Permintaan klien tidak akan pernah mencapainya.
  • Meskipun DNS Anda akan terus beroperasi dengan baik (karena layanan Anda yang dihosting akan mengatasi masalah ini), itu tidak berarti bahwa situs web apa pun yang Anda miliki akan berfungsi jika koneksi internet Anda turun, artinya, ia hanya mengatasi setengah dari masalah . Itu benar-benar terdengar seperti ada masalah lain yang dikhawatirkan admin.
Avery Payne
sumber
2
Mungkin definisi saya berbeda, tetapi saya menggunakan pengaturan "master tersembunyi", dan karena master tidak pernah direferensikan dalam file zona, saya percaya bahwa itu adalah pengaturan yang sedikit lebih aman. Server masih merespons secara otoritatif, menyediakan satu titik pembaruan, dan tidak dapat diakses oleh permintaan luar.
Greeblesnort
komentar adalah +1 tentang mengapa saya melakukannya dengan cara ini. :) Saya lupa menyebutkan, dengan sedikit keajaiban iptables, Anda dapat membuat port 53 hanya menanggapi permintaan luar hanya dari yang sekunder, membuatnya memang sangat aman. Namun, itu tidak sepenuhnya "halal" dan dapat membuat masalah. Coba jalankan domain melalui intodns.com kapan-kapan dan lihat apa yang dilaporkan ...
Avery Payne
3

Sayangnya resolver DNS Linux tampaknya tidak memiliki dukungan langsung untuk mendeteksi dan melakukan failover untuk server DNS. Itu terus memberi makan permintaan ke server penyelesaian utama Anda, menunggu batas waktu yang dikonfigurasi, mencoba lagi, dll.

Ini sering berarti penundaan hingga 30 detik untuk setiap permintaan. Tanpa terlebih dahulu mencoba yang sekunder selama primernya turun.

Saya ingin menyelesaikan ini karena nameserver yang menyelesaikan Amazon EC2 kami tidak dapat dijangkau oleh banyak pekerja kami. Ini menyebabkan keterlambatan besar dalam proses kami dan bahkan downtime dalam beberapa kasus karena kami mengandalkan resolusi. Saya ingin failover yang bagus untuk nameserver Google / Level3 kalau-kalau Amazon turun lagi. Dan mundur secepatnya, karena dengan begitu Amazon akan menyelesaikan nama host ke alamat lokal jika ada, menyelesaikan latensi yang lebih rendah misalnya komunikasi.

Tapi apa pun alasannya, ada kebutuhan untuk failover yang lebih baik. Saya ingin menyelesaikan ini. Saya ingin menjauh dari daemon proxy, layanan, dll. Karena itu hanya akan memperkenalkan lebih banyak Kegagalan Titik Tunggal. Saya ingin menggunakan teknologi yang paling kuno & sekuat yang saya bisa.

Saya memutuskan untuk menggunakan crontab & bash, dan menulis nsfailover.sh . Semoga ini membantu.

kvz
sumber
ditemukan via ddglinux first dns server is down second works but is slow
bgStack15
1

Kedengarannya masalahnya adalah bahwa klien — yang bisa siapa saja, di mana saja — melihat dua server DNS dan jika salah satu gagal, mereka tidak gagal ke server sekunder atau ada batas waktu yang lama sebelum mereka melakukannya.

Saya setuju bahwa server DNS primer dan sekunder harus ditempatkan di fasilitas yang berbeda sebagai praktik terbaik, tetapi saya tidak melihat bagaimana itu akan memperbaiki masalah khusus ini.

Jika klien akan bersikeras meminta alamat IP tertentu, mengabaikan alamat IP sekunder (atau mengambil waktu beberapa saat untuk itu), maka Anda hanya harus datang dengan solusi yang membuat alamat IP tersebut berfungsi, bahkan jika server utama sedang down.

Beberapa arahan untuk dijelajahi adalah penyeimbang beban yang dapat mengalihkan lalu lintas untuk satu alamat IP ke beberapa server di pusat data yang berbeda; atau mungkin anycast routing.

Nate
sumber
1
Sebagian besar klien linux default ke timeout 5 detik yang merupakan pembunuh. Server DNS kedua atau tidak, setelah primer turun, akan sangat lambat, akan muncul ke bawah.
Ryaner
1

Selama masing-masing pusat data Anda berada di sirkuit yang berbeda (idealnya dengan penyedia hulu yang berbeda jauh ke awan), Anda dapat mengatur DNS yang cukup andal hanya dengan dua pusat data. Anda hanya perlu memastikan registrar pilihan Anda mengisi catatan lem yang sesuai ke server besar di langit.

Pengaturan kami adalah:

  • 2 pusat data fisik (sirkuit terpisah, ISP, dan penyedia hulu)
  • 2 server query fisik dalam sebuah cluster di belakang SLB di setiap fasilitas
  • 2 memuat perangkat penyeimbang untuk menyajikan catatan spesifik yang ingin kami kelola keseimbangan antara dua pemegang data
  • master tersembunyi dapat diakses secara internal oleh kedua server cluster (saya percaya sangat kuat dalam pengaturan master tersembunyi untuk keamanan)

Pengaturan ini telah cukup efektif untuk memberi kami sekitar 5 9 dari waktu operasi selama 6 atau 7 tahun terakhir, bahkan dengan server yang tidak aktif untuk pembaruan, dll. Jika Anda ingin menghabiskan beberapa dolar tambahan, Anda dapat melihat outsourcing hosting zona dengan seseorang seperti ultradns ...

Mengenai memuat percakapan yang disebutkan KPWINC, itu 100% benar. Jika pusat data terkecil Anda tidak dapat menangani 100% dari beban Anda, maka Anda kemungkinan besar akan bertulang karena pemadaman Anda akan terjadi ketika Anda paling tidak menginginkannya =)

Saya mengambil beban maksimum dari semua router tepi saya, menambahkan semuanya bersama-sama, dan kemudian membagi dengan 0,65 ... itu adalah bandwidth minimum yang harus kita miliki di setiap pusat data. Saya menerapkan peraturan itu sekitar 5 tahun yang lalu, dengan beberapa dokumen untuk membenarkannya, saya mengumpulkan dari CCO dan tentang internet, dan itu tidak pernah mengecewakan kami. Namun, Anda harus memeriksa statistik tersebut setidaknya setiap tiga bulan. Kami mengalami peningkatan lalu lintas hampir 3 kali lipat antara November dan Februari tahun lalu dan saya tidak siap untuk itu. Sisi baiknya adalah bahwa situasinya memungkinkan saya untuk menghasilkan beberapa data keras yang sangat jelas yang mengatakan pada beban 72% di sirkuit WAN kami, kami mulai menjatuhkan paket. Tidak ada pembenaran tambahan yang pernah diminta dari saya untuk bandwidth yang lebih banyak.

Greeblesnort
sumber
0

Saya menyadari dari membaca deskripsi Anda bahwa tidak jelas apakah maksud Anda DNS otoritatif bagi orang luar untuk menemukan server Anda, atau server DNS rekursif untuk klien lokal Anda. Perilaku keduanya sangat berbeda.

Untuk server DNS resmi, "klien" akan menjadi server DNS lain yang memiliki caching dan banyak kecerdasan. Mereka akan cenderung mencoba beberapa server sekaligus jika yang pertama lambat, dan akan cenderung memilih yang memberi mereka balasan lebih cepat. Downtime untuk satu pusat data dalam kasus itu akan memiliki dampak kinerja yang sangat kecil.

Untuk server DNS rekursif, klien adalah klien lokal Anda yang mungkin memiliki server DNS yang terdaftar di DHCP. Mereka akan mencoba server mereka dalam urutan yang tercantum setiap kali, dengan waktu tunggu yang sangat lama (beberapa detik) sebelum pindah dari server pertama ke server kedua.

Jika pusat data utama Anda sedang down, tidak ada seorang pun yang dapat menjangkau server-server itu, tetapi seringkali kesalahan dari itu lebih dapat dipahami daripada kesalahan dari server DNS yang tidak terjangkau. "tidak dapat menghubungi server" atau "batas waktu koneksi" alih-alih "tidak dapat menemukan server" atau "tidak ada server seperti itu". Sebagai contoh, sebagian besar server SMTP akan mengantri surat selama seminggu jika mereka melihat server dalam DNS tetapi tidak dapat mencapainya; jika mereka tidak dapat menemukannya di DNS sama sekali, mereka dapat langsung menolak untuk mencoba mengirimkannya ke domain Anda.

DNS sekunder yang terpisah secara geografis dan jaringan adalah hal yang baik. Anda mungkin dapat berdagang DNS sekunder dengan perusahaan yang ramah, dan ada banyak penyedia DNS yang dapat Anda bayar untuk melakukannya untuk Anda. Beberapa pendaftar memiliki DNS sekunder sebagai layanan juga.

freiheit
sumber
0

Thomas,

Setelah membaca pembaruan Anda, saya telah merevisi posting saya (posting sebelumnya memiliki referensi ke perangkat lunak Windows).

Hampir terdengar bagi saya seperti sysadmin Anda memberi tahu Anda bahwa lokasi sekunder Anda tidak memiliki perangkat keras yang diperlukan untuk menangani FULL LOAD?

Kedengarannya seolah dia berkata, "Hai teman, jika lokasi utama kami (yang termasuk DNS primer) turun maka DNS adalah LEAST dari kekhawatiran kami karena jika COLO1 turun maka COLO2 tidak dapat menangani beban pula."

Jika itu masalahnya, maka saya akan menyarankan Anda memeriksa infrastruktur Anda dan mencoba dan membuat desain yang lebih baik. Ini lebih mudah diucapkan daripada dilakukan, terutama sekarang Anda tinggal di lingkungan produksi.

Selain itu, di dunia yang sempurna, COLO1 dan COLO2 akan mampu berdiri sendiri dan menangani beban Anda.

Setelah itu terjadi ... DNS benar-benar tidak lebih dari memiliki server DNS yang cukup dengan refresh yang cukup cepat dan jika satu sisi gagal Anda dapat menulis ulang DNS Anda untuk menunjuk ke server yang UP.

Saya telah menggunakan metode ini di lingkungan berukuran kecil hingga wajar dan ini berhasil dengan baik. Kegagalan biasanya memakan waktu kurang dari 10 menit.

Anda hanya perlu memastikan server DNS Anda dapat menangani beban tambahan TTL pendek (waktu tinggal).

Semoga ini membantu.

KPWINC
sumber
Ini adalah jenis pemikiran saya juga, tapi aku ingin tahu bagaimana mereka melakukannya :-)
Kyle Brandt
0

Sysadmin Anda (sebagian besar) salah.

Server rekursif yang meminta server otoritatif Anda akan melihat dengan sangat cepat jika salah satu situs tidak responsif.

Ya, ada kemungkinan klien mungkin mengalami penundaan resolusi DNS yang sangat sederhana ketika ada pemadaman, tetapi mereka hanya akan menjadi satu atau dua detik, dan begitu server DNS klien mengetahui bahwa salah satu server sedang down mereka akan menggunakan server yang tersisa lebih disukai daripada yang gagal.

Jika perlu (untuk menenangkan sysadmin) terus jalankan dua server di pusat data utama Anda, tetapi lakukan setidaknya satu lagi di luar.

Alnitak
sumber
Apakah Anda punya referensi untuk ini?
Teddy
Konfigurasi linux default tidak menyimpan nama server. Ini berlaku juga untuk beberapa peralatan berbasis linux (seperti telepon IP kami), yang berarti bahwa ketika primer turun, permintaan dns memerlukan waktu lama karena setiap permintaan mencoba yang utama, menunggu 5 detik, kemudian mencoba yang sekunder, pada dasarnya berhenti bekerja di bawah beban.
Ryaner
0

Server dns sekunder tidak pernah sakit, tergantung di mana ia di-host itu akan memberi Anda fungsionalitas lebih atau kurang.

Jika host utama Anda gagal, sekunder dapat mengambil alih tidak peduli apakah itu duduk di sebelahnya atau di lokasi yang jauh. Namun jika uplink datacenter Anda gagal, Anda mungkin masih mendapatkan balasan DNS dari server di datacenter lain tetapi Anda tidak akan dapat menjangkau server Anda. Jadi pengguna akhir Anda tidak akan langsung mendapat manfaat dari DNS sekunder di lokasi yang jauh.

Klien yang berbeda bereaksi dengan cara lain bahwa server DNS tidak tersedia sehingga ada beberapa kebenaran waktu penghentian klien, tetapi tidak semua.

Namun, DNS sekunder di pusat data jarak jauh masih dapat menyelesaikan alamat IP server yang ingin Anda jangkau sehingga Anda dapat men-debug perutean dan melihat kapan mereka muncul lagi. Dan jika Anda telah menyiapkan server MX sekunder dengan benar, Anda bahkan tidak akan kehilangan surat apa pun.

Dijeda sampai pemberitahuan lebih lanjut.
sumber