Այսօր մենք կանդրադառնանք BGP արձանագրությանը: Մենք երկար չենք խոսի այն մասին, թե ինչու է դա և ինչու է այն օգտագործվում որպես միակ արձանագրություն: Այս թեմայով, օրինակ, բավականին շատ տեղեկություններ կան .
Այսպիսով, ինչ է BGP-ն: BGP-ն դինամիկ երթուղային արձանագրություն է և միակ EGP (External Gateway Protocol) արձանագրությունն է: Այս արձանագրությունն օգտագործվում է ինտերնետում երթուղիներ ստեղծելու համար: Եկեք նայենք, թե ինչպես է կառուցվում թաղամաս երկու 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 արձանագրության մասին, որն օգտագործում է երթուղիչը: Բաց հաղորդագրությունները փոխանակելով՝ 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-ին ուղարկված Թարմացման հաղորդագրությունն է.
Այստեղ դուք կարող եք տեսնել այն ցանցերը, որոնք հաղորդում են Router1 և Path ատրիբուտները, որոնք նման են չափումների: Մենք ավելի մանրամասն կխոսենք Path հատկանիշների մասին: Keepalive հաղորդագրությունները ուղարկվում են նաև TCP նիստի ընթացքում: Դրանք լռելյայն փոխանցվում են յուրաքանչյուր 60 վայրկյանը մեկ: Սա Keepalive ժմչփ է: Եթե Hold Timer-ի ընթացքում Keepalive հաղորդագրություն չստացվի, դա կնշանակի հարևանի հետ կապի կորուստ: Լռելյայնորեն այն հավասար է 180 վայրկյանի։
Օգտակար նշան.
Թվում է, թե մենք պարզել ենք, թե ինչպես են երթուղիչները տեղեկատվություն փոխանցում միմյանց, այժմ եկեք փորձենք հասկանալ 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 հրամանով: Ներքին ՀԾ-ից եկող երթուղիները համարվում են ներքին, իսկ արտաքին ՀԾ-ից երթուղիները՝ արտաքին: Եվ յուրաքանչյուրի համար ստացվելու և ուղարկելու տարբեր տրամաբանություն է գործում։ Դիտարկենք այս տոպոլոգիան.
Յուրաքանչյուր երթուղիչ ունի 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:
Երթուղու տեղեկատվությունը բաղկացած է Ուղու ատրիբուտներից:
Ուղու ատրիբուտները բաժանված են 4 կատեգորիայի.
- Հայտնի պարտադիր - BGP աշխատող բոլոր երթուղիչները պետք է ճանաչեն այս հատկանիշները: Պետք է ներկա լինի բոլոր թարմացումներում:
- Հայտնի հայեցող - BGP աշխատող բոլոր երթուղիչները պետք է ճանաչեն այս հատկանիշները: Նրանք կարող են ներկա լինել թարմացումներում, բայց նրանց ներկայությունը պարտադիր չէ:
- Ընտրովի անցումային - կարող է չճանաչվել BGP-ի բոլոր իրականացումներով: Եթե երթուղիչը չի ճանաչում հատկանիշը, այն նշում է թարմացումը որպես մասնակի և այն փոխանցում է իր հարևաններին՝ պահելով չճանաչված հատկանիշը:
- Ընտրովի ոչ անցումային - կարող է չճանաչվել 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: Սա մեզ տանում է դեպի երկու կանոն.
- Եթե երթուղիչն ուղղորդում է երթուղին իր ներքին հարևանին, այն չի փոխում Next-hop պարամետրը:
- Եթե երթուղիչը փոխանցում է երթուղին իր արտաքին հարևանին, այն փոխում է 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-clientRoute-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-ով:
Տեսնենք, թե ինչպես է աշխատում երթուղու ընտրության գործընթացը.
- Երթուղի ստանալիս առաջին քայլը դրա Next-hop-ի առկայությունը ստուգելն է: Այդ իսկ պատճառով, երբ մենք Router5-ում երթուղի ստացանք՝ առանց Next-hop-self-ի սահմանման, այս երթուղին հետագա մշակման չի ենթարկվել:
- Հաջորդը գալիս է 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-ի միջով երթուղին այժմ ընտրված է, բայց դա որևէ ազդեցություն չի ունենա մյուս երթուղիչների վրա:
- Երրորդ տեղում մենք ունենք տեղական նախապատվություն: Այս պարամետրը հայտնի հայեցողական հատկանիշ է, ինչը նշանակում է, որ դրա առկայությունը պարտադիր չէ: Այս պարամետրը վավեր է միայն մեկ ՀԾ-ում և ազդում է միայն ներքին հարևանների ուղու ընտրության վրա: Այդ իսկ պատճառով այն փոխանցվում է միայն ներքին հարևանի համար նախատեսված 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-ը: Անցնենք հաջորդ պարամետրին։
- Նախընտրեք 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 - 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: Ինտուիտիվ պարզ է:
- Հաջորդ պարամետրը ծագումն է: IGP-ն (BGP-ի միջոցով ստացված երթուղին) ավելի լավն է, քան EGP-ը (երթուղին, որը ստացվել է BGP-ի նախորդի օգտագործմամբ, այլևս չի օգտագործվում), իսկ EGP-ն ավելի լավն է, քան Անավարտը: (ստացվում է ինչ-որ այլ մեթոդով, օրինակ՝ վերաբաշխմամբ):
- Հաջորդ պարամետրը MED է: Մենք ունեինք Wieght, որն աշխատում էր միայն լոկալ երթուղիչի վրա: Կար Local Preference-ը, որն աշխատում էր միայն մեկ ինքնավար համակարգի շրջանակներում: Ինչպես կարող եք կռահել, MED-ը պարամետր է, որը կփոխանցվի ինքնավար համակարգերի միջև: Շատ լավ այս պարամետրի մասին:
Այլևս ոչ մի ատրիբուտ չի օգտագործվի, բայց եթե երկու երթուղիներ ունեն նույն հատկանիշները, ապա օգտագործվում են հետևյալ կանոնները.
- Ընտրեք ուղին մոտակա IGP հարևանի միջով:
- Ընտրեք ամենահին երթուղին eBGP ուղու համար:
- Ընտրեք ուղին հարևանի միջով ամենափոքր BGP երթուղիչի ID-ով:
- Ընտրեք ուղի ամենացածր 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-ի գործարկմանը:
Համադաշնություն.
Եթե հիշում եք, մենք խոսեցինք այն մասին, որ դուք հաճախ ստիպված եք լինում օգտագործել լիովին միացված տոպոլոգիա։ Մեկ ՀՍ-ում մեծ թվով երթուղիչներով դա կարող է մեծ խնդիրներ առաջացնել, դրանից խուսափելու համար հարկավոր է օգտագործել համադաշնություններ: Մեկ ՀԾ-ն բաժանված է մի քանի ենթաՀԾ-ների, ինչը թույլ է տալիս նրանց գործել առանց լիովին միացված տոպոլոգիայի պահանջի:
Ահա սրա հղումը Իսկ կոնֆիգուրացիա GNS3-ի համար:
Օրինակ, այս տոպոլոգիայի միջոցով մենք պետք է միացնենք AS 2345-ի բոլոր երթուղիչները միմյանց հետ, բայց օգտագործելով Confederation-ը, մենք կարող ենք հարևանության հարաբերություններ հաստատել միայն միմյանց անմիջականորեն կապված երթուղիչների միջև: Այս մասին մանրամասն խոսենք։ Եթե մենք ունենայինք միայն AS 2345, ապա laForge -ից երթ ստանալով Picard- ը դա կասեր երթուղիչներին Ամսաթիվ и Վորֆ, բայց նրանք այդ մասին չէին ասի երթուղիչին Crusher . Նաև երթուղիները, որոնք բաշխվում են հենց երթուղիչի կողմից laForge, չէր փոխանցվի Crusher ոչ Վորֆ-Օ ոչ Ամսաթիվ.
Դուք պետք է կարգավորեք Route-Reflector կամ լիովին միացված հարևանության հարաբերություններ: Յուրաքանչյուր երթուղիչի համար մեկ AS 2345-ը բաժանելով 4 ենթաՀԾ-ի (2,3,4,5), մենք ստանում ենք այլ գործառնական տրամաբանություն: Ամեն ինչ հիանալի նկարագրված է .
Աղբյուրները
- CCIE Routing and Switching v5.0 Official Cert Guide, Volume 2, Fifth Edition, Narbik Kocharians, Terry Vinson.
- Site
- Site .
Source: www.habr.com
