Kurumsal Network Kurulumu

FortiGate Firewall HA Yapılandırması: FGCP ile İki Cihaz

FortiGate Firewall HA lab'da: FGCP kümesi, oturum aktarımı ve izlenen arayüz. Güç kesildi, kablo çekildi, devir süresi ve split brain saniyesiyle ölçüldü.

İlker Pehlivan

FortiGate Firewall HA (yüksek erişilebilirlik), iki FortiGate’i Fortinet’in kendi küme protokolü FGCP ile tek bir cihaz gibi çalıştıran yapılandırmadır. Cihazlardan biri trafiği taşır, öbürü yapılandırmayı ve açık bağlantıların kaydını kopyalayarak bekler, birincil düşünce yerine geçer. Fortinet’in tarif ettiği düzende iki cihaz aynı model ve sürümdedir, aralarında doğrudan bağlı en az iki kalp atışı (heartbeat) kablosu vardır, oturum aktarımı (session pickup) açıktır ve kopması devri başlatması gereken arayüzler izlenir.

Bu yazı FortiGate Firewall ileri seviye rehberimizin 13. ve son adımıdır. Lab’a ikinci bir sanal FortiGate (gmfw02) ekledim, iki cihazı kümeye bağladım ve birincili farklı yollardan düşürdüm: gücünü kestim, LAN kablosunu çektim, oturum aktarımını kapatıp açtım ve aradaki kalp atışı kablosunu kopardım. Her denemede iç ağdaki bir istemciden saniyede beş ping attım, bazılarında da 5 MB’lık bir dosya indirdim.

Lab’da beş sonuç öne çıktı:

  1. Birincilin gücü kesilince yedek 4,37 saniyede devraldı ve süren indirme kopmadı.
  2. İzlenen arayüz tanımlı değilken birincilin LAN kablosu çekildi ve küme hiçbir şey yapmadı: 21 saniye boyunca 101 ping kayboldu. Arayüzü izlemeye alınca aynı kesinti 0,42 saniyede devredildi.
  3. Oturum aktarımı kapalıyken süren indirme devirde koptu.
  4. Önceliği yüksek olan cihaz geri döndüğünde birincilliği geri almadı, çünkü override kapalı kümede çalışma süresi öncelikten önce sayılıyor.
  5. Tek kalp atışı kablosu kopunca iki cihaz da birincil oldu ve her ping’e dörde kadar cevap geldi. İkinci kablo eklenince aynı kopuş hiçbir şey değiştirmedi.

Örnekteki sınır kapısının planında yerde çizili bir yedek kulübe vardı. Bu adımda o kulübe kuruluyor. İki kulübe aynı şeridin başında durur: biri bariyeri yönetir, öbürü aynı defteri tutarak bekler. Aralarında bir sinyal teli vardır ve görevdeki kulübe saniyede beş kez “buradayım” der. Tel susarsa yedek kulübe bariyeri devralır. FortiGate’te yedek kulübe ikinci cihaz, sinyal teli kalp atışı kablosu, ortak defter de oturum tablosudur.

FortiGate Firewall HA benzetmesi: sınır kapısında tek şeridin başında yan yana iki kulübe, ilk görevli bariyerin yanında, ikinci görevli öbür kulübenin kapısında açık defterle bekliyor, iki kulübeyi zilli iki sinyal teli bağlıyor
Yedek kulübe aynı defteri tutar ve iki sinyal telini dinler: görevdeki kulübe susarsa bariyeri o devralır. FortiGate HA'da defter oturum tablosu, teller de kalp atışı kablolarıdır.

Bu yazı, Kurumsal Network Kurulumu hizmetimizde kesintiye tahammülü olmayan kurumlara firewall kümesi kurarken izlediğimiz sırayı anlatır.

FortiGate HA Neden Kurulur? Firewall Tek Hata Noktasıdır

İnternet hatlarınız iki operatörden gelse de iç ağın bütün trafiği tek bir firewall’dan geçiyorsa, o cihaz arızalandığında ofis dışarıya kapanır. Kurumda ikincisi olmayan cihazları nasıl bulacağınızı tek hata noktası yazımızda anlattık. HA bu cihazı ikiye çıkarır.

NIST’in firewall rehberi HA’yı aynı yerden tarif ediyor: iki firewall ağın aynı noktasına, aynı iç ve dış bağlantılarla yerleştirilir ve biri arızalanınca ya da bakıma alınınca öbürü onun işini devralır (NIST SP 800-41 Rev. 1, bölüm 3.1). Fortinet de kümenin yalnız arızaya değil, firmware güncellemesine de kesintisiz geçiş sağladığını yazıyor (FortiOS 7.0 en iyi uygulamalar, High availability).

Kümenin ne kazandırdığını en sert denemeyle ölçtüm: birincil cihazın (gmfw01) gücünü, iç ağdaki istemci dışarıdaki bir sunucuya ping atarken ve oradan 5 MB’lık bir dosya indirirken kestim. Ping’in kesildiği yer:

Çıktı
[1791111629.410804] 64 bytes from 203.0.113.66: icmp_seq=62 ttl=63 time=0.537 ms
[1791111633.779601] 64 bytes from 203.0.113.66: icmp_seq=83 ttl=63 time=1.34 ms

62 ile 83 arasındaki 20 ping kayboldu, aradaki süre 4,37 saniye. Saniyede 100 KB ile sınırladığım indirme ise kopmadı:

Çıktı
HTTP 200, 5000000 bayt, 47.859649 sn, cikis 0

Tek cihazlı bir ağda aynı kesinti, cihaz yeniden açılana kadar sürerdi. Kümede yedek cihaz 4,37 saniyede devraldı ve indirme yarım kalan yerinden devam etti.

FortiGate HA Nasıl Olmalı?

İki cihaz aynı model ve FortiOS sürümündedir ve aynı ağlara aynı portlardan bağlanır. Aralarında en az iki kalp atışı kablosu doğrudan, araya switch girmeden bağlanır. Oturum aktarımı açılır, iç ağ ve internet arayüzü izlenir. Override kapalı bırakılır ve iki cihazın logu tek bir log sunucusunda toplanır.

Bu düzeni beş kaynak birlikte tarif ediyor:

  1. Fortinet FortiOS 7.0 yönetim kılavuzu, Introduction to the FGCP cluster: kümedeki cihazlar aynı model ve aynı firmware’dedir, donanımları da aynıdır (örneğin disk sayısı). Cihaz adı ve HA önceliği dışında bütün yapılandırma ortaktır. Fortinet iki cihaz arasında iki doğrudan kalp atışı bağlantısı ve oturum eşitlemesinin açık olmasını öneriyor. Lisanslar eşitlenmez, her cihaz ayrı lisanslanır.
  2. Fortinet en iyi uygulamalar (6.4), Heartbeat interfaces:
    • En az iki kalp atışı arayüzü tanımlanır ve bunlara farklı öncelikler verilir.
    • İki cihazlık kümede kalp atışı arayüzleri doğrudan kabloyla bağlanır ve kullanıcı ağından ayrılır.
    • Ayrılamıyorsa kalp atışı mesajlarının şifrelenmesi ve doğrulanması açılır.
    • Kalp atışı arayüzü izlenmez. Kopması devri başlatması gereken arayüzler izlenir.
  3. Fortinet FortiOS 7.0 yönetim kılavuzu, Failover protection: kablo koptuğunda devir olması için izlenen arayüzlerin tanımlanmış olması gerekir. Normalde iç ağa bağlanan arayüz ile internete çıkan arayüz izlenir. Oturum aktarımı açıkken TCP oturumları devirde korunur.
  4. Fortinet FortiOS 6.0 el kitabı, HA override: çoğu durumda override kapalı tutulur, çünkü sık yeniden seçim sık trafik kesintisi demektir.
  5. NIST SP 800-41 Rev. 1 (Eylül 2009), Guidelines on Firewalls and Firewall Policy, bölüm 3.1: HA çifti güvenilirliği artırır, ama iki cihazın logunu birleştirme ihtiyacını ve hangi cihazın kuralı öbürüne ittiği konusunda yöneticinin kafasının karışmasını da getirir.

Karar tablosu lab ölçümünden sonra:

KararÖneriDayanak
CihazlarAynı model, aynı FortiOS sürümü, her biri kendi lisansıylaFortinet FGCP
KipActive-Passive, tarama yükü tek cihaza sığmıyorsa Active-ActiveFortinet en iyi uygulamalar
Kalp atışıEn az iki arayüz, farklı öncelik, doğrudan kabloFortinet heartbeat, lab ölçümü
Oturum aktarımıAçıkFortinet failover protection, lab ölçümü
İzlenen arayüzİç ağ ve internet arayüzü, kalp atışı arayüzü değilFortinet failover protection, lab ölçümü
OverrideKapalıFortinet HA override, lab ölçümü
Kalp atışı şifrelemeKablo kullanıcı ağından ayrılamıyorsa açıkFortinet heartbeat
Logİki cihazın logu aynı log sunucusundaNIST SP 800-41r1

FortiGate HA Kümesinde Kaç Cihaz ve Kaç Kablo Olur?

Fortinet ağın kenarındaki FortiGate için en az iki cihazlık bir küme öneriyor. FGCP daha fazla cihazı da kabul eder, ama üç ve dört cihazlık kümelerde kalp atışı kabloları switch’ler üzerinden bağlanır. Çoğu kurumda doğru sayı iki cihaz ve aralarında iki kalp atışı kablosudur. Lab’da kümeyi önce tek kabloyla kurdum, bedelini ölçtükten sonra ikincisini ekledim.

FGCP, VRRP ve FGSP: Hangisi Ne Zaman?

Fortinet’in en iyi uygulama belgesi üç yolu ayırıyor:

  1. FGCP: en yaygın yol. Aynı model iki ya da daha fazla FortiGate tek cihaz gibi çalışır. Yapılandırma, adresler ve oturumlar cihazlar arasında taşınır. Bu yazının konusu budur.
  2. VRRP: FortiGate’in başka markadan bir router ya da firewall ile birlikte çalışması gerektiğinde. Yalnız ağ geçidi adresini devreder, oturumları devretmez.
  3. FGSP: önlerinde ayrı bir yük dengeleyici duran firewall’lar için. Cihazlar aynı yerde durmak zorunda değildir.

Active-Active kipi de FGCP’nin içindedir: güvenlik profillerinin taraması iki cihaza paylaştırılır. Tek cihaz yükü taşıyabiliyorsa Active-Passive daha az hareketli parçayla aynı yedekliliği verir. VRRP ile FGCP’nin kablolama farkını şemasıyla VRRP nedir yazımızda anlattık.

