3 puan yazan GN⁺ 2024-10-27 | 1 yorum | WhatsApp'ta paylaş

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ı

  1. Çevrimdışı sunucuları algılamalı.
  2. 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

 
GN⁺ 2024-10-27
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. golang HTTP2 istemcisi RR DNS kullandığında sorun çıkabilir. Bazı durumlarda istemci yeni sunucuları keşfedemez.

    • Tüm arka uç sunucuları devre dışı kalırsa istemci, ilk bağlandığı sunucuya takılı kalır ve başka bir sunucuya geçmez.
    • grpc-go içinde de benzer bir sorun yaşanır; sunucu tarafında MAX_CONNECTION_AGE ayarlanarak 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.