Home / Şəbəkə / Cisco / BGP: attributlar və yol seçimi
BGP

BGP: attributlar və yol seçimi

Bundan əvvəlki yazımda BGP-nin ilkin konfiqurasiyası və marşrutların elanı haqqında danışmışdıq. Xatırlayırsınızsa yazıda BGP attributları haqqında yazmışdım. Bu dəfə həmin attributlara ətraflı nəzər salacağıq.

BGP marşrutu global marşrutlama cədvəlinə əlavə etməzdən öncə onu bir sıra yoxlmalara məruz qoyur. BGP cədvəlində müvafiq altşəbəkəyə çatmaq üçün ən yaxşı yola sahib olan marşrut qlobal marşrutlama cədvəlinə əlavə edilməyə namizdən olur.

BGP atribut növləri

Bəs BGP hansı məyarlara görə hansı marşrutun qlobal cədvələ əlavə edilməsinə qərar verir? Bu məyarların adı atributlardır. Atributlar BGP RFC sənədinə əsasən dörd hissəyə bölünür:

Well-Known MandatoryWell-Know DiscretionaryOptional-TransitiveOptional-Non-Transitive
Next-hopLocal PreferenceAggregatorMED
AS_PATHAtomic AggregateCommunityAIGP
OriginExtended CommunityOriginator_ID
Large CommunityCluster List
AS4_PATHMP_REACH_NLRI
AS4_AGGREGATORMP_UNREACH_NLRI
BGP atribut tipləri

Öncə tipləri izah edim. Well-Known Mandatory (Yaxşı-tanınan Vacib) bütün BGP iştirakçıları tərəfindən tanınır, bütün BGP iştirakçılarına ötürülür və BGP Update mesajlarında olur. Yəni BGP protokolunu öz avadanlığında istifadə edən hər kəs bu attributların tanınmasını təmin etməlidir.

Well-Know Discretionary (Yaxşı-tanınan Vacib olmayan) bütün BGP iştirakçıları tərəfindən tanınır, bütün BGP iştirakçılarına ötürülür. Lakin yuxarıdakından fərqli olaraq BGP UPDATE mesajlarında ola da bilər olmaya da bilər.

Optional-Transitive (Opsional Ötürülən) əgər BGP iştirakçılarında biri bu tipə aid olan atributu tanımırsa həmin router atributu nəzərə almır, lakin digər routerlara ötürməlidir.

Optional-Non-Transitive (Opsional Ötürülməyən). Bu tipə aid olan atributlardan biri və ya bir neçəsi BGP sessiya iştirakçılarında hər hansı biri tərəfindən tanınmırsa bu atribut nəzərə alınmır və digər iştirakçılara ötürülmür.

Sadaladıqlarımdan əlavə Cisco şirkətinin işləyib hazırladığı daha bir attribut var: Weight (Çəki). Bu atribut yalnız Cisco cihazlarında var, lokaldır və nə iBGP, nə də eBGP qonşulara ötürülür. Bu yazıda da bundan əvvəlki yazıda istifadə etdiyimiz topologiyaya istinad edəcəyəm:

OSLO ilə BERLIN arasındakı linkdə trafikə nəzər salaq:

UPDATE mesajları BGP cədvəlində dəyişiklik baş verən zaman göndərilir. Gördüyümüz kimi OSLO routeri BERLIN routerinə 172.16.3.0/24 altşəbəkəsi haqqında məlumatı ötürür. Path attributes sətrindən sonra gələn yazılara diqqət yetirin. Burada yalnız Well-Known atributlar var.

BGP Best Path algorithm

Bütün atributların açıqlamasını növbəti yazıya saxlayacağam bu yazıda isə atributların prioriterlərindən danışaq. Amma bundan öncə OSLO routerində 10.10.1.0/24 şəbəkəsinin BGP məlumatlarına baxaq:

