MediumFortiGate Dial-Up IPsec with BGP & ADVPN: Deep Dive into next-hop-self , add-route disable , and Shortcut Tunnel Negotiation | by İhsan Ahmet Köseoğlu | Sep, 2026 | Medium
Sitemap

FortiGate Dial-Up IPsec with BGP & ADVPN: Deep Dive into next-hop-self , add-route disable , and Shortcut Tunnel Negotiation

5 min readSep 19, 2026

--

Press enter or click to view image in full size

Merkezi (Hub-and-Spoke) FortiGate mimarilerinde BGP ve IPsec VPN yapılandırırken şubelerin birbiriyle haberleşememesi veya paketlerin tünel yerine WAN arayüzüne kaçması ( recursive via port2 ), ağ mühendislerinin en sık karşılaştığı yönlendirme tıkanıklıklarından biridir. Bu yazıda; Dial-Up IPsec VPN üzerinde BGP çalıştırırken karşılaşılan next-hop-self ve add-route disable gereksinimlerini derinlemesine inceleyecek, ADVPN (Auto-Discovery VPN) teknolojisiyle şubeler arasında nasıl dinamik kestirme tüneller (shortcut) kurulduğunu gerçek bir laboratuvar senaryosu üzerinden adım adım ele alacağız.

FortiGate-VM64-KVM # conf system interface

FortiGate-VM64-KVM (interface) # edit port1

FortiGate-VM64-KVM (port1) # set mode dhcp

FortiGate-VM64-KVM (port1) # end

Diyerek her bir firewall a bilgisayarımızdan bir ip veriyoruz

Press enter or click to view image in full size

Yapımız yukarıdaki gibi olacak buna göre tüm cihazları kuruyoruz.

Press enter or click to view image in full size
ISP interfaces yapılandırması tüm interfacesler DHCP
Press enter or click to view image in full size
Diğer yapılandırmalarda bu şekilde olacak

Ardından tüm firewall’ların dış bacaklarının ISP üzerinden haberleşebilmesi için ISP firewall üzerinde ilgili arayüzleri aynı zone içine alıyoruz ve ‘block intra-zone traffic’ özelliğini devre dışı bırakıyoruz.

Press enter or click to view image in full size

Böylelikle tüm interfaces lerden ayrı ayrı kural yazmadan haberleşebileceğiz.

MGMT interfaces lerini manuel e çekmeyi unutmayın yoksa statik rota olarak orasıda dhcp olduğu için routelar çakışır.

Haberleşme sağlandığına göre artık ipsec kısmına geçebiliriz HUB and SPOKE yapımızı oluşturabiliriz.

HUB kısmında ipsec ayarı:

Neden Network_id girdik? Bizim yapımızda şubeler Hub’daki tek bir tünele bağlanıp bunun üzerinden haberleşecek; bu nedenle dial-up tünelimize birden fazla şube bağlanabilir. Peki, bu durumda tünel, gelen isteğin bu dial-up tünele ait olduğunu nereden anlayacak? İşte verdiğimiz bu Network_id sayesinde. Ardından Phase 2 de oturduktan sonra haberleşmesini sağlayacak.

Press enter or click to view image in full size

Ardından lokal ağlarımı aktif ediyorum ve kurallarımı yazıyorum.

Press enter or click to view image in full size

Şimdi SPOKE’a geçelim

Press enter or click to view image in full size
Kuralımı yazdıktan sonra IPsec monitör kısmına bakıyorum
Press enter or click to view image in full size
Press enter or click to view image in full size

Artık tüneller karşılıklı oturmuş durumda. SPOKE_2'ye geçmeden bu iki şube arasında bir BGP konfigürasyonu yapalım. Öncelikle firewall’larda tünellere IP veriyoruz, Hub ve Spoke firewall’larımızda.

HUB karşıya ise tam tersini giriyoruz.
Pingin de geçtiğini görüyoruz.

Şimdi ise BGP kısmına gelelim.

Press enter or click to view image in full size
Press enter or click to view image in full size

Bu kısımda route reflector client özelliğini aktif ediyoruz peki nedir bu özellik?

Get İhsan Ahmet Köseoğlu’s stories in your inbox

