Round Robin DNS'i Anlamak
(blog.hyperknot.com)Round Robin DNS'i Anlamak
-
Round Robin DNS nedir?
- Genellikle bir web sitesi VPS üzerinde sunulurken, DNS sağlayıcısının kontrol paneline tek bir A kaydı eklenir.
- Round Robin DNS'te aynı alt alan adı için birden fazla sunucu tanımlanarak yük birden çok sunucuya dağıtılabilir ve çevrimdışı sunucular otomatik olarak algılanıp çevrimiçi sunucular seçilebilir.
- Yük dengeleyici kullanmadan basit ve zarif bir çözüm sunar ve ek maliyet gerektirmez.
-
Teoride nasıl çalışır?
- RFC 8305 "Happy Eyeballs"a göre istemci, bağlantı kurmadan önce adresleri sıralamalıdır.
- Sunucunun çevrimiçi mi çevrimdışı mı olduğu kontrol edilir ve çevrimiçi sunucular ping süresine göre sıralanır.
-
Pratikte nasıl çalışır?
- ABD, Avrupa ve Singapur'da 3 VPS oluşturulup Cloudflare üzerinde 3 proxy'li ve proxy'siz A kaydı tanımlanır.
- Her sunucu bir renkli görsel ve ana makine adını sunar.
İstemcilerin sunucu seçme davranışı
-
Chrome
- Tüm konumlarda rastgele seçim yapar, ancak seçimden sonra buna sabitlenir.
- Birkaç saat sonra yeniden değerlendirir.
-
Firefox
- Chrome'a benzer şekilde rastgele seçim yapar ve buna sabitlenir.
-
Safari
- Her zaman en yakın sunucuyu doğru şekilde seçer.
-
curl
- İlk seferde yanlış olabilir, ancak ikinci çalıştırmada en yakın sunucuya düzelir.
-
Cloudflare
- İstemci IP'sine göre rastgele bir konum seçer ve buna sabitlenir.
Kısmen çevrimdışı sunucular olduğunda istemci davranışı
- Tüm istemciler çevrimdışı sunucuları algılar ve alternatif bir sunucu seçer.
- Cloudflare çevrimdışı sunucuları algılayamaz; seçilen sunucu çevrimdışıysa hizmet de çevrimdışı olarak sunulur.
Cloudflare için iyileştirme noktaları
- Çevrimdışı sunucuları algılamalı.
- En düşük gecikmeye sahip sunucuyu seçme yeteneğine ihtiyaç var.
GN⁺ özeti
- Round Robin DNS, yükü birden fazla sunucuya dağıtmanın ve yük dengeleyici kullanmadan bunu basitçe uygulamanın bir yoludur.
- Tarayıcılar ve istemciler sunucu seçimini farklı şekillerde yapar; özellikle Safari en yakın sunucuyu seçmede başarılıdır.
- Cloudflare tarafında çevrimdışı sunucuların algılanamaması bir sorundur ve iyileştirilmesi gerekir.
- Bu yazı, Round Robin DNS'in nasıl çalıştığını anlamak için faydalıdır ve sunucu seçim algoritmaları arasındaki farkları incelemek açısından ilgi çekici olabilir.
1 yorum
Hacker News görüşü
DNS ekibinden mevcut duruma ilişkin bir açıklama istendi; yanıt gelirse paylaşılacak. Kod sık değiştiği için mevcut durumu doğru anlamak zor. Sorunun nedeni, istemci IP’si ile arka uç sunucuları arasındaki bağlantının korunması olabilir.
DNS yük dengeleme karmaşık sorunlara yol açabilir.
golangHTTP2 istemcisi RR DNS kullandığında sorun çıkabilir. Bazı durumlarda istemci yeni sunucuları keşfedemez.grpc-goiçinde de benzer bir sorun yaşanır; sunucu tarafındaMAX_CONNECTION_AGEayarlanarak istemcinin bağlantısı periyodik olarak kesilebilir.Servis keşfi için standart bir çözüm eksik. İstek tabanlı bir yük dengeleyici uygulamak ve yük dengeleyicinin sağlık kontrolleri yapabilmesi için sanal IP kullanmak en iyi yöntem olabilir.
SRV DNS kayıtları, tüm servislere öncelik atayabilen erken dönem bir çözümdü; ancak politik nedenlerle HTTP istemcilerinde kullanılmadı. Yeni HTTPS ve SVCB DNS kayıtları, yük dengeleme için yeni bir çözüm olarak öneriliyor.
Sunucu çevrimdışıyken istemci, bağlantı reddedilirse bir sonraki IP’ye geçer. Ancak pratikte sunucu hiç yanıt vermeyebilir veya bağlantı kurulduktan sonra sessiz kalabilir. Bu durumda istemci zaman aşımına bağımlı olunur.
Güvenilirlik istemci tarafında belirlenir. Bazı sistemler her zaman en düşük IP adresini döndürdüğü için sorun çıkabilir. DNS-RR bir yük dengeleyici değildir; daha iyi çözüm gerçek bir yük dengeleyicidir.
Perl ile bir decoder yazdığını ve her şeyin Perl ile yapılması gerektiğini savunuyor.
RR-DNS yalnızca yük dengeleme için faydalıdır; sunucu erişilebilirliğini otomatik olarak algılamaz. İstemciye akıllı özellikler eklemek gerekir.
Bir sunucu devre dışı kalsa bile, dünya çapında dağıtılmış IP adresleri sayesinde insanlar bağlanmaya devam edebilir.
2000’lerde Amazon’da onsite host’lar için round-robin DNS kullanılıyordu. O zamanlar bu, yük dengelemenin en hızlı yoluydu. Ancak en büyük darboğaz Wi‑Fi idi.
Cloudflare Load Balancing’den bahsediliyor, ancak gerçek test yapılmamış. Cloudflare çevrimdışı sunucuları otomatik olarak algılayıp başka sunuculara geçiş yapabilir.