← Network Makalelerine Dön
CCNPRoutingeBGP/iBGPPath Selection

BGP Basics

BGP Basics
Bu makale BGP'yi "büyük ağlar için routing protokolü" özetinin ötesinde ele alır: AS mimarisi, iBGP/eBGP farkları, attribute tabanlı path selection algoritması ve BGP hijacking/prefix leak güvenlik riskleri.

01 / BGP Neden Var?

OSPF ve EIGRP gibi IGP'ler tek bir organizasyon içinde çalışacak şekilde tasarlanmıştır. İnternet ise binlerce farklı organizasyonun ağından oluşur. IGP'lerin bu ölçeği kaldırması mümkün değildir.

BGP ne değildir: BGP hızlı convergence için tasarlanmamıştır. Link-state IGP'ler (OSPF) çok daha hızlı converge eder. BGP'nin gücü ölçek ve policy kontrolündedir.
BGP AS_PATH loop prevention
Şekil 1 — BGP AS_PATH ile loop önleme: AS 10 kendi numarasını görünce prefix'i reddeder

02 / AS Numaraları

AS (Autonomous System), ortak bir routing policy altında çalışan ağlar topluluğudur. Her AS'in benzersiz bir numarası vardır.

as numaraları
16-bit (klasik) : 1 – 65535 32-bit (modern) : 1 – 4.294.967.295 Özel (private) AS'ler: 16-bit: 64512 – 65535 32-bit: 4200000000 – 4294967294 Örnekler: AS 15169 → Google AS 32934 → Meta AS 16509 → Amazon AS 8473 → Türk Telekom
Kayıt: AS numaraları IANA → RIR (RIPE, ARIN...) üzerinden tahsis edilir. Türkiye = RIPE bölgesi.

03 / iBGP vs eBGP

BGP iki modda çalışır:

farklar tablosu
Özellik | eBGP | iBGP AS | Farklı AS | Aynı AS TTL | 1 (default) | 255 (multihop) Next-hop | Değiştirilir | Değiştirilmez AD | 20 | 200 Full-mesh | Gerekli değil | Gerekli (veya RR)
Next-hop iBGP sorunu: iBGP'de next-hop değişmediği için, iBGP komşular next-hop IP'ye erişebilmeli. Genelde IGP ile next-hop IP dağıtılır.
iBGP vs eBGP topology
Şekil 2 — iBGP ve eBGP topolojisi: AS100 içi iBGP, AS100–AS150–AS200 arası eBGP

04 / Session Kurulumu

BGP, TCP port 179 üzerinde çalışır. Diğer routing protokollerinden farklı olarak neighbor discovery yoktur — komşular manuel olarak tanımlanır.

bgp session state machine
Idle → Connect → Active → OpenSent → OpenConfirm → Established Established = BGP çalışıyor, route exchange başlıyor
cisco ios — bgp session
router bgp 65001 bgp router-id 1.1.1.1 ! ! eBGP komşu (farklı AS): neighbor 203.0.113.1 remote-as 65002 neighbor 203.0.113.1 description ISP-A ! ! iBGP komşu (aynı AS, loopback): neighbor 10.0.0.2 remote-as 65001 neighbor 10.0.0.2 update-source Loopback0 neighbor 10.0.0.2 description IBGP-RR

05 / BGP Table

BGP üç ayrı tablo tutar:

show komutları
show ip bgp summary ! komşu durumu show ip bgp ! tüm BGP table show ip bgp 10.0.0.0 ! belirli prefix show ip bgp neighbors ! detaylı komşu bilgisi show ip route bgp ! routing table'daki BGP rotalar

06 / BGP Attribute'ları

BGP, path selection için metric yerine attribute'ları kullanır. Her attribute well-known veya optional olabilir.

temel attribute'lar
Attribute | Tip | Kapsam | Kullanım WEIGHT | Cisco proprietary | Local only | Outbound tercih LOCAL_PREF | Well-known | AS içi | Outbound tercih AS_PATH | Well-known | Tüm BGP | Loop prevention + path ORIGIN | Well-known | Tüm BGP | i/e/? kaynak bilgisi MED | Optional | Komşu AS | Inbound tercih NEXT_HOP | Well-known | Tüm BGP | Next-hop IP
WEIGHT: Cisco'ya özgü, sadece local router'da geçerli. En yüksek = tercih edilir. Diğer router'lara iletilmez.

07 / Path Selection Algoritması

BGP aynı prefix için birden fazla yol aldığında best path seçimi sırayla şu kriterlere göre yapılır:

bgp best path — karar sırası
1. WEIGHT → En yüksek (Cisco proprietary) 2. LOCAL_PREF → En yüksek 3. Locally originated→ network/redistribute/aggregate tercih 4. AS_PATH length → En kısa 5. ORIGIN → IGP (i) > EGP (e) > Incomplete (?) 6. MED → En düşük (aynı AS komşularında) 7. eBGP > iBGP → eBGP yolu tercih 8. IGP metric → Next-hop'a en düşük IGP cost 9. Oldest eBGP path → En eski eBGP komşu (stabilite) 10. Router ID → En düşük BGP Router-ID 11. Cluster list → En kısa cluster list 12. Neighbor address → En düşük IP
📌
Ezber: 'We Love Oranges AS Oranges Mean Pure Refreshment' — ilk harfleri path selection sırasını verir.
BGP path selection
Şekil 3 — BGP path selection: summary prefix + more-specific prefix ile inbound yük dağılımı

08 / Route Advertisement

BGP'de prefix advertise etmek için iki yöntem vardır:

cisco ios — route advertisement
! 1. Network komutu (exact match gerekli): router bgp 65001 network 192.168.1.0 mask 255.255.255.0 ! 2. Redistribute (dikkatli kullan!): router bgp 65001 redistribute static route-map FILTER-STATIC redistribute connected route-map FILTER-CONNECTED ! Prefix-list ile filtreleme: ip prefix-list BGP-OUT seq 10 permit 192.168.0.0/16 le 24 ip prefix-list BGP-OUT seq 20 deny 0.0.0.0/0 le 32 router bgp 65001 neighbor 203.0.113.1 prefix-list BGP-OUT out
Tehlike: 'redistribute connected' veya 'redistribute static' ile tüm rotaları BGP'ye vermek, prefix leak'e yol açabilir. Her zaman route-map/prefix-list ile filtrele.

09 / iBGP Full-Mesh Sorunu

iBGP'de temel kural: iBGP'den öğrenilen bir rota, başka bir iBGP komşuya iletilmez (loop önleme). Bu yüzden n AS içindeki n router için n×(n-1)/2 iBGP session gerekir.

ölçek problemi
5 router → 10 session 10 router → 45 session 50 router → 1225 session ← yönetilemez

Çözüm yöntemleri:

cisco ios — route reflector
router bgp 65001 neighbor 10.0.0.2 remote-as 65001 neighbor 10.0.0.2 route-reflector-client neighbor 10.0.0.3 remote-as 65001 neighbor 10.0.0.3 route-reflector-client

10 / BGP Güvenlik Riskleri

BGP Hijacking

Bir AS, başkasına ait prefix'leri yanlışlıkla veya kasıtlı olarak advertise eder. Trafik yanlış yere yönlendirilir.

Gerçek Olaylar: 2010: Pakistan Telecom YouTube'u hijack etti. 2008: AS7007 incident — büyük internet kesintisi. 2019: China Telecom, Avrupa trafiğini yönlendirdi.

Prefix Leak

Transit AS, aldığı rotaları başka bir AS'e iletmemelidir. Bu ihlal edilirse trafik beklenmedik yollardan akar.

savunma
! MD5 authentication: router bgp 65001 neighbor 203.0.113.1 password G3rCekl1S1f3! ! Max-prefix limiti: router bgp 65001 neighbor 203.0.113.1 maximum-prefix 1000 80 ! 80% uyarı, 100%'de session drop ! Prefix filtreleme: neighbor 203.0.113.1 prefix-list ISP-IN in

11 / Enterprise Konfigürasyon

cisco ios — dual-homed enterprise
! İki ISP'ye bağlı enterprise örneği: router bgp 65001 bgp router-id 1.1.1.1 bgp log-neighbor-changes ! ! ISP-A (primary): neighbor 203.0.113.1 remote-as 65002 neighbor 203.0.113.1 description ISP-A-PRIMARY neighbor 203.0.113.1 password ISP-A-Secret! neighbor 203.0.113.1 maximum-prefix 800000 80 ! ! ISP-B (secondary): neighbor 198.51.100.1 remote-as 65003 neighbor 198.51.100.1 description ISP-B-SECONDARY neighbor 198.51.100.1 password ISP-B-Secret! neighbor 198.51.100.1 maximum-prefix 800000 80 ! ! Kendi prefix'imizi advertise et: network 203.0.113.0 mask 255.255.255.0 ! ! ISP-A'yı tercih et (LOCAL_PREF): neighbor 203.0.113.1 route-map SET-HIGH-LP in ! route-map SET-HIGH-LP permit 10 set local-preference 200

12 / Checklist