Join Medium for free to get updates from this writer.

Route Reflector Client Nasıl Çalışır?

Merkezdeki cihaz (Hub) Route Reflector (Yön Yansıtıcı) olarak yapılandırılır. Şubeler (Spoke 1, Spoke 2 vb.) ise bu merkezi cihazın Route Reflector Client (İstemci) birimi haline getirilir[2][3].

Hub üzerinde komşuluk için set route-reflector-client enable yapıldığında şu kurallar işler:

  • Client’tan Gelen Rota: Hub, bir Client’tan (örneğin Spoke 1) aldığı iBGP rotasını diğer tüm Client’lara (Spoke 2) ve Client olmayan diğer iBGP komşularına yansıtır (reflect eder).
  • Tüm yansıtma mantığı yalnızca merkezdeki (Hub) cihaz üzerinde yönetilir. Bu nedenle yalnızca HUB üzerinde bu ayarı açıyoruz.

Bu kısımda sadece duyurmak istediğimiz network’leri giriyoruz. Aynı ayarları Spoke’da da yapıyoruz; ancak route-reflector-client özelliğini aktif etmiyoruz, onu sadece Hub'da kullanıyoruz.

Press enter or click to view image in full size
Press enter or click to view image in full size
Press enter or click to view image in full size

Bu şekilde de Hub’dan Spoke’u pinglediğimizi görebilirsiniz. Şimdi ise SPOKE_2 firewall’umuzu ekleyelim.

Mimarimizin en kritik noktasında iki temel ayar hayati rol oynamaktadır: İlk olarak set add-route disable komutunu kullanıyoruz; çünkü IPsec tüneli kurulduğunda FortiGate’in arka planda otomatik oluşturduğu dinamik rota, öncelik değeri (distance) sebebiyle BGP rotalarını ezmekte ve birden fazla şubenin aynı Dial-Up tünele bağlandığı yapılarda yönlendirme çakışmalarına yol açmaktadır. Bu otomatik rotayı kapatarak yönlendirme kontrolünü tamamen BGP’ye devrediyoruz. İkinci ve yapının bel kemiğini oluşturan adım ise ADVPN (Auto-Discovery VPN) teknolojisidir. ADVPN aktif edilmediğinde, Spoke 1 ve Spoke 2 arasındaki iletişim aynı Dial-Up tüneli üzerinden Hub’a gidip oradan geri dönmeye çalışır; bu durum yönlendirme tablolarının kilitlenmesine ve paketlerin tünel dışına kaçmasına neden olur. İşte bu sorunu aşmak için Hub tarafında set auto-discovery-sender enable (teklif verici), Spoke tarafında ise set auto-discovery-receiver enable (teklif alıcı) komutlarını açarak, şubelerin Hub’ı aradan çıkarıp kendi aralarında doğrudan ve dinamik kestirme tüneller (shortcut) kurmasını sağlıyoruz.

Press enter or click to view image in full size
spoke_2 tünel oluşturduktan sonra yapılandırması
SPOKE

Ardından Spoke 2'de LAN’dan tünele doğru kural yazıyoruz ve tünele IP veriyoruz, ardından BGP yapılandırmamızı yapıyoruz

Press enter or click to view image in full size

Hub’ın arkasındaki ağa ping atabiliyorum. Kontrol ettiğimde tünelleri ayarladım, CLI ayarlarımı yaptım, IPsec interface IP’sini verdim. BGP komşum olarak Hub’ı ekledim, Spoke_2'de Hub’ı komşu olarak ekledim ve yine Hub’ın üzerinde route-reflector-client bu ayarı aktif ettim. Peki, Spoke'tan Spoke'a gidebiliyor muyum şu an?

Hayır, neden? Çünkü Branch’ten Branch’e kural yazmadım Hub üzerinde.

Press enter or click to view image in full size
Press enter or click to view image in full size

Yazdık ve artık gidebiliyoruz. Sonraki konuda IP girme işlemlerinin gruplar halinde nasıl yapılacağını anlatacağım. Aklınıza takılan bir şey olursa her zaman seve seve yardımcı olurum, okuduğunuz için teşekkürler, iyi çalışmalar.

--

--