eBGP ile iBGP arasındaki temel fark, BGP komşularının hangi otonom sistemde bulunduğudur. AS (Autonomous System), ortak yönlendirme politikası altında yönetilen ağları ifade eder. Ağlara hangi yollardan erişilebildiğini paylaşan BGP (Border Gateway Protocol), farklı AS'ler arasında eBGP (external BGP), aynı AS içinde ise iBGP (internal BGP) olarak kullanılır. Temel protokol aynıdır; komşuluk türü rota duyurularına farklı kurallar getirir.

eBGP ve iBGP Komşuluklarının Rolleri

eBGP genellikle bir ağın başka bir AS ile rota alışverişi yaptığı sınırda bulunur. iBGP, dışarıdan öğrenilen veya yerel olarak oluşturulan ve duyurulması uygun görülen BGP rotalarını aynı AS içindeki ilgili yönlendiricilere taşır. BGP eşlerinin fiziksel olarak doğrudan bağlı olması bu ayrımı belirlemez; arada başka yönlendiriciler varken de eBGP veya iBGP oturumu kurulabilir.

eBGP Otonom Sistem Sınırında Çalışır

Bir BGP yönlendiricisinin dış komşusu internet servis sağlayıcısının, müşteri ağının veya trafik alışverişi yaptığı başka bir ağın yönlendiricisi olabilir. Duyurulan IP adresi aralığını belirten prefix'lerin hangilerinin kabul edileceği ve hangilerinin dışarı duyurulacağı yerel politikaya bağlıdır.

Rotanın duyuru sırasında geçtiği otonom sistemleri kaydeden AS_PATH özniteliği, normal eBGP duyurusunda güncellenir. Gönderen yönlendirici kendi AS numarasını yol bilgisine ekler. Bu bilgi yönlendirme döngülerini denetlemeye yardımcı olur; ancak tek başına duyurunun gerçekliğini doğrulayan kriptografik bir kanıt veya veri paketlerinin geçtiği bütün yönlendiricilerin listesi değildir.

iBGP Aynı AS İçinde BGP Bilgisini Taşır

iBGP, bir AS'nin farklı noktalarındaki yönlendiricilere seçilmiş BGP rotalarını dağıtır. Örneğin bir kenar yönlendirici eBGP ile bir dış rotayı öğrenmişse, aynı AS'deki başka bir çıkış yönlendiricisine veya çekirdek BGP yönlendiricisine bu bilgiyi iBGP ile aktarabilir. Bir AS'de yalnız tek BGP yönlendiricisi varsa dış eBGP komşulukları kurulabilir ve içeride ayrıca iBGP oturumu gerekmeyebilir.

iBGP'nin burada yaptığı iş, iç ağın fiziksel bağlantılarını keşfetmek değildir. Aynı AS içinde iç rotaları öğrenmek için kullanılan yönlendirme protokolleri IGP olarak adlandırılır. Bir BGP rotasının kullanılabilmesi için paketin iletileceği sonraki yönlendiriciyi belirten NEXT_HOP adresine de erişim gerekir. BGP eşlerine ve bu adrese erişim, IGP veya uygun statik rotalarla sağlanabilir. iBGP oturumları bu erişimin yerine geçmez.

AS_PATH Davranışı Neden Farklıdır?

AS_PATH, rota duyurusunun geçtiği otonom sistemleri gösteren zorunlu BGP yol özniteliklerinden biridir. eBGP ile iBGP arasındaki en belirgin protokol davranışlarından biri, bu özniteliğin komşuya duyuru sırasında nasıl işlendiğidir.

Bir BGP yönlendiricisi öğrendiği rotayı bir iBGP eşine gönderdiğinde AS_PATH'i değiştirmez. Aynı rota bir eBGP eşine gönderildiğinde ise yerel AS numarası AS_PATH'in başına eklenir. Yerel olarak oluşturulan bir rota dış eşe gönderildiğinde yerel AS numarası AS_PATH içinde yer alırken, iç eşe gönderilen yerel rotanın AS_PATH'i başlangıçta boş olabilir.

Aşağıdaki örnekte rota AS-B tarafından yerel olarak oluşturulmuştur ve AS_PATH üzerinde ek bir politika uygulanmamıştır:

  1. AS-A içindeki R1, AS-B'nin oluşturduğu prefix'i eBGP ile öğrenir. Rotanın AS_PATH bilgisi yalnız AS-B'nin numarasını içerir.
  2. R1 aynı rotayı AS-A içindeki R2'ye iBGP ile aktarır. AS-A'nın numarası bu iç aktarım sırasında AS_PATH'e eklenmez; R2, AS_PATH içinde yalnız AS-B'nin numarasını görür.
  3. R2 rotayı AS-C'deki bir dış eşe duyurursa AS-A'nın numarası, eBGP çıkışında AS_PATH'e eklenir. AS-C, AS_PATH bilgisinde önce AS-A'nın, ardından AS-B'nin numarasını görür.

