UDP trafiği (DNS, Syslog, NTP) için yük dengeleme yapabilir miyim?
Kısa cevap
Evet, Network vService ile. vService oluşturulurken Type olarak Network, Protocol olarak UDP - L4 seçilir ve frontend'e servisin portu (DNS 53, NTP 123, Syslog 514) yazılır. Yanıtın istemciye nasıl döneceği LB Mode ile belirlenir: SNAT'ta sunucuda değişiklik gerekmez ama sunucu istemci yerine SNAT IP'sini görür; varsayılan Direct Server Return istemci IP'sini korur, ancak sunucunun TR7 ile aynı L2 segmentinde olmasını ve vService adresini ARP yanıtı vermeden kendi adresi gibi kabul etmesini ister; Route Mode istemci IP'sini korur ve sunucuların dönüş trafiğinin TR7'den geçmesini ister. Kurum Servislerine DNS ya da UDP health check atanarak yanıt vermeyen sunucular dağıtımdan çıkarılır.
Sorun: UDP Neden Ayrı Bir vService Türü Gerektirir?
UDP bağlantısızdır: istemci paketi gönderir, oturum kurulmaz. HTTP ve L7 TCP vService'ler TCP bağlantılarını karşılar ve UDP taşımaz; DNS, NTP, Syslog gibi UDP servisleri Network vService ile yayınlanır. Network vService'te paketin Kurum Servisine hangi kaynak adresle ulaşacağı ve yanıtın istemciye hangi yoldan döneceği LB Mode ile belirlenir; her modun sunucu ve ağ tarafındaki gereksinimi farklıdır.
Çözüm: Üç Yöntem
Üç yöntemde de vService aynı biçimde oluşturulur; fark LB Mode seçimi ve buna bağlı sunucu hazırlığıdır.
| Durumunuz | Uygun yöntem | Kurum Servisi tarafında değişiklik |
|---|---|---|
| Sunuculara dokunulamıyor; istemci IP'sinin görülmesi gerekmiyor (ör. NTP, iç DNS) | Yöntem 1: SNAT | Gerekmez; yalnızca sunucudaki erişim listeleri SNAT IP'sine izin vermelidir |
| Yüksek hacim; yanıtlar TR7'yi atlasın, istemci IP'si korunsun (ör. dış DNS) | Yöntem 2: Direct Server Return | Gerekir: vService adresi sunucuya ARP yanıtsız yerel adres olarak eklenir |
| İstemci IP'si korunsun (ör. Syslog'da göndereni görmek); TR7 sunucuların ağ geçidi olabilir | Yöntem 3: Route Mode | Gerekir: sunucunun dönüş yolu TR7 yapılır |
Yöntem 1: SNAT
- Nasıl çalışır TR7 paketin kaynak adresini seçilen SNAT IP ile değiştirir; sunucu yanıtı SNAT IP'sine, yani TR7'ye gönderir, TR7 de istemciye iletir.
- Nerede açılır Network vService → LB Mode → SNAT → SNAT IP
- Gereksinim SNAT IP olarak kullanılacak, vService'in route tablosundaki bir TR7 IP'si
- vService tipi Network (UDP - L4)
- Kurum Servisi tarafı Değişiklik gerekmez. Sunucu bütün istekleri SNAT IP'sinden gelmiş görür; sunucuda istemci adresine göre erişim kısıtı (ör. DNS sunucusunda izin verilen ağlar, NTP erişim listesi) varsa SNAT IP'sine izin verilir.
Adım adım yapılandırma
Load Balancer → Profiles → Health Checks → Add adımları izlenir (nasıl eklenir).
Name girilir; Check Type olarak DNS sunucuları için DNS seçilip Query alanına sorgulanacak alan adı (ör. example.com) yazılır; NTP ve Syslog gibi diğer UDP servisleri için UDP seçilip UDP Scenario tanımlanır. Check type varsayılan olarak HTTP gelir ve kayıttan sonra değiştirilemez. Ayrıntı: DNS sunucularını nasıl health check ederim?, DNS dışındaki UDP servislerini nasıl health check ederim (UDP senaryosu, Hex/Base64/metin)?
Formun altındaki Add butonuna tıklanır.
Load Balancer → Backend Services → Add adımları izlenir (Kurum Servisi nasıl eklenir; hangi bilgiler zorunludur?). Her sunucu için bir Kurum Servisi eklenir; bu adım ve sonraki iki adım her sunucu için tekrarlanır.
Backend Service Name ve Address (sunucunun IP'si ve servis portu, ör. 192.0.2.21:53) girilir; Route Table olarak vService'te kullanılacak route tablosu seçilir (varsayılan DEFAULT); Health Check alanında 1–3. adımlarda oluşturulan profil seçilir.
Formun altındaki Add butonuna tıklanır.
vService'in dinleyeceği adres TR7'de tanımlı değilse Network → Interfaces → Actions → Add IP adımları izlenir (nasıl eklenir).
IP Interface alanında istemcilerin ulaşacağı arayüz seçilir; adres ve CIDR (ör. 203.0.113.53/24) yazılır. Cluster'da iki cihazın paylaşacağı adres VIP olarak eklenir (Add IP Address (Cluster)); etkin cihaz değiştiğinde VIP eş cihaza geçer.
Formun altındaki Add IP butonuna tıklanır. SNAT IP olarak ayrı bir adres kullanılacaksa o da sunucuların bulunduğu ağdaki arayüze aynı üç adımla eklenir.
Load Balancer → Load Balancer vService List → Add adımları izlenir; Name girilir ve Type olarak Network seçilir.
Route Table alanında Kurum Servislerinin ve frontend IP'sinin bulunduğu route tablosu seçilir (varsayılan DEFAULT). Protocol olarak UDP - L4 seçilir; Port Range kapalı kalır (varsayılan).
Frontend tablosu başlığındaki (+) ikonuyla satır eklenir ve IP seçilir. Yeni satır 80 portuyla gelir; port servisin portu yapılır: DNS için 53, NTP için 123, Syslog için 514.
Default Backend Services tablosunda 4–6. adımlarda eklenen Kurum Servisleri seçilir. Listede yalnızca seçili route tablosundaki Kurum Servisleri görünür.
LB Mode alanında SNAT seçilir; görünen zorunlu SNAT IP alanından TR7'nin sunucularla aynı route tablosundaki bir IP'si seçilir.
Formun sağ üstündeki Details anahtarı açılır; LB Algorithm kutusunda Round-Robin (varsayılan) seçili kalır. DNS ve NTP gibi her isteği bağımsız olan servislerde L4 Persistence kapalı bırakılır.
Save butonuna tıklanır. Network vService'te her kayıt vService'i yeniden başlatır; değişiklik düşük trafikli bir zamanda yapılır. Uygulamanın ilerlemesi ekranın sağ altındaki senkron göstergesinden izlenir. Cluster kurulumunda değişiklik varsayılan auto-sync ile eş cihaza da aktarılır; Manual Sync Mode açıksa Synchronize ile elle gönderilir.
Doğrulama
dig @203.0.113.53 example.comntpdate -q 203.0.113.53Yanıt gelir; sunucu loglarında isteğin kaynak adresi SNAT IP'sidirYöntem 2: Direct Server Return
- Nasıl çalışır TR7 paketi hedef adresi ve portu değiştirmeden Kurum Servisine iletir; sunucu yanıtı TR7'yi atlayarak doğrudan istemciye, vService adresinden gönderir.
- Nerede açılır Network vService → LB Mode → Direct Server Return (varsayılan)
- Gereksinim Kurum Servislerinin TR7 ile aynı L2 segmentinde olması
- vService tipi Network (UDP - L4, Port range kapalı)
- Kurum Servisi tarafı Gerekir: vService adresi her sunucuda yerel adres olarak tanımlanır, bu adres için ARP yanıtı kapatılır ve servis bu adreste de dinler. TR7 bu hazırlığı denetlemez; hazırlık yapılmazsa paketler yanıtsız kalır.
Adım adım yapılandırma
Her Kurum Servisinde vService adresi (ör. 203.0.113.53) loopback arayüzüne /32 olarak eklenir ve sunucunun bu adres için ARP yanıtı vermesi kapatılır; servis (DNS, NTP…) bu adreste de dinleyecek şekilde ayarlanır. Linux için örnek aşağıdaki panelde yer alır; diğer işletim sistemlerinde de aynı iki koşul (adres yerel, ARP yanıtı yok) sağlanır. Bu ayar TR7'de değil sunucuda yapılır.
Yöntem 1'in 1–9. adımları uygulanır: health check profili, sunucularla aynı L2 segmentindeki route tablosunda Kurum Servisleri ve vService adresi.
Yöntem 1'in 10–13. adımları uygulanır: Type Network, Protocol UDP - L4, Port Range kapalı, frontend portu ve Kurum Servisleri. Direct Server Return yalnızca Port range kapalıyken uygulanır.
LB Mode alanında Direct Server Return seçili kalır (varsayılan mod budur).
Details → LB Algorithm kutusunda Round-Robin seçili kalır.
Save butonuna tıklanır. Cluster kurulumunda değişiklik varsayılan auto-sync ile eş cihaza da aktarılır.
Örnekteki 203.0.113.53 yerine vService'in frontend adresi yazılır. Ayarların kalıcı olması için dağıtımın ağ ve sysctl yapılandırma dosyalarına da eklenir.
ip addr add 203.0.113.53/32 dev lo
sysctl -w net.ipv4.conf.all.arp_ignore=1
sysctl -w net.ipv4.conf.all.arp_announce=2ARP ayarlarının anlamı
arp_ignore=1 sunucunun yalnızca isteğin geldiği arayüzde tanımlı adresler için ARP yanıtı vermesini, arp_announce=2 ARP isteklerinde en uygun yerel adresin kullanılmasını sağlar; böylece loopback'teki vService adresi ağa duyurulmaz (Linux kernel · ip-sysctl).
Doğrulama
dig @203.0.113.53 example.com · sunucuda tcpdump -n udp port 53Yanıt gelir; sunucuda sorgunun kaynağı istemcinin IP'si, hedefi vService adresidirYöntem 3: Route Mode
- Nasıl çalışır TR7 paketin hedef adresini Kurum Servisinin adresine çevirir, kaynak adresi (istemcinin IP'si) korur; sunucunun yanıtı TR7 üzerinden istemciye döner.
- Nerede açılır Network vService → LB Mode → Route Mode
- Gereksinim Kurum Servislerinin dönüş trafiğinin TR7'den geçmesi
- vService tipi Network (UDP - L4, Port range kapalı)
- Kurum Servisi tarafı Gerekir: sunucuların default gateway'i TR7'nin sunucu ağındaki IP'si yapılır ya da istemci ağlarına giden yol TR7 üzerinden tanımlanır. Sunucu istemcilerin gerçek IP'sini gördüğü için sunucudaki erişim listeleri istemci ağlarına izin vermelidir.
Adım adım yapılandırma
Kurum Servislerinin default gateway'i TR7'nin sunucu ağındaki IP'si yapılır; yalnızca belirli istemci ağları için TR7 kullanılacaksa sunucuya bu ağlar için TR7 üzerinden statik yol eklenir. Cluster'da gateway olarak iki cihazın paylaştığı bir VIP kullanılır; böylece etkin cihaz değiştiğinde ağ geçidi de eş cihaza geçer. Bu ayar sunucuda ya da sunucu ağının yönlendirmesinde yapılır.
Yöntem 1'in 1–9. adımları uygulanır.
Yöntem 1'in 10–13. adımları uygulanır: Type Network, Protocol UDP - L4, Port Range kapalı, frontend portu ve Kurum Servisleri.
LB Mode alanında Route Mode seçilir.
Details → LB Algorithm kutusunda Round-Robin seçili kalır.
Save butonuna tıklanır. Cluster kurulumunda değişiklik varsayılan auto-sync ile eş cihaza da aktarılır.
Doğrulama
logger -n 203.0.113.53 -P 514 -d "tr7 test"Mesaj Syslog sunucusunda gönderen istemcinin IP'siyle görünürSık Yapılan Hatalar
- Portu değiştirmeyi unutmak. Yeni frontend satırı 80 portuyla gelir; UDP servisinin portu elle yazılır.
- Varsayılan modu fark etmemek. LB Mode varsayılan olarak Direct Server Return gelir; sunucu hazırlanmadan bırakılırsa paketler yanıtsız kalır.
- Health check atamamak. Health check tanımlı olmayan Kurum Servisi her zaman erişilebilir kabul edilir; kapanan sunucu paket almaya devam eder.
- Syslog'da SNAT kullanmak. SNAT'ta bütün mesajlar SNAT IP'sinden gelmiş görünür; gönderen cihaz ayırt edilemez. Syslog için Route Mode ya da Direct Server Return kullanılır.
- SIP olmayan UDP trafiğinde SIP persistence açmak. SIP Persistence paketleri SIP olarak ayrıştırır; SIP olmayan paketler düşürülür.
- Syslog'da eşit dağılım beklemek. Dağıtım akış başına yapılır; sabit kaynak portla sürekli gönderen bir Syslog istemcisinin trafiği tek bir akış sayılır ve hep aynı Kurum Servisine gider.
- Port range açmak. Port Range açıkken LB mode uygulanmaz, sağlık durumu dağıtıma yansımaz ve yalnızca Round-Robin / Weighted Round-Robin kullanılır.
Dokümantasyonda nasıl yapılır
