BGP (Border Gateway Protocol - Sınır Geçit Protokolü) İnternet servis sağlayıcıları tarafından kullanılan gelişmiş bir yönlendirme protokolüdür. BGP’de yönlendiricilere otonom sistem numarası atanır. Otonom sistem numarası 1 ile 65535 arasında değişir. 64512 ile 65535 arası özel otonom sistem numarasıdır ve herkes tarafından kullanılabilir. BGP, yönlendirme tablosunu oluşturmak için metrik hesaplarken, hedefe giderken üzerinden geçilen otonom sistem sayısını göz önüne alır. Bu durum BGP’nin Distance Vector (Uzaklık Yönelim) algoritmasını kullandığını gösterir. EIGRP ve IGRP gibi otonom sistem özelliğine göre çalışan yönlendirme protkollerinin aksine BGP farklı otonom sistemlere ait yönlendiriciler arasında da çalışabilmektedir. Bir otonom sistemden çıkan BGP update (güncelleme) paketine otonom sistem numarası eklenir. Böylece otonom sistemden çıkan update (güncelleme) paketinin aynı otonom sisteme girmesi engellenerek loop (döngü) oluşması engellenir.
BGP’nin özellikleri:
- BGP, IP adreslerinin özetlenebileceği CIDR, "Classless Inter-Domain Routing"i destekler.
- BGP iletişim için TCP 179. Portu kullanır.
- 60 saniyede bir 19 byte uzunluğunda bir paket TCP 179. Port kullanılarak gönderilir.
- BGP, TCP kullandığından dolayı diğer yönlendirme protokollerindeki gibi doğrulama işlemi yapılmaz.
- Güncelleme paketlerinde sadece değişen rotalar gönderilir.
- Bağlantınının güvenliğinin sağlanması için MD5, Message Digest algorithm 5 (İleti Özeti Algoritması 5) ile erişimin yetkilendirmesi sağlanılır.
BGP, otonom sistemin içinde veya dışında çalışmasına göre ikiye ayrılır:
- EBGP (Exterior Border Gateway Protocol - Dış Sınır Geçit Protokolü)
Farklı otonom sistem içinde bulunan yönlendiricilerin birbirleriyle komşuluk kurarabilmesi için EBGP, Exterior Border Gateway Protocol (Dış Sınır Geçit Protokolü) kullanılır. Bu protokol kullanılarak komşudan öğrenilen ağ bilgisi yönlendici tablosuna administrative distance değeri 20 olacak şekilde eklenir. - IBGP (Interior Border Gateway Protocol - İç Sınır Geçit Protokolü)
Aynı otonom sistem içinde bulunan yönlendiricilerin birbirleriyle komşuluk kurarabilmesi için IGBP, Interior Border Gateway Protocol (İç Sınır Geçit Protokolü) kullanılır. Bu protokol kullanılarak komşudan öğrenilen ağ bilgisi yönlendici tablosuna "administrative distance" değeri 200 olacak şekilde eklenir.
BGP’nin kullandığı 3 adet tablo vardır:
- Neighbor (Komşu) Tablosu:
Yönlendiricinin komşuluk kurduğu cihazların bulunduğu tablodur. - BGP Tablosu:
Diğer cihazlardan alınan güncelleme bilgilerinin bulunduğu tablodur. - IP Yönlendirme Tablosu:
BGP tablosunda bulunan en iyi rotalar bu tabloda bulunur.
BGP’de “neighbor” komutu kullanılarak aynı veya farklı yönlendiriciler arasında komşuluk kurulması gerekir. Komşuluk kurulacak yönlendiricinin IP adresi ve otonom sistem numarası “neighbor” komutu ile belirtilir.
BGP, yönlendirme rotalarını belirlerken öncelikli olarak hedefe giderken üzerinden geçtiği otonom sistemlerin sayısına bakar. Band genişliği göz önüne almadığından el ile müdahale etmek gerekebilir. Yönlendirme işlemini optimize etmek için BGP öznitelikleri (attributes) kullanılır. BGP öznitelikleri :
- Well Known Attributes (İyi Bilinen Öznitelikler): Bütün BGP güncelleme mesajlarında bulunur
- Mandatory Attributes (Gerekli Öznitelikler): Bütün güncelleme mesajlarında bulunması gereken özniteliklerdir.
- AS Path (OS Yolu): Hedefe giderken geçilen otonom sistemleri belirtir. Döngü (loop) oluşmasını engeller.
- Next Hop (Sonraki Yönlendirici): Hedefe giderken gidilecek olan bir sonraki yönlendiriciyi belirtir.
- Origin(Köken): BGP’nin rotayı nasıl öğrendiğini belirtir.
- Internal(i)(İçeriden): İç Sınır Geçit Protokolü ile öğrenilir."i" harfi ile tanımlanır.
- External(e)(Dışarıdan): Dış Sınır Geçit Protokolü ile belirlenir. “e” harfi ile tanımlanır.
- Incomplete(?)(Tamamlanmamış): Orijini belli olmayan, başka şekillerde BGP’nin içine aktarıldığını gösterir. “?” ile tanımlanır.
- Discretionary Attributes (İhtiyari Öznitelikler): BGP tarafından desteklenmeli fakat bütün güncelleme mesajlarında bulunması gerekli değildir.
- Local Preference (Yerel Tercih): Yerel otonom sistemden çıkışın belirlenmesi için kullanılır.
- Atomic Aggregate (Atomik Kümelenme): Özetleme ile oluşturulan rotalarda kullanılır.
- Optional Attributes (İsteğe Bağlı Öznitelikler): BGP güncelleme mesajlarında bulunup bulunmaması üreticiye bağlıdır.
- Transitive Attributes (Geçişli Öznitelikler):
- Aggregator (Kaynak): Otonom sistem içerisindeki rota özetlemesini yapan yönlendiriciyi tanımlar.
- Community (Grup): Güvenliğin grup düzeyinde uygulanabilmesini sağlar.
- Non Transitive Attributes (Geçişsiz Öznitelikler):
- MED (Multi Exit Discriminator - Çoklu Çıkış Ayırıcısı): Paketlerin öncelikli olarak hangi hattan gelmesi isteniyorsa o hatta MED değeri düşük girilir.
- Originator ID (Oluşturucu No): BGP güncellemesini oluşturan yönlendiricinin numarasını taşır.
- Cluster ID (Küme No): Aynı otonom sistem içerisinde bulunan yönlendiricilerin ailt olduğu kümenin numarasını belirtir.
BGP rota seçimi aşağıdaki kriterlere göre yapılır:
- Sonraki yönlendiriciye erişilemiyorsa söz konusu olan rota iptal edilir.
- En büyük ağırlığa(weight) sahip rota seçilir.
- Rota ağırlıkları eşit ise en büyük yerel tercih değerine sahip rota seçilir.
- Yerel tercih değerleri de eşitse OS yolu değerine bakılır.
- OS yolu değerleri de eşitse rotanın kökenine bakılarak öncelik içeriden öğrenilen olan rota da olmak üzere; sırasıyla dışarıdan öğrenilen ve kökeni belli olmayan rota olarak seçim yapılır.
- Seçilecek rotaların kökenleri yoksa en düşük MED değerine sahip rota seçilir.
- Eğer MED değerleri aynı ise kökeni dışarıdan olan rotalar içeriden olan rotalara tercih edilir.
- Eğer seçilecek olan rotalar aynı kökene sahipse, rota seçiminde IBGP komşusuna en yakın olan rota seçilir.
- Yönlendirici numarası tarafından belirtilen en küçük ip adresi rota olarak tercih edilir.