SNAT nedir, neden varsayılan olarak kullanılıyor?
Kısa cevap
SNAT (Source NAT), TR7'nin Kurum Servisine açtığı bağlantıda kaynak adres olarak istemcinin değil kendi IP'sini kullanmasıdır. Kurum Servisinin SNAT alanında varsayılan değer Default'tur: kaynak adres, Kurum Servisinin Route Table'ında sunucuya giden trafiğin çıktığı arayüzün, sunucuyla (gateway üzerinden gidiliyorsa gateway'le) aynı subnet'teki Interface IP'sidir. Varsayılandır çünkü sunucu yanıtı kaynak adrese, yani TR7'ye gönderir; dönüş yolu kendiliğinden doğru olur ve ağda ya da sunucularda hiçbir değişiklik gerekmez. Bedeli, sunucunun istemcinin değil TR7'nin IP'sini görmesidir.
Nasıl Çalışır?
- İstemci TR7'ye bağlanır; HTTP ve L7 TCP vService'lerde TR7 bu bağlantıyı sonlandırır.
- TR7, Kurum Servisine yeni bir bağlantı açar. Default'ta kaynak adres, Kurum Servisinin Route table'ında sunucuya giden trafiğin çıktığı arayüzün, sunucuyla aynı subnet'teki Interface IP'sidir (sunucuya gateway üzerinden gidiliyorsa gateway'le aynı subnet'teki Interface IP'si). Cluster'da her cihaz kendi Interface IP'sini kullanır. O subnet'te arayüze birden fazla IP eklenmişse hangisinin kullanılacağı arayüzdeki sıradan anlaşılmaz; belirli bir adres gerekiyorsa Use Device IP seçilir.
- Sunucu yanıtı TR7'ye gönderir; TR7 yanıtı istemciye iletir.
Örnek: Route table'da Interface IP'si 192.0.2.5/24 olan TR7, 192.0.2.20 adresindeki sunucuya 192.0.2.5 kaynağıyla bağlanır; 203.0.113.20 adresindeki sunucuya 192.0.2.254 gateway üzerinden gidiliyorsa yine 192.0.2.5 kullanılır.
Neden varsayılan? Sunucu yanıtı her zaman isteğin kaynak adresine gönderir. Kaynak TR7 olduğunda yanıt, sunucunun default gateway'i ne olursa olsun TR7'ye döner ve akış simetrik kalır. Kaynak istemcinin IP'si olsaydı sunucu yanıtı kendi gateway'e gönderir, yanıt TR7'yi atlar ve bağlantı kurulamazdı (Backend sunucularım neden tüm istekleri TR7'nin IP'sinden geliyormuş gibi görüyor?).
SNAT Seçenekleri
| Seçenek | Sunucunun gördüğü kaynak | Gereksinim |
|---|---|---|
| Default | Route table'da sunucuya giden trafiğin çıktığı arayüzün, sunucuyla (gateway üzerinden gidiliyorsa gateway'le) aynı subnet'teki Interface IP'si | Yok |
| Use Device IP | Seçilen TR7 IP'si (SNAT IP listesi Kurum Servisinin Route table'ındaki IP'lerle sınırlıdır; ilk adres kendiliğinden seçilir) | IP'nin Route table'da tanımlı olması |
| Use Client IP | İstemcinin IP'si (SNAT yapılmaz) | Yanıtların TR7'den dönmesi: sunucuların default gateway'i TR7 ya da Spoofing açık |
Alanlar Kurum Servisi formunda Details bölümündedir; Backend Group'ta grup düzeyinde ayarlanır ve gruptaki bütün sunuculara uygulanır.
TR7'de
- İstemci IP'si: SNAT açıkken istemci IP'si bağlantıda değil başka yollarla taşınır: HTTP'de X-Forwarded-For başlığı, sunucu destekliyorsa PROXY protokolü (Backend'de gerçek istemci IP'sini nasıl görürüm?).
- Network vService: SNAT, Kurum Servisi alanı değil bir LB Mode seçeneğidir ve kaynak adres vService'teki SNAT IP alanında seçilir; yeni Network vService'te varsayılan mod Direct Server Return'dür. Kurum Servisinin SNAT alanı Network vService'te kullanılmaz.
- Görünüm: Kurum Servisi önizlemesinin Details sekmesindeki SNAT satırı seçimi gösterir; tanımlanmamışsa Default yazar (Details satırları).
- Cluster: Değişiklik varsayılan olarak eş cihaza kendiliğinden aktarılır; Manual Sync Mode açıksa Synchronize ile gönderilir.
Sık Karıştırılan Noktalar
- "SNAT health check'lere de uygulanır." Health check'in kaynağı ayrı bir alan olan Health Check Source IP ile belirlenir (Health Check paketleri hangi kaynak IP'den gider; bunu değiştirebilir miyim?).
- "Use client IP seçilince istemci IP'si kendiliğinden görünür." Yanıtların TR7'den dönmesi de sağlanmalıdır; aksi hâlde bağlantılar kurulamaz.
- "Default'ta route table'daki ilk arayüzün IP'si kullanılır." Kaynak, route table'daki ilk arayüz IP'si değil; sunucuya giden trafiğin çıktığı arayüzün, sunucuyla (gateway üzerinden gidiliyorsa gateway'le) aynı subnet'teki Interface IP'sidir.
- "Use device IP'deki adres silinirse hata verir." Seçilen IP kaldırılırsa kaynak adres Default kuralına göre belirlenir.
Dokümantasyonda nasıl yapılır
