FortiGate Stateful HA: Failover Sırasında Oturum Sürekliliği

Kesinti anında “cihaz ayağa kalktı” demek yetmez. Gerçek HA, kritik akışların oturum (state) ile birlikte hayatta kalması ve routing/komşulukların hızlı normalize olmasıdır. FortiGate tarafında bu işi yapan temel mekanizma FGCP HA + session pickup’tır: primary’nin TCP session table’ı diğer üyelere senkronize edilir ve failover sonrası mümkün olan en az kesinti hedeflenir.


Neden şimdi?

🚦 İş-kritik akışlarda “sıfıra yakın kesinti” beklentisi
🧩 Multi-WAN + dinamik yönlendirme + SD-WAN karmaşası
🛡️ Denetime hazır runbook + ölçülebilir RTO/RPO ihtiyacı


✅ 7 Kritik Nokta (Kısa ama sahada işe yarayan checklist)

1️⃣ 🔁 Session Sync: session-pickup + bağlantısız trafik

  • TCP için: session-pickup enable
  • UDP/ICMP (VoIP/DNS gibi) için: ayrıca session-pickup-connectionless enable gerekir; aksi halde FGCP varsayılan olarak UDP/ICMP için session table tutmaz.

Örnek (FGCP – konsept):

config system ha
set session-pickup enable
set session-pickup-connectionless enable
end

Kritik gerçek: Session pickup “ideal koşullarda” çok iyi sonuç verir ama %100 garanti değildir; bazı oturumlar yine de yeniden başlayabilir.

Büyük not (çoğu kişinin atladığı):

  • Proxy-based security profile ile taranan oturumlarda stateful failover sınırlı olabilir; dokümanda proxy-based taranan session’lar için failover desteklenmediği, flow-based’te ise failover sonrası inspeksiyonun devam etmeyebileceği belirtiliyor.
  • Ayrıca cluster tarafından terminate edilen oturumlar (ör. bazı management, explicit proxy, IPsec/SSL VPN terminate senaryoları vb.) genelde stateful olarak failover olmaz; yeniden kurulumu planlayın.

2️⃣ 🧷 Heartbeat: iki bağımsız hat + izolasyon + split-brain hijyeni

Heartbeat trafiği L2 frame olarak akar; varsayılan heartbeat aralığı 200 ms’tir. En iyi pratik: heartbeat’i kullanıcı ağlarından izole edin; 2 üye varsa back-to-back bağlamak önerilir.
Ek olarak Fortinet, en az iki heartbeat interface tanımlayıp farklı öncelik vermeyi ve mümkünse patch-kablo ile direkt bağlantıyı önerir.

Split-brain riskini azaltmanın “temeli”: izole heartbeat + doğru monitor + tutarlı override/priority.


3️⃣ 🧲 Gratuitous ARP: L2 komşular hızlı güncellensin

Failover sonrası yeni master, switch’in MAC tablolarını güncellemek için Gratuitous ARP (GARP) kullanır; Fortinet bunu packet capture ile gösteriyor.
HA’da gratuitous-arps ayarı bulunur.

GARP yetmiyorsa (bazı switch/ortamlar):

  • link-failed-signal veya bounce-intf-upon-failover ile failover’da interface’leri kısa süre “down/up” yaptırıp komşu tablolarını zorla tazeletebilirsiniz.

4️⃣ 🧪 Port/Link Monitoring: “brownout” da tetiklesin, “flap” da SOC’u yakmasın

Monitored interface down olduğunda failover tetiklenir.
Best practice:

  • Heartbeat interface’i monitor etmeyin
  • Cluster tam oturmadan monitor eklemeyin
  • Her interface’i değil, kritik interface’leri izleyin
    Ayrıca Fortinet, WAN tarafındaki ISP flap’lerinin HA’yı “zıplatabileceğini” ve bu yüzden WAN monitor seçimini dikkatli yapmayı vurguluyor.

5️⃣ 🧭 Dinamik Routing: “cihaz ayakta” yetmez, routing de ayakta olmalı

HA failover’da routing daemon (ör. BGP) yeni primary’de yeniden ayağa kalkar; peer tarafı route’ları silebilirse trafik kesilir. Fortinet’in BGP graceful-restart tip’i bunu doğrudan hedefliyor.
FGCP’nin BFD-enabled BGP graceful restart desteklediği ve failover sonrası BGP’nin yeni primary’de komşulara bağlanmak için kısa bir auto-start süresi beklediği dokümante edilmiş.

Pratik hedef KPI: “BGP/OSPF komşulukları kaç saniyede normalize oluyor?”


6️⃣ ⚖️ Override / Preempt: “stabilite mi, geri dönüş mü?”

Override davranışı primary seçim mantığını etkiler. Fortinet, override ayarının tüm cluster üyelerinde tutarlı (hepsinde açık/hepsinde kapalı) olmasını “strongly recommended” olarak yazar; karışık konfigürasyonlar öngörülemez seçimlere yol açabilir.

Saha kuralı:

  • Stabilite öncelikse: gereksiz preempt/geri alma tetiklemeyin
  • Operasyon “primary hep şu cihaz olsun” diyorsa: override + priority’yi disiplinle yönetin (ve her iki node’da aynı).

7️⃣ 🧱 A-P vs A-A vs VDOM Virtual Clustering: trafik profiline göre seç

  • A-P: en basit, en öngörülebilir; state sync planlaması daha kolay
  • A-A: load-balancing ile throughput avantajı olabilir ama operasyonel karmaşıklık artar (özellikle inspection modları / session davranışları)
  • VDOM virtual clustering: Multi-VDOM’da bazı VDOM’ları bir node’a, diğerlerini öbür node’a “partition” ederek throughput’u artırabilir; failover’da normal HA gibi tek node’a düşer.

🧪 Gerçek Senaryo – Canlı Test Paketi (denetim için de altın)

🌐 TCP: Büyük download kesintisiz devam ediyor mu? (session pickup etkisi)
🎙️ SIP/RTP: UDP oturumları düşüyor mu? (connectionless pickup şart)
🔒 IPsec/SSL VPN: Tüneller otomatik toparlıyor mu? (stateful bekleme; rekey/yeniden kurulum planla)
🚚 BGP/OSPF: Komşuluk kaç sn’de geri geliyor? (graceful restart/BFD)
🧲 L2: GARP sonrası switch MAC tabloları güncelleniyor mu?


⚡ 48s Mini-Sprint (Hemen başla)

  1. ✅ session-pickup açık mı? UDP/ICMP gerekiyorsa session-pickup-connectionless açık mı?
  2. ✅ Heartbeat: en az 2 interface, izole, mümkünse back-to-back/dedicated switch?
  3. ✅ Monitor listesi: sadece kritik interface’ler, hbdev hariç?
  4. 🧪 Brownout simülasyonu: uplink loss/jitter ile failover tetikle
  5. 📈 Metrikler: failover süresi, oturum yaşama oranı, SIP drop %, BGP normalize süresi, GARP etkisi
  6. 📘 Çıktı: HA Runbook + rollback adımları (denetimde direkt değer)

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

☁️ Cloud’a firewall koymak, tek başına Cloud Security değildir.

AWS veya Azure ortamına FortiGate-VM deploy etmek işin kolay kısmıdır. Asıl mesele: 🧭 Routing🧱 Segmentation🔐 …

Bir yanıt yazın