Beberapa catatan A menunjuk ke domain yang sama tampaknya digunakan hampir secara eksklusif untuk menerapkan DNS Round Robin sebagai teknik penyeimbangan beban yang murah.
Peringatan biasa terhadap DNS RR adalah bahwa itu tidak baik untuk ketersediaan tinggi. Ketika 1 IP turun, klien akan terus menggunakannya selama beberapa menit.
Penyeimbang beban sering disarankan sebagai pilihan yang lebih baik.
Kedua klaim tersebut tidak sepenuhnya benar:
Ketika lalu lintas adalah HTTP, sebagian besar browser HTML dapat secara otomatis mencoba catatan A berikutnya jika sebelumnya turun, tanpa pencarian DNS baru. Baca di sini bab 3.1 dan di sini .
Ketika beberapa pusat data dilibatkan, DNS RR adalah satu-satunya opsi untuk mendistribusikan lalu lintas lintasnya.
Jadi, apakah benar bahwa, dengan beberapa pusat data dan lalu lintas HTTP, penggunaan DNS RR adalah cara HANYA untuk memastikan kegagalan instan saat satu pusat data turun?
Terima kasih,
Valentino
Sunting:
- Tentu saja setiap pusat data memiliki Load Balancer lokal dengan cadangan panas.
- Tidak masalah untuk mengorbankan afinitas sesi untuk kegagalan instan.
- AFAIK satu-satunya cara bagi DNS untuk menyarankan pusat data alih-alih yang lain adalah membalas dengan hanya IP (atau IP) yang terkait dengan pusat data itu. Jika pusat data menjadi tidak terjangkau maka semua IP tersebut juga tidak dapat dijangkau. Ini berarti bahwa, bahkan jika browser HTML yang cerdas dapat langsung mencoba catatan A lainnya, semua upaya akan gagal sampai entri cache lokal berakhir dan pencarian DNS baru selesai, mengambil IP yang berfungsi baru (Saya menganggap DNS secara otomatis menyarankan kepada pusat data baru ketika salah satu gagal). Jadi, "DNS pintar" tidak dapat memastikan kegagalan instan.
- Sebaliknya, round-robin DNS mengizinkannya. Ketika satu pusat data gagal, peramban HTML yang pintar (kebanyakan dari mereka) langsung mencoba yang lain yang direkam dalam cache yang melompat ke pusat data yang lain (berfungsi). Jadi, round-robin DNS tidak menjamin afinitas sesi atau RTT terendah tetapi tampaknya merupakan satu-satunya cara untuk memastikan kegagalan instan saat klien menggunakan browser HTML "pintar".
Edit 2:
- Beberapa orang menyarankan TCP Anycast sebagai solusi definitif. Dalam makalah ini (bab 6) dijelaskan bahwa kegagalan-kegagalan Anycast terkait dengan konvergensi BGP. Untuk alasan ini, Anycast dapat digunakan dari 15 menit hingga 20 detik untuk menyelesaikannya. 20 detik dimungkinkan pada jaringan di mana topologi dioptimalkan untuk ini. Mungkin hanya operator CDN yang dapat memberikan kegagalan yang cepat tersebut.
Edit 3: *
- Saya melakukan beberapa pencarian dan penelusuran DNS (mungkin beberapa pakar dapat memeriksa ulang) dan:
- Satu-satunya CDN yang menggunakan TCP Anycast tampaknya adalah CacheFly, operator lain seperti jaringan CDN dan BitGravity menggunakan CacheFly. Tampaknya ujung-ujungnya tidak dapat digunakan sebagai proksi terbalik. Oleh karena itu, mereka tidak dapat digunakan untuk memberikan failover instan.
- Akamai dan LimeLight tampaknya menggunakan DNS geo-aware. Tapi! Mereka mengembalikan beberapa catatan A. Dari traceroutes tampaknya IP yang dikembalikan berada di pusat data yang sama. Jadi, saya bingung bagaimana mereka bisa menawarkan 100% SLA ketika satu pusat data turun.