Kurumsal Network Kurulumu

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.

İlker Pehlivan

FortiGate Firewall BGP yapılandırması, FortiGate’i bir komşu yönlendiriciyle rota alışverişi yapacak şekilde tanımlamaktır. FortiGate komşusundan hangi ağlara onun üzerinden gidildiğini öğrenir, kendi duyurduğu ağları da ona bildirir; bir hat ya da komşu düştüğünde öğrenilen rotalar tablodan çıkar ve trafik varsa öbür yola geçer.

Bir şubenin FortiGate’i BGP’de bir uç ağdır (leaf): kendi ağlarından başka bir şey taşımaz. NIST SP 800-189 böyle bir ağ için tek cümlelik bir çıkış kuralı veriyor: yalnız kendi ağlarını duyurmak.

Bu yazı FortiGate Firewall ileri seviye rehberimizin 11. adımıdır. KOBİ tarafında BGP’nin en sık karşılaşıldığı yer, servis sağlayıcının MPLS şube hizmetidir: operatörün yönlendiricisi şubelerin ağlarını FortiGate’e BGP ile duyurur. Lab’da bu düzeni kuruyorum.

Lab’da üç şey beklenenden farklı çıktı:

  1. FortiGate komşuluk kurulunca hiçbir şey duyurmadı; bağlı ağları toptan dağıtan kısayol ise sekiz ağı birden, yönetim ağı dahil karşıya taşıdı.
  2. Önek sınırı aşılınca oturum kapandı ve kendiliğinden geri gelmedi. Komşu elle temizlenene kadar Idle kaldı; sınırın amacı bu, bedeli de bu.
  3. Sessiz bir kopmayı fark etmek iki dakikadan uzun sürdü. Holdtime son keepalive’dan sayıldığı için kesinti 120 ile 180 saniye arasında bir yerde biter.

Örnekteki sınır kapısının karşısında bu kez komşu ülkenin kapısı duruyor. İki kapının görevlileri sınır çizgisinde buluşup birbirlerine ulaştırabildikleri yerlerin listesini verir ve açık olduklarını gösteren bir feneri yakarlar. Her görevli yalnız kendi listesine yazdığını verir; fener sönerse karşı taraf kapının kapandığını anlar. FortiGate’te liste BGP duyurusu, fener de komşular arasında düzenli giden keepalive mesajıdır.

Bu yazı, Kurumsal Network Kurulumu hizmetimizde MPLS ya da ikinci operatör hattıyla BGP konuşan FortiGate’leri kurarken izlediğimiz sırayı anlatır.

FortiGate Firewall BGP benzetmesi: iki komşu sınır kapısının arasındaki boyalı sınır şeridinde iki görevli katlanmış listelerini birbirine uzatıyor, iki yanda demir direklerde birer sinyal feneri yanıyor
İki kapı birbirine ulaştırabildikleri yerlerin listesini verir ve açık olduklarını feneriyle gösterir. Her biri yalnız kendi listesine yazdığını verir. FortiGate BGP'de de komşu yalnız duyurduğunuz ağları öğrenir.

FortiGate BGP Nasıl Olmalı?

Şube FortiGate’i servis sağlayıcıya yalnız kendi ağlarını duyurur ve ondan yalnız beklediği ağları kabul eder. Komşuluk bir parolayla korunur, komşudan alınacak önek sayısına bir sınır konur. Sessiz kopmayı saniyenin altında fark etmek için BFD açılır; karşı tarafın desteği operatörden istenir.

Bu düzeni iki kaynak birlikte tarif ediyor:

  1. RFC 7454, BGP Operations and Security (BCP 194):
    • Bölüm 5.1: BGP oturumunu TCP düzeyinde korumak. MD5 hâlâ en yaygın yöntem, TCP-AO destekleniyorsa tercih edilir. Operatörlere uygun olan her yerde TCP oturum koruması uygulamaları öneriliyor.
    • Bölüm 6.3: uç ağ (leaf network) girişte yalnız yukarıdan istediği rotaları kabul eder, çıkışta yalnız kendi yerel rotalarını duyurur.
    • Bölüm 8: bir komşudan kabul edilecek rota sayısına sınır konması önerilir (RFC dilinde RECOMMENDED, yani güçlü öneri).
  2. NIST SP 800-189, Resilient Interdomain Traffic Exchange, güvenlik önerisi 34: uç müşteri ağı çok basit bir çıkış policy’si uygulamalı ve yalnız kendi başlattığı önekleri (prefix) duyurmalıdır. Öneri 33 girişi anlatıyor: uç müşteri servis sağlayıcıdan ne istiyorsa yalnız onu kabul eder.