FortiGate HA Kurulumu: Önce Çalışan Cihaz, Sonra Yedek

Kümeyi çalışan bir cihazın üstüne kurmanın sırası önemli, çünkü yapılandırma birincilden yedeğe akar. Ön koşullar:

  1. İkinci cihaz aynı model ve sürümde. Lab’da iki FortiGate-VM64, ikisi de 7.0.10.
  2. Kalp atışı için iki boş port. Lab’da iki cihazın port4’ü ve port5’i, başka hiçbir cihazın bağlı olmadığı iki ayrı sanal ağda.
  3. Veri portları aynı ağlarda. İki cihazın port1’i yönetim ağına, port2’si iç ağa, port3’ü internet tarafına bağlı.
  4. Çalışan cihazın yedeği alınmış. Yedek almayı yedek alma yazımızda anlattık.

Önce çalışan cihaz, gmfw01. Arayüzde yol System → HA:

  1. Mode: Active-Passive. Fabrika ayarında Standalone (tek başına).
  2. Device priority: 200. Fabrika ayarı 128, büyük olan önde gelir. Bu değer eşitlenmez, her cihaza ayrı girilir.
  3. Group name ve Password: küme adı ve parolası. İki cihazda aynı olmak zorunda, cihazlar birbirini bu ikisiyle tanır. Lab’daki ad gmfw-kume.
  4. Session pickup: açık. Oturum aktarımı, birincildeki açık bağlantıların kaydını yedeğe kopyalar. Fabrika ayarında kapalı.
  5. Monitor interfaces: izlenen arayüzler, ic-ag (port2) ve dis-ag (port3). Bu arayüzlerden birinin bağlantısı koparsa küme birincili değiştirir. Fabrika ayarında boş.
  6. Heartbeat interfaces: port4 ve port5. İki arayüz seçilince formun altında Heartbeat Interface Priority (kalp atışı arayüzü önceliği) açılıyor. Lab’da port4 50, port5 40: kalp atışı önce önceliği büyük olandan gider, o koparsa öbürüne geçer.
FortiGate High Availability formu, gmfw01: Device priority 200, Session pickup açık, Monitor interfaces ic-ag (port2) ve dis-ag (port3), Heartbeat interfaces port4 ve port5, Heartbeat Interface Priority 50 ve 40 kırmızı çerçeveyle işaretli
Kümenin davranışını beş alan belirliyor: öncelik, oturum aktarımı, izlenen arayüzler, iki kalp atışı arayüzü ve onların önceliği.

Monitor interfaces alanının fabrika ayarında boş gelmesi yazının en kritik ayrıntısı. Alan boşken küme yalnız cihazın kendisi düşerse devreder, kablosu kopan cihazı görmez. Bu kör noktayı aşağıda ölçtüm.

Aynı ayarın komut satırındaki karşılığı:

FortiGate CLI
config system ha
    set group-name "gmfw-kume"
    set mode a-p
    set password <parola>
    set hbdev "port4" 50 "port5" 40
    set session-pickup enable
    set override disable
    set priority 200
    set monitor "port2" "port3"
end

hbdev satırında her kalp atışı arayüzünün yanında önceliği yazıyor. Kaydedince gmfw01 tek üyeli bir küme olarak çalışmaya başladı: get system ha status çıktısındaki seçim satırı it's the only member in the cluster dedi.

İkinci Cihazı FortiGate HA Kümesine Katmak

Yeni cihaza yalnız adını ve HA ayarlarını girdim. Arayüzlerine, kurallarına ve nesnelerine dokunmadım, çünkü bunların hepsi birincilden gelecek. gmfw02’ye seri konsoldan girilen satırlar:

FortiGate CLI
config system global
    set hostname gmfw02
end
config system ha
    set group-name gmfw-kume
    set mode a-p
    set password <parola>
    set hbdev port4 50
    set session-pickup enable
    set priority 100
    set override disable
end

Bu satırlar kümeyi ilk kurduğum günün hâli: kalp atışı o gün yalnız port4’teydi. port5’i sonradan yalnız birincile ekledim ve gmfw02’ye kendiliğinden geçti, logu Set HA heartbeat device port4 port5 yazdı. Kalp atışı ayarı da eşitlenen ayarlardan biri.

Öncelik 100, birincilinkinden düşük. Sıra şu sebeple önemli: override kapalıyken birincil seçiminde çalışma süresi öncelikten önce sayılır (kural aşağıda). Kurala göre yeni ve boş cihaz HA kipinde çalışan cihazdan beş dakika daha uzun süredir açıksa birincil o olabilir ve boş yapılandırması çalışan cihazın üstüne eşitlenebilir. Lab’da çalışan cihazı önce HA’ya aldım, yeni cihazı bir dakika sonra bağladım. Fark beş dakikadan az olduğu için öncelik karar verdi.

FortiGate HA Kümesi Eşitlendi mi? Birincil Hangisi?

İki cihaz kalp atışı kablosundan birbirini buldu. get system ha status ilk dakikada şunu gösterdi:

FortiGate CLI Çıktısı
...
Mode: HA A-P
Cluster state change time: 2026-10-04 13:55:22
Primary selected using:
    <2026/10/04 13:55:22> FGVMEVBT4WPKUKAA is selected as the primary because its override priority is larger than peer member FGVMEVVVYOEYZH38.
    <2026/10/04 13:54:28> FGVMEVBT4WPKUKAA is selected as the primary because it's the only member in the cluster.
