Memahami DNS Round Robin
(blog.hyperknot.com)Memahami DNS Round Robin
-
Apa itu DNS round robin?
- Umumnya, saat sebuah situs web disajikan dari VPS, satu record A tunggal ditambahkan di panel kontrol penyedia DNS.
- Dalam DNS round robin, beberapa server ditetapkan untuk subdomain yang sama sehingga beban dapat didistribusikan ke beberapa server, dan server yang offline dapat dideteksi secara otomatis untuk memilih server yang online.
- Ini memberikan solusi yang sederhana dan elegan tanpa menggunakan load balancer, serta tidak menimbulkan biaya.
-
Bagaimana cara kerjanya secara teoretis?
- Menurut RFC 8305 "Happy Eyeballs", klien harus mengurutkan alamat sebelum melakukan koneksi.
- Klien memeriksa apakah server online atau offline, lalu mengurutkan server yang online berdasarkan waktu ping.
-
Bagaimana cara kerjanya dalam praktik?
- Tiga VPS dibuat di Amerika Serikat, Eropa, dan Singapura, lalu dibuat 3 record A proxy dan non-proxy di Cloudflare.
- Setiap server menyajikan gambar berwarna dan nama host.
Perilaku pemilihan server oleh klien
-
Chrome
- Memilih secara acak di semua lokasi, tetapi setelah dipilih akan tetap pada pilihan tersebut.
- Mengevaluasi ulang beberapa jam kemudian.
-
Firefox
- Mirip dengan Chrome, memilih secara acak lalu tetap pada pilihan itu.
-
Safari
- Selalu memilih server terdekat dengan benar.
-
curl
- Pada awalnya bisa saja tidak benar, tetapi pada eksekusi kedua akan diperbaiki ke server terdekat.
-
Cloudflare
- Memilih lokasi acak berdasarkan IP klien lalu tetap pada pilihan tersebut.
Perilaku klien saat ada server yang sebagian offline
- Semua klien mendeteksi server offline dan memilih server pengganti.
- Cloudflare tidak dapat mendeteksi server offline, dan jika server yang dipilih offline, hasilnya tetap disajikan dalam keadaan offline.
Perbaikan yang diperlukan di Cloudflare
- Harus dapat mendeteksi server offline.
- Diperlukan kemampuan untuk memilih server dengan latensi terendah.
Ringkasan GN⁺
- DNS round robin adalah cara untuk mendistribusikan beban ke beberapa server dan dapat diimplementasikan dengan sederhana tanpa menggunakan load balancer.
- Cara browser dan klien memilih server bervariasi, dan khususnya Safari sangat baik dalam memilih server terdekat.
- Dalam kasus Cloudflare, ada masalah karena tidak dapat mendeteksi server offline, dan hal ini perlu diperbaiki.
- Tulisan ini bermanfaat untuk memahami cara kerja DNS round robin dan menarik untuk menelusuri perbedaan algoritme pemilihan server.
1 komentar
Komentar Hacker News
Tim DNS telah diminta menjelaskan situasi saat ini, dan jawabannya akan dibagikan setelah diterima. Kodenya sering berubah sehingga sulit mengetahui situasi saat ini secara akurat. Persistensi koneksi antara IP klien dan server backend mungkin menjadi penyebab masalah.
Load balancing DNS dapat menimbulkan masalah yang rumit. Klien HTTP2 golang dapat mengalami masalah saat menggunakan RR DNS. Dalam beberapa kasus, klien gagal menemukan server baru.
MAX_CONNECTION_AGEdapat diatur untuk memutus koneksi klien secara berkala.Tidak ada solusi standar yang memadai untuk service discovery. Menerapkan load balancer berbasis permintaan dan menggunakan virtual IP agar load balancer dapat melakukan health check mungkin merupakan pendekatan terbaik.
Record DNS SRV adalah solusi awal yang memungkinkan penetapan prioritas untuk semua layanan, tetapi karena alasan politis tidak digunakan di klien HTTP. Record DNS HTTPS dan SVCB yang lebih baru diusulkan sebagai solusi baru untuk load balancing.
Saat server offline, klien akan berpindah ke IP berikutnya jika koneksi ditolak. Namun dalam praktiknya, server bisa saja tidak merespons atau tetap diam setelah koneksi terbentuk. Akibatnya, sistem bergantung pada timeout klien.
Keandalan ditentukan di sisi klien. Beberapa sistem dapat selalu mengembalikan alamat IP terendah sehingga menimbulkan masalah. DNS-RR bukanlah load balancer, dan load balancer adalah solusi yang lebih baik.
Seseorang menulis decoder dalam Perl dan bersikeras bahwa semuanya harus dibuat dalam Perl.
RR-DNS hanya berguna untuk load balancing dan tidak secara otomatis mendeteksi ketersediaan server. Fitur cerdas perlu ditambahkan di sisi klien.
Jika server mati, alamat IP yang tersebar secara global memungkinkan orang tetap dapat terhubung.
Di Amazon pada era 2000-an, round-robin DNS digunakan untuk host onsite. Saat itu, itu adalah metode load balancing tercepat. Namun, Wi-Fi merupakan bottleneck terbesar.
Ada penyebutan tentang Cloudflare Load Balancing, tetapi tidak dilakukan pengujian langsung. Cloudflare dapat mendeteksi server offline secara otomatis dan mengalihkan ke server lain.