BGP’nin Çalışma Prensibi

E-posta Hosting Kampanya

BGP (Border Gateway Protocol), internet üzerindeki ağlar arasında yönlendirme (routing) bilgilerini taşıyan ve en iyi yolu belirleyen bir yönlendirme protokolüdür. BGP, politika tabanlı çalışması ve ölçeklenebilir yapısı sayesinde internetin omurgasını oluşturan protokoldür. Bu yazıda, BGP’nin çalışma prensibini tüm detaylarıyla inceleyeceğiz.


1. BGP’nin Genel Çalışma Mantığı

BGP, farklı otonom sistemler (AS – Autonomous Systems) arasında yönlendirme tablolarını değiş tokuş ederek en iyi yolu belirler. Diğer yönlendirme protokollerinden farklı olarak BGP:

  • Distance Vector (Mesafe Vektör) protokolü yerine Path Vector (Yol Vektör) mantığıyla çalışır.
  • Yönlendirme kararlarını politika tabanlı verir.
  • IP prefix’lerini ve yollarını taşıyarak ağın global yönlendirme tablolarını oluşturur.

BGP, yönlendirme kararlarını Path Attributes (Yol Nitelikleri) kullanarak alır. Bu nitelikler sayesinde ağ yöneticileri, trafik akışını kontrol edebilir.


2. BGP Peer (Komşuluk) İlişkisi

BGP’nin çalışması için iki yönlendirici arasında BGP Peer ilişkisi kurulması gerekir. Bu ilişkiyi kurmak için BGP, TCP 179 portunu kullanır. İki yönlendirici arasındaki bağlantı kurulduktan sonra BGP, yönlendirme bilgilerini paylaşmaya başlar.

BGP komşuluk türleri:

  1. eBGP (External BGP): Farklı otonom sistemler (AS’ler) arasında kurulan bağlantıdır.
  2. iBGP (Internal BGP): Aynı otonom sistem içindeki yönlendiriciler arasında kurulan bağlantıdır.

Komşuluk (Peering) Kurulumu Adımları:

  • Yönlendiriciler, TCP bağlantısı başlatır.
  • OPEN mesajı ile BGP oturumu kurulur.
  • Oturum kurulduktan sonra yönlendirme bilgileri UPDATE mesajları ile paylaşılır.

3. BGP Finite State Machine (FSM) – Durum Makineleri

BGP, komşuluk kurulumu sırasında Finite State Machine (FSM) adı verilen bir dizi durumu takip eder. FSM, BGP komşuluk ilişkisini kurmak ve sürdürmek için kullanılır.

BGP FSM Durumları:

  1. Idle:
    • BGP oturumu kapalıdır.
    • Komşu ile bağlantı kurmaya hazırdır.
  2. Connect:
    • TCP bağlantısı başlatılır.
    • Bağlantı başarılı olursa, OpenSent durumuna geçer.
  3. Active:
    • TCP bağlantısı başarısız olursa tekrar denenir.
    • Bağlantı başarılı olmazsa Idle durumuna geri döner.
  4. OpenSent:
    • OPEN mesajı gönderilir ve komşudan cevap beklenir.
  5. OpenConfirm:
    • OPEN mesajı doğrulandıktan sonra KEEPALIVE mesajları değiş tokuş edilir.
  6. Established:
    • BGP oturumu başarıyla kurulur.
    • Artık UPDATE mesajları ile yönlendirme bilgileri paylaşılır.

Durum Geçişi Örneği:

codeIdle --> Connect --> Active --> OpenSent --> OpenConfirm --> Established

4. BGP Mesaj Türleri

BGP, komşuları ile iletişim kurmak ve yönlendirme tablolarını paylaşmak için dört ana mesaj türü kullanır:

  1. OPEN Mesajı:
    • BGP komşuluğunu başlatmak için gönderilir.
    • ASN (Otonom Sistem Numarası), BGP sürümü ve oturum parametreleri içerir.
  2. KEEPALIVE Mesajı:
    • BGP komşularının bağlantısının canlı olduğunu kontrol eder.
    • Her 60 saniyede bir gönderilir.
  3. UPDATE Mesajı:
    • Yeni yönlendirme bilgilerini taşır.
    • Bir yönlendirme bilgisini ekler veya geri çeker.
  4. NOTIFICATION Mesajı:
    • Bir hata tespit edildiğinde gönderilir.
    • BGP oturumunu kapatır.

Örnek BGP Komşuluk Kurulumu:

Router A ------> OPEN ------> Router B  
Router B <------ KEEPALIVE <------ Router A
Router A ------> UPDATE ------> Router B

5. BGP Path Attributes (Yol Nitelikleri)

BGP, bir hedefe giden en iyi yolu belirlerken Path Attributes (Yol Nitelikleri) adı verilen parametreleri kullanır. Bu nitelikler, BGP’nin politika tabanlı yönlendirme yapmasını sağlar.

Temel Path Attributes:

  1. AS_PATH: Yoldan geçen AS’lerin listesidir. En kısa AS_PATH’e sahip olan yol tercih edilir.
  2. NEXT_HOP: Hedefe ulaşmak için kullanılacak sonraki yönlendiriciyi gösterir.
  3. LOCAL_PREF: iBGP’de tercih edilen yolu belirlemek için kullanılır. En yüksek değere sahip olan yol seçilir.
  4. MULTI_EXIT_DISC (MED): eBGP oturumlarında en iyi yolu belirlemek için kullanılır. En düşük MED değeri tercih edilir.
  5. ORIGIN: Rotanın kaynağını belirtir (IGP, EGP veya İncomplete).

6. BGP Best Path Selection (En İyi Yol Seçimi)

BGP, hedefe giden en iyi yolu belirlemek için aşağıdaki kuralları takip eder:

  1. En yüksek LOCAL_PREF değeri tercih edilir.
  2. En kısa AS_PATH tercih edilir.
  3. En düşük MED (Multi-Exit Discriminator) değeri tercih edilir.
  4. iBGP’den öğrenilen rotalar, eBGP’den öğrenilen rotalara göre önceliklidir.
  5. En düşük IGP metriğine sahip NEXT_HOP tercih edilir.
  6. En eski BGP oturumu olan yol tercih edilir.

Sonuç

BGP, dünya çapında internet trafiğinin yönlendirilmesini sağlayan en önemli protokoldür. Komşuluk (peering) ilişkileri, BGP mesaj türleri ve FSM mantığı ile çalışan BGP, Path Attributes kullanarak politika tabanlı yönlendirme yapar. BGP’nin çalışma prensiplerini anlamak, ağ mühendisleri için ağ tasarımı ve yönetimi açısından kritik bir adımdır.

Bir sonraki adımda, BGP yapılandırması ve gerçek dünya örnekleri üzerinden konuyu detaylandırabiliriz.