ses_pickup: enable, ses_pickup_delay=disable
override: disable
Configuration Status:
    FGVMEVBT4WPKUKAA(updated 0 seconds ago): in-sync
    FGVMEVVVYOEYZH38(updated 1 seconds ago): out-of-sync
...
Primary     : gmfw01          , FGVMEVBT4WPKUKAA, HA cluster index = 1
Secondary   : gmfw02          , FGVMEVVVYOEYZH38, HA cluster index = 0

Çıktının satırları sırayla şunu söylüyor:

  1. Primary selected using: birincilin neden seçildiğinin geçmişi, en yenisi üstte. Burada gmfw01 önceliği büyük olduğu için seçildi.
  2. ses_pickup: enable: oturum aktarımı açık.
  3. out-of-sync: gmfw02’nin yapılandırması henüz birincilinkiyle aynı değil.
  4. Primary ve Secondary: cihaz adı ve seri numarasıyla roller.

Eşitleme bir anda olmadı. gmfw02’nin olay logu iki aşama gösterdi:

FortiGate CLI Çıktısı
date=2026-10-04 time=13:55:42 ... logdesc="Synchronization status with primary" ... sync_type="external-files" sync_status="out-of-sync"
date=2026-10-04 time=13:57:12 ... logdesc="Synchronization status with primary" ... sync_type="external-files" sync_status="in-sync"
date=2026-10-04 time=13:57:22 ... logdesc="Synchronization status with primary" ... sync_type="configurations" sync_status="out-of-sync"
date=2026-10-04 time=13:59:03 ... logdesc="Synchronization status with primary" ... sync_type="configurations" sync_status="in-sync"

Önce dış dosyalar (external-files), sonra yapılandırma eşitlendi. Kümenin kurulmasından yapılandırmanın eşitlenmesine kadar 3 dakika 41 saniye geçti ve bu sürede yedeğin yapılandırması birincilinkiyle aynı değildi. Devir testi bu yüzden iki cihaz da in-sync olduktan sonra yapılır. Eşitlemeden sonra gmfw02’nin adı ve önceliği kendisininkiler olarak kaldı, kurallar ve nesneler ise birincilden geldi. Yedek cihaza yalnız adını ve HA ayarlarını girmem bu yüzden yetti.

Arayüzde aynı tablo System → HA sayfasında: her cihazın durumu (Synchronized), önceliği, rolü ve çalışma süresi bir satırda.

FortiGate HA Devir Testi: Güç, Kablo ve Oturum Aktarımı

Küme eşitlendikten sonra birincili beş denemede düşürdüm. Her denemede iç ağdaki istemci saniyede beş ping attı, bazılarında 5 MB’lık indirme de sürdü:

DenemeOturum aktarımıPing kaybıİndirme
Birincilin gücü kesildiAçık20 ping, 4,37 snTamamlandı
LAN kablosu çekildi, izlenen arayüz yokAçık101 ping, 21,22 sn, devir yokDenenmedi
LAN kablosu çekildi, izlenen arayüz varAçık1 ping, 0,42 snDenenmedi
LAN kablosu çekildiKapalı0Koptu (1,1 MB’ta)
LAN kablosu çekildiAçık0Tamamlandı

Birincilin Gücü Kesilince: Kalp Atışının Susması

Gücü kesilen cihaz hiçbir şey söyleyemez. Yedek onun düştüğünü kalp atışlarının kesilmesinden anlar. Kümenin kalp atışı ayarları (show full-configuration system ha):

FortiGate CLI Çıktısı
    set hb-interval 2
    set hb-interval-in-milliseconds 100ms
    set hb-lost-threshold 20

Atış 2 × 100 milisaniyede, yani 200 milisaniyede bir gidiyor ve 20 atış kaybolunca cihaz ölü sayılıyor: 4 saniye. Ping’deki 4,37 saniyelik boşluk bu hesaba oturuyor. Yedeğin logu:

FortiGate CLI Çıktısı
date=2026-10-04 time=14:00:33 ... logdesc="Heartbeat packet lost" msg="Heartbeat packet lost" ha_role="secondary" devintfname="port4"
date=2026-10-04 time=14:00:33 ... logdesc="Virtual cluster member dead" msg="Virtual cluster detected member dead" vcluster=1 ha_group=0 sn="FGVMEVBT4WPKUKAA"
date=2026-10-04 time=14:00:35 ... logdesc="Virtual cluster member state moved" msg="Virtual cluster's member state moved" ha_role="primary" ... hostname="gmfw02"

Fortinet’in belgesi destekleyen modellerde atış biriminin 10 milisaniyeye indirilebildiğini yazıyor (Link monitoring and HA failover time). Ben fabrika ayarında bıraktım, yani ölçtüğüm 4,37 saniye fabrika ayarındaki kümenin devir süresidir.

Gücü kesilen gmfw01 yeniden açıldığında her girişte şu uyarıyı verdi:

FortiGate CLI Çıktısı
WARNING: File System Check Recommended! An unsafe reboot may have caused an inconsistency in the disk drive.
It is strongly recommended that you check the file system consistency before proceeding.
Please run 'execute disk list' and then 'execute disk scan <ref#>'.
Note: The device will reboot and scan the disk during startup. This may take up to an hour.

