Yalnızca iç ağdan (belirli IP'lerden) gelen kullanıcıları test sunucusuna yönlendirebilir miyim?
Kısa cevap
Evet. Source IP koşulunda Source IP Type = Manual seçilip iç ağ adresleri ya da CIDR blokları yazılır ve koşul, test sunucusunu hedefleyen bir Conditional Backend Services (Content Switching) bloğuna bağlanır; diğer kullanıcılar Default Backend Services'e gitmeye devam eder. Yalnızca belirli bir yolu ya da alan adını ayırmak için Source IP koşulu aynı grupta and ile Path ya da HTTP Header koşuluyla birleştirilir. TR7'nin önünde bir proxy varsa HTTP vService'e Trusted Proxy profili atanır; aksi hâlde koşul proxy'nin adresini görür.
Sorun: Test Sunucusu Yalnızca İç Kullanıcılara Açık Olmalı
Yeni bir sürüm canlı ortama alınmadan önce yalnızca şirket içinden gelen kullanıcılarla denenmek istenebilir. Aynı adrese gelen isteklerden iç ağ adreslerinden gelenlerin test sunucusuna, diğerlerinin mevcut sunuculara gitmesi gerekir. Kurum Servisi tarafında bir değişiklik gerekmez; ayrım TR7'de yapılır.
Çözüm: Üç Yöntem
| Durumunuz | Uygun yöntem |
|---|---|
| İstemcinin adresi birkaç adres ya da ağ bloğuyla karşılaştırılacak | Yöntem 1: Source IP → Manual |
| Adres, istemci adresi dışında bir Smart Variable'dan okunacak ya da liste ayrı tutulacak | Yöntem 2: Dynamic list (IP/cidr match) |
| Bir Smart Variable tek bir ağ bloğuyla karşılaştırılacak | Yöntem 3: Dynamic condition (IP/cidr match) |
Yöntem 1: Source IP → Manual Önerilen
- Nasıl çalışır İstemcinin IP adresi yazılan adres ve CIDR listesiyle karşılaştırılır; eşleşen istekler bloğun Kurum Servislerine gider.
- Nerede açılırLoad Balancer → Conditions → Source IP → Manual · vService → + Conditional backend services
- Gereksinim HTTP ya da L7 TCP vService; TR7 bir proxy arkasındaysa HTTP vService'te Trusted proxy profili
- vService tipi HTTP · L7 TCP
Adım adım yapılandırma
TR7'nin önünde bir proxy, CDN ya da adres çeviren bir cihaz varsa koşul istemcinin değil o cihazın adresini görür. HTTP vService'te Load Balancer → Profiles → Trusted Proxies → Add ile Sources altında Real IP from ve proxy'nin Trusted Networks adresleri girilip Add ile kaydedilir (profil ekleme formu); vService formunun Details panelinde Trusted Proxy işaretlenip profil seçilir (vService'e nasıl eklenir). L7 TCP vService'te Trusted proxy profili yoktur. Proxy yoksa bu adım atlanır.
Load Balancer → Conditions → Add ile koşul formu açılır (nasıl eklenir).
Condition Name girilir, Criteria = Source IP, Source IP Type = Manual seçilir. Source IP alanına IPv4 ya da IPv6 adresleri ve CIDR blokları boşlukla ya da her satıra bir tane gelecek biçimde yazılır (ör. 198.51.100.0/24). # ile başlayan satırlar yorum sayılır; satır içine yorum yazılmaz.
Koşul Add ile kaydedilir.
Test sunucusu TR7'de henüz Kurum Servisi olarak tanımlı değilse Load Balancer → Backend Services → Add ile Backend Service Name, Address (ör. 192.0.2.31:8080) ve Health Check girilip Add ile kaydedilir; Health check seçilmezse (varsayılan No check) sunucunun erişilemez olduğu algılanmaz. Ayrıntı: Kurum Servisi nasıl eklenir; hangi bilgiler zorunludur?
Load Balancer → Load Balancer vService List ekranında vService seçilip Edit tıklanır; Default Backend Services tablosunun üstündeki + Conditional backend services tıklanır. Bloğun Select Conditions alanında koşul, Backend Services tablosunda test sunucusu seçilir.
Yalnızca belirli bir yol ya da alan adında yönlendirme isteniyorsa önce Criteria = Path (ör. Start /test/) ya da Header Name = Host olan bir HTTP Header koşulu (Exact Match) oluşturulur (URL path'ine göre farklı sunuculara nasıl yönlendiririm (ör. /api → API sunucuları)?; Host Header'ına göre yönlendirme yapabilir miyim?). Bu koşul bloktaki aynı gruba eklenir ve grubun anahtarı and konumunda bırakılır (çoklu koşul mantığı). Path ve HTTP header koşulları yalnızca HTTP vService'te seçilebilir.
vService Save ile kaydedilir. Cluster kurulumunda değişiklik, Manual Sync Mode kapalıyken (varsayılan) eş cihaza otomatik aktarılır.
Doğrulama
İç ağdaki bir istemciden istek gönderilir; Left Monitor Panel'de vService açılıp Logs & Tracking sekmesindeki HTTP Logs ekranında Backend Service kolonuna bakılır (vService'e bir Logs profili atanmış olmalıdır). L7 TCP vService'te bağlantının gittiği Kurum Servisi, aynı sekmedeki vService Sessions ekranında görülür.
İç ağdan gelen istek → test sunucusuİç ağ dışındaki bir adresten istek gönderilir ve HTTP Logs ekranında isteğin gittiği Kurum Servisine bakılır.
Default backend servicesYöntem 2: Dynamic List (IP/cidr match)
- Nasıl çalışırKey to Search alanındaki Smart Variable'ın değeri (varsayılan istemci IP adresi) çok satırlı bir IP/CIDR listesinde aranır.
- Nerede açılırLoad Balancer → Conditions → Dynamic List
- Gereksinim HTTP ya da L7 TCP vService
- vService tipi HTTP · L7 TCP
Adım adım yapılandırma
Load Balancer → Conditions → Add ile koşul formu açılır (nasıl eklenir).
Condition Name girilir, Criteria = Dynamic List seçilir. Key to Search varsayılan olarak istemci IP adresidir; başka bir Smart Variable gerekiyorsa fx ile seçilir. Search Method = IP/cidr match seçilir ve List alanına her satıra bir adres ya da blok yazılır. Search method formda Exact match olarak gelir; bu yöntem IP bloklarını (/24 gibi) eşlemediği için IP listesinde mutlaka IP/cidr match seçilir.
Koşul Add ile kaydedilir.
Test sunucusu TR7'de henüz Kurum Servisi değilse Load Balancer → Backend Services → Add ile tanımlanır (Kurum Servisi nasıl eklenir; hangi bilgiler zorunludur?).
vService Edit ile açılır; + Conditional backend services ile blok eklenir, Select Conditions alanında koşul, Backend Services tablosunda test sunucusu seçilir.
vService Save ile kaydedilir.
Doğrulama
Listedeki ve liste dışındaki birer adresten istek gönderilir; HTTP Logs ekranında isteklerin gittiği Kurum Servisine bakılır.
Listedeki adres → test sunucusu · diğerleri → Default backend servicesYöntem 3: Dynamic Condition (IP/cidr match)
- Nasıl çalışırQuery Key alanındaki Smart Variable'ın değeri (ör. istemci IP adresi) tek bir IP/CIDR bloğuyla karşılaştırılır.
- Nerede açılırLoad Balancer → Conditions → Dynamic Condition
- Gereksinim HTTP ya da L7 TCP vService
- vService tipi HTTP · L7 TCP
Adım adım yapılandırma
Load Balancer → Conditions → Add ile koşul formu açılır (nasıl eklenir).
Condition Name girilir, Criteria = Dynamic Condition seçilir. Query Key alanında fx ile istemci IP adresi değişkeni seçilir; Operator = IP/cidr match seçilip IP/cidr to compare alanına ağ adresi ve CIDR (ör. 198.51.100.0 / 24) girilir.
Koşul Add ile kaydedilir.
Test sunucusu TR7'de henüz Kurum Servisi değilse Load Balancer → Backend Services → Add ile tanımlanır (Kurum Servisi nasıl eklenir; hangi bilgiler zorunludur?).
vService Edit ile açılır; + Conditional backend services ile blok eklenir, Select Conditions alanında koşul, Backend Services tablosunda test sunucusu seçilir.
vService Save ile kaydedilir.
Doğrulama
Blok içindeki ve dışındaki birer adresten istek gönderilir; HTTP Logs ekranında isteklerin gittiği Kurum Servisine bakılır.
Bloktaki adres → test sunucusu · diğerleri → Default backend servicesSık Yapılan Hatalar
- TR7 bir proxy ya da adres çeviren bir cihaz arkasındayken Trusted proxy profili atamamak. Koşul bu durumda o cihazın adresini görür ve bütün istekler aynı adresten geliyormuş gibi değerlendirilir. HTTP vService'te Trusted proxy profili atanır; L7 TCP vService'te bu profil yoktur.
- Satır içi yorum yazmak.
#yalnızca satır başında yorum sayılır; adresin yanına yazılan yorum geçersiz adres olarak değerlendirilir. - Adresleri denetlemeden kaydetmek. Source IP alanında adres biçimi kaydederken denetlenmez; bütün satırlar yorumsa koşul hiçbir istekle eşleşmez.
- Tersini ayrıca tanımlamak. "İç ağ değilse" gerekiyorsa koşulun listede hazır gelen olumsuz hâli seçilir (Bir koşulu olumsuz ("şu değilse") olarak kullanabilir miyim?).
Dokümantasyonda nasıl yapılır
İlgili sorular
- Canary veya blue-green dağıtımı nasıl yaparım?
- İstemcinin ülkesine / şehrine göre farklı backend'e yönlendirebilir miyim?
- Bir koşulu olumsuz ("şu değilse") olarak kullanabilir miyim?
- Birden fazla IP adresiyle yayınlanan bir vService'te hedef IP'ye göre farklı kural uygulayabilir miyim (Destination IP)?