Bu davranış, iBGP'nin aynı AS içindeki her aktarımı yeni bir AS geçişi gibi göstermesini önler. Bir yönlendirici, normal döngü denetiminde kendi AS numarasını içeren yolu reddeder. AS_PATH'e kendi AS numarasını birden fazla kez ekleme gibi yerel politikalar veya aşağıda açıklanan özel tasarımlar, görülen yol bilgisini değiştirebilir.

Rota Yayılımı eBGP ve iBGP'de Nasıl Değişir?

AS_PATH'in iBGP içinde değiştirilmemesi, iç rota yayılımında ek bir kurala ihtiyaç doğurur. Standart BGP davranışında bir yönlendirici, bir iBGP eşinden aldığı rotayı başka bir normal iBGP eşine yeniden duyurmaz. RFC 4456'da tanımlanan route reflector (rota yansıtıcısı), belirlenmiş iBGP komşularına rotaları yeniden duyurarak bu kurala istisna oluşturur.

Bu nedenle üç iBGP yönlendiricisinin yalnız zincir halinde R1-R2-R3 biçiminde komşu yapılması, R1'den gelen dış rotanın R2 üzerinden otomatik olarak R3'e aktarılacağı anlamına gelmez. R2 rotayı R1'den iBGP ile öğrendiyse, normal iBGP davranışında onu R3'e yeniden duyurmaz. Bunun için her yönlendiricinin diğerlerinin her biriyle ayrı iBGP oturumu kurduğu full mesh yapı veya route reflector gibi bir yöntem gerekir. Bu oturumlar, yönlendiriciler arasında ayrı fiziksel kablolar bulunmasını gerektirmez.

eBGP'de Rota Yayılımını Sınır Politikaları Belirler

eBGP tarafında temel mesele, bir dış eşten öğrenilen veya bir dış eşe gönderilen rotanın yerel politikalara uyup uymadığıdır. BGP, tüm rotaların koşulsuz kabul edilmesini gerektiren bir protokol değildir. RFC 7454, alınan ve gönderilen prefix'lerin filtrelenmesini, AS yollarının denetlenmesini ve eş başına kabul edilen prefix sayısının sınırlandırılmasını önerir. RFC 8212 ise açık bir kabul politikası yoksa eBGP rotalarının seçime alınmamasını, duyuru politikası yoksa dış eşe gönderilmemesini gerektirir. Kullanılan yazılımın varsayılan davranışı ayrıca kontrol edilmelidir.

Bu nedenle eBGP tasarımında yalnız komşuluğun kurulmuş olması yeterli değildir. Hangi prefix'lerin kabul edildiği, hangi prefix'lerin dışarı aktarıldığı ve AS_PATH'in beklenen AS numaralarını ve yol yapısını içerip içermediği ayrıca denetlenir. Bu kontroller, yanlış yapılandırılmış bir eşin beklenmeyen yönlendirme bilgisini yayma riskini azaltır.

iBGP Oturum Sayısı ve Route Reflector Kullanımı

Full mesh yapıda her BGP yönlendiricisi diğerlerinin her biriyle ayrı bir iBGP oturumu kurar. n yönlendirici için n × (n − 1) / 2 oturum gerekir; örneğin 10 yönlendiricide 45 oturum oluşur. Yönlendirici sayısı arttıkça bu oturumları ve yapılandırmalarını yönetmek zorlaşır.

Route reflector, iBGP komşularından bazılarını istemci olarak tanımlar. RFC 4456'nın temel davranışında, seçtiği en iyi rotayı şu kurallarla yansıtır:

  • İstemci olmayan bir iBGP eşinden öğrendiği rotayı istemcilerine yansıtabilir; başka bir istemci olmayan iBGP eşine yansıtmaz.
  • Bir istemciden öğrendiği rotayı diğer istemcilere ve istemci olmayan iBGP eşlerine yansıtabilir.

