Tek Yolda Tıkanma Bitiyor: BGP Multipath ile Çoklu Path’leri Aktif Edin ⚖️

BGP, varsayılan davranış olarak bir prefix için tek bir best path seçer ve routing table’a genellikle bu yolu kurar.

Bu davranış çoğu senaryoda güvenli ve deterministiktir. Ancak aynı prefix’e giden birden fazla eşdeğer yol varsa, sadece tek yolu kullanmak bant genişliğinin verimsiz kullanılmasına neden olabilir.

Bu noktada BGP Multipath devreye girer.

BGP Multipath ile bir prefix için birden fazla uygun BGP path routing table’a kurulabilir ve trafik bu yollar arasında load sharing ile dağıtılabilir.

Kısa ifade:

Varsayılan BGP:
Prefix → Tek best path

BGP Multipath:
Prefix → Birden fazla uygun path → ECMP / load sharing

BGP Multipath Nedir?

BGP Multipath, aynı prefix için birden fazla BGP yolunun routing table’a kurulmasını sağlayan özelliktir.

Bu özellik best path seçim algoritmasını ortadan kaldırmaz.

BGP yine bir path’i best path olarak seçer. Ancak şartları sağlayan diğer path’leri de routing table’a ekleyebilir.

Önemli ayrım:

Best path selection → BGP control plane kararı
Load sharing        → CEF / hardware forwarding kararı

Yani BGP “hangi yollar uygun?” kararını verir. Trafiğin hangi next-hop üzerinden akacağı ise çoğu platformda CEF veya donanım forwarding hash mekanizmasıyla belirlenir.


1️⃣ Global veya Address-Family Düzeyinde Ayar

BGP multipath genellikle address-family altında yapılandırılır.

eBGP Multipath Örneği

router bgp 65000
 address-family ipv4 unicast
  maximum-paths 4
 exit-address-family

Bu örnekte aynı prefix için en fazla 4 uygun eBGP path routing table’a kurulabilir.

iBGP Multipath Örneği

router bgp 65000
 address-family ipv4 unicast
  maximum-paths ibgp 4
 exit-address-family

Bu örnek iBGP üzerinden öğrenilen uygun path’lerin multipath olarak kurulmasına izin verir.

VRF İçinde Kullanım Örneği

router bgp 65000
 address-family ipv4 vrf CUSTOMER_A
  maximum-paths 4
  maximum-paths ibgp 4
 exit-address-family

VRF kullanan MPLS VPN veya multi-tenant yapılarda multipath ayarı ilgili VRF address-family altında yapılmalıdır.


2️⃣ eBGP, iBGP ve eiBGP Ayrımı

Cisco tarafında BGP multipath için farklı kullanım biçimleri vardır.

eBGP Multipath  → maximum-paths 4
iBGP Multipath  → maximum-paths ibgp 4
eiBGP Multipath → maximum-paths eibgp 4

eBGP Multipath

Dış BGP komşularından gelen eşdeğer yollar için kullanılır.

Örnek senaryo:

Aynı prefix iki farklı ISP router’dan geliyor.
Path attribute değerleri uygun.
Router iki next-hop’u da routing table’a kuruyor.

iBGP Multipath

İç BGP komşularından gelen eşdeğer yollar için kullanılır.

Örnek senaryo:

İki farklı PE router aynı müşteri prefix’ini iBGP ile duyuruyor.
Core router iki path’i de kullanmak istiyor.

eiBGP Multipath

Bazı MPLS VPN / VRF senaryolarında eBGP ve iBGP path’leri birlikte multipath olarak değerlendirmek için kullanılır.

router bgp 65000
 address-family ipv4 vrf CUSTOMER_A
  maximum-paths eibgp 4
 exit-address-family

Komut desteği ve davranış platform, IOS/IOS-XE/IOS-XR sürümü ve address-family tipine göre değişebilir. Üretimde mutlaka cihaz üzerindeki ? yardımı ve platform dokümanı kontrol edilmelidir.