Kararlar ve lab’daki karşılıkları:

KararLab’daki değerDayanak
DuyuruNetworks ile yalnız personel ağı, dağıtım kapalıRFC 7454 6.3, NIST öneri 34
Kabulsube-girisi önek listesi: yalnız 10.20.0.0/24RFC 7454 6.3, NIST öneri 33
Önek sınırı10 (beklenen 1, pay bırakılmış)RFC 7454 bölüm 8
Oturum korumasıKomşu parolası (TCP MD5)RFC 7454 5.1
Kopma tespitiBFD, 250 ms × 3Lab ölçümü
Trafik kuralıPersonelden şubeye, NAT kapalıLab ölçümü

FortiGate BGP Öncesi: Senaryo ve Fabrika Ayarı

BGP’nin kurumsal ağdaki yerini ve hangi durumda gerektiğini ağ protokolleri yazımızda anlattık; çok lokasyonlu bir kurumun MPLS hattı ve operatör geçişinin sahadaki karşılığı kurumsal MPLS ve ISP geçişi vakamızda duruyor. Lab’daki düzen şöyle:

  1. Servis sağlayıcının yönlendiricisi: ntp01’deki servis sağlayıcı taklidinde çalışan FRR, AS 65000, adresi 198.51.100.2.
  2. Hat: FortiGate’in yedek-hat arayüzü (198.51.100.1/30). Bu arayüzü statik rota yazımızda açtık; burada şube hattı rolünde.
  3. Uzak şube: servis sağlayıcının arkasında duran 10.20.0.0/24 ağı. FortiGate bu ağı ancak BGP’den öğrenirse bilecek.
  4. FortiGate: AS 65010; duyurulacak ağ personel ağı 10.34.30.0/24.

BGP fabrika ayarında kapalı: AS numarası 0. Açıldığında geçerli olacak zamanlayıcılar tam yapılandırmada (show full-configuration router bgp) duruyor:

FortiGate CLI Çıktısı
    set as 0
    set keepalive-timer 60
    set holdtime-timer 180
    set ebgp-multipath disable
    set distance-external 20
    set distance-internal 200
    set graceful-restart disable

İki satır yazının ilerisinde önem kazanacak: keepalive 60 ve holdtime 180 saniye. Komşu 180 saniye boyunca hiçbir şey göndermezse düşmüş sayılıyor.

Kurumsal bir buluta IPsec tüneli üstünden BGP konuşmak da yaygın bir senaryo; değerlendirme lisanslı lab cihazım IPsec’te yalnız DES kabul ettiği için o kısım gerçek bir cihaz bekliyor. Tünelin kendisini IPsec yazımızda DES ile kurup ölçtük. Burada BGP düz bir hat üstünde çalışıyor; protokolün davranışı aynı.

FortiGate BGP Komşuluğu: Local AS, Router ID, Komşu ve Parola

Network → BGP ekranında:

  1. Local AS alanına FortiGate’in AS numarası yazılır; lab’da 65010. İç kullanım için 64512-65534 arası özel numaralar kullanılır, servis sağlayıcı size bir numara verdiyse o yazılır.
  2. Router ID alanına FortiGate’i tanıtan bir adres yazılır; lab’da personel arayüzünün adresi 10.34.30.1.
  3. Neighbors bölümünde Create New ile komşunun adresi (IP: 198.51.100.2) ve AS numarası (Remote AS: 65000) girilir.
  4. Komşu formundaki Password alanına servis sağlayıcıyla birlikte belirlenen parola yazılır.
FortiGate Local BGP Options ekranı: Local AS 65010 ve Router ID 10.34.30.1 ile Neighbors listesindeki 198.51.100.2, Remote AS 65000 satırı kırmızı çerçeveyle işaretli
Komşuluk için gereken değerler: kendi AS numaranız, router ID ve komşunun adresiyle AS numarası.

Komut satırı karşılığı:

FortiGate CLI
config router bgp
    set as 65010
    set router-id 10.34.30.1
    config neighbor
        edit "198.51.100.2"
            set remote-as 65000
            set description "servis-saglayici-pe"
            set password <ortak-parola>
        next
    end