Böylece istemcilerin birbirleriyle ayrıca iBGP oturumu kurması gerekmeyebilir. Döngü denetimi için rotanın AS içindeki ilk BGP kaynağını belirten ORIGINATOR_ID ve geçtiği yansıtıcı gruplarını kaydeden CLUSTER_LIST öznitelikleri kullanılır. Route reflector her eşin bildiği bütün alternatif yolları dağıtmak zorunda değildir; bu nedenle bütün yönlendiricilerin aynı rota kümesini göreceği veya aynı çıkışı seçeceği varsayılmaz.

NEXT_HOP Adresine Erişim Neden Gereklidir?

eBGP ve iBGP arasındaki fark yalnız AS_PATH ile sınırlı değildir. RFC 4271'e göre bir BGP yönlendiricisi, başka bir eşten öğrendiği rotayı iBGP komşusuna gönderirken NEXT_HOP özniteliğini varsayılan olarak değiştirmemelidir; kendi adresini NEXT_HOP olarak duyurması ayrıca yapılandırılabilir. Bu nedenle iBGP ile rota bilgisini alan yönlendiricinin korunan NEXT_HOP adresine iç ağ üzerinden erişebilmesi gerekir.

Tek atlamalı eBGP'de yönlendirici genellikle kendi arayüz adresini NEXT_HOP olarak duyurur. Standarttaki koşullar sağlanıyorsa, dış eşin aynı alt ağ üzerinden erişebildiği ve duyurulan ağa giden başka bir yönlendiricinin adresi de kullanılabilir. Çok atlamalı eBGP'de varsayılan davranış, oturumda kullanılan yerel IP adresini NEXT_HOP olarak duyurmaktır; önceden öğrenilen NEXT_HOP değerinin korunması ayrıca yapılandırılabilir. BGP duyurularının alınması yeterli değildir; NEXT_HOP adresine erişim yoksa yönlendirici o rotayı paket iletimi için kullanamaz. Kendi adresini NEXT_HOP olarak duyuracak cihazın, ilgili hedeflere trafiği gerçekten iletebilmesi de gerekir.

eBGP ve iBGP'nin Temel Farkları

Aşağıdaki karşılaştırma, temel eBGP ve iBGP davranışını gösterir. Özel tasarımlardaki istisnalar sonraki bölümde açıklanmıştır.

Karşılaştırma konusueBGPiBGP
Komşu AS ilişkisiEşler farklı otonom sistemlerdedir.Eşler aynı otonom sistemdedir.
Temel amaçeBGP, AS sınırları arasında rota alışverişi yapar.iBGP, BGP rotalarını aynı AS içindeki BGP yönlendiricilerine dağıtır.
AS_PATHDış duyuruda yerel AS numarası yola eklenir.İç duyuruda AS_PATH değiştirilmez.
İçten öğrenilen rotanın yeniden yayılımıiBGP'den öğrenilen rota, dışa duyuru politikası izin verirse eBGP eşine gönderilebilir.Normal iBGP eşinden öğrenilen rota başka normal iBGP eşine yeniden duyurulmaz.
Denetlenen bilgilerAğ yöneticisi, sınırda alınan ve gönderilen prefix'leri ve AS yollarını sıkı biçimde denetler.iBGP komşulukları hangi rotaların paylaşılabileceğini belirler; iç yönlendirme NEXT_HOP adresine erişimi sağlar.
Ölçek büyüdüğündeHarici eş sayısı ve sınır politikaları arttıkça yönetim yükü büyür.Doğrudan iBGP oturumlarının sayısı arttıkça yönetim yükü büyür.

Route Server ve BGP Konfederasyonunda Ne Değişir?

Farklı ağların rota alışverişini kolaylaştıran route server, bu ağlar arasında veri paketlerini taşımadan BGP duyurularını paylaşır. RFC 7947'deki tasarımda, eBGP ile rota duyurmasına rağmen kendi AS numarasını AS_PATH'e eklememesi önerilir; NEXT_HOP değerini ise değiştirmeden iletmesi gerekir. Bu, normal eBGP davranışının bir istisnasıdır; iBGP route reflector ile aynı mekanizma değildir.

BGP konfederasyonu ise dışarıya tek AS olarak görünen bir ağı içeride birden fazla üye AS'ye ayırır. Aynı üye AS içinde iBGP, farklı üye AS'ler arasında ise konfederasyona özgü kurallarla eBGP kullanılır. Konfederasyon dışına yapılan duyuruda iç üye AS yol bilgileri çıkarılır ve dışarıdan görünen konfederasyon AS numarası kullanılır. Bu nedenle yalnız dışarıdan görünen AS numarasına bakarak bütün iç oturumları iBGP saymak doğru değildir.