3️⃣ Multipath İçin Eşitlik Şartları

maximum-paths komutunu yazmak tek başına her yolu aktif hale getirmez.

BGP, yalnızca belirli kriterleri sağlayan path’leri multipath adayı olarak kabul eder.

Genel olarak şu değerlerin uyumlu olması beklenir:

Weight
Local Preference
AS-PATH length
Origin code
MED
Next-hop’a IGP metric
Neighboring AS / AS-PATH koşulları

Örnek

Aşağıdaki iki path uygun olabilir:

Path-1:
 Local Preference: 100
 AS-PATH length  : 2
 Origin          : i
 MED             : 0
 IGP metric      : 10

Path-2:
 Local Preference: 100
 AS-PATH length  : 2
 Origin          : i
 MED             : 0
 IGP metric      : 10

Ancak aşağıdaki durumda multipath oluşmayabilir:

Path-1 IGP metric: 10
Path-2 IGP metric: 50

Çünkü next-hop’a olan IGP maliyeti farklıdır.


4️⃣ AS-PATH ve Multipath Relax Mantığı

Bazı tasarımlarda aynı prefix farklı AS-PATH değerleriyle gelebilir.

Normalde BGP bu yolları multipath adayı olarak kabul etmeyebilir.

Bu gibi durumlarda platform desteğine bağlı olarak şu komut değerlendirilebilir:

router bgp 65000
 bgp bestpath as-path multipath-relax

Bu komut, AS-PATH eşitliği konusundaki bazı şartları gevşetebilir.

Ancak dikkat:

Bu komut her tasarıma kör şekilde uygulanmaz.
Yanlış kullanılırsa istenmeyen trafik dağılımı ve asimetrik routing doğurabilir.

Özellikle ISP, internet edge ve multi-homed yapılarda dikkatli test edilmelidir.


5️⃣ MED ve Confederation Notu

MED karşılaştırması BGP best path seçiminde önemli bir etkendir. Ancak bgp bestpath med-confed gibi komutlar doğrudan “iBGP multipath açma” komutu değildir.

Bu tip komutlar MED’in nasıl karşılaştırılacağını etkiler.

Doğru yaklaşım:

Önce path attribute değerlerini analiz et.
Sonra gerçekten multipath şartlarını bozup bozmadığını kontrol et.
Gerekirse bestpath davranışını kontrollü şekilde değiştir.

Yani multipath problemi yaşandığında hemen MED komutlarıyla oynamak yerine önce show bgp çıktısı üzerinden neden multipath oluşmadığı incelenmelidir.


6️⃣ Path Seçim Kriterlerini İnceleme

BGP’nin hangi path’i best seçtiğini ve diğer yolları neden multipath yapmadığını görmek için detaylı kontrol gerekir.

Temel Kontrol

show ip bgp 10.1.1.0/24

Detaylı Kontrol

show ip bgp 10.1.1.0/24 longer-prefixes
show ip bgp 10.1.1.0/24
show ip bgp 10.1.1.0/24 detail

Bazı platformlarda komut farklı olabilir:

show bgp ipv4 unicast 10.1.1.0/24
show bgp ipv4 unicast 10.1.1.0/24 detail

Kontrol Edilecek Alanlar

Best path hangi next-hop?
Diğer path valid mi?
Local preference aynı mı?
AS-PATH length aynı mı?
MED aynı mı?
Origin aynı mı?
IGP metric aynı mı?
Next-hop erişilebilir mi?
Path suppressed / dampened / filtered mı?
Route-map etkisi var mı?

7️⃣ Routing Table ve CEF Kontrolü

BGP tablosunda birden fazla path görmek yeterli değildir. Bu path’lerin routing table ve forwarding table’a kurulup kurulmadığı da doğrulanmalıdır.

Routing Table Kontrolü

show ip route 10.1.1.0 255.255.255.0

Beklenen çıktı mantığı:

Known via "bgp 65000"
  * 192.0.2.1
  * 192.0.2.2
  * 192.0.2.3
  * 192.0.2.4