OSLO#show bgp ipv4 unicast 10.10.1.0
BGP routing table entry for 10.10.1.0/24, version 5
Paths: (2 available, best #2, table default)
  Advertised to update-groups:
     2         
  Refresh Epoch 1
  64497 64498
    1.2.1.2 from 1.2.1.2 (2.2.2.2) <<< mötərizədə Router-ID göstərilir
      Origin IGP, localpref 100, valid, external
      rx pathid: 0, tx pathid: 0
  Refresh Epoch 1
  64498
    1.3.1.2 from 1.3.1.2 (3.3.3.3)
      Origin IGP, metric 0, localpref 100, valid, external, best
      rx pathid: 0, tx pathid: 0x0
OSLO#

Göründüyü kimi, 10.10.1.0/24 altşəbəkəsinə iki yolumuz var. Biri BERLIN routeri üzərindən, digəri isə birbaşa DUBLIN routerindən öyrənilib. Yaşıl ilə seçilmiş best açarsözünə diqqət yetirin. Bu o deməkdir ki, məhz DUBLIN routerindən gələn marşrut global marşrutlama cədvəlinə əlavə edilməyə namizəddir. Gəlin marşrutlama cədvəlinə baxaq və əmin olaq:

OSLO#show ip route 10.10.1.0
Routing entry for 10.10.1.0/24
  Known via "bgp 64496", distance 20, metric 0
  Tag 64498, type external
  Last update from 1.3.1.2 00:47:18 ago
  Routing Descriptor Blocks:
  * 1.3.1.2, from 1.3.1.2, 00:47:18 ago
      Route metric is 0, traffic share count is 1
      AS Hops 1
      Route tag 64498
      MPLS label: none
OSLO#

Weight

Bəs niyə BGP məhz DUBLIN routerindən gələn marşrutu seçdi? Bu yerdə BGP Best Path Selection alqoritminə nəzər salmalıyıq. Bu alqoritm bütün cihazlarda demək olar eyni məntiqlə işləyir. Yalnız Cisco cihazlarında əlavə Weight atributu nəzərə alınır və Cisco cihazları öncə Weight atributuna baxır. Ən yüksək Weight dəyərinə sahib olan marşruta üstünlük verilir. Routerin özü tərəfindən elan edilən altşəbəkələri üçün Weight atributunun dəyəri 32768-dir. Digər routerlardan öyrənilən altşəbəkələr üçün isə – 0. Bu dəyər əslində dəyişilə bilər, amma bu da başqa bir yazının mövzusudur.

Local Preference

Növbəti addımda Local Preference atributu müqayisə edilir. Bu atribut yalnız iBGP qonşulara ötürülür və AS (Müxtar Sistem) hüdudlarını tərk etmir. Local Preference atributunun başlanğıc dəyəri 100-dür. Ən yüksək Local Preference dəyərinə malik olan yola üstünlük verilir. Əgər bu atributun dəyəri eynidirsə router seçim üçün növbəti addıma keçir.

Originate

Router həmişə özünün elan etdiyi marşruta üstünlük verir. Bundan əvvəlki yazıda BGP cədvəlini izah etmişdim. Xatırlayırsınızsa orada next-hop sütünü var idi. Routerin özü tərəfindən elan edilən marşrutlar üçün next-hop dəyəri 0.0.0.0 olur.

AS Path length

Əgər seçim yuxarıdakı mərhələlərdə baş tutmadısa AS Path atributuna nəzər salınır. AS_PATH altşəbəkəyə çatmaq üçün keçməli olduğumuz AS-lərin siyahısını əks etdirir. Ümumiyyətlə bu atributun bir neçə rolu var. Məsələn, şəbəkədə dövrənin qarşısını almaq üçün AS_PATH atributu istifadə edilir. Router öz AS nömrəsini AS Path siyahısında görürsə həmin BGP UPDATE nəzərə almır.

OSLO#show bgp ipv4 unicast 10.10.1.0
BGP routing table entry for 10.10.1.0/24, version 5
Paths: (2 available, best #2, table default)
  Advertised to update-groups:
     2         
  Refresh Epoch 1
  64497 64498
    1.2.1.2 from 1.2.1.2 (2.2.2.2)
      Origin IGP, localpref 100, valid, external
      rx pathid: 0, tx pathid: 0
  Refresh Epoch 1
  64498
    1.3.1.2 from 1.3.1.2 (3.3.3.3)
      Origin IGP, metric 0, localpref 100, valid, external, best
      rx pathid: 0, tx pathid: 0x0
OSLO#

Yuxarıdakı misalda 10.10.1.0/24 şəbəkəsinə çatmaq üçün iki yolumuz var idi. Birinci BERLIN-dən keçən yolda iki AS nömrəsi var. Bu o deməkdir ki, 10.10.1.0/24 şəbəkəsinə BERLIN vasitəsi ilə çatmaq üçün biz iki AS-dən keçməliyik. İkinci yol isə birbaşa DUBLIN routerindən gələn marşrut idi. Burada biz cəmi bir AS-dən keçməliyik. Router ən az AS-dən keçən yola üstünlük verir. Məhz buna görə DUBLIN routerindən gələn marşruta üstünlük verilib və o best olaraq seçilib.

Adətən ən yaxşı yol seçimi bu mərhələdə yekunlaşır. Amma bəzi hallarda bu da kifayət etmir və router seçim üçün növbəti addımlara keçir.

Origin code

Elə əvvəlki yazıda Origin code-lar haqqında danışmışdıq. IGP(i), EGP(e) və INCOMPLETE(?). Bunlar arasında ən aşağı koda sahib olana üstünlük verilir. IGP-nin dəyəri 0-dır, EGP-nin dəyəri – 1 və nəhayət INCOMPLETE dəyəri isə 2-dir. Göründüyü kimi IGP daha az dəyərə malikdir və daha üstündür.

MED (Metric)

MED atributu qonşu router ilə birdən çox bağlantı olan zaman istifadə olunur. Bu atribut hansı xətti istifadə edəcəyi barədə qonşunu təlimatlandırır. Ən aşağı MED dəyərinə sahib olan yola üstünlük verilir. Bir daha qeyd edirəm, bütün bu atributlara təsir etmək olur. Növbəti yazılarımda bu prosesi ətraflı izah edəcəyəm.

eBGP yoxsa iBGP

Router digər muxtar sistemdən (eBGP qonşu) öyrəndiyi yola üstünlük verir. eBGP-dən öyrənilən marşrutun dəyəri də aşağı olur (eBGP 20, iBGP 200). Əgər qalib bu addımda da məlum olmayıbsa növbəti mərhələyə keçirik.

Next-hop-a gedən ən qısa yol

Bu addımda IGP protokolların da fikri nəzərə alınır. Əgər bir next-hop-a bir neçə yol varsa (məsələn, BERLIN routerinə gedən iki xəttimiz var biri birbaşa digəri isə OSPF-ilə öyrənilən) məhz ən az IGP göstəricisənə malik olan yola üstünlük verilir.

Ən köhnə yol

BGP-də də böyük kiçik məsələsi var imiş 🙂 Əgər yuxarıdakı bütün atributların dəyərləri eynidirsə ən birinci öyrənilən marşruta üstünlük verilir.

Router ID

BGP-nin ilkin konfiqurasiyası və marşrutların elanı yazısında Router ID haqqında məlumat vermişəm. Əgər bu mərhələyə qədər qalib müəyyən olunmayıbsa ən kiçik Router ID-yə sahib olan yola üstünlük verilir.

Qonşunun IP ünvanı

Son çarə kimi isə qonşu routerin IP ünvanı qalır. Əgər yuxarıdakı mərhələlərdə qalib müəyyən olunmayıbsa bu addımda mütləq baş verəcək. Əgər iki BGP qonşu arasında iki xətt varsa Router ID eyni olacaq. Bu halda ən aşağı IP ünvana malik olan yola üstünlük verilir.

Xülasə

Bu yazıda BGP-nin atributlarına qısa nəzər saldıq və ən yaxşı yol seçimi alqrotimini (Best Path Selection Algorithm) izah etdim. Gələn yazılarımda atributlarla manipulyasiya etməkdən danışacağıq.

Yazını paylaş