BGP Protokolü Temelleri Bölüm 2
Makalemin ilk bölümüne aşağıdaki linkten ulaşabilirsiniz
http://www.cozumpark.com/blogs/network/archive/2013/03/24/bgp-protokol-temelleri-b-l-m-1.aspx
Arkadaşlar BGP Makale -1- ile birlikte genel BGP protokolü hakkında bilgi vermiştik, bu makalemiz ile birlikte BGP protokolü detaylı özellikleri ve çalışma mantığını sizlerle paylaşıyor olacağım.
BGP PROTOKOLÜ ÖZELLİKLERİ
BGP protokolü “Path-Vector” çalışırlar. “Distance Vector” özelliklerinden daha evvel ki RIP protokolü başlığında değinmiştik.
İnternet üzerindeki tüm yönlendiricilerin BGP konfigürasyonu yapıldığını düşündüğümüzde ve her saniye, yönlendiriciler üzerindeki rotaların up/down olduğu göz önünde bulundurulduğunda “distance vector” protokolü bir dezavantaj gibi görünebilirler.
Fakat “Link-State” çalışmış olsalardı her saniye rotalar güncellendiğinde her yönlendirici üzerlerindeki protokol vasıtası ile güncellemeleri protokolün kullandığı algoritmalardan dolayı, bu algoritmaları yüklerken bir hayli performans harcayacağından, yönlendiricilerin yönlendirme kapasitesinde ciddi düşüşler olduğu gözlemlenecektir.
Bu olumsuz durum göz önünde bulundurulduğunda gecikmeleri minimum seviyeye indirmek adına BGP protokolü “distance-vector” çalışırlar.
BGP protokolü güncellemeleri RIP protokolüne nazaran çok daha yavaş yollarlar. RIP protokolü gibi Hop Count sayısına bakarak güncelleme yaptıkları bi çok kaynakta yazılıdır fakat bu protokol AS’lere bakarak güncellemelerini yollarlar.
BGP protokolü güncellemelerini yollarken, IP prefixleri ve autonomous system bilgisini paylaşırlar.
BGP protokolünün diğer protokollerin çalışması göz önünde bulundurulduğunda en büyük farklarından biri OSI referans modelinde 4.katmanda çalışmalarıdır.
BGP TCP 179 nolu portdan güncellemelerini paylaşır. ACK işlemi BGP protokolünde mevcut değildir. Varsayılan olarak TCP kullandığı için TCP protokolünde ACK işlemini varsayılanda yaptığı için harici olarak bu operasyona ihtiyaç duymazlar.
BGP protokolü RIP protokolüne benzer davranışlar sergilerler fakat RIP gibi güncellemelerini her defasında topluca yollamazlar sadece değişen bilgileri paylaşırlar.
BGP komşularına “keepalive” mesajları gönderirler, “keepalive” mesajları diğer protokollerdeki “hello” mesajlarına benzerler.
BGP protokolü varsayılan olarak 60 saniye de bir “keepalive” mesajı yollarlar.
BGP protokolü RIP ile benzer davranışları sergilemesinden kaynaklanan “Split Horizon with Poison Reverse” özelliği sayesinde, Kısır döngüye girmiş olan paketleri çöpe atarak güncellemelerin olumsuz yönde etkilenmemesi adına aksiyon alırlar.
BGP protokolü ilke tanımlamalarından AS by AS veya Hop by Hop ilke tanımlamalarına destek sunarlar.
BGP Protokolü Veritabanları
BGP tabloları aşağıdaki gibidir;
1. Komşuluk tablosu(Neighbor Table): BGP konfigürasyonu yapılmış yönlendiricilerin bilgisini gösteren tablodur. BGP komşuluğu kurulması için elle ile konfigürasyonun yapılmış olması gereklidir. Varsayılan olarak 179 nolu porttan iletişim kurarlar ve periyodduk olarak bu porttan güncellemelerini yollarlar.
2. BGP veritabanı yönlendirilmesi(Forwarding Database): Komşuluk kurulduktan sonra BGP rota yönlendirmelerini gönderip – alırlar, diğer cihazlardan alınan bilgiler yönlendirme tablosuna konumlandırıldıktan sonra diğer rotalar için birden fazla yol bilgisi tutarlar.
3. IP Yönlendirme Tabloları(IP Routing Table): BGP yönlendirme tabloları en iyi rotaları IP yönlendirme tablolarına koyarlar. “Autonomous System” içerisinde BGP ile öğrenilen rotalar aynı zamanda diğer yönlendirme protokolleri ilede öğrenilebilir.
Bu durumda yönetimsel değerlerine bakılır. IGP protokoller içerisinde en yüksek yönetimsel değere BGP sahip olduğu için BGP protokolü ile yönlendirme yapılamaz. IBGP’de yönetimsel değer “200” EBGP’de ise “20” dir.
BGP Protokolü Mesaj Tipleri
BGP protokolünde 4 tip mesaj vardır.
1. Açık Mesaj (Open Message): Komşular arası anlaşmanın gerçekleşmesi için gönderilen mesajdır. Mesaj paketinin içerisinde;
– BGP versiyon numarası
– AS numarası
– Zaman tutma süresi
– Router kimlik bilgisi , ospf protokolünde olduğu cihaz üzerindeki IP adresleri ile tanımlanır.
2. Mesaj tutma süresi (Keep Alive): Merhaba mesajlarını algılarlar. Her 60 saniyede bir güncelleme mesajları yollarlar. 3 kere 60 sn mesaj içeriği tamamlanırsa ardından bir daha “keepalive” mesajı yeniden güncelleme olmadığı sürece yollamazlar.
3. Uyarı Mesajları (Notification Message): Bu mesaj tipi güncellemelerde herhangi bir uyarı veya hata bilgisini paylaşmak için kullanılır.
4. Güncelleme Mesajı (Update Message): Güncelleme mesajını 3 başlık altında yollayabilirler. NLRI (network layer reachability information) Network bilgisinin erişelebilirliğini kontrol eder. Yol erişim bilgisini tutar. Yönlendirmeleri yeniden yapılandırır.
BGP Bağlantı Durumları
BGP protokolü 4 paket ile bağlantıyı gerçekleştirir ve topoloji üzerindeki değişiklikleri paylaşırlar. Bu bilgilere istinaden 6 adet bağlantı durumunu anlatan aşamalar mevcuttur.
Idle State(Boşta durumu): BGP çalışmaya ilk başlangıç adımıdır. Komşu ile TCP bağlantı kurulması için beklemeye geçilir. BGP durumlarından herhangi birinde sorun olması durumunda tcp oturumu kapatılır ve “ıdle” durumuna geçerler.
Bu aşamanın geçilememesinin sebebi TCP 179 nolu portun açık olmamasıdır.
AS veya IP adresi yanlış konfigüre edilmiş olabilir.
Connect State(Bağlantı durumu): Komşu yönlendirici ile TCP bağlantısının tam anlamıyla kurulması beklenir.
SYN, SYN-ACK , ACK işlemi ile TCP oturumu kurulması kısa sürer ve oturum gerçekleştirilir.
Open paketi bu aşamada yollanır, bu aşamada herhangi bir sorun yaşanırsa, BGP aktif oturuma geçer.
Active State(Aktif durum): TCP oturumu gerçekleştirilmediğinde bu duruma geçerler. Yönlendirici komşu cihaz ile yeniden bağlantı kurulması denenir başarılı olunursa, “Open” mesajı yollanır.
Tekrar başarısız olunduğunda “ıdle state” e düşerler.
Cihazlar arası bant genişliği yeterli değilse veya hatta tıkanıklık varsa BGP aktif ve boşta kalma durumları arasında sürekli gider gelir. Acilen düzeltilmesi gereken bir durumdur.
OpenSent State ( Açık yollama durumu): Yönlendiricinin komşusundan “Open” mesajı aldığı durumdur. Alınan paketin doğruluğuna bakar, paketin içerisindeki MD5 parola, AS numarası değerleri uyuşmazlık gösteriyorsa, “Notification” mesajı yollanır. Eğer hata yoksa “Keepalive” mesajı yollanır.
Open Confirm State (Açık Onaylama Durumu): Komşu yönlendiriciden KEEPALIVE mesajının beklendiği durumdur, bu mesaj alındığında “Established” durumuna geçilir. “Keepalive” gelmezse yönlendirici “Idle State” e düşer.
Established State (Bağlantı Sağlanma Durumu): BGP komşularının güncelleme mesajlarını göndereceği durumdur. Komşuluk ilişkileri yerine oturmuştur. Güncelleme mesajlarında sorun çıkarsa tekrar “Notification” mesajı yollanır ve “Idle” durumuna dönülür.
Cisco cihazlarda Established State’de iken established görülmez komşulardan öğrenilen “prefix” bilgileri gösterilir.
BGP Komşuluk İlişkisi
BGP protokolünün detaylarının ardından, komşuluk ilişkisinin incelenmesi konusunda bilgi verelim. İki cihaz TCP bağlantısı kullanarak BGP konuşması sağlanır ve komşuluk kurulur. BGP komşularına “peer” adı verilir. Komşulukların sınıflandırılması IBGP ve EBGP olarak incelenir.
BGP komşulukları manuel olarak kurulur. Diğer yönlendirme protokollerinde komşuluk ilişkisi dinamik olarak kuruluyor idi.
IBGP (Internal BGP):
IBGP aynı “AS” içerisindeki yönlendiricilerin komşuluk ilişkisi kurduğu durumdur.
EBGP(External BGP):
Farklı AS’ler arasında yapılan bağlantılar sayesinde EBGP oluşturulur.
BGP konuşan cihazlar, dış otonom sistemlerdeki, tüm cihazlar ile komşuluk kuramazlar. İnternet üzerinde 21.000 den fazla AS bulunduğu ve binlerce BGP çalışan yönlendiriciler olduğu göz önünde bulundurulursa bu durumun imkansıza yakın olduğu anlaşılabilir.
EBGP komşuluğu için direkt bağlı olmaları gerekmektedir.
EBGP komşuluğu aşağıdaki gibi resmedilmiştir.
Bir sonraki makalemizde sizlerle BGP protokolü ve OSPF beraber çalışabilirliği ve BGP protokolü uygulamasını paylaşıyor olacağım. Herkese İyi Çalışmalar.