BGP FlowSpec ile DDoS Trafiğini Filtreleme

Saldırı anında herkesin derdi aynı: trafiği hızlı kesmek, bunu yaparken de meşru trafiği boğmamak. BGP FlowSpec, BGP üzerinden match + action (flow-based) kurallarını dağıtarak, servis kenarındaki PE/Edge cihazlarında istenmeyen trafiği (ör. belirli port, source/dest prefix, proto, pkt-length) çok hızlı filtrelemenizi sağlar.

Klasik ACL/IPS yaklaşımına göre en büyük fark: kuralı tek noktadan üretip (controller/NOC) ağın kenarına yayınlarsınız. Özellikle büyük ölçekli mitigasyonlarda operasyonu ciddi hızlandırır.


BGP FlowSpec nedir, nasıl çalışır?

FlowSpec, BGP’de bir “route” gibi taşınan özel bir NLRI ile:

  • Match (eşleşme): Kaynak prefix, hedef prefix, protokol, port, TCP flag, paket uzunluğu vb.
  • Action (aksiyon): discard/drop, rate-limit, redirect, mark gibi davranışlar

… tanımlamanızı sağlar. PE/Edge tarafında bu kurallar genellikle donanım/TCAM tarafında ACL benzeri uygulanır ve trafik, edge’de kesildiği için çekirdeğe yük bindirmeden saldırıyı hafifletir.


1) Ne için uygundur?

✅ Edge’de hızlı mitigasyon

  • Yaygın / volumetrik saldırılarda “local drop” ile yükü anında azaltma

✅ Tehdit izolasyonu

  • Belirli kaynak prefix’leri, belirli port/proto kombinasyonlarını hedefleme

✅ Geçici müdahale (ephemeral rules)

  • Saldırı süresince rule dağıt → saldırı bitince otomatik geri al (withdraw)

Not: Uygulama katmanı (L7) saldırılarında FlowSpec tek başına her zaman yeterli olmayabilir; ancak L3/L4 tarafında hız ve ölçek açısından çok etkilidir.


2) Temel mimari: sahada işe yarayan akış

Aşağıdaki akış “runbook” gibi düşünün:

  1. Capability tespiti: FlowSpec destekleyen PE/Edge cihazları ve yazılım sürümleri (IOS-XR, NX-OS, Junos vb.)
  2. BGP FlowSpec AFI/SAFI açılımı: BGP oturumlarında flowspec address-family aktif edilir
  3. Kural üretimi (controller/NOC):
    detect → generate flowspec → inject via BGP → monitor → withdraw
  4. Guardrails: max-rule, match karmaşıklığı, onay mekanizması, TTL/expiry (operasyonel disiplin)
  5. Gözlemleme: hit counter, drop rate, spared bandwidth, false-positive kontrolü

3) Örnek (konsept) konfigürasyon — BGP tarafı (özet)

Platforma göre sözdizimi değişir. Aşağıdaki örnek konsept amaçlıdır; üretimde vendor dokümanına göre uygulanmalıdır.

router bgp 65000
 address-family ipv4 flowspec
  neighbor 203.0.113.1 activate
  neighbor 203.0.113.1 send-community
 exit-address-family

Örnek kural (pseudo-NLRI):

  • Match: src 198.51.100.0/24 + dst-port 80 + proto tcp
  • Action: discard (drop)

Bu kuralı pratikte vendor CLI veya bir otomasyon aracı ile BGP üzerinden “flowspec route” olarak inject edersiniz (bazı platformlarda “flowspec policy / flowspec route” mantığı ile).


4) İzleme ve doğrulama: “Kural gerçekten uygulanıyor mu?”

Saldırı anında en kritik şey: kuralın edge’e indiğini ve trafikte etkisi olduğunu görmek.

Kontrol noktaları:

  • BGP FlowSpec tablo görünümü
    • show bgp ipv4 flowspec → FlowSpec NLRI’leri ve kaynak peer
  • Edge’de hit/counter doğrulama
    • show ... acl counters interface <if> (platforma göre) → kuralın paket sayacı artıyor mu?
  • Detay / match doğrulama
    • show ... flowspec detail → match alanları, action, istatistikler

Telemetri önerisi

  • Kural sonrası: drop rate, spared bandwidth, latency/packet loss etkisi
  • Meşru servis metrikleri: HTTP 2xx/5xx, uygulama yanıt süreleri, kritik servis health-check

5) Operasyonel iyi uygulamalar ve riskler (gerçek hayat maddeleri)

1) Canary / kademeli yayılım

  • Önce 1–2 edge üzerinde test edin, sonra genişletin.
    Yanlış rule meşru trafiği kesebilir.

2) Scope’u dar tutun

  • Çok geniş “drop” (ör. 0.0.0.0/0 tcp/80) yanlış pozitif riskini büyütür.
    Mümkünse: hedef prefix + sınırlı port + sınırlı proto + gerektiğinde pkt-length gibi daraltıcı match’ler.

3) Donanım limitlerini bilin

  • FlowSpec tablo kapasitesi, TCAM kullanımı, rule karmaşıklığı (range/bitmask) cihazı zorlayabilir.
  • “max-rules” ve “max-components” gibi limitleri politika haline getirin.

4) Rollback otomasyonu şart

  • Attack bitti → rule otomatik withdraw edilmeli.
    TTL/expiry yaklaşımı (rule’a süre koyma) operasyonel hataları azaltır.

5) Logging & audit

  • “Kim, neyi, neden inject etti?” sorusu her olayda sorulur.
    Kural ID, onaycı, zaman, etki, kapanış notları kayıt altına alın.

6) Upstream / Cross-AS koordinasyon

  • Cross-AS FlowSpec senaryoları “policy” ve “trust” gerektirir.
    ISP ile önceden anlaşılmadan “flowspec exchange” sürpriz sonuçlar doğurabilir.

6) Mini “incident checklist” (kopyala–yapıştır)

  • Saldırı türü: UDP/TCP? Port? Hedef prefix? PPS/BPS?
  • Match’i daralt: src/dst prefix + proto + port (+ pkt-length gerekirse)
  • Canary edge → counter/hit doğrula
  • Yayılım genişlet → telemetri ile servis sağlığı izle
  • Saldırı bitti → withdraw + postmortem + rule hygiene

CTA

Siz ağınızda FlowSpec kullanıyor musunuz?
En çok hangi senaryoda işinize yaradı: volumetrik UDP DDoS mu, yoksa belirli servis/port hedefli L4 saldırıları mı? Deneyiminizi yazın; en dikkat çekici vaka haftaya öne çıkarılacak.


Cem Kemal Erbaş sitesinden daha fazla şey keşfedin

Subscribe to get the latest posts sent to your email.

About Cem Kemal Erbaş

Check Also

Cisco BGP Best Path Selection: BGP En İyi Rotayı Nasıl Seçer?

Bir router aynı prefix için iki, üç hatta çok daha fazla BGP rotası öğrenebilir. Ancak …

Bir yanıt yazın