SIP/VoIP trafiği için yük dengeleme yapabilir miyim?
Kısa cevap
Evet, Network vService ile. SIP sinyalleşmesi Protocol UDP - L4 ve 5060 portuyla yayınlanır; Details panelinde L4 Persistence ve SIP Persistence açılarak aynı çağrıya (Call-ID) ait bütün SIP mesajları aynı Kurum Servisine gönderilir. SIP persistence yalnızca L4 persistence açıkken ve Port Range kapalıyken uygulanır; SIP olarak ayrıştırılamayan UDP paketlerini düşürdüğü için yalnızca SIP trafiği taşıyan vService'te açılır. TLS üzerinden SIP (5061) TCP - L4 ile taşınır ve bu trafikte SIP persistence kullanılmaz. TR7 SIP mesajlarındaki medya adreslerini değiştirmez; RTP ses akışı SIP sunucusunun bildirdiği adrese gider.
Sorun: SIP Çağrıları Neden Bölünür?
Bir SIP çağrısı tek bir mesaj değildir: INVITE, ACK, BYE gibi mesajlar ayrı UDP paketleri olarak, farklı zamanlarda gelir. Bu mesajlar farklı sunuculara dağıtılırsa çağrı yarım kalır ya da hiç kurulmaz. Kaynak IP'ye göre kalıcılık, çok sayıda telefonun aynı NAT arkasından geldiği ortamlarda bütün telefonları tek sunucuya toplar. SIP'e özgü çözüm, mesajları çağrı kimliğine (Call-ID) göre gruplamaktır.
Çözüm
SIP'i Network vService ve SIP persistence ile yayınlamak
- Nasıl çalışır TR7, SIP paketlerindeki Call-ID'yi okuyarak aynı çağrının bütün mesajlarını aynı Kurum Servisine gönderir.
- Nerede açılır vService → Type: Network → Details → LB Algorithm → L4 Persistence + SIP Persistence
- GereksinimProtocol: UDP - L4; Port Range kapalı; L4 persistence açık
- vService tipi Network (UDP - L4)
- Kurum Servisi tarafı Seçilen LB Mode'a göre değişir: SNAT'ta değişiklik gerekmez (sunucu kayıtları SNAT IP'sinden gelmiş görür); Direct Server Return'de vService adresi sunucuya ARP yanıtsız yerel adres olarak eklenir; Route Mode'da sunucunun dönüş yolu TR7 yapılır (UDP trafiği (DNS, Syslog, NTP) için yük dengeleme yapabilir miyim?). Medya (RTP) için SIP sunucusunun bildirdiği adres, istemcilerin ulaşabileceği bir adres olmalıdır.
Adım adım yapılandırma
Load Balancer → Backend Services → Add adımları izlenir (Kurum Servisi nasıl eklenir; hangi bilgiler zorunludur?). Bu adım ve sonraki iki adım her SIP sunucusu için tekrarlanır.
Backend Service Name ve Address (ör. 192.0.2.40:5060) girilir; Route Table olarak vService'in route tablosu seçilir. Yanıt vermeyen sunucuların dağıtımdan çıkması için Health Check alanında UDP türünde bir profil seçilir (DNS dışındaki UDP servislerini nasıl health check ederim (UDP senaryosu, Hex/Base64/metin)?); health check tanımlı olmayan Kurum Servisi her zaman erişilebilir kabul edilir.
Formun altındaki Add butonuna tıklanır.
vService adresi 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 yazılır. Cluster'da adres VIP olarak eklenir (Add IP Address (Cluster)).
Formun altındaki Add IP butonuna tıklanır.
Load Balancer → Load Balancer vService List → Add adımları izlenir; Name girilir ve Type olarak Network seçilir.
Route Table seçilir; Protocol olarak UDP - L4 seçilir. Port Range kapalı kalır (varsayılan).
Frontend tablosuna (+) ile satır eklenir, IP seçilir ve port 5060 yapılır (yeni satır 80 portuyla gelir).
Default Backend Services tablosunda SIP sunucuları seçilir. LB mode ağ yapısına göre seçilir (varsayılan Direct Server Return); SNAT seçilirse görünen SNAT IP alanından kaynak adres seçilir.
Formun sağ üstündeki Details anahtarı açılır; LB Algorithm kutusunda L4 Persistence açılır. Süre alanı 5 dakika ile gelir ve en uzun çağrı süresine göre ayarlanır.
Aynı kutudaki SIP Persistence anahtarı açılır (varsayılan kapalı).
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
Bir softphone vService adresine kaydedilir ve çağrı başlatılıp kapatılır.
Çağrı kurulur, ses iki yönde iletilir ve çağrı sorunsuz kapanırtcpdump -n -A udp port 5060 | grep -i call-idAynı Call-ID'nin bütün mesajları aynı sunucuda görünürSık Yapılan Hatalar
- Yalnızca SIP persistence'ı açmak. SIP Persistence, L4 Persistence açık değilse uygulanmaz.
- Port range açmak. Port Range açıkken SIP persistence ve LB mode uygulanmaz.
- SIP dışı UDP trafiği taşıyan vService'te SIP persistence açmak. SIP olarak ayrıştırılamayan UDP paketleri düşürülür.
- RTP'nin de bu vService'ten geçeceğini varsaymak. TR7 SIP mesajlarındaki (SDP) medya adreslerini değiştirmez; RTP, SIP sunucusunun bildirdiği adrese ve portlara gider. SIP sunucusu medya için vService adresini bildiriyorsa RTP port aralığı ayrıca yayınlanır (Bir vService'i geniş bir port aralığında (ör. 4000-5000) dinletebilir miyim?).
- SIP over TLS'te SIP persistence beklemek. 5061 portundaki TLS'li SIP TCP - L4 ile taşınır; şifreli olduğu için Call-ID okunamaz ve SIP persistence kullanılmaz.
Dokümantasyonda nasıl yapılır
