Ինչպես է աշխատում BGP-ն

Այսօր մենք կանդրադառնանք BGP արձանագրությանը: Մենք երկար չենք խոսի այն մասին, թե ինչու է դա և ինչու է այն օգտագործվում որպես միակ արձանագրություն: Այս թեմայով, օրինակ, բավականին շատ տեղեկություններ կան այստեղ.

Այսպիսով, ինչ է BGP-ն: BGP-ն դինամիկ երթուղային արձանագրություն է և միակ EGP (External Gateway Protocol) արձանագրությունն է: Այս արձանագրությունն օգտագործվում է ինտերնետում երթուղիներ ստեղծելու համար: Եկեք նայենք, թե ինչպես է կառուցվում թաղամաս երկու BGP երթուղիչների միջև:

Ինչպես է աշխատում BGP-ն
Հաշվի առեք Router1-ի և Router3-ի հարևանությունը: Եկեք կարգավորենք դրանք՝ օգտագործելով հետևյալ հրամանները.

router bgp 10
  network 192.168.12.0
  network 192.168.13.0
  neighbor 192.168.13.3 remote-as 10

router bgp 10
  network 192.168.13.0
  network 192.168.24.0
  neighbor 192.168.13.1 remote-as 10

Մեկ ինքնավար համակարգի ներսում հարևանությունը AS 10 է: Երթուղիչի վրա տեղեկատվություն մուտքագրելուց հետո, ինչպիսին Router1-ն է, այդ երթուղիչը փորձում է ստեղծել հարակից հարաբերություն Router3-ի հետ: Նախնական վիճակը, երբ ոչինչ չի լինում, կոչվում է պարապ. Հենց որ bgp-ը կարգավորվի Router1-ում, այն կսկսի լսել TCP պորտը 179. այն կմտնի վիճակ: միացնել, և երբ այն փորձի բացել նիստ Router3-ով, այն կմտնի վիճակ ակտիվ.

Router1-ի և Router3-ի միջև նստաշրջանի հաստատումից հետո բաց հաղորդագրությունները փոխանակվում են: Երբ այս հաղորդագրությունն ուղարկվի Router1-ով, այս վիճակը կկանչվի Բացեք Ուղարկվածը. Եվ երբ այն ստանա Open հաղորդագրություն Router3-ից, այն կմտնի վիճակ Բացեք Հաստատեք. Եկեք մանրամասն նայենք «Բաց» հաղորդագրությանը.

Ինչպես է աշխատում BGP-ն
Այս հաղորդագրությունը տեղեկատվություն է փոխանցում հենց BGP արձանագրության մասին, որն օգտագործում է երթուղիչը: Բաց հաղորդագրությունները փոխանակելով՝ Router1-ը և Router3-ը միմյանց փոխանցում են տեղեկատվություն իրենց կարգավորումների մասին: Հետևյալ պարամետրերը փոխանցվում են.

  • տարբերակՍա ներառում է BGP տարբերակը, որն օգտագործում է երթուղիչը: BGP-ի ընթացիկ տարբերակը 4-րդ տարբերակն է, որը նկարագրված է RFC 4271-ում: Երկու BGP երթուղիչներ կփորձեն բանակցել համատեղելի տարբերակի շուրջ, երբ անհամապատասխանություն լինի, BGP նիստ չի լինի:
  • Իմ ԱՍՍա ներառում է BGP երթուղիչի AS համարը, երթուղիչները պետք է համաձայնեցնեն AS համարը(ներ)ը և այն նաև սահմանում է, թե արդյոք նրանք կաշխատեն iBGP կամ eBGP:
  • Holdամանակ պահեքԵթե ​​BGP-ն մյուս կողմից պահման ժամանակի ընթացքում չի ստանում որևէ պահպանողական կամ թարմացված հաղորդագրություն, ապա այն մյուս կողմին «մեռած» կհայտարարի և այն կքանդի BGP նիստը: Լռելյայնորեն պահման ժամանակը սահմանվել է 180 վայրկյան Cisco IOS երթուղիչների վրա, պահելու հաղորդագրությունն ուղարկվում է 60 վայրկյանը մեկ: Երկու երթուղիչները պետք է պայմանավորվեն պահման ժամանակի մասին, հակառակ դեպքում BGP նիստ չի լինի:
  • BGP նույնացուցիչՍա տեղական BGP երթուղիչի ID-ն է, որն ընտրվում է այնպես, ինչպես անում է OSPF-ը.
    • Օգտագործեք երթուղիչի ID-ն, որը կազմաձևվել է ձեռքով bgp router-id հրամանով:
    • Օգտագործեք ամենաբարձր IP հասցեն loopback ինտերֆեյսի վրա:
    • Օգտագործեք ամենաբարձր IP հասցեն ֆիզիկական ինտերֆեյսի վրա:
  • Ընտրովի պարամետրերԱյստեղ դուք կգտնեք BGP երթուղիչի որոշ կամընտիր հնարավորություններ: Այս դաշտն ավելացվել է, որպեսզի նոր հնարավորություններ ավելացվեն BGP-ին առանց նոր տարբերակ ստեղծելու: Այստեղ դուք կարող եք գտնել հետևյալը.
    • աջակցություն MP-BGP-ին (Multi Protocol BGP):
    • աջակցություն Route Refresh-ին:
    • աջակցություն 4-octet AS համարների համար:

