Health Check paketleri hangi kaynak IP'den gider; bunu değiştirebilir miyim?
Kısa cevap
Health Check Source IP alanı varsayılan olarak Default'tur: denetim Kurum Servisinin Route Table'ı üzerinden gönderilir ve kaynak adres, bu route table'da 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. Health check veri trafiğinin SNAT ayarını kullanmaz. Kaynak adres, Kurum Servisinin ya da Backend Group'un Details bölümündeki Health Check Source IP alanında Device IP seçilerek sabitlenir; WEB-CLI'da --differentSrcType deviceSrc ve --deviceSrc ile yazılır.
Sorun: Sunucu Firewall'u Belirli Bir Kaynak Adres Bekliyor
Sunucuların önündeki firewall ya da uygulama erişim listeleri çoğu zaman yalnızca belirli kaynak adreslere izin verir. Health check beklenmeyen bir TR7 IP'sinden gelirse engellenir; sunucu çalıştığı hâlde Error görünür ve trafikten çıkar. Bu yüzden denetimin kaynak adresinin bilinmesi ve gerektiğinde sabitlenmesi gerekir.
Default'ta kaynak adresin belirlenmesi (her Kurum Servisi için ayrı):
| Sunucuya erişim | Kaynak adres | Örnek |
|---|---|---|
| Sunucu, route table'daki bir arayüzün subnet'inde | O arayüzün, sunucuyla aynı subnet'teki Interface IP'si | Interface IP 192.0.2.5/24, sunucu 192.0.2.20 → kaynak 192.0.2.5 |
| Sunucuya route table'daki bir route (ör. default gateway) üzerinden gidiliyor | Route'un çıktığı arayüzün, gateway'le aynı subnet'teki Interface IP'si | Gateway 192.0.2.254, arayüz IP 192.0.2.5/24, sunucu 203.0.113.20 → kaynak 192.0.2.5 |
| Aynı subnet'te arayüze birden fazla IP eklenmiş | Bu IP'lerden biri; hangisinin kullanılacağı arayüzdeki sıradan anlaşılmaz. Belirli bir adres gerekiyorsa Device IP seçilir | - |
| Cluster | Her cihaz kendi Interface IP'sini kullanır; VIP kaynak olarak kullanılmaz | Cihaz 1 192.0.2.5, cihaz 2 192.0.2.6 |
Route table'da tek arayüz ve tek IP varsa kaynak adres her zaman o IP'dir. Hangi arayüz ve IP'nin hangi route table'da olduğu Network → Interfaces ekranında görülür (Route Tables).
Çözüm: 2 Yöntem
İki yöntem aynı ayarı farklı arayüzlerden yapar.
| Durumunuz | Uygun yöntem |
|---|---|
| Kurum Servisi ya da Backend Group'u arayüzden düzenliyorum | Yöntem 1: Device IP |
| Aynı ayarı WEB-CLI'dan yapıyorum | Yöntem 2: WEB-CLI |
Yöntem 1: Device IP Önerilen
- Nasıl çalışır Seçilen TR7 IP'si, health check isteklerinin kaynak adresi olarak kullanılır; veri trafiğinin kaynak adresi değişmez.
- Nerede açılırLoad Balancer → Backend Services (ya da Backend Groups) → Edit → Details → Health Check Source IP
- Gereksinim Kurum Servisinin Route Table'ında tanımlı bir TR7 IP'si; yoksa önce Network → Interfaces ekranında ilgili arayüze eklenir (Add IP Address)
- vService tipi Tümü
- Backend Group'ta Alan grup düzeyindedir; gruptaki bütün sunucuların denetimi aynı kaynak adresten yapılır
Adım adım yapılandırma
Load Balancer → Backend Services yolu izlenir; Kurum Servisine sağ tıklanıp Edit seçilir. Backend Group için Load Balancer → Backend Groups ekranında aynı işlem yapılır.
Route Table alanında sunucuya erişen route table'ın seçili olduğu kontrol edilir; varsayılan DEFAULT'tur. Device IP listesi bu route table'ın adresleriyle sınırlıdır.
Formun altındaki Details anahtarı açılır.
Health Check Source IP alanında Device IP seçilir; alanın varsayılan değeri Default'tur.
Açılan listeden kaynak olarak kullanılacak TR7 IP'si seçilir. Cluster'da Interface IP seçilir; her cihaz bu kaydın kendi adresini kullanır.
Formun altındaki Edit butonuna tıklanır. Cluster'da değişiklik varsayılan olarak eş cihaza kendiliğinden aktarılır; Manual Sync Mode açıksa Synchronize ile gönderilir.
Sunucunun ya da önündeki firewall'un erişim listesine seçilen IP eklenir; cluster'da iki cihazın adresi de eklenir (Sunucu firewall'unda health check için hangi IP'lere izin vermeliyim?).
Doğrulama
Önizlemenin Details sekmesindeki Health Check Source IP satırı seçilen adresi gösterir; cluster'da iki cihazın değeri farklıysa cihaz adlarıyla iki kolonda gösterilir (Details satırları).
Health Check Source IP: 192.0.2.5Sunucuda denetim portuna gelen paketlerin kaynak adresine bakılır (örnekte port 80).
tcpdump -n 'tcp dst port 80 and tcp[tcpflags] & tcp-syn != 0'192.0.2.5.xxxxx > 192.0.2.20.80: Flags [S]Yöntem 2: WEB-CLI
- Nasıl çalışır Kaynak adres türü
--differentSrcType deviceSrc, kullanılacak IP kaydı--deviceSrcile Kurum Servisi (ya da Backend Group) kaydına yazılır. - Nerede açılır WEB-CLI →
lb backend update/lb backend-group update(lb backend · Health check alanları) - Gereksinim WEB-CLI erişimi; Kurum Servisi kimliği (
lb backend list) ve IP kaydının kimliği (network ip list v-device Host) - vService tipi Tümü
Adım adım yapılandırma
IP kayıtları kimlikleriyle listelenir; Kurum Servisinin route table'ında bulunan IP'nin kimliği alınır (--deviceSrc yalnız bu route table'daki IP kayıtlarını kabul eder):
network ip list v-device Host--deviceSrc yalnızca --differentSrcType deviceSrc ile birlikte yazılır; değer, 1. adımda bulunan IP kaydının kimliğidir:
lb backend update id <backend-kimliği> --differentSrcType deviceSrc --deviceSrc <ip-kimliği>Backend Group için aynı alanlar lb backend-group update id <grup-kimliği> komutuyla yazılır.
Doğrulama
Kurum Servisi kaydı görüntülenir.
lb backend show <backend-kimliği>differentSrcType deviceSrc, deviceSrc = seçilen IP kaydıSık Yapılan Hatalar
- SNAT ayarının health check'i de kapsadığını sanmak. SNAT (Use Client IP, Use Device IP) yalnızca veri trafiğine uygulanır; health check'in kaynağı Health Check Source IP alanıdır.
- Route table'ı değiştirip kaynak adresi kontrol etmemek. Default'ta kaynak adres route table'a göre belirlenir; Device IP listesi de route table'a göre değişir.
- Cluster'da tek cihazın adresine izin vermek. Her cihaz denetimi kendi adresinden yapar ve sonucu ayrı gösterir; sunucu firewall'unda iki cihazın adresine de izin verilir.
- Farklı denetim adresiyle karıştırmak. Use Different IP for Health Check denetimin hedefini, Health Check Source IP kaynağını değiştirir (Health Check için sunucunun farklı bir IP'sini/portunu kontrol edebilir miyim (Use Different IP for Health Check)?).
Dokümantasyonda nasıl yapılır
