Condition ve Action nedir, ne işe yarar?
Kısa cevap
Condition trafiğin bir özelliğini (kaynak IP, path, header, ülke…) kontrol eder ve doğru ya da yanlış döner; Action trafik üzerinde bir işlem yapar (engelleme, yönlendirme, header ekleme…). İkisi birlikte, F5'teki iRules ve LTM policy'lerin ya da NetScaler'daki Responder / Rewrite policy'lerin TR7'deki karşılığıdır; kurallar betik yazmadan arayüzden tanımlanır. Action tek başına oluşturulduğunda hiçbir trafiği etkilemez; bir vService'in Actions listesine eklendiğinde çalışır, condition bağlanmışsa yalnızca koşul sağlanınca uygulanır.
Nasıl Çalışır?
- Condition tanımlanır. Load Balancer → Conditions ekranında kontrol edilecek özellik (Criteria) ve değer girilir. Condition tek başına hiçbir şey yapmaz.
- Action tanımlanır ve condition bağlanır. Load Balancer → Actions ekranında action türü seçilir; Conditions alanında hangi condition'lar sağlandığında çalışacağı belirlenir. Birden fazla condition and (hepsi doğru olmalı) veya or (en az biri doğru olmalı) ile birleştirilir. Bu aşamada da action henüz hiçbir trafiği etkilemez.
- Action vService'e eklenir. vService formundaki Actions listesine eklenip kaydedilince devreye girer. Action'ın isteğe mi yanıta mı uygulanacağı Execution Level ile belirlenir: On Request (istek Kurum Servisine gitmeden önce) veya On Response (yanıt istemciye dönmeden önce); yalnızca tek aşamada çalışan action türlerinde bu alan gösterilmez.
- Condition'lar değerlendirilir. Sonuç doğruysa action uygulanır; yanlışsa atlanır ve sıradaki action'a geçilir. Condition bağlanmamış action, vService'in bütün trafiğinde çalışır.
- Action'lar sırayla işlenir. Action'lar vService'teki listede yukarıdan aşağıya çalışır. Bir action isteği engeller ya da yönlendirirse sonraki action'lar o istek için çalışmaz.
Örnekler:
| Condition | Action | Sonuç |
|---|---|---|
Path /admin ile başlıyor and Source IP ofis ağı değil (!Ofis-agi) | Block | Yönetim paneline yalnızca ofisten erişilir |
| Source IP → Country = belirli bir ülke | Location Redirection | O ülkeden gelenler başka bir adrese yönlendirilir |
| Yok (koşulsuz) | Manage HTTP Security Headers | Tüm yanıtlara güvenlik header'ları eklenir |
Condition'lar yalnızca action'larda kullanılmaz: vService'in Conditional Backend Services (Content Switching) bölümünde, koşula uyan trafiği farklı Kurum Servislerine göndermek için de kullanılır.
Karşılaştırma
| Condition | Action | |
|---|---|---|
| Cevapladığı soru | Ne zaman? | Ne yap? |
| Sonucu | Doğru / yanlış | Trafik üzerinde bir işlem |
| Nereye bağlanır | Action'a, Conditional Backend Services'e ya da güvenlik profillerindeki koşul alanlarına | vService'in Actions listesine |
| Tek başına etkisi | Yok; bir action'a ya da yönlendirme kuralına bağlanınca anlam kazanır | Yok; vService'e eklenince çalışır. Koşulsuz eklenen action o vService'in bütün trafiğine uygulanır; Location Redirection ve User Authentication (On HTTP request) ise condition bağlanmadan hiç çalışmaz |
| Sektördeki karşılığı | iRule / policy içindeki koşul (F5 LTM policy condition, NetScaler policy expression) | iRule / policy içindeki eylem (F5 LTM policy action, NetScaler Responder / Rewrite action) |
| Örnek türler | Source IP, Path, HTTP Header, Browser, SSL SNI Info | Block, Location redirection, Add HTTP Header, Quarantine, Show Content |
TR7'de Condition ve Action
- Oluşturma: Load Balancer → Conditions ve Load Balancer → Actions ekranlarından eklenir; action, vService formundaki Actions listesinden seçilip kaydedilerek devreye alınır.
- Yeniden kullanım: Bir condition birden fazla action'da ve vService'te kullanılır; üzerinde yapılan değişiklik kullanıldığı her yere yansır. Nerede kullanıldığı önizleme panelindeki Used in sekmesinden görülür.
- Otomatik değili (NOT): Her condition, seçim listelerinde kendisi ve değili olarak iki seçenekle sunulur; değili adının başında
!ile gösterilir (ör.!Ofis-agi). "Şu değilse" için ayrı bir condition tanımlamak gerekmez. - vService tipi: Condition ve action'lar HTTP ve L7 TCP vService'lerde kullanılır; Network vService'lerde bulunmaz. Her türün hangi vService tipinde kullanılabildiği, docs'taki ilgili condition ve action sayfasında yazar.
Sık Karıştırılan Noktalar
- "Action'ı oluşturmak yeterlidir." Action, bir vService'in Actions listesine eklenip kaydedilmeden hiçbir trafiği etkilemez.
- "Condition'lar büyük/küçük harfe duyarsızdır." Varsayılan olarak duyarlıdır (
/Admin≠/admin); fark gözetilmemesi isteniyorsa Case Insensitive seçeneği açılır. - "Bir action isteği engellese de sonraki action'lar çalışır." Engelleyen ya da yönlendiren action'dan sonra gelen action'lar o istek için çalışmaz; bu yüzden sıralama önemlidir.
- "Condition ve action'lar her vService tipinde vardır." Yalnızca HTTP ve L7 TCP vService'lerde kullanılır.
Dokümantasyonda nasıl yapılır