Հարևանություն ստեղծելու համար պետք է պահպանվեն հետևյալ պայմանները.

  • Տարբերակի համարը. Ներկայիս տարբերակը 4-ն է:
  • AS համարը պետք է համապատասխանի ձեր կազմաձևածին հարևան 192.168.13.3 հեռավար-որպես 10.
  • Ուղղորդիչի ID-ն պետք է տարբերվի հարևանից:

Եթե ​​պարամետրերից որևէ մեկը չի բավարարում այս պայմաններին, երթուղիչը կուղարկի Ծանուցում հաղորդագրություն, որը ցույց է տալիս սխալը: Բաց հաղորդագրություններ ուղարկելուց և ստանալուց հետո հարևանության հարաբերությունները մտնում են վիճակ ՀԱՍՏԱՏՎԱԾ. Դրանից հետո երթուղիչները կարող են տեղեկատվություն փոխանակել երթուղիների մասին և դա անել՝ օգտագործելով Թարմացումներ հաղորդագրություններ. Սա Router1-ի կողմից Router3-ին ուղարկված Թարմացման հաղորդագրությունն է.

Ինչպես է աշխատում BGP-ն

Այստեղ դուք կարող եք տեսնել այն ցանցերը, որոնք հաղորդում են Router1 և Path ատրիբուտները, որոնք նման են չափումների: Մենք ավելի մանրամասն կխոսենք Path հատկանիշների մասին: Keepalive հաղորդագրությունները ուղարկվում են նաև TCP նիստի ընթացքում: Դրանք լռելյայն փոխանցվում են յուրաքանչյուր 60 վայրկյանը մեկ: Սա Keepalive ժմչփ է: Եթե ​​Hold Timer-ի ընթացքում Keepalive հաղորդագրություն չստացվի, դա կնշանակի հարևանի հետ կապի կորուստ: Լռելյայնորեն այն հավասար է 180 վայրկյանի։

Օգտակար նշան.

Ինչպես է աշխատում BGP-ն

Թվում է, թե մենք պարզել ենք, թե ինչպես են երթուղիչները տեղեկատվություն փոխանցում միմյանց, այժմ եկեք փորձենք հասկանալ BGP արձանագրության տրամաբանությունը:

BGP աղյուսակի երթուղին գովազդելու համար, ինչպես IGP արձանագրություններում, օգտագործվում է ցանցի հրամանը, սակայն գործառնական տրամաբանությունը տարբեր է: Եթե ​​IGP-ում, ցանցի հրամանում երթուղին նշելուց հետո, IGP-ն նայում է, թե որ ինտերֆեյսները պատկանում են այս ենթացանցին և ներառում է դրանք իր աղյուսակում, ապա BGP-ի ցանցի հրամանը նայում է երթուղային աղյուսակին և փնտրում. ճշգրիտ համապատասխանում է ցանցի հրամանի երթուղուն: Եթե ​​այդպիսիք գտնվեն, այս երթուղիները կհայտնվեն BGP աղյուսակում:

Փնտրեք երթուղի երթուղիչի ընթացիկ IP երթուղավորման աղյուսակում, որը ճշգրտորեն համապատասխանում է ցանցի հրամանի պարամետրերին. եթե IP երթուղին գոյություն ունի, տեղադրեք համարժեք NLRI-ը տեղական BGP աղյուսակում:

Այժմ եկեք BGP-ն բարձրացնենք մնացած բոլորի համար և տեսնենք, թե ինչպես է ընտրվում երթուղին մեկ ՀԾ-ի շրջանակներում: Այն բանից հետո, երբ BGP երթուղիչը երթուղիներ է ստանում իր հարևանից, այն սկսում է ընտրել օպտիմալ երթուղին: Այստեղ դուք պետք է հասկանաք, թե ինչպիսի հարևաններ կարող են լինել՝ ներքին և արտաքին: Արդյո՞ք երթուղիչը կոնֆիգուրացիայից հասկանում է՝ կազմաձևված հարևանը ներքին է, թե արտաքին: Եթե ​​թիմում.

neighbor 192.168.13.3 remote-as 10 

remote-as պարամետրը սահմանում է AS, որը կազմաձևված է հենց երթուղիչի վրա՝ երթուղիչի bgp 10 հրամանով: Ներքին ՀԾ-ից եկող երթուղիները համարվում են ներքին, իսկ արտաքին ՀԾ-ից երթուղիները՝ արտաքին: Եվ յուրաքանչյուրի համար ստացվելու և ուղարկելու տարբեր տրամաբանություն է գործում։ Դիտարկենք այս տոպոլոգիան.

Ինչպես է աշխատում BGP-ն

Յուրաքանչյուր երթուղիչ ունի loopback ինտերֆեյս, որը կազմաձևված է ip-ով. xxxx 255.255.255.0 - որտեղ x-ը երթուղիչի համարն է: Router9-ում մենք ունենք loopback ինտերֆեյս՝ 9.9.9.9 255.255.255.0 հասցեով: BGP-ով կհայտարարենք ու կտեսնենք, թե ինչպես է տարածվում։ Այս երթուղին կփոխանցվի Router8-ին և Router12-ին: Router8-ից այս երթուղին կգնա դեպի Router6, բայց դեպի Router5 այն չի լինի երթուղային աղյուսակում: Նաև Router12-ում այս երթուղին կհայտնվի աղյուսակում, բայց Router11-ում նույնպես այն չի լինի: Փորձենք դա պարզել: Եկեք դիտարկենք, թե ինչ տվյալներ և պարամետրեր է փոխանցում Router9-ը իր հարևաններին՝ հաղորդելով այս երթուղին: Ստորև բերված փաթեթը կուղարկվի Router9-ից դեպի Router8:

Ինչպես է աշխատում BGP-ն
Երթուղու տեղեկատվությունը բաղկացած է Ուղու ատրիբուտներից:

Ուղու ատրիբուտները բաժանված են 4 կատեգորիայի.

  1. Հայտնի պարտադիր - BGP աշխատող բոլոր երթուղիչները պետք է ճանաչեն այս հատկանիշները: Պետք է ներկա լինի բոլոր թարմացումներում:
  2. Հայտնի հայեցող - BGP աշխատող բոլոր երթուղիչները պետք է ճանաչեն այս հատկանիշները: Նրանք կարող են ներկա լինել թարմացումներում, բայց նրանց ներկայությունը պարտադիր չէ:
  3. Ընտրովի անցումային - կարող է չճանաչվել BGP-ի բոլոր իրականացումներով: Եթե ​​երթուղիչը չի ճանաչում հատկանիշը, այն նշում է թարմացումը որպես մասնակի և այն փոխանցում է իր հարևաններին՝ պահելով չճանաչված հատկանիշը:
  4. Ընտրովի ոչ անցումային - կարող է չճանաչվել BGP-ի բոլոր իրականացումներով: Եթե ​​երթուղիչը չի ճանաչում հատկանիշը, ապա հատկանիշն անտեսվում է և հեռացվում, երբ փոխանցվում է հարևաններին:

BGP հատկանիշների օրինակներ.

  • Հայտնի պարտադիր:
    • Ինքնավար համակարգի ուղի
    • Next-hop
    • Ծագում

  • Հայտնի հայեցող:
    • Տեղական նախապատվություն
    • Ատոմային ագրեգատ
  • Ընտրովի անցումային:
    • Ագրեգատոր
    • համայնքները
  • Ընտրովի ոչ անցումային:
    • Բազմաթիվ ելքի տարբերակիչ (MED)
    • Ստեղծողի ID
    • Կլաստերի ցուցակ

Այս դեպքում մեզ առայժմ կհետաքրքրի Origin, Next-hop, AS Path: Քանի որ երթուղին փոխանցվում է Router8-ի և Router9-ի միջև, այսինքն՝ մեկ AS-ի սահմաններում, այն համարվում է ներքին, և մենք ուշադրություն կդարձնենք Origin-ին:

Origin հատկանիշ - ցույց է տալիս, թե ինչպես է ստացվել թարմացման երթուղին: Հատկանիշների հնարավոր արժեքները.

  • 0 - IGP. NLRI-ն ստացվել է սկզբնական ինքնավար համակարգում;
  • 1 - EGP. NLRI-ն սովորում է Արտաքին դարպասի արձանագրության (EGP) միջոցով: BGP-ի նախորդը, չի օգտագործվում
  • 2 - Թերի. NLRI-ն այլ կերպ է սովորել

Մեր դեպքում, ինչպես երևում է փաթեթից, այն հավասար է 0-ի: Երբ այս երթուղին փոխանցվում է Router12-ին, այս կոդը կունենա 1 կոդ:

Հաջորդը, Next-hop. Next-hop հատկանիշ

  • Սա eBGP երթուղիչի IP հասցեն է, որով անցնում է նպատակակետ ցանցի ուղին:
  • Հատկանիշը փոխվում է, երբ նախածանցը ուղարկվում է մեկ այլ AS-ի:

iBGP-ի դեպքում, այսինքն՝ մեկ ՀԾ-ի շրջանակներում, Next-hop-ը կնշվի նա, ով իմացել կամ պատմել է այս երթուղու մասին: Մեր դեպքում դա կլինի 192.168.89.9: Բայց երբ այս երթուղին փոխանցվի Router8-ից դեպի Router6, Router8-ը կփոխի այն և կփոխարինի իր սեփականով: Հաջորդ հոփը կլինի 192.168.68.8: Սա մեզ տանում է դեպի երկու կանոն.

  1. Եթե ​​երթուղիչն ուղղորդում է երթուղին իր ներքին հարևանին, այն չի փոխում Next-hop պարամետրը:
  2. Եթե ​​երթուղիչը փոխանցում է երթուղին իր արտաքին հարևանին, այն փոխում է Next-hop-ը ինտերֆեյսի IP-ի, որտեղից փոխանցում է այս երթուղիչը:

Սա մեզ ստիպում է հասկանալ առաջին խնդիրը. Ինչու Router5-ի և Router11-ի երթուղային աղյուսակում երթուղի չի լինի: Եկեք ավելի սերտ նայենք: Այսպիսով, Router6-ը տեղեկություն ստացավ 9.9.9.0/24 երթուղու մասին և հաջողությամբ ավելացրեց այն երթուղային աղյուսակում.

Router6#show ip route bgp
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2
       i - IS-IS, su - IS-IS summary, L1 - IS-IS level-1, L2 - IS-IS level-2
       ia - IS-IS inter area, * - candidate default, U - per-user static route
       o - ODR, P - periodic downloaded static route, H - NHRP, l - LISP
       a - application route
       + - replicated route, % - next hop override, p - overrides from PfR

Gateway of last resort is not set

      9.0.0.0/24 is subnetted, 1 subnets
B        9.9.9.0 [20/0] via 192.168.68.8, 00:38:25<source>
Теперь Router6 передал маршрут Router5 и первому правилу Next-hop не изменил. То есть, Router5 должен добавить  <b>9.9.9.0 [20/0] via 192.168.68.8</b> , но у него нет маршрута до 192.168.68.8 и поэтому данный маршрут добавлен не будет, хотя информация о данном маршруте будет храниться в таблице BGP:

<source><b>Router5#show ip bgp
BGP table version is 1, local router ID is 5.5.5.5
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network          Next Hop            Metric LocPrf Weight Path
 * i 9.9.9.0/24       192.168.68.8             0    100      0 45 i</b>

Նույն իրավիճակը տեղի կունենա Router11-Router12-ի միջև: Այս իրավիճակից խուսափելու համար դուք պետք է կարգավորեք Router6-ը կամ Router12-ը, երբ երթուղին փոխանցեք իրենց ներքին հարևաններին, որպեսզի փոխարինեք նրանց IP հասցեն որպես Next-hop: Դա արվում է հրամանի միջոցով.

neighbor 192.168.56.5 next-hop-self

Այս հրամանից հետո Router6-ը կուղարկի Update հաղորդագրություն, որտեղ Gi0/0 Router6 ինտերֆեյսի ip-ը կնշվի որպես Next-hop երթուղիների համար՝ 192.168.56.6, որից հետո այս երթուղին արդեն կներառվի երթուղային աղյուսակում։

