Bisakah Anda mengatur IP cadangan untuk server Anda di DNS?

10

Apakah ada cara protokol DNS dapat secara alami menyimpan cadangan A record server address, seperti backup name server atau catatan server mail? Saat mencari ini saya hanya melihat hasil pada server nama cadangan (catatan NS).

Jika tidak ada cara bagi DNS untuk mendukung rekam cadangan A, apa cara terbaik untuk mensimulasikan hasil sehingga pengguna akan diarahkan ke server yang berfungsi seandainya server primer tidak merespons?

kjones1876
sumber

Jawaban:

12

Ya ... semacam itu.

Ada dua hal yang dapat Anda lakukan di sini: Jika Anda menempatkan beberapa catatan A di server DNS Anda untuk nama yang diberikan, maka mereka semua akan dilayani ke klien dan klien tersebut akan memilih satu dari set untuk terhubung, yang berarti bahwa lalu lintas akan menjadi "cukup" merata di antara semua situs secara bersamaan. Ini sebenarnya bukan yang Anda gambarkan, tetapi ini adalah situasi yang umum (walaupun saya tidak percaya, karena berbagai alasan).

Opsi lainnya adalah bahwa Anda hanya menempatkan satu catatan A di server DNS Anda, dan server DNS (atau sesuatu yang mendukungnya, seperti skrip pemantauan) mengawasi alamat utama situs Anda, dan jika gagal maka server DNS A catatan akan diubah ke situs Anda yang lain. Ini berarti bahwa hanya satu situs yang akan mendapatkan lalu lintas pada suatu waktu.

Kelemahan dari strategi kedua ini adalah caching DNS. Siapa pun yang mendapatkan alamat situs lama akan SOL sampai entri cache DNS mereka yang berisi alamat lama dibersihkan. Ini berarti bahwa Anda harus menjaga TTL Anda tetap rendah (meningkatkan beban pada infrastruktur DNS Anda, meskipun itu jarang masalah praktis), tetapi masih ada masalah cache DNS "jahat", yang tidak menghormati TTL. Ini adalah rasa sakit yang luar biasa bagi siapa pun yang pernah harus mengubah entri DNS, tetapi mereka sejuta kali lebih buruk bagi siapa pun yang perlu mengubah entri DNS "sering" (semoga situs Anda tidak turun beberapa kali sehari, tetapi masih ...) Pada dasarnya, siapa pun di belakang salah satu cache DNS yang salah ini akan melihat situs Anda "down" untuk jangka waktu yang sangat lama, dan coba jelaskan kepada mereka bahwa cache DNS mereka yang salah ... Eugh.

Singkatnya, saya tidak akan melakukannya untuk sebuah situs, karena ada cara yang lebih baik untuk mengurangi risiko apa pun yang Anda pikirkan, tetapi Anda harus menggambarkan risiko itu jika Anda ingin saran tentang cara menguranginya.

womble
sumber
Risikonya adalah jika server utama turun (untuk alasan apa pun) saya ingin pengguna saya diteruskan ke server cadangan. Maksud saya dalam satu tahun terakhir server saya telah menjalankannya sekali (kegagalan serangan katastropik). Saya memiliki cadangan sehingga datanya aman tetapi situs web saya mati selama 12 jam. Saya pikir ini akan menjadi masalah umum saya dengan memperbaiki "tepat". Saya pikir perusahaan ingin rencana cadangan.
kjones1876
9
Anda tidak ingin DNS failover, Anda menginginkan perangkat keras yang lebih andal dan mungkin server siaga panas.
womble
"Tembolok DNS jahat" adalah kisah lama para istri. Tidak ada perangkat lunak server DNS aktual yang menunjukkan perilaku mengabaikan TTL. Tempat-tempat di mana data DNS di-cache sedemikian rupa sehingga menyebabkan masalah adalah aplikasi , seperti masalah caching lookup yang terkenal dari Netscape Navigator misalnya.
JdeBP
@JdeBP: Dalam kata-kata Kevin Costner: "cache DNS jahat bukan mitos ... Saya sudah melihatnya!" Saya telah melakukan penggalian dan melihat hasil yang gila dan membengkokkan pikiran. Paling populer dengan bandwidth terbatas dan layanan latensi yang diderita pada masa-masa ketika hal-hal semacam itu biasa terjadi (dialup ISP yang upstream link-nya adalah ISDN, misalnya), mereka sekarang sebagian besar digunakan oleh orang-orang yang mendengarnya sebagai barang yang bagus. ide sejak lama dan hanya belum berubah pikiran sejak (bukan berarti mereka ide yang sangat bagus kemudian ... tapi ya).
womble
6

