Not: Bu makaledeki bilgileri tam anlamıyla kavrayabilmek için internet ve ağ yapısına dair temellere haiz olmanız önemlidir.
BGP Protokolü (Border Gateway Protocol – Sınır Geçit Protokolü) internet üzerindeki otonom sistemler arasında geniş bilgi paylaşımı ve yönlendirmeye imkân sağlayan bir ağ protokolüdür.
BGP Protokolü olmasaydı günümüzde internet üzerinde kolayca gerçekleştirdiğimiz bir web sorgusunu yapamayacaktık. Örneğin turkiye.gov.tr adresine girmek istediğinizde sorgunuza cevap gelmeyecekti.
BGP’yi anlamak için öncelikle ağ yönlendirmesini kavramak gerekiyor. Basit olarak ağ yönlendirmesinin tanımı John F. Sloch tarafından şu şekilde yapılmıştır:
“Bir kaynağın ismi ne istediğimizi, adres kaynağın nerede olduğunu ve yönlendirme de oraya nasıl gideceğimizi gösterir.”
BGP’nin Tarihçesi
Bir zamanlar internet gerçekten çok küçük bir yapıdaydı. Sadece birkaç farklı ağdan oluşan bu yapıda ağlar arasındaki iletişim, yönlendirmeler kolay ve sabitti. Kim nereye bağlanmak istiyorsa doğrudan bağlanıyordu. Tek yapılması gereken yönlendirmenin tanımlanmasıydı.
Fakat internet birkaç ufak ağdan ibaret kalmadı ve tüm dünyayı birbirine bağlayan dev bir yapıya büründü. Bu global ağ yapısında ise her bir bilgisayarın birbirine bağlanması çok daha karmaşık bir hâl alarak iyice içinden çıkılamaz hale geldi. Zira 10 tane bilgisayarı birbirine bağlarken çok zorluk yaşanmaz, zira bir bilgisayardan gelen isteği diğer 9 bilgisayara kolayca yönlendirebilirsiniz. 100.000 tane bilgisayarın birbirine bağlandığı bir ağda ise sabit bir yapının işletilebilmesi mümkün değildir.
İşte bu sorunu çözmek adına, yani dinamik bir ağ yönlendirmese ihtiyaç hasıl oldu. Bunun sonucunda da EGP Protokolü (External Gateway Protocol) kullanılmaya başlandı.
EGP Protokolü tree-like denilen topolojiye sahip hiyerarşik ve basit bir yönlendirme protokolüdür. Günümüz ağlarında tree-like topolojisi yerine birbirine tam bağlı mesh topolojisi kullanılmaktadır.
Otonom Sistem Mimarisi
İnternet gelişmeye devam ettikçe bir ağdan diğer ağa yapılacak yönlendirmelerin takibi de gittikçe zorlaşmaya başladı. Bu duruma çözüm olarak ise otonom sistemler geliştirildi. (AS – Autonomous System)
Bir otonom sistem birden fazla konumda bulunan internet servis sağlayıcı (Internet Service Provider – ISP), üniversite veya şirket ağı olabilir. Her bir sistem tek bir ID numarasına sahip olur. Bu tür bir mimaride otonom sistem yönlendirmeleri tanımlayarak belirli bir IP aralığı belirler. Bu şekilde ağ içerisinde gerçekleştirilecek yönlendirme protokolünü tanımlamış olur.
Otonom sistemler zaman içinde internetin daha da gelişmesiyle birlikte artış gösterdiler ve bir noktadan sonra EGP’nin de yetersiz kaldığı noktalar ortaya çıkmaya başladı. EGP’nin hiyerarşik yapısı yeni ağların etkili ve ölçeklenebilir olarak sisteme eklenmesini zorlaştırdı. Sonuçta geliştirilmiş ve yaşanan sorunları giderecek yeni bir dış yönlendirme protokolüne ihtiyaç duyuldu. Haziran 1989 tarihinde ise BGP’nin ilk sürümü ortaya koyuldu.
Gerçek Hayatta BGP Örneği
BGP Protokolünü daha iyi anlamak için gerçek hayattan bir örnekle karşılaştıralım. Otonom sistemleri birçok sokaktan oluşan bir mahalle gibi düşünebiliriz. Her sokağın tabelası, ağ ön eklerine (network prefix), IP adresleri evlerin adreslerine tekabül eder. Böylece bir evden çıkan araba bir başka eve nasıl ki en verimli yoldan gitmeye çalışırsa, bir ağdan çıkan paket de diğer ağa olabilecek en iyi rotayı izleyecek şekilde yönlendirilir.
Bu durumu GPS kullanarak çalışan navigasyon uygulamalarına benzetebiliriz. Üsküdar’dan Beykoz’a yolculuk edeceğiniz zaman navigasyonu açtığımızda karşımızda en hızlı rotayı buluruz. Çünkü uygulama o anki tüm durumları dinamik olarak değerlendirmiş, trafiği, yolların kapalı olup olmama durumunu vb. değerlendirerek ulaşmak istediğiniz noktaya gidilebilecek en hızlı rotayı çizer. Kazara yanlış bir yola girmeniz veya giderken rota dışında farklı bir yol tercih etmeniz durumunda ise uygulama dinamik olarak değişikliğe giderek yine karşınıza en verimli rotayı getirir.
BGP yönlendirmeleri de tıpkı bu şekilde çalışır.
Border Gateway Protocol
Yukarıdaki örneği hafızamızda canlı tutarak teknik açıdan konuyu irdeleyelim. Wikipedia tanımına göre BGP, internet üzerindeki otonom sistemler arasında veri alışverişini ve yönlendirmeleri verimli kılmak için tasarlanmış bir protokoldür. Her BGP birbirine eş olarak (peer) olarak tanımlanır ve eşler birbirleriyle yönlendirme bilgilerini ağ ön ekleriyle birlikte paylaşır.
BGP karar mekanizması paketleri hedefe kesin olarak yönlendirebilmek için tüm verileri ve eşler arasındaki iletişimi analiz eder. Her eş paketin nereye yönlendirileceğine dair bir rota tablosunu yönetir. Bu yöntemle BGP otonom sistemlerin yönlendirme bilgilerini birbirlerinden toplamalarını ve yine birbirlerine duyurmalarını sağlar. Eşler kendi özerk otonom sistemlerinde dâhili olarak bilgi aktarımı gerçekleştirirler.
BGP Tabloları
BGP protokolü yönlendirme için üç adet tabloya sahiptir.
- Komşu Tablosu: Bu tabloya manuel olarak komşu yönlendiriciler yazılır. Ayrıca hangi bilgiyi hangi yönlendiriciye gönderebileceği bilgisi de bu tabloda tutulabilir.
- BGP Tablosu: Dakikada bir, komşu yönlendiricilerinden ayaktayım-çalışıyorum bilgisi alıp almadığını tutar.
- IP Yönlendirme Tablosu: BGP tablosundaki en iyi rotaları tutar.
Tıpkı gerçek hayatta olduğu gibi hedefe ulaşabilmek için birden fazla rota her zaman mevcuttur. BGP ise bu rotalardan hangisinin en verimli olduğunu mevcut tablolardaki veriyi analiz ederek ve anlık değişimleri sürekli değerlendirerek mevcut yapının yönlendirme politikasına uygun bir şekilde belirlemek zorundadır. Bu politikalar ise, maliyet, gerçeklenebilirlik, hız, ölçülebilirlik vb. değerlendirilerek belirlenir.
Nihayetinde şu anda bu yazıyı okuyabiliyorsanız BGP sayesindedir. Gelecekte internetin evrimiyle beraber belki daha gelişmiş protokollere ihtiyaç duyulabilir fakat şimdilik iyi ki varsın BGP.
Yararlanılan Kaynaklar
https://tools.ietf.org/html/rfc4271