Եկեք գնանք ավելի հեռու և տեսնենք, թե արդյոք այս երթուղին հայտնվում է Router7-ում և Router10-ում: Այն չի լինի երթուղային աղյուսակում, և մենք կարող ենք մտածել, որ խնդիրը նույնն է, ինչ առաջինում՝ Next-hop պարամետրով, բայց եթե նայենք show ip bgp հրամանի արդյունքին, կտեսնենք, որ երթուղին այնտեղ չի ստացվել նույնիսկ սխալ Next-hop-ով, ինչը նշանակում է, որ երթուղին նույնիսկ չի փոխանցվել: Եվ դա մեզ կհանգեցնի մեկ այլ կանոնի գոյությանը.

Ներքին հարևաններից ստացված երթուղիները չեն տարածվում այլ ներքին հարևանների վրա:

Քանի որ Router5-ը ստացել է երթուղին Router6-ից, այն չի փոխանցվի իր մյուս ներքին հարևանին: Որպեսզի փոխանցումը տեղի ունենա, դուք պետք է կարգավորեք գործառույթը Երթուղու ռեֆլեկտոր, կամ կարգավորեք լիովին միացված հարևանության հարաբերությունները (Full Mesh), այսինքն՝ Router5-7 բոլորը կլինեն բոլորի հարևանները: Այս դեպքում մենք կօգտագործենք Route Reflector: Router5-ում դուք պետք է օգտագործեք այս հրամանը.

neighbor 192.168.57.7 route-reflector-client

Route-Reflector-ը փոխում է BGP-ի վարքագիծը ներքին հարևանին երթուղի անցնելիս: Եթե ​​ներքին հարեւանը նշված է որպես երթուղի-ռեֆլեկտոր-հաճախորդ, ապա ներքին երթուղիները կգովազդվեն այս հաճախորդներին:

Երթուղին չի՞ հայտնվել Router7-ում: Մի մոռացեք նաև Next-hop-ի մասին։ Այս մանիպուլյացիաներից հետո երթուղին նույնպես պետք է գնա դեպի Router7, բայց դա տեղի չի ունենում։ Սա մեզ բերում է մեկ այլ կանոնի.

Հաջորդ հոպի կանոնը գործում է միայն արտաքին երթուղիների համար: Ներքին երթուղիների համար հաջորդ հոփ հատկանիշը չի փոխարինվում:

Եվ մենք ստանում ենք մի իրավիճակ, երբ անհրաժեշտ է ստեղծել միջավայր՝ օգտագործելով ստատիկ երթուղիներ կամ IGP արձանագրություններ՝ երթուղիչներին տեղեկացնելու համար ՀԾ-ի բոլոր երթուղիների մասին: Եկեք գրանցենք ստատիկ երթուղիներ Router6-ում և Router7-ում և դրանից հետո երթուղիչի աղյուսակում կստանանք ցանկալի երթուղին։ AS 678-ում մենք դա կանենք մի փոքր այլ կերպ. մենք գրանցելու ենք ստատիկ երթուղիներ 192.168.112.0/24 համար Router10-ում և 192.168.110.0/24 համար Router12-ում: Հաջորդը, մենք կհաստատենք հարևանության հարաբերությունները Router10-ի և Router12-ի միջև: Մենք նաև կկարգավորենք Router12-ը, որպեսզի իր հաջորդ հոպն ուղարկի Router10:

neighbor 192.168.110.10 next-hop-self

Արդյունքը կլինի այն, որ Router10-ը կստանա 9.9.9.0/24 երթուղին, այն կստացվի ինչպես Router7-ից, այնպես էլ Router12-ից: Տեսնենք, թե ինչ ընտրություն է կատարում Router10-ը.

Router10#show ip bgp
BGP table version is 3, local router ID is 6.6.6.6
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
              r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
              x best-external, a additional-path, c RIB-compressed,
Origin codes: i - IGP, e - EGP, ? - incomplete
RPKI validation codes: V valid, I invalid, N Not found

     Network              Next Hop            Metric LocPrf Weight Path
 *>i 9.9.9.0/24       192.168.112.12           0    100       0      45 i

                               192.168.107.7                                0     123 45 i  

Ինչպես տեսնում ենք, երկու երթուղի և սլաքը (>) նշանակում է, որ ընտրված է երթուղին 192.168.112.12-ով:
Տեսնենք, թե ինչպես է աշխատում երթուղու ընտրության գործընթացը.

  1. Երթուղի ստանալիս առաջին քայլը դրա Next-hop-ի առկայությունը ստուգելն է: Այդ իսկ պատճառով, երբ մենք Router5-ում երթուղի ստացանք՝ առանց Next-hop-self-ի սահմանման, այս երթուղին հետագա մշակման չի ենթարկվել:
  2. Հաջորդը գալիս է Weight պարամետրը: Այս պարամետրը ուղու հատկանիշ չէ (PA) և չի ուղարկվում BGP հաղորդագրություններում: Այն կազմաձևված է տեղական յուրաքանչյուր երթուղիչի վրա և օգտագործվում է միայն երթուղու ընտրությունը կառավարելու համար հենց երթուղիչի վրա: Դիտարկենք մի օրինակ։ Հենց վերևում կարող եք տեսնել, որ Router10-ն ընտրել է երթուղի 9.9.9.0/24 համար Router12-ի միջոցով (192.168.112.12): Wieght պարամետրը փոխելու համար կարող եք օգտագործել երթուղի-քարտեզ՝ հատուկ երթուղիներ սահմանելու համար, կամ նշանակել կշիռ իր հարևանին՝ օգտագործելով հրամանը.
     neighbor 192.168.107.7 weight 200       

    Այժմ այս հարեւանից բոլոր երթուղիները կունենան այս քաշը։ Տեսնենք, թե ինչպես է փոխվում երթուղու ընտրությունը այս մանիպուլյացիայից հետո.

    Router10#show bgp
    *Mar  2 11:58:13.956: %SYS-5-CONFIG_I: Configured from console by console
    BGP table version is 2, local router ID is 6.6.6.6
    Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
                  r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
                  x best-external, a additional-path, c RIB-compressed,
    Origin codes: i - IGP, e - EGP, ? - incomplete
    RPKI validation codes: V valid, I invalid, N Not found
    
         Network          Next Hop            Metric LocPrf Weight      Path
     *>  9.9.9.0/24       192.168.107.7                        200      123 45 i
     * i                          192.168.112.12           0          100      0 45 i

    Ինչպես տեսնում եք, Router7-ի միջով երթուղին այժմ ընտրված է, բայց դա որևէ ազդեցություն չի ունենա մյուս երթուղիչների վրա:

  3. Երրորդ տեղում մենք ունենք տեղական նախապատվություն: Այս պարամետրը հայտնի հայեցողական հատկանիշ է, ինչը նշանակում է, որ դրա առկայությունը պարտադիր չէ: Այս պարամետրը վավեր է միայն մեկ ՀԾ-ում և ազդում է միայն ներքին հարևանների ուղու ընտրության վրա: Այդ իսկ պատճառով այն փոխանցվում է միայն ներքին հարևանի համար նախատեսված Update հաղորդագրություններում։ Այն առկա չէ արտաքին հարևանների համար թարմացման հաղորդագրություններում: Հետևաբար, այն դասակարգվեց որպես հայտնի հայեցողական: Փորձենք կիրառել այն Router5-ում։ Router5-ում մենք պետք է ունենանք երկու երթուղի 9.9.9.0/24-ի համար՝ մեկը Router6-ի, իսկ երկրորդը Router7-ի միջոցով:

    Մենք նայում ենք.

    Router5#show bgp
    BGP table version is 2, local router ID is 5.5.5.5
    Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
                  r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
                  x best-external, a additional-path, c RIB-compressed,
    Origin codes: i - IGP, e - EGP, ? - incomplete
    RPKI validation codes: V valid, I invalid, N Not found
    
         Network          Next Hop            Metric LocPrf Weight Path
     *>i 9.9.9.0/24       192.168.56.6             0    100      0 45 i

    Բայց ինչպես տեսնում ենք մեկ երթուղի Router6-ով: Որտե՞ղ է երթուղին Router7-ով: Միգուցե Router7-ը նույնպես այն չունի: Եկեք նայենք.

    Router#show bgp
    BGP table version is 10, local router ID is 7.7.7.7
    Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
                  r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
                  x best-external, a additional-path, c RIB-compressed,
    Origin codes: i - IGP, e - EGP, ? - incomplete
    RPKI validation codes: V valid, I invalid, N Not found
    
         Network                Next Hop            Metric LocPrf  Weight    Path
     *>i 9.9.9.0/24       192.168.56.6             0     100           0      45 i
    
                                  192.168.107.10                                  0     678 45 i 

    Տարօրինակ է, կարծես ամեն ինչ լավ է: Ինչու՞ այն չի փոխանցվում Router5-ին: Բանն այն է, որ BGP-ն ունի կանոն.

    Երթուղիչը փոխանցում է միայն այն երթուղիները, որոնք օգտագործում է:

    Router7-ն օգտագործում է երթուղի Router5-ով, ուստի Router10-ով երթուղին չի փոխանցվի: Վերադառնանք Local Preference-ին։ Եկեք կարգավորենք Local Preference-ը Router7-ում և տեսնենք, թե ինչպես է Router5-ն արձագանքում դրան.

    route-map BGP permit 10
     match ip address 10
     set local-preference 250
    access-list 10 permit any
    router bgp 123
     neighbor 192.168.107.10 route-map BGP in</b>

    Այսպիսով, մենք ստեղծեցինք երթուղի-քարտեզ, որը պարունակում է բոլոր երթուղիները և Router7-ին ասացինք, որ երբ ստացվի, փոխի Local Preference պարամետրը 250-ի, կանխադրվածը 100 է: Տեսնենք, թե ինչ է տեղի ունեցել Router5-ում:

    Router5#show bgp
    BGP table version is 8, local router ID is 5.5.5.5
    Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
                  r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
                  x best-external, a additional-path, c RIB-compressed,
    Origin codes: i - IGP, e - EGP, ? - incomplete
    RPKI validation codes: V valid, I invalid, N Not found
    
         Network          Next Hop            Metric LocPrf Weight        Path
     *>i 9.9.9.0/24       192.168.57.7             0          250      0 678 45 i

    Ինչպես տեսնում ենք, այժմ Router5-ը նախընտրում է երթուղին Router7-ով: Նույն պատկերը կլինի Router6-ում, թեև նրա համար ավելի ձեռնտու է Router8-ով երթուղի ընտրելը։ Մենք նաև ավելացնում ենք, որ այս պարամետրը փոխելը պահանջում է հարևանության վերագործարկում, որպեսզի փոփոխությունն ուժի մեջ մտնի: Կարդացեք այստեղ. Մենք կարգավորել ենք Local Preference-ը: Անցնենք հաջորդ պարամետրին։

  4. Նախընտրեք Next-hop 0.0.0.0 պարամետրով երթուղին, այսինքն՝ տեղական կամ ագրեգացված երթուղիներ։ Այս երթուղիներին ավտոմատ կերպով վերագրվում է Weight պարամետր, որը հավասար է առավելագույնին՝ 32678, ցանցի հրամանը մուտքագրելուց հետո.
    Router#show bgp
    BGP table version is 2, local router ID is 9.9.9.9
    Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
                  r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
                  x best-external, a additional-path, c RIB-compressed,
    Origin codes: i - IGP, e - EGP, ? - incomplete
    RPKI validation codes: V valid, I invalid, N Not found
    
         Network          Next Hop            Metric LocPrf Weight    Path
     *>  9.9.9.0/24       0.0.0.0                  0            32768    i
  5. AS-ի միջով ամենակարճ ճանապարհը: Ընտրված է ամենակարճ AS_Path պարամետրը: Որքան քիչ AS-ներ անցնի երթուղին, այնքան լավ է այն: Դիտարկենք դեպի 9.9.9.0/24 երթուղին Router10-ով.
    Router10#show bgp
    BGP table version is 2, local router ID is 6.6.6.6
    Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
                  r RIB-failure, S Stale, m multipath, b backup-path, f RT-Filter,
                  x best-external, a additional-path, c RIB-compressed,
    Origin codes: i - IGP, e - EGP, ? - incomplete
    RPKI validation codes: V valid, I invalid, N Not found
    
         Network          Next Hop            Metric LocPrf Weight Path
     *   9.9.9.0/24     192.168.107.7                           0           123 45 i
     *>i                     192.168.112.12           0    100       0       45 i

    Ինչպես տեսնում եք, Router10-ն ընտրել է երթուղին 192.168.112.12-ի միջոցով, քանի որ այս երթուղու համար AS_Path պարամետրը պարունակում է ընդամենը 45, իսկ մեկ այլ դեպքում՝ 123 և 45: Ինտուիտիվ պարզ է:

  6. Հաջորդ պարամետրը ծագումն է: IGP-ն (BGP-ի միջոցով ստացված երթուղին) ավելի լավն է, քան EGP-ը (երթուղին, որը ստացվել է BGP-ի նախորդի օգտագործմամբ, այլևս չի օգտագործվում), իսկ EGP-ն ավելի լավն է, քան Անավարտը: (ստացվում է ինչ-որ այլ մեթոդով, օրինակ՝ վերաբաշխմամբ):
  7. Հաջորդ պարամետրը MED է: Մենք ունեինք Wieght, որն աշխատում էր միայն լոկալ երթուղիչի վրա: Կար Local Preference-ը, որն աշխատում էր միայն մեկ ինքնավար համակարգի շրջանակներում: Ինչպես կարող եք կռահել, MED-ը պարամետր է, որը կփոխանցվի ինքնավար համակարգերի միջև: Շատ լավ հոդված այս պարամետրի մասին:

Այլևս ոչ մի ատրիբուտ չի օգտագործվի, բայց եթե երկու երթուղիներ ունեն նույն հատկանիշները, ապա օգտագործվում են հետևյալ կանոնները.

  1. Ընտրեք ուղին մոտակա IGP հարևանի միջով:
  2. Ընտրեք ամենահին երթուղին eBGP ուղու համար:
  3. Ընտրեք ուղին հարևանի միջով ամենափոքր BGP երթուղիչի ID-ով:
  4. Ընտրեք ուղի ամենացածր IP հասցեով հարևանի միջով:

Այժմ անդրադառնանք BGP-ի կոնվերգենցիայի հարցին:

Տեսնենք, թե ինչ կլինի, եթե Router6-ը կորցնի 9.9.9.0/24 երթուղին Router9-ի միջոցով: Եկեք անջատենք Router0-ի Gi1/6 ինտերֆեյսը, որն անմիջապես կհասկանա, որ Router8-ի հետ BGP նիստը դադարեցվել է, իսկ հարևանը անհետացել է, ինչը նշանակում է, որ դրանից ստացված երթուղին վավեր չէ։ Router6-ը անմիջապես ուղարկում է Update հաղորդագրություններ, որտեղ այն ցույց է տալիս 9.9.9.0/24 ցանցը «Վերահանված երթուղիներ» դաշտում: Հենց Router5-ը նման հաղորդագրություն ստանա, այն կուղարկի Router7-ին։ Բայց քանի որ Router7-ն ունի երթուղի Router10-ով, այն անմիջապես կպատասխանի Թարմացումով նոր երթուղիով: Եթե ​​ինտերֆեյսի վիճակի հիման վրա հնարավոր չէ հայտնաբերել հարեւանի անկումը, ապա դուք պետք է սպասեք Hold Timer-ի գործարկմանը:

