Apakah DNS round-robin merupakan solusi yang memungkinkan untuk ketersediaan tinggi?

Jawaban:

13

DNS round robin bukan pengganti yang baik untuk load balancer. Server DNS akan terus membagikan IP dari simpul yang turun, sehingga beberapa pengguna Anda akan mendapatkan layanan Anda dan beberapa dari mereka tidak.

Ketika klien membuat kueri DNS, server DNS mengembalikan semua alamat IP yang terkait dengan nama itu. Keajaiban ini dilakukan oleh server DNS yang memutar urutan daftar itu untuk setiap permintaan. Namun, tergantung pada aplikasi untuk mengimplementasikan kemampuan "berjalan" melalui daftar sampai menemukan IP yang berfungsi. Dan sebagian besar aplikasi tidak melakukan itu.

Windows Telnet, anehnya, adalah salah satu aplikasi yang cukup pintar untuk menjalankan daftar tertaut dari IP yang dikembalikan. Anda dapat melihat perilaku ini sendiri jika Anda mencoba melakukan telnet ke google.com, misalnya. Anda akan melihat bahwa butuh waktu lama untuk akhirnya gagal. Itu karena google.com memiliki banyak alamat IP, dan klien telnet mencoba semuanya.

Ryan Ries
sumber
Saya mengerti bahwa klien selalu mendapatkan kedua IP dari NS. Hanya saja secara default mereka memilih yang pertama dalam daftar. Tetapi bagaimana jika yang pertama turun? akankah mereka mencoba yang kedua?
GetFree
9
Itu benar-benar tergantung pada aplikasi. Misalnya, jika kita berbicara tentang peramban web, sebagian besar peramban web modern akan memandu daftar sampai mereka berhasil, beberapa peramban (biasanya yang lebih tua) hanya akan gagal setelah IP pertama yang gagal dicoba. Info lebih lanjut: nber.org/sys-admin/dns-failover.html dan blog.engelke.com/2011/06/07/web-resilience-with-round-robin-dns
Ryan Ries
Menurut tautan yang Anda berikan, tampaknya itu berfungsi. Setidaknya untuk klien HTTP (yang saya pedulikan saat ini). Semua browser modern dan bahkan klien HTTP level yang lebih rendah gagal-ke IP lain dalam daftar.
GetFree
Ya. Hanya ingin memberi Anda peringatan bahwa itu tergantung pada aplikasi. YMMV, dll.
Ryan Ries
@RyanRies, Apakah RFC memberikan rekomendasi sehubungan dengan perilaku klien? Apakah Telnet patuh ketika mencoba semua IP alih-alih hanya menggunakan yang pertama?
Pacerier
14

Menggunakan Load Balancer masih akan meninggalkan satu titik kegagalan. Jika penyeimbang beban Anda offline, situs web Anda turun.

Berlawanan dengan jawaban di atas, Sebagian besar klien HTTP sudah mendukung DO mencoba setiap alamat IP yang dikembalikan dari permintaan DNS sampai satu kembali dengan respons yang valid. Silakan lihat di sini:

http://blog.engelke.com/2011/06/07/web-resilience-with-round-robin-dns/

Tampaknya penulis telah menguji browser berikut dan menemukan bahwa browser tersebut berfungsi dengan baik.

Chrome 11 pada Windows 7
Firefox 4.0 pada Windows 7
Internet Explorer 8 pada Windows 7
Opera 11 pada Windows 7
Safari 5 pada Windows 7
Internet Explorer 7 pada Windows XP (setelah penundaan nyata)
Firefox 4.0 pada Windows XP (setelah penundaan nyata)
browser asli Android di Android 2.3.3
browser asli iPhone di iOS 4.3.3

Menggunakan round robin tidak akan melakukan semua fitur server load balancing, hal-hal seperti dapat memonitor waktu respons dari kedua server, dan merutekan lebih banyak lalu lintas ke satu, jika yang lain tidak merespons secepat yang seharusnya). Untuk ketahanan, saya akan mengatakan Round Robin DNS mungkin merupakan solusi yang lebih baik karena tidak ada lagi titik kegagalan.

Tony Weston
sumber
Lihat komentar kedua dalam jawaban yang diterima
GetFree
2

Sementara round robin DNS biasanya tidak memiliki umpan balik ke status server yang menyediakan alamat untuknya, mungkin membantu jika Anda kemudian memiliki semacam penyeimbang beban (termasuk trik berbasis router) untuk masing-masing alamat tersebut.

Ada trik untuk memperbarui DNS ketika ada yang gagal; jika ini terjadi, DNS round-robin dengan TTL pendek yang sesuai dapat menjadi penyeimbang beban semu.

Michael Graff
sumber