end

Komşuluk 6 saniyede kuruldu (get router info bgp summary):

FortiGate CLI Çıktısı
VRF 0 BGP router identifier 10.34.30.1, local AS number 65010
...
Neighbor     V         AS MsgRcvd MsgSent   TblVer  InQ OutQ Up/Down  State/PfxRcd
198.51.100.2 4      65000       3       2        0    0    0 00:00:15        1

Son sütundaki 1, komşudan öğrenilen önek sayısı. Rota tablosunda şubenin ağı BGP’den gelmiş olarak göründü; satırın başındaki B bunu, köşeli parantezdeki 20 de eBGP rotalarının mesafesini söylüyor:

FortiGate CLI Çıktısı
B       10.20.0.0/24 [20/0] via 198.51.100.2 (recursive is directly connected, yedek-hat), 00:00:14

Arayüzde aynı bilgiyi BGP ekranının sağındaki View Routing Monitor gösteriyor; BGP Neighbors görünümünde komşunun durumu Established.

FortiGate Routing monitörü, BGP Neighbors görünümü: Neighbor IP 198.51.100.2, Local IP 198.51.100.1, Remote AS 65000, State Established, Admin Status Enabled satırı kırmızı çerçeveyle işaretli
Established, iki tarafın komşuluğu kurup rota alışverişine başladığı durum.

Parola Yanlışsa: Oturum Connect’te Takılır

Parolanın gerçekten sınandığını görmek için servis sağlayıcı tarafında parolayı değiştirip oturumu yeniden başlattım. FortiGate 40 saniye sonra hâlâ bağlanmaya çalışıyordu (never Connect):

FortiGate CLI Çıktısı
198.51.100.2 4      65000      32      28        0    0    0    never Connect    

Servis sağlayıcının işletim sistemi FortiGate’in her bağlantı isteğini imzası tutmadığı için reddetti:

Çıktı
[17120.714103] TCP: MD5 Hash failed for 198.51.100.1.14005->198.51.100.2.179 [S]  L3 index 0
[17128.734063] TCP: MD5 Hash failed for 198.51.100.1.14005->198.51.100.2.179 [S]  L3 index 0

Parola düzelince oturum 4 saniyede kuruldu. Parola, aradaki birinin sahte bir TCP sıfırlamasıyla oturumu düşürmesini ya da araya rota sokmasını zorlaştırıyor; RFC 7454’ün 5.1 bölümünün anlattığı saldırı bu.

FortiGate BGP Duyurusu: Fabrika Ayarında Hiçbir Şey Gitmiyor

FortiGate şubenin ağını öğrendi; şube de FortiGate’in personel ağını öğrenmeli, yoksa trafik tek yönlü kalır. Servis sağlayıcı tarafındaki FRR’de komşuya baktım: FortiGate’ten gelen önek sayısı 0’dı. FortiGate komşuluk kurulunca kendi ağlarından hiçbirini duyurmuyor.

Duyurulacak ağ, BGP ekranının alt kısmındaki Networks bölümüne yazılır: IP/Netmask alanına 10.34.30.0 255.255.255.0. Bu satırın çalışması için ağın FortiGate’in rota tablosunda bulunması gerekir; bağlı bir arayüzün ağı bu koşulu zaten sağlar.

FortiGate BGP ekranının alt kısmı: Networks bölümünde 10.34.30.0 255.255.255.0 ve IPv4 Redistribute bölümünde kapalı Connected anahtarı kırmızı çerçeveyle işaretli; RIP, OSPF, Static ve ISIS de kapalı
Networks'e yazılan ağ duyurulur; IPv4 Redistribute anahtarları ise bir türün bütün rotalarını toptan duyurur.

FRR’nin tablosunda FortiGate’ten gelen ağ 23 saniye sonra göründü:

Çıktı
   Network          Next Hop            Metric LocPrf Weight Path
*> 10.20.0.0/24     0.0.0.0                  0         32768 i
*> 10.34.30.0/24    198.51.100.1                           0 65010 i

Gecikmenin sebebi komşunun duyuru aralığı (advertisement-interval 30): FortiGate eBGP komşusuna değişiklikleri en fazla 30 saniyede bir gönderiyor. BGP’de bir değişiklikten sonra karşı tarafı hemen kontrol etmek bu yüzden yanıltıcı olabilir.

İki ağ arasında trafiğin geçmesi için bir de güvenlik kuralı gerekiyor: personel ağından şube ağına (n-sube, 10.20.0.0/24), NAT kapalı. Hat dis-hatlar bölgesinde olduğu için kuralın hedef arayüzü bölgedir; kural genel internet kuralının üstüne yazılır. Arayüzde yol Policy & Objects → Firewall Policy → Create New:

  1. Name: Personel BGP subesine.
  2. Incoming Interface: personel. Outgoing Interface: dis-hatlar, çünkü şubeye giden yol BGP’den öğrenilen rotayla bu bölgedeki hattan geçiyor.
  3. Source: n-personel. Destination: şubenin ağı, n-sube (10.20.0.0/24).
  4. Service: PING, lab ölçümü için; gerçek kurulumda şubenin kullanacağı servisler.
  5. NAT: kapalı.
FortiGate New Policy formu, Personel BGP subesine: Outgoing Interface dis-hatlar, Destination n-sube ve kapalı NAT anahtarı kırmızı çerçeveyle işaretli
Şubeye giden kural internet kuralıyla aynı arayüz çiftinde; onu ayıran hedef adres ve kapalı NAT.

Ölçümdeki kural ve n-sube nesnesi BGP ölçümünden sonra silindi; ekran bu yazı için, nesne geçici olarak yeniden açılıp form kaydedilmeden çekildi. Komut satırındaki karşılığı:

FortiGate CLI
config firewall policy
    edit 0
        set name "Personel BGP subesine"
        set srcintf "personel"
        set dstintf "dis-hatlar"
        set action accept
        set srcaddr "n-personel"
        set dstaddr "n-sube"
        set schedule "always"
        set service "PING"
    next
end

Yeni kural listenin sonuna eklenir. Genel internet kuralı (1) aynı arayüz çiftinde her hedefe NAT’lı ping izni veriyor; şube kuralı altında kalırsa şubeye giden ping önce kural 1’e uyar ve NAT’lanır. Kural bu yüzden arayüzde satır sürüklenerek, komut satırında move ile (move <yeni kural no> before 1) kural 1’in üstüne alınır.

NAT açık kalsaydı şube trafiği personelin gerçek adresini değil FortiGate’in hat adresini görürdü; NAT’ın hangi kurallarda kapalı kaldığını NAT yazımızda anlattık. Kuralla birlikte personel ağındaki istemci şubedeki 10.20.0.1’e ping atabildi; dönüş yolunu servis sağlayıcı tarafı da BGP’den öğrenmişti. Yani iki yönün rotasını da elle yazmadım, ikisi de BGP’den geldi.

Redistribute Connected: Yönetim Ağı da Karşıya Gitti

Ağları tek tek yazmanın bir kısayolu da var: IPv4 Redistribute altında Connected anahtarını açmak, yani FortiGate’e bağlı bütün ağları duyurmak. Açtım ve FRR’nin tablosuna baktım:

Çıktı
   Network          Next Hop            Metric LocPrf Weight Path
*> 10.20.0.0/24     0.0.0.0                  0         32768 i
*> 10.34.30.0/24    198.51.100.1                           0 65010 ?
*> 10.34.60.0/24    198.51.100.1                           0 65010 ?
*> 10.34.70.0/24    198.51.100.1                           0 65010 ?
*> 10.34.80.0/24    198.51.100.1                           0 65010 ?
*> 10.34.90.0/24    198.51.100.1                           0 65010 ?
*> 192.168.10.0/24  198.51.100.1                           0 65010 ?
*> 198.51.100.0/30  198.51.100.1                           0 65010 ?
*> 203.0.113.0/24   198.51.100.1                           0 65010 ?

Karşı tarafa sekiz ağ birden gitti: personelin yanında misafir (10.34.60.0/24), muhasebe, DMZ ve depo VLAN’ları, FortiGate’in yönetim ağı (192.168.10.0/24) ve iki hattın ağı.

MPLS ağına bağlı her şube artık misafir ağına ve yönetim ağına giden yolu biliyor. Güvenlik kuralları trafiği yine durdurabilir, ama rotanın kendisi o ağların varlığını ve adresini karşı tarafa bildirmiş oluyor. NIST’in uç ağ önerisi tam bu yüzden “yalnız kendi ağların” diyor; duyurulacak ağ Networks bölümüne tek tek yazılır, dağıtım gerçekten gerekiyorsa bir route-map ile süzülür.

Dağıtım karşıya 13 saniyede gitti, anahtarı kapatınca fazla önekler 21 saniyede geri çekildi; ikisi de duyuru aralığının içinde.

Örnekteki görevli de karşı tarafa kapıdaki her odanın listesini değil, yalnız ulaştırabileceği yerlerin listesini verir.

FortiGate BGP Giriş Süzgeci ve Önek Sınırı

Duyurunun öbür yönü kabul. Servis sağlayıcı tarafında fazladan bir ağ (10.21.0.0/24) duyurdum; süzgeçsiz FortiGate onu bir saniye içinde rota tablosuna yazdı:

FortiGate CLI Çıktısı
B       10.20.0.0/24 [20/0] via 198.51.100.2 (recursive is directly connected, yedek-hat), 00:03:04
B       10.21.0.0/24 [20/0] via 198.51.100.2 (recursive is directly connected, yedek-hat), 00:00:01

Servis sağlayıcının yanlışlıkla duyurduğu bir ağ, şube trafiğini sessizce yanlış yere çekebilir. Giriş süzgeci için önce bir önek listesi açılır (Network → Routing Objects ekranındaki Prefix Lists bölümü; komut satırında config router prefix-list), sonra komşu formunda Prefix list in açılıp liste seçilir. Aynı formda Max prefix ile önek sınırı konur.

FortiGate Edit Neighbor formu, 198.51.100.2: Password alanı, Prefix list in açık ve sube-girisi seçili, Max prefix açık ve değeri 10, Max prefix threshold 75 kırmızı çerçeveyle işaretli
Komşu formu üç korumayı birlikte taşıyor: parola, giriş süzgeci ve önek sınırı.

Komut satırı karşılığı:

FortiGate CLI
config router prefix-list
    edit "sube-girisi"
        set comments "Servis saglayicidan yalniz sube agi"
        config rule
            edit 1
                set prefix 10.20.0.0 255.255.255.0
                unset ge
                unset le
            next
        end
    next
end
config router bgp
    config neighbor
        edit "198.51.100.2"
            set prefix-list-in "sube-girisi"
            set maximum-prefix 10
        next
    end
end

Süzgeç bağlanınca ve oturum yumuşak biçimde yenilenince (execute router clear bgp ip 198.51.100.2 soft in) tabloda yalnız şube ağı kaldı. Servis sağlayıcı yanlış bir ağ duyursa da o ağ artık FortiGate’in tablosuna giremiyor.

Önek sınırını ölçmek için servis sağlayıcı tarafında on bir ağ daha duyurdum; karşı taraf artık on üç ağ duyuruyordu. Süzgeç yerindeyken oturum düşmedi: süzgeçten yalnız şube ağı geçti (PfxRcd 1) ve sınır kabul edilen sayıya baktı. Süzgeci geçici olarak kaldırınca aynı 13 önek sınırı aştı:

FortiGate CLI Çıktısı
msg="BGP: %BGP-3-MAXPFXEXCEED: No. of prefix received from 198.51.100.2 (afi-safi 1-1): 11 exceed limit 10"
msg="BGP: %BGP-5-ADJCHANGE: VRF 0 neighbor 198.51.100.2 Down BGP Notification FSM-ERR"
...
198.51.100.2 4      65000      19      17        0    0    0    never Idle (PfxCt)

FortiGate 11. önekte oturumu kapattı, karşıya Cease/Maximum Number of Prefixes Reached, yani en çok önek sayısına ulaşıldığı için oturumun kapatıldığını bildirdi ve komşu Idle (PfxCt) durumunda kaldı.

Komşu kendiliğinden geri gelmedi. Fazla önekleri kaldırdım ve oturumu elle temizledim (execute router clear bgp ip 198.51.100.2). Komşuluk bir saniyede kuruldu. Sınır, servis sağlayıcının yanlışlıkla bütün internet tablosunu göndermesi gibi bir durumda FortiGate’in belleğini korur; bedeli, o an şube bağlantısının da kesilmesidir. Bu yüzden sınır beklenen önek sayısının üstünde, pay bırakılarak konur.

FortiGate BGP Hat Kopması: Holdtime Son Keepalive’dan Sayılır

Duyuru ve kabul düzgün; asıl risk, hattın sessizce bozulmasıdır. Sessiz bozulmada arayüz ayakta kalır, ama karşıdan hiçbir paket gelmez. Arıza FortiGate ile servis sağlayıcının yönlendiricisi arasındaki başka bir cihazda olduğunda böyle olur. FortiGate’in bunu fark etmesinin tek yolu komşunun keepalive mesajlarının kesilmesidir.

Bu testte trafiğin gidebileceği bir yedek yol olsun diye FortiGate’e şube ağı için internet hattı üstünden ikinci bir statik rota ekledim, mesafesi 200. BGP rotasının mesafesi 20 olduğu için yedek rota BGP rotası varken tabloya girmiyor; mesafenin nasıl karar verdiğini statik rota yazımızda anlattık.

Sonra personel ağından şubeye saniyede beş ping gönderirken servis sağlayıcı tarafında FortiGate’e giden trafiğin tamamını düşürdüm.

FortiGate komşuyu kesintiden 126,9 saniye sonra düşürdü:

FortiGate CLI Çıktısı
3: date=2026-10-02 time=04:42:34 eventtime=1790905354583431917 ... logdesc="BGP neighbor status changed" msg="BGP: %BGP-5-ADJCHANGE: VRF 0 neighbor 198.51.100.2 Down Hold Timer Expired"

Ping kaydı kesintiyi veriyor:

Çıktı
[1790905227.643732] 64 bytes from 10.20.0.1: icmp_seq=17 ttl=63 time=0.744 ms
[1790905354.731013] 64 bytes from 10.20.0.1: icmp_seq=628 ttl=63 time=0.863 ms

Kesinti 127,1 saniye sürdü ve 610 ping kayboldu. Komşu düşünce BGP rotası tablodan çıktı, mesafesi 200 olan yedek rota devreye girdi ve ping internet hattından devam etti.

Neden 180 değil de 127 saniye? Holdtime kesinti anından değil, karşıdan gelen son keepalive’dan sayılıyor. 127 saniye 180’den 53 saniye eksik; yani son keepalive kesintiden yaklaşık 53 saniye önce gelmiş olmalı. Aynı cihazda önceki bir denemede bu süre 147,8 saniye çıkmıştı. Yani fabrika zamanlayıcılarıyla sessiz bir kopma, son keepalive’ın ne zaman geldiğine göre 120 ile 180 saniye arasında sürer.

Örnekteki iki kapıda fener dakikada bir yakılıyor ve karşı taraf üç dakika fener görmezse kapının kapandığına karar veriyor. Fener tam yandıktan sonra sönerse karar üç dakika, sönmeden hemen önce yanmışsa iki dakika gecikir; her iki durumda da yolcu o süre boyunca kapalı kapıya gider.

Sessiz bir BGP kopmasının iki fark edilme yolu. Solda fabrika zamanlayıcıları: keepalive 60 saniyede bir gelir, holdtime 180 saniyedir ve sayaç son keepalive'dan başlar. Lab ölçümünde FortiGate komşuyu kesintiden 126,9 saniye sonra Hold Timer Expired ile düşürdü; ping 127,1 saniye kesildi ve 610 ping kayboldu. Sağda BFD: iki taraf 250 milisaniyede bir paket gönderir, üç paket gelmezse BGP'ye haber verir. FortiGate komşuyu 0,91 saniye sonra BFD Down ile düşürdü; ping 1,04 saniye kesildi ve 4 ping kayboldu. BFD karşı tarafın da desteğini ister. Fabrika: keepalive 60, holdtime 180 son keepalive geldi sayaç buradan başlar hat sessizce koptu sayaç 180 sn'yi bekliyor Hold Timer Expired 126,9 sn sonra komşu düştü kesinti 120 ile 180 sn arası lab: 127,1 sn, 610 ping kayıp yedek rota ancak sonra devrede BFD: 250 ms, çarpan 3 BFD paketi 250 ms arayla iki yönde, saniyede dört hat sessizce koptu 3 paket gelmezse BGP'ye haber BFD Down 0,91 sn sonra komşu düştü kesinti yaklaşık 1 sn lab: 1,04 sn, 4 ping kayıp karşı taraf da desteklemeli Sessiz bir BGP kopmasının iki fark edilme yolu. Solda fabrika zamanlayıcıları: keepalive 60 saniyede bir gelir, holdtime 180 saniyedir ve sayaç son keepalive'dan başlar. Lab ölçümünde FortiGate komşuyu kesintiden 126,9 saniye sonra Hold Timer Expired ile düşürdü; ping 127,1 saniye kesildi ve 610 ping kayboldu. Sağda BFD: iki taraf 250 milisaniyede bir paket gönderir, üç paket gelmezse BGP'ye haber verir. FortiGate komşuyu 0,91 saniye sonra BFD Down ile düşürdü; ping 1,04 saniye kesildi ve 4 ping kayboldu. BFD karşı tarafın da desteğini ister. Fabrika: keepalive 60, holdtime 180 son keepalive geldi sayaç buradan başlar hat sessizce koptu sayaç 180 sn'yi bekliyor Hold Timer Expired 126,9 sn sonra komşu düştü kesinti 120 ile 180 sn arası lab: 127,1 sn, 610 ping kayıp yedek rota ancak sonra devrede BFD: 250 ms, çarpan 3 BFD paketi 250 ms arayla iki yönde, saniyede dört hat sessizce koptu 3 paket gelmezse BGP'ye haber BFD Down 0,91 sn sonra komşu düştü kesinti yaklaşık 1 sn lab: 1,04 sn, 4 ping kayıp karşı taraf da desteklemeli
Holdtime dakikada bir gelen keepalive'ın üç dakika gelmemesini bekler; BFD saniyede dört kez sorar ve üç cevapsızlıkta kararı verir.

FortiGate BFD: Kopmayı Bir Saniyede Fark Etmek

İki dakikalık kesinti, sesli görüşmeleri ve uzak masaüstü bağlantılarını düşürmek için fazlasıyla uzun. Bu süreyi kısaltmanın yolu BFD (Bidirectional Forwarding Detection): iki komşu birbirine saniyenin altında aralıklarla küçük paketler gönderir ve birkaç paket gelmeyince BGP’ye haber verir.

BFD arayüzde yok. BGP komşu formunda BFD seçeneği bulunmuyor; komut satırından iki yerde açılıyor:

FortiGate CLI
config system settings
    set bfd enable
end
config router bgp
    config neighbor
        edit "198.51.100.2"
            set bfd enable
        next
    end
end

Arayüzlerin BFD ayarı fabrika değeri olan global’de, yani bu genel ayarı izliyor. BFD açılınca genel ayarda fabrika değerleri göründü:

FortiGate CLI Çıktısı
bfd                 : enable 
bfd-desired-min-tx  : 250
bfd-required-min-rx : 250
bfd-detect-mult     : 3

Gönderme ve alma aralığı 250 ms, çarpan 3. Karşı tarafta da BFD açık olmalı; FRR’de komşu için bir bfd peer tanımladım. Oturum iki tarafta da kuruldu (get router info bfd neighbor):

FortiGate CLI Çıktısı
OurAddress      NeighAddress    State       Interface       LDesc/RDesc
198.51.100.1    198.51.100.2    UP          yedek-hat       1/52

Aynı kopmayı tekrarladım. FortiGate komşuyu kesintiden 0,91 saniye sonra düşürdü. Logun gerekçesi bu kez BFD’yi gösteriyordu:

FortiGate CLI Çıktısı
4: date=2026-10-02 time=04:44:03 eventtime=1790905443699194433 ... logdesc="BGP neighbor status changed" msg="BGP: %BGP-5-ADJCHANGE: VRF 0 neighbor 198.51.100.2 Down BFD Down; User reset added"

Ping kaydındaki boşluk 1,04 saniye, kaybolan ping 4. Holdtime ile 610 paket ve 127,1 saniye kaybolmuştu; BFD ile kesinti, trafiğin yedek yola geçmesinin süresine indi.

İki uyarı: aynı anda logda Down User reset ve Down BGP Notification CEASE satırları da var, gerekçeyi o satırlardan okursanız yanlış yere bakarsınız. Ve BFD komşunun da desteklemesini gerektirir; servis sağlayıcının yönlendiricisinde BFD açılması operatörden istenir. Destek yoksa keepalive ve holdtime sürelerini kısaltmak öbür yoldur; bunu bu yazıda ölçmedim.

Doğrulama: FortiGate BGP Doğru Kuruldu mu?

  1. Komşuluk Established, parolalı; parola yanlışken oturum kurulmuyor.
  2. Duyuru yalnız Networks ile; karşı tarafın tablosunda FortiGate’ten yalnız kendi ağları görünüyor, Redistribute kapalı.
  3. Kabul önek listesiyle; tabloda yalnız beklenen şube ağları var.
  4. Önek sınırı beklenen sayının üstünde, pay bırakılarak konmuş.
  5. BFD iki tarafta UP; kopma denemesinde komşu saniye içinde düşüyor ve yedek yol devreye giriyor.
  6. Trafik kuralı NAT’sız; şube personelin gerçek adresini görüyor.

Sonuç: FortiGate BGP’de Duyuruyu, Kabulü ve Kopma Süresini Siz Seçersiniz

FortiGate BGP’de komşuluk birkaç alanla kuruluyor, ama üç karar fabrika ayarına bırakılırsa yanlış gidiyor. Lab’dan çıkan kurallar:

  1. Duyuru elle seçilir. FortiGate fabrika ayarında hiçbir şey duyurmuyor; Networks bölümüne yazılan ağlar gidiyor. Bağlı ağları toptan dağıtmak yönetim ve misafir ağlarını da karşıya taşıdı.
  2. Kabul süzülür ve sınırlanır. Süzgeçsiz FortiGate beklenmeyen ağı bir saniyede tabloya aldı; önek sınırı aşılınca oturum kapandı ve elle temizlenene kadar kapalı kaldı.
  3. Sessiz kopma için BFD açılır. Fabrika zamanlayıcılarıyla kesinti 127,1 saniye, BFD ile 1,04 saniye sürdü. BFD yalnız komut satırından açılıyor ve karşı tarafın desteğini istiyor.

Lab’daki son hâl: ölçüm bitince BGP yapılandırması, önek listesi, şube kuralı ve yedek rota kaldırıldı; servis sağlayıcı tarafındaki FRR durduruldu.

Örnekteki iki kapı listelerini bilerek yazar, karşıdan gelen listeyi kontrol eder ve fenerlerini sık sık yakar; fener sönünce karşı taraf beklemeden yolu değiştirir. Sıradaki adım rehberin 12. adımı, bant genişliği sınırlama. Hat sayısı ve rota belli olduktan sonra sıra, hattın kimler arasında paylaşılacağına gelir.

FortiGate Firewall BGP Hakkında Sık Sorulan Sorular

Duyurmuyor. Lab'da komşuluk 6 saniyede kuruldu ve FortiGate karşı taraftan şubenin ağını öğrendi, ama karşı tarafa giden önek sayısı 0'dı. FortiGate yalnız Networks bölümüne yazılan ağları duyuruyor; personel ağını oraya yazınca karşı taraf onu 23 saniye içinde öğrendi. NIST SP 800-189'un uç ağ için önerdiği de bu: yalnız kendi ağlarını duyurmak.
Dikkatsiz kullanılırsa değil. Lab'da bağlı ağların dağıtımı açılınca karşı tarafa sekiz önek gitti; aralarında yönetim ağı, internet hattının ağı, misafir VLAN'ı ve DMZ de vardı. Duyurulacak ağlar Networks bölümüne tek tek yazılır; dağıtım gerçekten gerekiyorsa bir route-map ile süzülür.
Fabrika ayarında dakikalar içinde. FortiGate'in keepalive süresi 60, holdtime süresi 180 saniye ve süre karşıdan gelen son keepalive'dan sayılıyor. Lab'da karşı taraftan gelen trafiği kestim; komşu 126,9 saniye sonra düştü ve ping 127,1 saniye kesildi. BFD açıkken aynı kopma 0,91 saniyede fark edildi, ping 1,04 saniye kesildi.
Süzgeç yoksa FortiGate onu da rota tablosuna alır. Lab'da servis sağlayıcı tarafı fazladan bir ağ duyurunca FortiGate onu bir saniyede tabloya yazdı; yalnız şube ağına izin veren bir önek listesi (prefix-list-in) bağlanınca fazla ağ çıktı. RFC 7454 ayrıca komşudan alınacak önek sayısına sınır koymayı öneriyor; lab'da sınır aşılınca FortiGate oturumu kapattı ve komşu elle temizlenene kadar Idle kaldı.
Komut satırından, iki yerde. Önce genel ayarda config system settings altında set bfd enable; arayüzler fabrika ayarında bu genel değeri izliyor. Sonra BGP komşusunda set bfd enable. Karşı tarafta da BFD açık olmalı. Lab'da fabrika değerleri 250 ms aralık ve 3 çarpandı; kopma 0,91 saniyede fark edildi.
İ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

Kurumsal Network Kurulumu altındaki diğer 114 makale