Uyarı, düzgün kapatılmayan diskte bir tutarsızlık olabileceğini söylüyor ve denetimi öneriyor. Denetim cihazı yeniden başlatır ve bir saate kadar sürebilir. Kümede bunu cihaz yedek roldeyken yapın. Güç kesme denemesini de gerçek cihazda bakım penceresinde yapın.

LAN Kablosu Çekilince: İzlenen Arayüz Yoksa Devir Yok

Güç denemesinden sonra birincil gmfw02 kalmıştı (sebebi aşağıda, birincil seçimi bölümünde). İkinci denemede onun iç ağ kartını 20 saniyeliğine ayırdım. Monitor interfaces alanı fabrika ayarındaki gibi boştu:

Çıktı
[1791112061.034811] 64 bytes from 203.0.113.66: icmp_seq=43 ttl=63 time=0.572 ms
[1791112082.251575] 64 bytes from 203.0.113.66: icmp_seq=145 ttl=63 time=1.29 ms

21,22 saniye boyunca 101 ping kayboldu, yani kablo takılı olmadığı sürenin tamamı. Küme bu sürede hiçbir şey yapmadı. Test bitince get system ha status hâlâ HA Health Status: OK diyordu ve birincil yine gmfw02’ydi. Yedek cihaz hazır bekledi, ama kalp atışları gelmeye devam ettiği için birincilin iç ağdan koptuğunu bilemedi.

Örnekteki sınır kapısında görevdeki kulübenin önündeki yol çökmüş, ama kulübe sinyal telinden “buradayım” demeye devam ediyor. Yedek kulübe telin öbür ucunda her şeyi yolunda sanıyor.

Port 2 ve port 3’ü izlenen arayüz yapıp aynı kartı aynı süreyle yeniden ayırdım:

Çıktı
[1791112531.612449] 64 bytes from 203.0.113.66: icmp_seq=47 ttl=63 time=0.718 ms
[1791112532.027947] 64 bytes from 203.0.113.66: icmp_seq=49 ttl=63 time=1.72 ms

Tek ping kayboldu, boşluk 0,42 saniye. Seçim geçmişine yeni bir satır düştü:

FortiGate CLI Çıktısı
<2026/10/04 14:15:31> FGVMEVBT4WPKUKAA is selected as the primary because the value 0 of link-failure + pingsvr-failure is less than peer member FGVMEVVVYOEYZH38.

gmfw01’in kopuk arayüzü yoktu (0), gmfw02’nin bir tane vardı, birincillik gmfw01’e geçti. Kablo devri kalp atışını beklemediği için güç kesmeden on kat daha hızlı oldu.

Oturum Aktarımı Kapalıysa Süren İndirme Kopar

Üçüncü denemede oturum aktarımını kapattım ve indirme sürerken birincilin kablosunu çektim. İndirmeyi istemci 15 saniye hiç veri gelmezse bırakacak şekilde başlattım:

Çıktı
HTTP 200, 1111528 bayt, 31.065084 sn, cikis 28

İndirme 1,1 MB’ta durdu ve istemci vazgeçti (cikis 28, curl’ün zaman aşımı kodu). Ping ise aynı anda hiç kaybolmadı. Ortası kopan indirmenin yeni birincilde kaydı yoktu. Ping’in her isteği ise yeni birincilde kendi kaydını açabiliyor.

Ayarı açıp aynı denemeyi yineledim:

Çıktı
HTTP 200, 5000000 bayt, 48.006883 sn, cikis 0

5 MB’ın tamamı geldi. Yedek, birincilin defterini tutuyordu ve yarım kalan indirmeyi tanıdı. Bir denemede, ayarı kapalıyken kümeyi iki kez el değiştirttikten sonra açtığımda, ayar açık olmasına rağmen indirme yine koptu. Sebebini ayıramadım: sonraki üç denemede, ayarı kapatıp hemen açtığımda da kümeyi iki kez el değiştirttiğimde de indirme kopmadı. Oturum aktarımını sonradan açtığınız bir kümede devri yeniden deneyin.

FortiGate HA’da Birincil Nasıl Seçilir? Çalışma Süresi mi Öncelik mi?

Güç kesme denemesinden sonra gmfw01’i yeniden açtım. Önceliği 200’dü, gmfw02’ninki 100. Yine de birincil gmfw02 kaldı:

FortiGate HA listesi devirden sonra: gmfw02 Priority 100 ve Role Primary, gmfw01 Priority 200 ve Role Secondary, Priority ve Role sütunları kırmızı çerçeveyle işaretli
Önceliği düşük olan cihaz birincil kaldı: override kapalıyken çalışma süresi öncelikten önce sayılıyor.

Seçim geçmişi sebebini yazdı:

FortiGate CLI Çıktısı
<2026/10/04 14:02:13> FGVMEVVVYOEYZH38 is selected as the primary because its uptime is larger than peer member FGVMEVBT4WPKUKAA.

Fortinet’in belgesine göre override kapalıyken birincil şu sırayla seçilir (HA primary unit selection criteria, 7.2 kılavuzu, 7.0 kılavuzunda bu sayfa yok):

  1. İzlenen arayüzlerinden daha çoğu ayakta olan cihaz.
  2. HA çalışma süresi daha uzun olan cihaz. Fark beş dakikadan (300 saniye) azsa berabere sayılır. Yeniden başlayan ya da izlenen arayüzü kopan cihazın süresi sıfırlanır.
  3. Önceliği büyük olan cihaz.
  4. Seri numarası büyük olan cihaz.

Override açılırsa öncelik çalışma süresinin önüne geçer. Belgede bu sıranın adı baş harflerden gelir: MUPS (Monitor, Uptime, Priority, Serial).

Örnekteki kulübelerde görev rütbeye değil kıdeme göre verilir: kesintisiz en uzun süredir görevde olan kulübe bariyeri tutar, rütbeye ancak kıdem farkı beş dakikadan azsa bakılır.

Kuralın ikinci yüzünü de lab gösterdi. Kablo denemelerini arka arkaya yaptığımda iki cihazın süresi birbirine beş dakikadan yakındı. Kablo geri takılınca çalışma süresi berabere sayıldı, öncelik karar verdi ve birincillik gmfw01’e geri döndü. Tek bir kablo olayı iki devir üretti ve geri dönüşte iki ping daha kayboldu:

FortiGate CLI Çıktısı
<2026/10/04 14:24:23> FGVMEVBT4WPKUKAA is selected as the primary because its override priority is larger than peer member FGVMEVVVYOEYZH38.
<2026/10/04 14:24:02> FGVMEVVVYOEYZH38 is selected as the primary because the value 0 of link-failure + pingsvr-failure is less than peer member FGVMEVBT4WPKUKAA.

Override açık olsaydı her geri dönüş böyle ikinci bir devir üretirdi. Fortinet bu yüzden çoğu durumda override’ın kapalı tutulmasını istiyor. Override kapalı bir kümede “birincil” sabit bir cihaz değildir: hangi cihazın birincil olduğuna her seferinde get system ha status ile bakılır.

FortiGate HA Kalp Atışı Koparsa: Split Brain

Kümeyi ilk kurduğumda iki cihaz arasında tek kalp atışı kablosu vardı (port4). Son denemede o kabloyu 20 saniyeliğine kopardım. Bu sefer iki cihaz da ayaktaydı ve ikisi de öbürünü ölü saydı. gmfw02’nin logu:

FortiGate CLI Çıktısı
date=2026-10-04 time=14:25:48 ... logdesc="Heartbeat device interface down" msg="Heartbeat device(interface) down" ha_role="secondary" devintfname="port4"
date=2026-10-04 time=14:25:52 ... logdesc="Virtual cluster member dead" msg="Virtual cluster detected member dead" vcluster=1 ha_group=0 sn="FGVMEVBT4WPKUKAA"
date=2026-10-04 time=14:25:54 ... logdesc="Virtual cluster member state moved" msg="Virtual cluster's member state moved" ha_role="primary" ... hostname="gmfw02"

Aynı saniyelerde gmfw01 kendini it's the only member in the cluster diye birincil seçti. Ağda aynı IP ve aynı MAC adresini taşıyan iki birincil vardı. İstemcinin ping çıktısı:

Çıktı
[1791113152.195714] 64 bytes from 203.0.113.66: icmp_seq=64 ttl=63 time=0.622 ms
[1791113152.196107] 64 bytes from 203.0.113.66: icmp_seq=64 ttl=63 time=1.00 ms (DUP!)
[1791113152.196134] 64 bytes from 203.0.113.66: icmp_seq=64 ttl=63 time=1.00 ms (DUP!)
[1791113152.196141] 64 bytes from 203.0.113.66: icmp_seq=64 ttl=63 time=1.00 ms (DUP!)

Tek bir ping’e dört cevap geldi (DUP! tekrar eden cevaptır). Sayı şu hesaba oturuyor: iki cihaz da isteği sunucuya iletti, sunucunun iki cevabını da iki cihaz istemciye geri verdi. Bu durum 16,75 saniye sürdü ve 83 ping’de görüldü. Kalp atışı kablosu geri takılınca cihazlar birbirini buldu ve biri yeniden yedek oldu.

İndirme bu kez kopmadı, ama lab’daki sanal switch iki kopyayı da iletti. Gerçek bir switch’in aynı MAC’i iki portta görünce ne yapacağını lab’da ölçmedim. Fortinet bu durumu split brain diye adlandırıyor ve kalp atışı geri gelene kadar iletişimin bozulacağını yazıyor.

Örnekteki kulübeler arasındaki tel kopunca iki kulübe de öbürünün gittiğini sanır ve ikisi de bariyeri açar: aynı tır iki kez kaydedilir. Çaresi ikinci bir tel. FortiGate’te bu, farklı öncelikli ikinci kalp atışı arayüzüdür. İki cihazın kalp atışı portlarını nasıl kabloladığımızı VRRP nedir yazımızdaki şemada gösterdik.

İkinci Kalp Atışı Kablosuyla Aynı Deneme

İki cihaza ikinci bir kart (port5) ve aralarına ikinci bir sanal ağ ekledim, port5’i önceliği 40 olan ikinci kalp atışı arayüzü yaptım. Sonra aynı denemeyi yineledim: gmfw02’nin port4 kablosunu, indirme sürerken 20 saniyeliğine kopardım. gmfw02’nin logu:

FortiGate CLI Çıktısı
date=2026-10-04 time=14:59:21 ... logdesc="Heartbeat device interface down" msg="Heartbeat device(interface) down" ha_role="secondary" devintfname="port4"
date=2026-10-04 time=14:59:25 ... logdesc="Heartbeat packet lost" msg="Heartbeat packet lost" ha_role="secondary" devintfname="port4"
date=2026-10-04 time=14:59:42 ... logdesc="Heartbeat device interface up" msg="Heartbeat device(interface) up" ha_role="secondary" devintfname="port4"

Cihaz port4’ten atış alamadığını yazdı, ama bu kez member dead satırı ve rol değişimi yok: atışlar port5’ten gelmeye devam etti. Birincil seçim geçmişine yeni satır düşmedi, 292 ping’in her biri tek cevapla döndü ve indirme tamamlandı. Aynı kablonun kopuşu, ikinci tel varken kümede hiçbir şey değiştirmedi.

Kümenin show full-configuration system ha çıktısında kalp atışıyla ilgili iki satır daha var: set encryption disable ve set authentication disable. Kalp atışı mesajları fabrika ayarında şifresiz ve doğrulamasız gidiyor. Fortinet bu mesajların kümenin yapılandırma bilgisini taşıdığını yazıyor. Fortinet iki ayarı kalp atışı kullanıcı ağından ayrılamıyorsa istiyor: kablolar iki cihaz arasında doğrudan duruyorsa şart değil, kullanıcı ağından geçiyorsa ikisi de açılır.

Devirden Sonra SSH “Host Key Has Changed” Diyor

İlk devirden sonra yönetim adresine (192.168.10.1) SSH ile bağlanmak istediğimde istemci bağlanmayı reddetti:

Çıktı
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
...
Host key for 192.168.10.1 has changed and you have requested strict checking.
Host key verification failed.

Uyarı araya biri girmiş gibi görünüyor, ama sebep kümenin kendisiydi. Yönetim adresi artık gmfw02’deydi ve gmfw02 kendi SSH anahtarını gösterdi. Anahtar eşitlenen ayarlardan biri değil. SSH anahtarı adresi değil makineyi tanımlar: aynı adreste başka bir makine cevap verince istemci başka bir anahtar görür. Bu davranışı SSH nedir yazımızda ölçtük. NIST’in bahsettiği yönetici karışıklığının küçük bir örneği bu.

Bu uyarıyı görünce önce get system ha status ile birincilin değişip değişmediğine bakın. Değiştiyse ve gösterilen anahtar yedek cihazınkiyse uyarı devirden geliyor. Değişmediyse uyarıyı ciddiye alın. İki durumu ayırabilmek için iki cihazın SSH anahtar parmak izini kurulumda kayda geçirin. Yönetim erişimini yönetim erişimi yazımızda anlattık.

Doğrulama: FortiGate HA Kontrol Listesi

Kümeyi kurduktan sonra şu maddeleri sırayla kontrol edin. Her biri bu yazıda ölçülen bir şeye karşılık geliyor:

  1. get system ha status iki cihazı ve ikisinde de in-sync gösteriyor. Lab’da eşitleme 3 dakika 41 saniye sürdü.
  2. Monitor interfaces iç ağ ve internet arayüzünü taşıyor. Boşken kablo çekmede devir olmadı.
  3. Session pickup açık. Kapalıyken süren indirme devirde koptu.
  4. En az iki kalp atışı arayüzü var. Tek kablo koptuğunda iki cihaz da birincil oldu, iki kablodan biri koptuğunda küme etkilenmedi.
  5. Override kararı bilerek verildi. Kapalıysa birincil her seferinde seçim geçmişinden okunur.
  6. Devir bir kez kablo çekerek, bir kez güç keserek denendi. İkisi farklı yoldan tetikleniyor: kablo izlenen arayüzden, güç kalp atışından.
  7. İki cihazın SSH parmak izi ve seri numarası kayıtlı. Devirden sonra gelen anahtar uyarısı ancak böyle ayrılır.
  8. İki cihazın logu aynı log sunucusuna gidiyor. Devirde hangi cihazın ne yaptığı ancak iki logun yan yana okunmasıyla görülür. Log sunucusu ayarını log ayarları yazımızda anlattık.

Sonuç: FortiGate HA’yı Kurmak Yetmez, Devri Denemek Gerekir

FortiGate’te HA formu altı alandan oluşuyor ve iki cihazı birkaç dakikada kümeye bağlıyor. Küme kurulduğu anda Synchronized görünüyor, ama asıl davranışı ancak bir şey düşünce ortaya çıkıyor. Lab’da beş şey beklenenden farklı çıktı:

  1. İzlenen arayüz fabrika ayarında boş geliyor. Birincilin LAN kablosu çekildiğinde küme 21 saniye boyunca hiçbir şey yapmadı.
  2. Güç kesmede devir 4,37 saniye, kablo çekmede 0,42 saniye. Biri kalp atışını bekliyor, öbürü beklemiyor.
  3. Oturum aktarımı fabrika ayarında kapalı. Kapalıyken süren indirme devirde koptu.
  4. Önceliği yüksek cihaz birincilliği geri almadı. Override kapalıyken çalışma süresi önce sayılıyor, süreler yakınsa da tek kablo olayı iki devir üretiyor.
  5. Tek kalp atışı kablosu split brain üretti. İki cihaz 16,75 saniye boyunca birlikte birincildi. İkinci kablo eklenince aynı kopuş hiçbir şey değiştirmedi.

Örnekteki yedek kulübe bariyeri ancak tel ona görevdeki kulübenin gittiğini söylerse devralır. Kulübenin önündeki yol çöktüğünde haberi olması için o yolun izlenmesi, yarım kalan muayeneyi bilmesi için defterin kopyalanması, telin kopmasıyla iki bariyerin birden açılmaması için de ikinci bir tel gerekir. FortiGate’te bu üçü izlenen arayüz, oturum aktarımı ve ikinci kalp atışı kablosudur.

Bu adımla ileri seviye rehberin 13 adımı tamamlandı. Kümenin bir sonraki sınavı firmware güncellemesi: Fortinet’in belgesine göre FortiGate kümeyi önce yedekten başlayarak sırayla yükseltiyor (Upgrading FortiGates in an HA cluster). Güncelleme sırası temel rehberin 19. adımında.

FortiGate Firewall HA Hakkında Sık Sorulan Sorular

Gerekir. Fortinet'in FGCP belgesine göre kümedeki cihazlar aynı model olmalı, aynı FortiOS sürümünü çalıştırmalı ve aynı donanımı (örneğin aynı disk sayısını) taşımalıdır. Lisanslar eşitlenmez, her cihaz kendi lisansıyla girer. Lab'da iki FortiGate-VM64, ikisi de 7.0.10 ve ikisi de kendi değerlendirme lisansıyla kümeye girdi.
Devri neyin tetiklediğine bağlıdır. Birincilin gücü kesilirse yedek, kalp atışlarının kesildiğini fark edince devralır. Fabrika ayarında atış 200 milisaniyede bir gider ve 20 kayıp atış cihazı ölü saydırır, yani 4 saniye. Lab'da ping 4,37 saniye kesildi. İzlenen bir arayüzün kablosu çekilirse devir 0,42 saniyede oldu. Arayüz izlenmiyorsa kablo çekilince devir hiç olmadı.
Devir anında süren bağlantılar kopar. Lab'da oturum aktarımı kapalıyken 5 MB'lık bir indirme devirde 1,1 MB'ta durdu ve istemci vazgeçti. Ayar açıkken aynı indirme hem kablo çekmede hem güç kesmede kopmadan tamamlandı. Yeni açılan bağlantılar iki durumda da yeni birincilden geçer.
Çoğu kurumda açılmamalı. Fortinet'in belgesi küme her yeniden seçim yaptığında trafiğin kısa bir an kesilebileceğini ve override'ın seçimi sıklaştırdığını yazıyor. Override kapalıyken kümede en uzun süredir çalışan cihaz birincil kalır. Lab'da önceliği 200 olan cihaz geri döndüğünde birincilliği geri almadı, çünkü öbür cihaz beş dakikadan daha uzun süredir çalışıyordu.
En az iki, ikisi de iki cihaz arasında doğrudan. Fortinet'in en iyi uygulama belgesi en az iki kalp atışı arayüzünü farklı önceliklerle istiyor. Lab'da önce tek kablo vardı ve kopardığımda iki cihaz da kendini birincil saydı: 16,75 saniye boyunca her ping'e dörde kadar cevap geldi. İkinci kabloyu ekleyip birini yine kopardığımda küme etkilenmedi, 292 ping'in her biri tek cevapla döndü.
İlker Pehlivan
Yazan

BT Danışmanı | Ağ, Sistem ve Güvenlik Yönetimi

İlker Pehlivan, karmaşık BT altyapılarını ölçeklenebilir ve güvenli sistemlere dönüştürür. Buradaki rehberleri kendi laboratuvarında kurup ölçerek yazar.

LinkedIn

Benzer Makaleler

FortiGate Firewall İleri Seviye Rehberi: VPN, SD-WAN ve BGP

FortiGate Firewall ileri seviye rehberi: güvenlik profilleri, Active Directory, VPN, SD-WAN, BGP ve HA; 13 adımın sırası, kimde gerektiği ve fabrika hâli.

20 dk okuma

Kurumsal Firewall Kurulumu, Yönetimi ve Danışmanlığı

Kurumsal firewall kurulumu, yönetimi ve danışmanlığı: Fortinet, Palo Alto ve pfSense ile kural yönetimi, IPS/IDS, VPN ve sürekli izleme hizmeti sunuyoruz.

8 dk okuma

FortiGate Firewall Active Directory Entegrasyonu: LDAP

FortiGate Firewall Active Directory entegrasyonu: LDAPS ile domain controller'a bağlanın, AD grubunu kurala yazın; yanıltıcı LDAP testini ve atlanan kimlik sorusunu çözün.

27 dk okuma

FortiGate Firewall Antivirüs Profili: Flow ve Proxy Farkı

FortiGate Firewall antivirüs profili: EICAR testiyle flow ve proxy kipinin farkı, HTTPS'te sertifika denetiminin körlüğü ve 10 MB sınırı lab'da ölçüldü.

22 dk okuma

FortiGate Firewall Bant Genişliği Sınırlama: Traffic Shaping

FortiGate Firewall bant genişliği sınırlama: misafire toplam 30, kişi başı 20 Mbit/s. Ters yön, iki yönü birleştiren shaper ve kişi başı toplam ölçüldü.

38 dk okuma

FortiGate Firewall BGP Yapılandırması: Komşuluk ve Duyuru

FortiGate Firewall BGP yapılandırması: parolalı komşuluk, network ile duyuru, giriş süzgeci ve önek sınırı; BFD ile 127 saniyelik kesintinin 1 saniyeye inmesi.

21 dk okuma
Kurumsal Network Kurulumu altındaki diğer 114 makale