iBGP Route Reflector

Bir routerın hem eBGP hem de iBGP komşuları olduğunu düşünelim. Bu router herhangi bir eBGP komşusundan bir update aldığı zaman, bu bilgiyi normal olarak iBGP komşularına iletecektir. Bu update bilgisini iletebilmesi için tüm iBGP routerları ile ayrı ayrı komşuluğunun olması gerekmektedir. Dahası belki de diğer tüm routerların da birbirleriyle komşuluk kurmuş olması gerekecektir. Böyle bir yapıya, yani aynı AS içerisindeki tüm routerların bu şekilde ayrı ayrı birbirleriyle komşuluk kurduğu yapıya iBGP Mesh diyoruz. Update konusuna geri dönecek olursak ya da komşuya iletilecek bir paketten bahsedersek, görüldüğü gibi update’i aynı AS içerisinde end-to-end taşıyabilmek için full mesh bir yapı kurulması gerekiyor. Full mesh bir yapı kurulmazsa eBGP komşuluğu olan router update’i alır ve sadece kendisine bağlı iBGP komşularına iletebilir. Update o noktadan ileriye gidemez, çünkü iBGP’de loop olmasından kaçınmak için böyle bir kural vardır. Her update sadece bir hop gidebilir. Aşağıdaki şekilden durumu daha iyi görebiliriz.


Burada AS 2000 içinde bulunan her routerın sadece kendisine direkt bağlı routerlarla komşuluk kurduğunu düşünürsek; Router A, AS 1’de bulunan X routerından bir update aldığı zaman bunu B ve C routerlarına iletecektir ve update orada kalacaktır. AS 2000 içerisindeki diğer hiçbir routerın bu update hakkında bilgisi olamayacktır. Böyle küçük bir topolojide iBGP full mesh bir yapı yaratmak çok zor bir iş değildir, dolayısıyla bahsettiğim problemin yaşanması çok olası değildir. Fakat iBGP’de bulunan router sayısı 100’ün üstüne çıktığında full mesh bir yapıyı oluşturmanın zorluğunu tahmin edebilirsiniz. Bahsettiğim problemi çözmek için Route Reflektörler kullanılmaktadır. RR (Route Reflektör) olan router başka bir iBGP komşusundan aldığı update bilgisini kendisine bağlı routerların hepsine gönderebilir. Yukarıdaki topoloji üzerinden anlatacak olursak; B ve C routerlarını RR’ler olarak belirleyelim. Bu routerlara bağlı olan D, K, E, H, G, F routerları ise route-reflector-client olsunlar. Bu durumda B Learn more about how health major medical health insurance works and how to buy health major medical health insurance for 2014. ve C routerları A routerından bir update aldığı zaman bu bilgiyi kendi clientlarının hepsine öndereceklerdir. İşin güzel tarafı bu clientların kendilerinin client olduğundan bile haberi yok 🙂 Tüm konfigürasyon RR’ler üzerinde tek komutla yapılıyor. O da:

Router_B(config-router)# neighbor <komşu_router(client)_IP_adresi> route-reflector-client

Bir RR ve onun clientlarından oluşan yapıya cluster denir. Burada B ve clientları D, K ve E bir cluster, C ve clientları F, G, H ayrı bir cluster oluştururlar. Herhangi bir cluster dışında kalan router da Non-client olarak isimlendirilir.


RR’lerin kullanıldığı bir topolojide loop olma riski vardır. Şöyle ki, birbirine bağlı üç routerın herbirinin RR olduğunu, ama aynı zamanda diğer routerlardan birinin clientı olduğunu düşünelim. Bu durumda her router her update’i kendi clientına gönderecektir ve loop oluşacaktır. Nasıl eBGP’de loop oluşmasını engelleyen AS_Path Attr. Mekanizması varsa, benzer bir yapı RR’lerin kullanıldığı yapı için de geçerlidir.

Originator_ID Attribute: RR tarafından yaratılır, update’in kaynağı hangi router ise onun Router_ID’sidir.
Cluster_list Attribute: Bir paketin hedefine ulaşana kadar, ya da up date bilgisi iBGP içinde end-to-end iletilirken bu paketin geçitiği RR’lerin router-ID’lerinin listesini tutar. Böylece her RR paket kendisine glediği zaman Cluster-list’e bakar, eğer kendi router-ID’sini görürse paketi drop eder. Burada RR’nin router-ID’si genelde cluster-ID olarak da geçer.

RR kendisine gelen update bilgisini kime göndereceğini şu şekilde seçer:

  1. Non-clienttan geldiğinde: Tüm clientlara gönderir.
  2. Clienttan geldiğinde: Tüm non-client ve client routerlara gönderir.
  3. eBGP komşusundan geldiğinde: Tüm client ve non-client routerlara gönderir.

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir