Condition ile Action arasındaki fark nedir?
Kısa cevap
Condition "hangi trafik?" sorusunu yanıtlar; isteğe ya da yanıta bakıp doğru veya yanlış sonucu üretir ve tek başına trafiği etkilemez. Action "ne yapılacak?" sorusunu yanıtlar; başlık ekler, yönlendirir, engeller ya da içerik gösterir. Action ancak vService'in Actions alanına eklendiğinde çalışır; bir condition'a bağlanırsa yalnızca condition sağlandığında, condition'sız kaydedilirse bütün trafikte çalışır (Location Redirection ve User Authentication (On HTTP request) hariç: bu ikisi condition'sız hiç çalışmaz).
Nasıl Çalışır?
Conditions & Actions ikilisi, yük dengeleyicilerdeki kural tabanlı trafik politikalarının TR7'deki karşılığıdır (F5 Local Traffic Policy / iRules, Citrix Responder / Rewrite policy benzeri); kural kod yazılmadan arayüzden kurulur.
- Condition Load Balancer → Conditions altında bir kez tanımlanır.
- Action Load Balancer → Actions altında oluşturulur ve Conditions alanında condition seçilir; birden fazla condition AND / OR ile birleştirilebilir, her condition'ın NOT hâli de seçilebilir.
- Action vService formunun Details panelindeki Actions alanına eklenir.
- İstek (ya da yanıt) geldiğinde condition sağlanırsa action çalışır; sağlanmazsa action atlanır ve sıradaki action değerlendirilir.
Karşılaştırma
| Condition | Action | |
|---|---|---|
| Sorusu | Hangi trafik? | Ne yapılacak? |
| Sonucu | Doğru / yanlış | Trafikte bir değişiklik |
| Tek başına etkisi | Yok | vService'in Actions alanına eklenince var |
| Tanımlandığı yer | Load Balancer → Conditions | Load Balancer → Actions |
| Kullanıldığı yer | Action, vService ve profil alanları (aşağıda) | vService'in Actions alanı |
| Örnek | Path /admin ile başlıyor | İsteği engelle (Block) |
Condition'ların Diğer Kullanım Yerleri
Condition'lar yalnızca action'larda kullanılmaz; aşağıdaki alanların hepsi Load Balancer → Conditions altındaki aynı kayıtlardan seçim yapar. Bir condition'ın hangi vService ve action'larda kullanıldığı, Conditions listesinde satıra tıklanınca açılan önizlemenin Used in sekmesinde görülür (Seçilen koşulun önizlemesi).
| Nerede | Alan | Ne işe yarar |
|---|---|---|
| vService formu (HTTP, L7 TCP) | Conditional Backend Services | İsteği hangi Kurum Servislerinin karşılayacağını belirler (Content Switching). Yalnızca istek aşamasındaki condition'lar seçilebilir; blok başına en fazla 3 grup bulunur. |
| vService formu → Details (HTTP) | Debug | Debug mode kayıtlarını yalnızca condition'a uyan isteklerle sınırlar; boş bırakılırsa bütün istekler kaydedilir. |
| WAF yönetimi (HTTP) | Whitelist Condition | Condition'a uyan istekleri WAF denetiminin dışında tutar. |
| WAF yönetimi (HTTP) | Conditional Blocking Pages | Engellenen isteğe condition'a göre farklı blok sayfası gösterir. |
| WAF yönetimi (HTTP) | WAF Log Suppression Condition | Condition'a uyan isteklerin WAF kaydını tutmaz. |
| Bot/DDoS yönetimi | DDoS Whitelist Condition, Bot Protection Whitelist Condition, IP Reputation Whitelist Condition | Condition'a uyan istekleri ilgili korumanın dışında tutar. |
| Bot/DDoS yönetimi → Waiting room | Waiting room condition, Conditional Waiting Pages | Bekleme salonunun hangi isteklere uygulanacağını ve hangi isteğe hangi bekleme sayfasının gösterileceğini belirler. |
| Cache profili | Caching Rules | Hangi yanıtların önbelleğe alınacağını belirler. |
| Report profili | Custom Report Fields → Table condition | Özel rapor tablosunun hangi isteklerden oluşturulacağını belirler. |
| AGS | AGS Activation Condition, akıştaki Decision Point, koruma politikalarındaki Policy Condition ve Whitelist Conditions | AGS erişim denetiminin ve politikalarının hangi isteklere uygulanacağını belirler. |
Condition Almayan Action'lar
Aşağıdaki action tiplerinin formunda Conditions alanı bulunmaz; vService'e eklendiklerinde o vService'in bütün trafiğine uygulanırlar. Actions listesinin Conditions kolonunda bu tipler için - görünür.
- Keep Header Names
- Manage HTTP Security Headers
- HTTP Cookie Security
- Cookie Encryption
- IPFIX Log Sending
- HTTP TCP Multiplexing
- HTTP 1.0 Header Compatibility
- CORS
- Ip Log Masking
- Manual Action
- Cookie Based Connection Persistency
- Redirect for Traffic Manager Errors
- Redirect for Backend Service Errors
- Show Content for Traffic Manager Errors
- Show Content for Backend Service Errors
Condition alan diğer bütün action tiplerinde Conditions alanı boş bırakılabilir; bu durumda action bütün trafiğe uygulanır. İki istisna vardır: Location Redirection ve User Authentication (On HTTP request) condition'sız kaydedilirse hiç çalışmaz (Location Redirection veya User Authentication (On HTTP request) action'ını koşulsuz eklersem neden çalışmıyor?).
TR7'de
- Condition'lar merkezîdir: bir kez tanımlanır, birden fazla action'da ve vService'te kullanılır; condition'da yapılan değişiklik kullanıldığı her yere yansır.
- Her condition, seçim listelerinde kendisi ve NOT hâliyle iki seçenek olarak görünür; ayrıca NOT condition'ı tanımlanmaz (Otomatik NOT koşulu).
- Seçim listeleri action'ın protokolüne (HTTP / TCP) ve çalışma anına (istek / yanıt) göre süzülür; örneğin Status Code yalnızca yanıt aşamasındaki action'larda seçilebilir.
- Seçim listelerinde ayrıca ürünle gelen hazır condition'lar bulunur (ör. If the client is mobile); bunlar Conditions listesinde görünmez ve düzenlenmez.
Sık Karıştırılan Noktalar
- "Condition oluşturmak trafiği etkiler." Condition, bir action ya da yukarıdaki alanlardan biri tarafından kullanılmadıkça hiçbir şey yapmaz.
- "Action'ı oluşturmak yeterlidir." Action vService'in Actions alanına eklenmedikçe çalışmaz.
- "Condition'sız action her zaman bütün trafikte çalışır." Location redirection ve User Authentication (On HTTP request) condition'sız hiç çalışmaz.
- "Her condition her action'da seçilebilir." Seçenekler action'ın protokolüne ve çalışma anına göre süzülür; condition almayan action tiplerinde Conditions alanı hiç görünmez.
Dokümantasyonda nasıl yapılır