CEF Kontrolü

show ip cef 10.1.1.0/24
show ip cef exact-route 10.10.10.10 10.1.1.10
show adjacency

CEF tarafında birden fazla next-hop görünmüyorsa trafik gerçekten çoklu yola dağılmıyor olabilir.


8️⃣ Veri Düzeyi Testi

Multipath yapılandırmasından sonra yalnızca tek ping veya tek traceroute ile karar vermek yanıltıcıdır.

Çünkü load balancing çoğu zaman per-flow hash ile çalışır.

Yani aynı source/destination/port kombinasyonu aynı yoldan gidebilir.

Basit Testler

ping vrf CUSTOMER_A 8.8.8.8 repeat 20
traceroute vrf CUSTOMER_A 8.8.8.8

Daha Sağlıklı Test

Farklı kaynak ve hedeflerle çoklu flow üretin:

Farklı source IP
Farklı destination IP
Farklı TCP/UDP port
Farklı VRF
Farklı uygulama akışı

Kontrol

show interfaces counters
show ip cef exact-route <source-ip> <destination-ip>
show platform hardware forwarding statistics

Platforma göre donanım sayaçları ve ECMP hash komutları farklılık gösterebilir.


9️⃣ Load Sharing Nasıl Yapılır?

BGP multipath trafiği tek tek paket bazında eşit şekilde dağıtmak zorunda değildir.

Çoğu modern platformda yük paylaşımı flow hash ile yapılır.

Hash girdileri şunlar olabilir:

Source IP
Destination IP
Source port
Destination port
Protocol
VRF
L4 bilgisi

Bu nedenle şu beklenti yanlıştır:

4 path varsa her ping kesin %25 dağılır.

Daha doğru beklenti:

Çok sayıda flow üretildiğinde trafik path’ler arasında istatistiksel olarak dağılır.

10️⃣ Basit eBGP Multipath Senaryosu

Topoloji

Router-A
 ├── ISP-Router-1 → 10.1.1.0/24
 └── ISP-Router-2 → 10.1.1.0/24

Konfigürasyon

router bgp 65000
 neighbor 192.0.2.1 remote-as 65100
 neighbor 192.0.2.5 remote-as 65100

 address-family ipv4 unicast
  neighbor 192.0.2.1 activate
  neighbor 192.0.2.5 activate
  maximum-paths 2
 exit-address-family

Beklenen Sonuç

10.1.1.0/24 için iki eBGP path uygun olursa
Routing table’a iki next-hop kurulur
CEF trafiği iki next-hop arasında dağıtır

11️⃣ Basit iBGP Multipath Senaryosu

Topoloji

Core-Router
 ├── PE-1 → CUSTOMER_A prefix
 └── PE-2 → CUSTOMER_A prefix

Konfigürasyon

router bgp 65000
 neighbor 10.255.1.1 remote-as 65000
 neighbor 10.255.1.2 remote-as 65000
 neighbor 10.255.1.1 update-source Loopback0
 neighbor 10.255.1.2 update-source Loopback0

 address-family ipv4 unicast
  neighbor 10.255.1.1 activate
  neighbor 10.255.1.2 activate
  maximum-paths ibgp 2
 exit-address-family

Dikkat

iBGP multipath için next-hop reachability ve IGP metric eşitliği kritik önemdedir.

Route reflector kullanılan yapılarda RR yalnızca tek best path advertise ediyorsa downstream router zaten birden fazla path göremeyebilir. Bu durumda additional-path, farklı RD veya tasarım değişikliği gerekebilir.


12️⃣ BGP Multipath’in Faydaları

Artırılmış Bant Genişliği

Birden fazla path aynı anda kullanılabilir. Böylece tek link üzerinde gereksiz tıkanma azaltılır.

Yüksek Dayanıklılık

Bir path devre dışı kaldığında diğer path’ler trafik taşımaya devam edebilir.

Daha İyi Link Kullanımı