Համադաշնություն.

Եթե ​​հիշում եք, մենք խոսեցինք այն մասին, որ դուք հաճախ ստիպված եք լինում օգտագործել լիովին միացված տոպոլոգիա։ Մեկ ՀՍ-ում մեծ թվով երթուղիչներով դա կարող է մեծ խնդիրներ առաջացնել, դրանից խուսափելու համար հարկավոր է օգտագործել համադաշնություններ: Մեկ ՀԾ-ն բաժանված է մի քանի ենթաՀԾ-ների, ինչը թույլ է տալիս նրանց գործել առանց լիովին միացված տոպոլոգիայի պահանջի:

Ինչպես է աշխատում BGP-ն

Ահա սրա հղումը լաբուԻսկ այստեղ կոնֆիգուրացիա GNS3-ի համար:

Օրինակ, այս տոպոլոգիայի միջոցով մենք պետք է միացնենք AS 2345-ի բոլոր երթուղիչները միմյանց հետ, բայց օգտագործելով Confederation-ը, մենք կարող ենք հարևանության հարաբերություններ հաստատել միայն միմյանց անմիջականորեն կապված երթուղիչների միջև: Այս մասին մանրամասն խոսենք։ Եթե ​​մենք ունենայինք միայն AS 2345, ապա laForge -ից երթ ստանալով Picard- ը դա կասեր երթուղիչներին Ամսաթիվ и Վորֆ, բայց նրանք այդ մասին չէին ասի երթուղիչին Crusher . Նաև երթուղիները, որոնք բաշխվում են հենց երթուղիչի կողմից laForge, չէր փոխանցվի Crusher ոչ Վորֆ-Օ ոչ Ամսաթիվ.

Դուք պետք է կարգավորեք Route-Reflector կամ լիովին միացված հարևանության հարաբերություններ: Յուրաքանչյուր երթուղիչի համար մեկ AS 2345-ը բաժանելով 4 ենթաՀԾ-ի (2,3,4,5), մենք ստանում ենք այլ գործառնական տրամաբանություն: Ամեն ինչ հիանալի նկարագրված է այստեղ.

Աղբյուրները

  1. CCIE Routing and Switching v5.0 Official Cert Guide, Volume 2, Fifth Edition, Narbik Kocharians, Terry Vinson.
  2. Site xgu.ru
  3. Site GNS3Vault.

Source: www.habr.com

Добавить комментарий