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ı
- Aynı prefix’i iki farklı BGP neighbor’dan alın.
show ip bgp <prefix>ile path attribute değerlerini karşılaştırın.- Local preference, AS-PATH length, MED ve IGP metric değerlerini eşitleyin.
- Address-family altında
maximum-paths 2veyamaximum-paths ibgp 2girin. show ip route <prefix>ile iki next-hop’un RIB’e kurulduğunu doğrulayın.show ip cef <prefix>ile forwarding table’ı kontrol edin.- Çoklu flow üreterek trafik dağılımını test edin.
- Bir path’i kapatıp failover davranışını ölçün.
- Gerekirse ECMP hash ve platform sayaçlarını inceleyin.
- Ü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.
Cem Kemal Erbaş Network, Siber Güvenlik ve Teknik Rehberler