Paralel hatlar aktif/pasif beklemek yerine aktif/aktif kullanılabilir.

Daha Hızlı Toparlanma

Alternatif path routing table’da hazır olduğundan bazı senaryolarda convergence etkisi azalabilir.

Basit Yapılandırma

Uygun path şartları sağlanıyorsa birkaç komutla multipath aktif edilebilir.


13️⃣ Sık Yapılan Hatalar

1️⃣ maximum-paths Yazınca Her Yol Aktif Olur Sanmak

Yanlış. Path attribute değerleri uygun değilse multipath oluşmaz.

2️⃣ Routing Table Yerine Sadece BGP Table’a Bakmak

BGP tablosunda çoklu path görünebilir ama routing table’a kurulmamış olabilir.

3️⃣ CEF / Forwarding Kontrolü Yapmamak

Gerçek yük paylaşımı forwarding table’da doğrulanmalıdır.

4️⃣ Tek Ping ile Load Balancing Test Etmek

Tek flow aynı path’e hashlenebilir. Çoklu flow ile test edilmelidir.

5️⃣ Route Reflector Davranışını Unutmak

RR yalnızca best path advertise ediyorsa client cihazlar çoklu path göremeyebilir.

6️⃣ AS-PATH Relax Komutunu Kör Kullanmak

bgp bestpath as-path multipath-relax her ortam için uygun değildir. Routing policy ve trafik simetrisi kontrol edilmelidir.

7️⃣ Donanım Limitlerini Kontrol Etmemek

Maksimum ECMP path sayısı platform ve yazılım sürümüne göre değişir. Her cihaz aynı sayıda path desteklemez.


14️⃣ 48s Mini-PoC Planı

  1. Aynı prefix’i iki farklı BGP neighbor’dan alın.
  2. show ip bgp <prefix> ile path attribute değerlerini karşılaştırın.
  3. Local preference, AS-PATH length, MED ve IGP metric değerlerini eşitleyin.
  4. Address-family altında maximum-paths 2 veya maximum-paths ibgp 2 girin.
  5. show ip route <prefix> ile iki next-hop’un RIB’e kurulduğunu doğrulayın.
  6. show ip cef <prefix> ile forwarding table’ı kontrol edin.
  7. Çoklu flow üreterek trafik dağılımını test edin.
  8. Bir path’i kapatıp failover davranışını ölçün.
  9. Gerekirse ECMP hash ve platform sayaçlarını inceleyin.
  10. Üretim öncesi route-map, prefix-list ve policy etkilerini kontrol edin.

Kısa Özet

BGP varsayılan olarak tek best path seçer.
maximum-paths ile uygun ek path’ler RIB’e kurulabilir.
CEF/hardware forwarding bu path’ler arasında load sharing yapar.
Multipath, best path algoritmasını iptal etmez.
Path attribute değerleri uyumlu değilse multipath oluşmaz.

Sonuç

BGP Multipath, tek bir prefix için birden fazla uygun path’i aktif kullanarak ağ kaynaklarını daha verimli hale getirir.

Doğru tasarlandığında:

Bant genişliği artar.
Link kullanımı dengelenir.
Yedeklilik güçlenir.
Failover süresi iyileşir.
Trafik tek yola sıkışmaz.

Ancak BGP Multipath yalnızca maximum-paths komutundan ibaret değildir. Path attribute eşitliği, next-hop reachability, IGP metric, CEF davranışı, route reflector tasarımı ve donanım ECMP limitleri birlikte değerlendirilmelidir.

Kural basit:

BGP yolu seçer.
CEF trafiği dağıtır.
Operasyon ekibi de gerçekten dağılıp dağılmadığını doğrular.

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

🔖 Anlık Trafik Patlamalarında Darboğazı Hızla Tespit Etmenin 3 Yolu 🚦

Kurumsal ağlarda trafik patlamaları çoğu zaman birkaç dakika içinde kendini belli eder. Kullanıcılar şu şikayetlerle …

Bir yanıt yazın