Semua orang tampaknya berpikir bahwa Anda berbicara tentang server WWW, meskipun Anda secara eksplisit menulis

seperti server nama cadangan atau server email

Kebenaran yang sering diabaikan adalah bahwa layanan HTTP adalah pengecualian dan bukan norma dalam hal ini. Dalam kasus normal, ya, ada adalah mekanisme untuk mempublikasikan informasi kepada klien melalui DNS sehingga mereka benar mundur dari server utama ke server cadangan. Mekanisme itu adalah SRVcatatan sumber daya, seperti yang digunakan oleh klien layanan untuk banyak protokol lain selain dari HTTP. Lihat RFC 2782.

Dengan SRVcatatan sumber daya, klien diberi tahu daftar server, dengan prioritas dan bobot, dan diminta untuk mencoba server sesuai urutan prioritas, memilih di antara server dengan prioritas yang sama sesuai dengan berat, memilih server dengan bobot lebih tinggi lebih sering daripada bobot rendah. yang Jadi dengan SRVcatatan sumber daya, administrator server dapat memberi tahu klien apa server fallback itu, dan bagaimana mendistribusikan beban mereka di satu set server dengan prioritas yang sama.

Sekarang server DNS konten terletak oleh jenis khusus catatan sumber daya mereka sendiri, NScatatan sumber daya, yang tidak memiliki prioritas dan informasi berat. Sama halnya, server Relay SMTP terletak oleh tipe khusus catatan sumber daya mereka sendiri MX, yang memiliki informasi prioritas tetapi tidak ada informasi pembobotan. Jadi untuk server DNS konten tidak ada ketentuan untuk mempublikasikan fallback dan memuat informasi distribusi; dan jika seseorang menggunakan MXcatatan sumber daya maka untuk server Relay SMTP tidak ada ketentuan untuk mempublikasikan informasi distribusi beban.

Namun, SRV-Mable Mable sekarang ada. (Yang pertama adalah exim, yang telah SRV-dapat dilakukan sejak tahun 2005.) Dan untuk protokol layanan lainnya , tidak terbebani dengan bagasi MXdan NScatatan sumber daya, SRVadopsi jauh lebih menyeluruh dan luas. Jika Anda memiliki domain Microsoft Windows, misalnya, maka seluruh rakit layanan terletak melalui SRVpencarian di DNS . Itulah yang terjadi selama lebih dari satu dekade, pada titik ini.

Masalahnya adalah bahwa semua orang berpikir tentang HTTP, ketika HTTP sejauh ini, saat ini pada tahun 2011, pengecualian dan bukan aturan di sini.

JdeBP
sumber
sementara catatan srv sangat bagus untuk penggunaan jaringan internal ketika lingkungan dikontrol, mereka hanya tidak memotongnya untuk sesuatu seperti server eksternal dengan klien yang heterogen. Anda tidak tahu bahwa catatan akan diakses karena Anda tidak tahu apakah klien akan mendukung mengakses catatan srv.
Michael Lowman
1
Sekali lagi Anda membiarkan HTTP mengatur pemikiran Anda. Untuk banyak klien yang disebutkan di atas, SRVcatatan adalah cara yang ditentukan untuk menemukan layanan. Juga perhatikan bahwa pertanyaannya adalah apakah mekanisme itu ada dan apa itu. Mekanismenya ada, dan ini adalah mekanismenya. Sudah digunakan secara luas selama satu dekade.
JdeBP
Anda tentu saja benar, srv tentu saja mekanisme yang benar dan benar-benar melakukan hal-hal lain yang saya pikir DNS tidak bisa lakukan tetapi berharap bisa. Sayangnya tidak ada dukungan browser srv. Meskipun pertanyaan adalah HTTP spesifik karena saya mengatakan "seperti backup name-server atau mail server", yang berarti bahwa solusi cadangan sudah ada untuk mereka.
kjones1876
1

jika Anda menyajikan konten dinamis dan tidak praktis untuk hanya memiliki dua server yang memberikan konten secara bersamaan, maka pilihan Anda yang lain adalah memiliki beberapa catatan pada DNS Anda dan mengkonfigurasi server cadangan untuk membuang port ICMP yang tidak dapat dijangkau oleh klien yang mencoba dan menyambungkannya ; jika suatu saat server utama turun maka Anda cukup menghapus blok port 80 pada cadangan dan lalu lintas akan mulai masuk.

Satu-satunya cara lain (anggaran) yang dapat Anda lakukan adalah menyiapkan mesin terpisah (atau dua) untuk melakukan permintaan NAT, sehingga jika server web mati, Anda dapat menghapus aturan NAT untuk itu.

Olipro
sumber
Saya awalnya lelah dengan ide pertama Anda, saya hanya mematikan apache di server utama tetapi browser tetap mencoba untuk tetap terhubung. Tapi, akankah mengubah apache sebagai kesalahan ICMP? Jika tidak, bagaimana saya membuat server melalui kesalahan ICMP?
kjones1876
tidak, koneksi hanya akan time out, Anda harus mendapatkan iptables untuk menolaknya dengan benar seperti:
Olipro
iptables -I INPUT -p tcp --port 80 -j REJECT --reject-with icmp-port-unreachable
Olipro
Saya lelah itu dan orang-orang tidak bisa terhubung .... Saya bahkan mencabut server yang saya uji.
kjones1876
Penanya tidak secara khusus berbicara tentang server WWW saja. Memang, xe menyebutkan server surat dan nama secara eksplisit.
JdeBP
0

Tidak ada catatan cadangan A, tetapi mungkin ada beberapa catatan A yang diberikan secara acak.

Sebagian besar browser mampu mencoba server lain jika ada yang gagal. (Lihat: Ketahanan Web dengan Round Robin DNS )

Anda dapat memiliki satu alamat IP cluster yang didukung oleh beberapa server dengan VRRP atau CARP . Server cadangan mengambil alih alamat saat server utama gagal.

jkj
sumber
Penanya tidak secara khusus berbicara tentang server WWW saja. Memang, xe menyebutkan server surat dan nama secara eksplisit.
JdeBP
@JdeBP: Oh. Saya sepertinya buta. Maaf: P
jkj
0

Ya, tetapi Anda harus melakukannya sendiri ;-)

Bisakah Anda memberikan informasi lebih lanjut tentang mengapa Anda ingin "backup A record" dan bagaimana dan dalam keadaan apa Anda ingin pergi ke backup.

Juga, akan sangat membantu untuk mengetahui hubungan dari perspektif jaringan antara host utama dan cadangan.

dmourati
sumber
0

Ini adalah pertanyaan yang cukup lama tetapi dua teknologi yang cukup signifikan belum diangkat dalam jawaban: Dynamic DNS dan CDNs.

DNS dinamis diatur sehingga catatan DNS dapat dimodifikasi hampir secara waktu nyata, sehingga klien pemantau dapat memicu perubahan pada catatan DNS A publik sebagaimana ditentukan oleh layanan. (Tentu saja, layanan hosting DNS Anda harus mendukung DNS Dinamis.)

CDNs juga dapat digunakan untuk mengirimkan DNS, seperti yang dilakukan Cloudflare (yang diluncurkan pada 2010, saya percaya).

jenius komputer Anda
sumber