ICMP, GRE, IPsec gibi port kavramı olmayan protokoller için yük dengeleme yapabilir miyim (ANY - L3)?
Kısa cevap
Evet, Network vService'te Protocol olarak ANY - L3 seçilerek. Bu protokolde frontend adresine gelen bütün IP trafiği (ICMP, GRE, ESP…) hedef adresi Kurum Servisine çevrilerek dağıtılır. Kısıtları vardır: algoritma yalnızca Round-Robin ya da Weighted Round-Robin olur, LB Mode uygulanmaz (yalnızca SNAT IP seçilmişse kaynak adres çevrilir), health check sonucu dağıtıma yansımaz ve IPsec AH taşınamaz. IPsec'te IKE ve ESP'nin aynı sunucuya gitmesi için L4 Persistence açılır. ANY - L3 IP'nin bütün portlarını kullandığı için bu vService'e ayrı bir frontend IP'si gerekir.
Sorun: Port Olmayan Protokoller Nasıl Dağıtılır?
ICMP, GRE, ESP gibi protokollerde TCP ve UDP'deki gibi bir port yoktur; dağıtım yalnızca IP adresine göre yapılabilir. Bu tür trafik bir IP adresinin bütün protokollerini kapsadığı için aynı adreste başka bir vService çalışamaz. Ayrıca bazı protokoller (IPsec AH) paketin adres bilgilerini bütünlük denetimine kattığı için adres çevirisinden sonra doğrulanamaz.
Çözüm
Network vService ile ANY - L3
- Nasıl çalışır Frontend adresine gelen paketlerin hedef adresi seçilen Kurum Servisinin adresine çevrilir; dağıtım Round-Robin ya da Weighted Round-Robin ile yapılır ve trafik her durumda TR7 üzerinden geçer.
- Nerede açılır vService → Type: Network → Protocol: ANY - L3
- Gereksinim Bu vService'e ayrılmış bir frontend IP'si
- vService tipi Network
- Kurum Servisi tarafı SNAT IP seçilmezse Kurum Servisinin dönüş trafiği TR7'den geçmelidir (sunucunun gateway'i TR7). SNAT seçilirse sunucuda değişiklik gerekmez; sunucu trafiği SNAT IP'sinden gelmiş görür.
Adım adım yapılandırma
Başka bir vService'in kullanmadığı bir IP yoksa Network → Interfaces → Actions → Add IP adımları izlenir (nasıl eklenir). Aynı form Network vService'in Frontend IP listesindeki Add IP ile de açılır.
IP Interface alanında vService'in route tablosundaki arayüz seçilir, adres ve CIDR yazılır. Cluster'da adres VIP olarak eklenir. Network vService'te Frontend IP listesi seçili route tablosunun IP'leriyle sınırlıdır (Frontend IP'sini neden elle yazamıyorum; listede olmayan bir IP'yi (ör. IPv6) vService'te kullanmak için ne yapmalıyım?).
Formun altındaki Add IP butonuna tıklanır.
Load Balancer → Backend Services ekranında Add butonuna tıklanır (Kurum Servisi nasıl eklenir; hangi bilgiler zorunludur?).
Backend Service Name ve Address girilir; Route Table olarak vService'in route tablosu seçilir. ANY - L3'te paketlerin hedef portu değiştirilmez.
Formun altındaki Add butonuna tıklanır. Her sunucu için 4–6. adımlar tekrarlanır.
Load Balancer → Load Balancer vService List → Add adımları izlenir; Name girilir ve Type olarak Network seçilir.
Route Table seçilir ve Protocol olarak ANY - L3 seçilir. Frontend satırlarının Port alanı 0'a kilitlenir ve bütün portlar işlenir; Port Range ve SIP Persistence gizlenir.
Frontend satırında 1–3. adımlarda eklenen IP seçilir. ANY - L3 bütün portları kapsadığı için aynı IP'de başka bir vService varsa form "Port collision" hatası gösterir.
Default Backend Services tablosunda 4–6. adımlarda eklenen Kurum Servisleri seçilir.
Kurum Servisinin dönüş yolu TR7 değilse LB Mode alanında SNAT seçilir ve görünen SNAT IP alanından TR7'nin route tablosundaki bir IP'si seçilir. ANY - L3'te LB mode seçeneklerinden yalnızca Direct Server Return ve SNAT görünür; Direct Server Return uygulanmaz ve trafik TR7 üzerinden yönlendirilir.
Formun sağ üstündeki Details anahtarı açılır; LB Algorithm kutusunda Round-Robin ya da Weighted Round-Robin seçilir. IPsec gibi birden fazla protokolün aynı sunucuya gitmesi gerekiyorsa L4 persistence açılır (süre 5 dakika ile gelir).
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. 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
ping 203.0.113.20 · Kurum Servisinde tcpdump -n icmpPing yanıtlanır; ICMP paketleri Kurum Servisinde görünürSık Yapılan Hatalar
- Health check'e güvenmek. ANY - L3'te health check sonucu dağıtıma yansımaz; arızalı Kurum Servisi paket almaya devam eder.
- IPsec AH kullanmak. Adres çevirisi AH'nin bütünlük denetimini bozar; IPsec ESP ile kullanılır.
- IKE ve ESP'nin ayrı sunuculara gitmesi. L4 persistence kapalıysa IPsec tüneli kurulamayabilir.
- Aynı IP'yi başka bir vService'le paylaşmak. ANY - L3 IP'nin bütün portlarını kapsar; ayrı bir IP gerekir.
- Route Mode aramak. ANY - L3'te Route Mode seçeneği görünmez; dönüş yolu TR7 değilse SNAT kullanılır.
Dokümantasyonda nasıl yapılır
