BGP C B NƠ Ả Tác gi
: Đăng Quang Minh
ả
̣
BGP C B NƠ Ả
S c n thi t c a BGP ự ầ ế ủ
ộ ề ố ứ ạ ượ ủ ế ố ặ ữ ư ể ủ ứ ớ ụ ạ ề ộ ườ ả ứ ộ ủ ư BGP là m t giao th c khá ph c t p đ c dùng nhi u trên Internet và trong các công ty ứ đa qu c gia. M c đích chính c a BGP là k t n i các m ng r t l n ho c các ấ ớ ạ ụ Autonomous-System. Các công ty l n có th dùng BGP nh là m t k t n i gi a các ộ ế ố m ng các qu c gia khác nhau. M c đích c a các giao th c ngo i nh BGP là không ố ạ ư ở ạ i qu n tr tìm ra ng đi v m t m ng nào đó mà còn cho phép ng ch tìm ra m t đ ị ộ ườ ỉ các AS c a các network. Các giao th c n i nh EIGRP, RIP, OSPF và ISIS s tìm ra ẽ network mà ng i qu n tr c n. ị ầ ườ ả
ộ ố ấ ủ ng đi t ộ ọ ự ườ ố t ộ ườ ế ộ ậ ứ ị ự ộ ứ ạ ả ữ ử ụ ế ấ ỗ ề ậ ươ ư ứ ề ề ạ ng tr ệ ộ ườ ứ ị ỉ ế ệ ạ ả t đ M t s tính ch t c a BGP BGP là m t giao th c đ nh tuy n d ng path-vector nên vi c ch n l a đ ạ ệ ng d a trên m t t p h p các thu c tính đ nh t thông th c g i là ATTRIBUTE. Do ợ ấ ượ ọ c xem là m t giao th c khá ph c t p. Nhi m s d ng metric khá ph c t p, BGP đ ệ ứ ạ ứ ượ ử ụ ế v c a BGP là đ m b o thông tin liên l c gi a các AS, trao đ i thông tin đ nh tuy n ụ ủ ị ổ ạ ả gi a các AS, cung c p thông tin v tr m k cho m i đích đ n. BGP s d ng giao ữ ế c đã đ c p, các giao th c nhóm distance th c TCP c ng 179. Nh các ch ướ ổ ứ ng qu ng bá thông tin hi n có đ n các router láng gi ng, còn path vector vector th ế ả ườ ng d n đ n đích. Ngoài ra các giao th c đ nh ch ra chính xác danh sách toàn b đ ế ẫ t b ng tuy n ho t đ ng dùng path vector giúp vi c xác đ nh vòng l p trên m ng r t t ấ ố ằ ặ ạ ộ cách xem xét các con đ ườ trong đó hay không, n u có s bi ế ng mà các router khác g i v xem có chính b n thân AS c ngay là l p, và s lo i b . ẽ ạ ỏ ị ở ề ặ ẽ ế ượ
ị ỗ ợ ự ỉ ơ ế ệ ữ ằ BGP h tr cho các đ a ch CIDR (Classless Interdomain Routing). BGP cho phép dùng xác th c và BGP có các c ch keepalive đ nh kỳ nh m duy trì quan h gi a các BGP ị peers.
ạ ệ ộ ơ ế ể ệ ố ấ t l p quan h BGP, toàn b các thông tin Trong giai đo n ban đ u c a c a phiên thi ầ ủ ủ ế ậ c g i. Sau đó, BGP s chuy n sang c ch dùng trigger-update. routing-update s đ ẽ ẽ ượ ử B t kỳ m t thay đ i nào trong h th ng m ng cũng s là nguyên nhân gây ra trigger- ẽ ạ ổ ộ update.
ộ ủ ệ ể ẽ ấ M t trong các đ c đi m khác bi t nh t c a BGP là trong các routing-update c a nó. ặ ấ ủ Khi ta xem xét các BGP update, ta s nh n th y các routing update này là khá chính ậ t c các xác. BGP không quan tâm đ n vi c giao ti p đ có đ y đ ki n th c c a t ứ ủ ấ ả ầ ủ ế ế ệ ế ể
i đ y đ thông tin ộ ệ ế ộ ể ả ầ ủ ế ệ i đa b ng cách cho phép m t s AS, cho phép m t s prefix và m t vài thông ằ ộ ố ộ ố ầ ộ ế ả ằ ộ ọ ề ườ ơ ở ữ ệ ớ c đ ng b . BGP có th đ ể ượ ự ữ ộ ồ ng đi đã c hi n th c bao g m gi a các AS khác nhau hay trong c g i là eBGP. Giao ượ ọ ộ c dùng đ mang thông tin gi a các router eBGP trong m t ữ ứ subnet bên trong m t công ty mà BGP quan tâm đ n vi c chuy n t đ tìm m t AS khác. Các BGP update th c hi n quá trình summarization đ n m t ộ ể ự m c t ứ ố tin đ nh tuy n. Tuy nhiên, m t ph n nh c a BGP update là khá quan tr ng. BGP ỏ ủ ị đ m b o r ng l p transport đã truy n các update và các c s d li u v đ ề ả đ ệ ượ ồ cùng 1 AS. Khi dùng BGP đ k t n i các AS khác nhau, BGP đ ể ế ố th c này cũng có th đ ể c g i là iBGP. AS. Khi đó BGP đ ể ượ ượ ọ
ử ụ ứ ị ộ ư ộ ế ả ử ụ ụ ư ứ ộ ộ ố ế ế ồ ủ ế ỏ ế ạ ạ ộ ị Trong m t AS ta s d ng giao th c đ nh tuy n n i IGP (ví d nh RIP, ISIS, EIGRP, ề ở OSPF) nh ng khi ra ngoài m t AS thì ph i s d ng m t giao th c khác. V n đ ấ đây chính là m c đích c a các IGP và EGP không gi ng nhau. Các IGP th c hi n đ nh ự ụ ị ệ ngu n đ n đích mà không c n quan tâm đ n chính sách đ nh tuy n tuy n gói đi t ế ị ầ ừ ề i là v n đ (policy). Trong khi ra kh i ph m vi m t AS thì chính sách đ nh tuy n l ấ quan tr ng . Xét ví d sau: ụ ọ
AS4---AS1---AS2---AS3---(C Company) |........................................| |........................................|
B Company-----------A Company
ố ố ế ề ữ ệ ể c AS4, m c dù con đ ặ ủ ủ ỉ ể ữ ệ ng thông qua công ty B có th là t ườ ể ư ế ố ố ư ư ậ ủ ả ế ộ ề ể ộ
t c g ng làm sao chuy n đ ể ượ ề ị ế i u nh t. s A mu n truy n d li u đ n AS4. A và B là 2 đ i th c a nhau. B không Gi ả ử mu n chuy n d li u cho công ty A nên A ch có th chuy n d li u thông qua AS3, ể ữ ệ ố i u AS2, AS1 đ đ n đ ố ư ể ế ượ ẵ nh t. Gi s C thu c AS3 cũng mu n đ n AS4 nh ng C là đ i tác c a B nên B s n ộ ả ử ấ sàng cho quá giang. Nh v y A và C có cùng m t đích đ n nh ng ph i đi theo nh ng ữ ủ ế cách khác nhau. Các IGP không th làm đ c đi u này vì m t nguyên nhân ch y u ượ chính là các giao th c đó đ u liên quan đ n metric hay là cost mà hoàn toàn không ế ứ c các quan tâm đ n chính sách đ nh tuy n. Nó ch bi gói d li u đ n đích m t cách hi u qu và t ộ ỉ ế ố ắ ấ ố ư ữ ệ ế ệ ế ả
Đ NH NGHĨA Ữ Ị ắ
ặ
ế
ẽ
Các thu t ng BGP ữ ậ THU T NG Ậ Aggregation Attribute
STT 1 2
ng đi t
ỉ
ể
ộ ị ể ượ
t các route – (summarization) các đ c đi m c a ủ ả ể c đ nh nghĩa, các đ c ặ ượ ị ng đi ề
ườ
3 ủ ộ Autonomous System ẽ ế ch c. Trong m t AS, các ế ố ế c cung ượ ấ ở c ch y gi a các 4 ứ ượ ữ ữ ậ ạ ộ
Là quá trình tóm t nh metric. Các bi n này s mô t T ng t ự ư ươ i m t đ a ch đích nào đó. Khi đ đ ườ ớ đi m này có th đ c dùng đ ra quy t đ nh v nên đi theo đ ế ị ể nào. Đ nh nghĩa m ng c a m t t ộ ổ ứ ạ ị router s có cùng giao th c đ nh tuy n. N u ta k t n i ra ứ ị Internet, ch s AS này ph i là duy nh t và đ ả ỉ ố c p b i các y ban Internet. ủ ấ Thu t ng chung cho m t giao th c đ AS khác nhau. Cũng có m t giao th c có tên là EGP là ứ ộ ti n thân c a BGP Exterior Gateway Protocol (EGP) ủ ề
ị
ử
5 6 ế ng đ ườ ượ ữ ể EBGP Interior Gateway Protocol (IGP)
G i thông tin đ nh tuy n gi a các AS khác nhau ữ ế Đây là các giao th c đ nh tuy n ch y bên trong m t AS. ộ ạ ứ ị Trong quá kh , thu t ng gateway th c dùng đ ậ đ nh nghĩa m t router. ị
ứ ộ
IBGP 7 ộ
ườ c dùng bên trong m t AS. Các router ượ ng ề ươ ề ủ ả ngoài rìa c a m t AS. ng ủ ở c dùng gi a các router ch y BGP trong cùng ữ ạ
Originator-ID 8 ủ ộ ộ ị ộ ộ ọ ườ ụ ủ Giao th c này đ ứ không yêu c u ph i là láng gi ng c a nhau v ph ầ di n k t n i v t lý và th ế ố ậ ộ ệ IBGP đ ượ m t AS. ộ Đây là thu c tính c a BGP. Nó là m t thu c tính tùy ch n. Thu c tính này s ch a giá tr routerID c a router ẽ ứ đã phát sinh ra đ ng đi đó. M c đích c a thu c tính này là ngăn ng a routing loop. N u m t router nh n đ ủ ộ ậ ượ c ừ ế ộ
9 ả ườ ẽ ỏ ị ậ c route chính nó, router đó s b qua update đó. i qu n tr l p trình giao th c ứ ằ ế
policy-based routing
ớ ủ ị ế ặ ế ị ẽ ể ế 10 prefix list ế ượ ọ ả ậ ơ ậ ể ể
c c u hình đ chuy n các routes t
ủ ệ ố ể
ượ ấ
ơ ơ ể 11 Route-reflector
các router iBGP ừ ầ
ấ
ả ở ộ
ữ
ả
ộ
12 ộ ớ
Route-Reflector Client
t l p peer v i các client ớ ế ậ ế
13 ộ ộ
Route_reflector Clustor
ồ ộ ể ề
14 c dùng đ mang các BGP traffic qua các AS ể
transit autonomous system
m t update t ộ ừ C ch này cho phép ng ơ ế đ nh tuy n b ng cách đ nh nghĩa traffic s đ ị ẽ ượ ị nh th nào. Đây là m t d ng c a đ nh tuy n tĩnh. PBR ế ộ ạ ư ế đ c l p v i các giao th c đ nh tuy n và dùng route-map ộ ậ ứ ị đ t o ra các quá trình riêng l đ áp đ t các quy t đ nh ể ạ đ nh tuy n. ị c dùng nh m t thay th cho distribute-list Prefix list đ ư ộ ư đ ki m soát BGP h c ho c qu ng bá các c p nh t nh ể ể ặ th nào. Prefix-list thì nhanh h n, uy n chuy n h n và ít ế t n tài nguyên c a h th ng h n. ố Đây là router đ khác. Khi c u hình route-reflector, các iBGP không c n ph i fully- mesh n a. M t m ng fully-mesh thì không có kh năng m r ng. ạ ộ M t client là m t router có m t TCP session v i m t ộ ộ router khác ho t đ ng nh m t route-reflector-server. ư ộ ạ ộ Client không c n thi t ph i thi ả ầ khác. M t cluster là m t nhóm bao g m m t route-reflector và ộ clients. Có th có nhi u h n m t route-reflector server ơ trong m t cluster. ộ Là AS đ ượ khác.
Khi nào thì dùng BGP?
ặ ủ ế ố ế ộ ề ụ ằ c dùng. Trong tr ế ấ ả ườ ể ả ể ầ ể ế ể ể ượ ị ả ượ ủ ủ ạ ể ệ ấ ả ợ ư ộ ộ ả Khi m ng c a m t công ty k t n i đ n nhi u ISP ho c các AS khác và đang dùng các ề ạ k t n i này. Nhi u công ty dùng các k t n i khác nhau nh m m c đích d phòng. Chi ự ế ố ế ố ng h p này, t c các k t n i đ u đ phí có th gi m thi u n u t ợ ế ố ề ượ t đ tri n khai trên t ng k t n i. BGP còn đ PBR có th c n thi c dùng khi chính ế ố ừ sách đ nh tuy n c a nhà cung c p d ch v và c a công ty khác nhau. Ho c traffic ủ ụ ế ủ ị ấ ặ t v i traffic c a ISP. M ng c a hai t trong công ty c n ph i đ ổ ứ ch c c phân bi ệ ớ ầ ạ không th xu t hi n nh m t AS. M t tr ng h p khác ph i dùng BGP là khi m ng ộ ườ c a ta là m t ISP. N u là m t ISP, h th ng m ng này ph i cho phép các traffic khác ệ ố ế ủ đi qua AS c a mình. Lúc này nó ho t đ ng nh m t transit domain. ạ ư ộ ạ ộ ộ ủ
Khi nào thì không dùng BGP?
ơ ộ ệ ố ộ ệ ố ễ ả ạ ả ả ạ ậ ạ ể ặ ế ạ ứ ẳ M t h th ng m ng đ n gi n là m t h th ng m ng d dàng qu n lý và b o trì. Đây ệ ố là lý do chính đ tránh dùng BGP trong m t h th ng m ng. Vì v y, n u h th ng ộ ệ ố m ng có các đ c đi m sau, nên dùng nh ng cách th c khác, ch ng h n nh static ư ữ ể ho c default-routing. ạ ặ
ủ ủ ộ ị - M ng c a ISP và m ng c a công ty có chung m t chính sách đ nh tuy n ế ự - M c dù công ty c a b n có nhi u k t n i đ n ISP, các k t n i này là d ạ ủ ạ ạ ặ ề ộ ế ế ố ế ể ế ố ề ầ ậ ạ ơ phòng và vì v y không c n m t k ho ch đ kích ho t nhi u h n m t k t n i ộ ế ố ạ đ n Internet. ế ư ộ ạ ẳ ớ - Tài nguyên m ng là có gi - Băng thông gi a các AS là th p và các phí t n cho đ nh tuy n s nh h i h n, ch ng h n nh b nh và CPU c a router. ưở ng ị ủ ế ẽ ả ổ ớ ạ ạ ấ ữ đ n quá trình chuy n d li u. ế ể ữ ệ
ọ ộ ộ ố ị ệ ử ụ ộ ế ỉ ế ằ ệ ử ụ ọ ự ườ ủ ỉ ộ ộ ậ ng đi trong BGP. ọ c ch n ế ượ c mang trong các thông đi p c p nh t là quan tr ng h n ơ ọ ệ ậ ủ ọ ượ ộ ố ạ ộ ả ượ ạ ữ
c ti p t c chia ra làm các nhóm con. M t s thu c tính quan tr ng c a BGP ủ BGP đ nh tuy n traffic b ng cách s d ng các thu c tính. Vi c s d ng các thu c ộ ử ụ tính ám ch đ n vi c s d ng các bi n trong quá trình ch n l a đ ế Các thu c tính c a BGP không ch là danh sách các bi n mà qua đó route đ l a. M t vài thông tin đ ự các thông tin khác. M t s thông tin khác là r t quan tr ng cho ho t đ ng c a BGP, vì ấ t c các router BGP trong m ng. Quá c mang đ n t v y các thông tin này ph I đ ế ấ ả ậ trình ch n l a đ ộ ng đi d a trên nh ng thu c tính và các giá tr c a nó. Các thu c ọ ự ườ ị ủ ộ ự tính đ ọ c chia thành hai nhóm: nhóm n I ti ng (well-known) và nhóm tùy ch n ổ ế ượ (optional). C hai nhóm này s đ ế ụ ẽ ượ ả
t c
c công nh n b i t
ộ
ậ
ắ
ượ
ở ấ ả
NHÓM Well-known mandatory
Well-known Discretionary
ộ
ậ
ồ ạ
ẽ
ậ
ư
ự
c ch a bên ứ
ậ i trong các c p nh t t c các router s công nh n và s i, t ẽ ồ ạ ấ ả ng ng d a trên thông tin đ ượ
Optional Transitive ư ế ộ ậ ế ấ ế ế ẽ ế ộ
Optional Nontransitive ị ạ ỏ ế ậ ậ ộ
ộ ặ ộ ộ i các BGP. MÔ TẢ Các thu c tính này là b t bu c và đ ộ các router BGP Không yêu c u các thu c tính này t n t ầ nh ng n u chúng t n t ế có hành đ ng t ươ ứ ộ trong thu c tính này. ộ Router có th không công nh n các thu c tính này ộ ậ ể nh ng n u router nh n đ ẽ c thu c tính này, nó s ậ ượ đánh d u và g i đ y đ c p nh t này đ n router k ử ầ ủ ậ ti p. Các thu c tính s không thay đ i khi đi qua ổ ộ router n u thu c tính này không đ ậ c công nh n ượ b i router. ở Các thu c tính này b lo i b n u c p nh t mang ể thu c tính này đi vào router mà router không hi u ho c không công nh n thu c tính. Các thu c tính ậ này s không truy n t ề ớ ẽ
AS_PATH: Đây là thu c tính quan tr ng trong vi c xác đ nh đ ệ ộ ọ ị ườ ư ứ ấ ượ ứ ắ ng đi c router u tiên ng khác nhau: AS3 - B - AS4, ho c AS3 - AS3 đ n AS4 có 2 con đ 1. Thu c tính ộ t i u, mang 2 ch c năng. Th nh t, AS_PATH càng ng n càng đ ố ư h n. (ví d t ơ ụ ừ ườ ế ặ
ườ ứ ắ ừ ơ ấ ộ ọ ạ ộ ấ ộ ộ ộ ể ả ứ AS2 - AS1 – AS4 thì router s u tiên con đ ng ng n h n là qua B). Ch c năng th ẽ ư hai là ngăn ng a vòng l p. B i vì thu c tính AS_PATH r t quan tr ng cho quá trình ở ặ ho t đ ng c a BGP nên t t c các nhà cung c p ph i h tr nó và là m t thu c tính ả ỗ ợ ấ ả ủ ế t c các b đ nh tuy n ph i chuy n thu c tính này đ n mang tính b t bu c, nghĩa là t ế ấ ả ắ t t c các láng gi ng trong m i thông đi p c p nh t c a BGP. ậ ủ ọ ấ ả ộ ị ệ ậ ộ ề
ị ồ ộ ồ ộ ế ỉ ằ ộ ế ậ ế ậ ị ế ị ộ c bi c bi ậ ị t thông qua m t IGP (RIP, OSPF…). N u giá tr “e” ị ộ ượ ồ ế ố ủ ế ậ ề ậ ị ấ ậ t thông qua IGP r i sau đó l ế ế c thông báo qua EGP.). Khi nó h c đ ọ ườ ể ồ ể c bi ệ ộ ng qua các l nh nh ượ ạ ượ ổ ộ ng này nh EGP. ờ ộ nguyên. Thu c tính origin là e khi tuy n đ ế ượ ọ ừ ứ giao th c ẫ ổ c h c t c s d ng nhi u trên Internet khi ề ượ ử ụ ộ ế c s d ng) ố ố Origin-attribute): là m t thu c tính xác đ nh ngu n g c 2. Thu c tính ngu n g c ( c a các routing thông tin c p nh t đ nh tuy n. N u là “i ” thì ch r ng routing thông ủ ậ tin c p nh t đ nh tuy n đ ế ượ ậ ị thì routing thông tin c p nh t đ nh tuy n đ t thông qua m t EGP. N u giá tr ậ ế ậ t ngu n g c c a routing thông tin c p nh t “?” (incomplete) thì ch r ng không bi ế ỉ ằ ế đ nh tuy n. (Đi u này có th xu t hi n n u routing thông tin c p nh t đ nh tuy n ế ệ ị ng ọ ườ đ i đ ượ ạ ượ ư b ng l nh network thì nó đ thu c tính này là: i. Khi nó h c đ ệ ằ c qu ng bá redistribute v.v... thì nó đ thu c tính là: “?”.Còn sau đó các m ng này đ ể ả ộ t ớ ọ c đ i thành e vì router m i h c i các EGP router láng gi ng thì thu c tính này đ ớ ề c các tuy n đ đ ứ Thu c tính origin không thay đ i qua giao th c ế ườ ượ EBGP mà v n gi ữ EGP (đây là giao th c đ nh tuy n gi a các AS, đ BGP ch a ra đ i nh ng hi n nay h u nh không còn đ ệ ứ ị ư ượ ử ụ ữ ầ ư ư ờ
Next-Hop attribute:
tr AS ỉ ị ự ị ủ ị ừ ở ệ ỉ bên ngoài c a vùng t ủ c ch ra b i l nh neighbor. Tuy nhiên trong ượ ỉ m t router, s là không khôn ngoan ế ừ ộ ẽ ườ ộ ộ ỉ ủ ề ồ ị ỉ c khi có th tìm ra ả ị ử ế ẽ ẫ ể ướ ị ậ ằ ỉ ủ ậ ồ ố ộ Trong eBGP, giá tr next-hop là đ a ch IP c a router t ị qu ng bá vào bên trong AS. Đ a ch IP đ ả ng multiaccess, n u m t route đ n t môi tr ế ế n u m t router qu ng bá đ a ch c a nó nh là đ a ch ngu n vì đi u này s d n đ n ư ị ế vi c các packets b g i đ n vài router trên m ng multiacess tr ạ ệ c ngu n g c xu t phát th t s . Vì v y, có m t lu t r ng, đ a ch c a router xu t đ ấ ượ phát gói tin BGP s v n gi ồ ậ ự nh đ a ch ngu n. ữ ư ị ấ ẽ ẫ ỉ
đ nh rõ b n thân router đó nh là Next Hop. ộ ạ ả ế ự ị ệ ư ề ở ộ ả ấ i ti p t c dùng router ngoài AS làm Next hop. Do đó ta ph i c u ộ biên cùng AS v i nó là c chính router t đ ế ượ ở ớ Khi BGP khai báo m t m ng, router t Tuy nhiên, n u router đó g i thông đi p update cho m t router láng gi ng khác trong cùng m t AS thì nó l ạ ế ụ hình cho các router còn l ạ router Next Hop ch không ph i là router khác AS. i trong AS bi ả ứ
B c 1: Router A g i c p nh t v m ng 192.33.33.0 ậ ề ạ ử ậ ướ
ướ ế ộ ự ầ ậ ị ỉ ủ ị ỉ ổ ị ẫ ả ể ẽ ọ B c 2: Router D nh n update và truy n. Tuy nhiên n u routerD thay đ i đ a ch ỉ ề source-address thành đ a ch đ a ch c a chính nó, s có m t s nh m l n x y ra vì ẽ ng multiaccess, m i router s công b nó là next-hop. Đ tránh tình trong môi tr ố hu ng này, đ a ch ngu n c a update không thay đ i. ổ ồ ủ ườ ị ố ỉ
B c 3: Router B bi t routerA là next-hop c a m ng 192.33.33.0 ướ ế ủ ạ
The Next-Hop Attribute and a Nonbroadcast Multiaccess Network
ố ư ườ ạ ộ ộ ề ẽ ẽ ậ ế ố ự ế ấ ớ ồ ng multiaccess, m t m ng NBMS cũng tuân theo cùng Cũng gi ng nh trong môi tr ả m t qui lu t. Tuy nhiên s có ti m n m t v n đ vì các router khác s không có kh ộ ấ ề ẩ năng k t n i tr c ti p v i router ngu n n u đám mây NBMA có c u hình hub-and- ế spoke.
150.10.0.0 (AS 100) RouterA--------(150.10.3.1)---IBGP--------RouterB---| |(170.10.20.1) | | (170.10.20.2) RouterC |_ 170.10.0.0 (AS 300)
Thu c tính Nexthopself trong BGP ộ
ỉ ộ ủ ố ớ ẽ ượ ỉ ệ ượ ị ụ ộ ớ ớ ộ ả ạ ộ ắ ố ớ i 170.10.0.0 ạ ả ớ ủ ộ ẽ ng h p này là RouterB v i m t next hop là ẽ ẽ ể ế ế ứ ể ạ ả ả ằ ữ ả ả ẽ ế ỉ ị ư ế ạ ở ng NBMA, và có thêm m t RouterD (network 180.20.0.0) đ ườ ộ ế ế ố ự ế ẽ ế c dùng đ đi đ n Thu c tính BGP nexthop là m t đ a ch next hop IP mà nó s đ ể ộ ị m t s m ng đích. Đ i v i EBGP, next hop luôn luôn là đ a ch IP c a router láng ộ ố ạ ả gi ng đã đ c khai báo trong câu l nh neighbor. Theo ví d trên, RouterC s qu ng ẽ ề cáo network 170.10.0.0 cho RouterA v i m t next hop là 170.10.20.2 và ng ượ ạ i c l RouterA s qu ng cáo l i 150.10.0.0 cho RouterC v i m t next hop là 170.10.20.1. ẽ Đ i v i IBGP, có m t nguyên t c là: “the next hop advertised by EBGP should be carried into IBGP”. Chính vì quy lu t này, nên Router A s qu ng cáo l ậ cho các IBGP peer c a nó, trong tr ợ ườ 170.10.20.2. Vì th , lúc này RouterB s có next hop đ đi đ n network 170.10.0.0 s là 170.10.20.2 ch KHÔNG ph i là 150.10.30.1 Lúc này thì b n ph i đ m b o r ng RouterB có th reach 170.10.20.2 thông qua IGP, n u không RouterB s drop nh ng packet có dest. là 170.10.0.0 vì lúc này đ a ch next hop address tr nên inaccessible. Đ n đây thì b n hãy hình dung n u nh trong môi ế tr c thêm vào trong ượ AS 300, mà RouterA không có PVC k t n i tr c ti p đ n RouterD thì lúc này nexthop c a RouterD quãng cáo cho RouterA mà RouterA s không reach đ ượ ủ routing s fail. Đ kh c ph c tình tr ng này thì NEXT-HOPE-SELF đ c s d ng. c. Lúc này ượ ử ụ ụ ể ẽ ắ ạ
neighbor {ip-address| peer-group-name1 } next-hop-self
RouterC# router bgp 300 neighbor 170.10.20.1 remote-as 100 neighbor 170.10.20.1 next-hop-self
ặ ị ỉ Câu l nh này s cho phép áp đ t BGP dùng đ a ch mình khai báo thành next hop thay ệ vì đ BGP t ch n next hop. ẽ ự ọ ể
ớ ỉ ợ i RouterC s q ang cáo 180.20.0.0 v i NextHop = 170.10.20.2. Next-hop-self ch có l trong môi tr ng nonmeshed. ẽ ủ ườ
ứ ầ ấ ệ ắ ộ ụ ộ ạ g i ra kh i AS đó. Nó đ ộ ỉ ượ ờ ở ệ ỏ ế ề ng mong mu n nh t ra c truy n đ n các local BGP neighbors. ấ ườ ộ ọ ố ả Local-Preference attribute: Đây là thu c tính không b t bu c (t c là không c n ph i xu t hi n trong thông đi p Update), ch mang ý nghĩa c c b trong ph m vi AS mà không bao gi Thu c tính Local-Preference cho phép chúng ta ch n con đ kh i m t AS. ộ ỏ
ộ ộ ấ ộ ộ ị ắ ỉ ượ ự ế ấ ộ ượ c cung c p cho m t b đ nh tuy n ế c dùng ng truy n các local packet đ n router khi router đó có hai route ấ ề ế Weight attribute: Đây cũng là thu c tính không b t bu c, các nhà cung c p không thu c tính ch đ c n ph i h tr cho nó. Th c t ộ ả ỗ ợ ầ đ n và không g i trong b t kỳ thông đi p Update nào. Thu c tính Weight đ ệ ở ơ đ đi u khi n h ể ướ ể ề khác nhau ra kh i AS(multihomed). ỏ
Thu c tính MULTI_EXIT_DISC (MED) ộ
ọ ộ ệ ế ể ượ ộ ộ ộ c AS dùng đ tham chi u cho vi c nên ch n router nào đ đi ể c g i là ượ ọ ơ ng d n cho các router ớ ẫ ể ướ t nh t. ố ự ấ MED(multiple-exit-discriminator) là 1 attribute ượ ạ ề ấ ơ ẽ ượ ọ ớ ố ượ ư ố ư ẽ ỏ ế ớ ị chính AS thì MED s đ ữ ậ ị ệ ẽ ượ ế
ấ MED là m t attribute y u (trong th t ứ ự ộ ượ c tính route-selection c a ủ ứ ư ế c nó c n ph i care đ ượ ộ ộ ủ ể ộ ầ ả ơ ữ ể ặ c dùng trong th c t c l ượ ạ ự ế ề ớ ệ ả Đây là thu c tính đ đ n cùng m t đích trong m t AS. Trong BGP cũng có m t ATTRIBUTE đ ế metric, đó là MED (Multiexit Discrimination). Tuy nhiên MED này có ý nghĩa h i khác so v i metric trong các IGP. BGP dùng MED (metric) đ h ng đi t láng gi ng l a ch n đ ọ ườ ề ọ c ch n i thi u v nh ng router láng gi ng bên ngoài v 1 m ng đ c a BGP, nó gi ề ề ữ ệ ớ ủ nó c ch n (do đó có l vào 1 AS có nhi u exit point, cái nào có MED th p h n s đ ẽ ề c trao đ i gi a các gi ng v i metric), không gi ng nh Local Preference, MED đ ổ AS nh ng nó s không ra kh i AS đó n u nó đã vào (khi 1 thông tin c p nh t đ nh ậ ế ế tuy n vào 1 AS v i giá tr MEd xác đ nh thì nó s đ c s d ng đ th c hi n quy t ể ự ẽ ượ ử ụ ị đ nh trong n i b AS đó .N u 1 route xu t phát t ừ ị theo metric c a IBGP. BGP), nên đ control đ c các thu c tính có m c u tiên cao h n (ơ weight-localpreference-originate-ASpath-origin code). H n n a, originated AS không th đi u khi n quá trình đ t MED trên các originating AS (neighbor AS), ho c ặ ng ớ . Ngoài ra, v i nhi u Customer v i ườ i các yêu c u chính sách ch n outgoing traffic khác nhau, MED không hi u qu . Ng i quy t v n đ ch n incomming traffic thay ta hay s d ng community attribute đ gi ể ả ể ề i, nên hi m khi đ ượ ế ọ ầ ử ụ ề ọ ế ấ
cho as-path prepending ho c MED. ặ
Communtity attribute:
c dùng đ ộ ộ ộ ộ ắ ượ ộ ộ ế ộ ế ộ c m t thông đi p Thông tin ệ ẽ ử ộ ậ ị ộ ể ợ ộ ệ t l p,nó s x lý thông đi p ế ậ ộ g i thu c ẽ ử ẽ ờ ử ử ề ế ể c ch đ nh làm thêm đi u gì đó). ể cung c p chính Đây là m t thu c tính không b t bu c. Thu c tính này đ ấ . Do đó các router này có cùng m t tính sách cho m t nhóm các router đi qua các AS ch t và có chung chính sách. N u m t router nh n đ ậ ượ ấ c p nh t đ nh tuy n v i thu c tính Community đ c thi ượ ớ ậ này m t cách h p lí. N u nó không hi u thông đi p này thì s g i thu c tính đó cho ệ ế router láng gi ng router x lý. (Tuy nhiên, n u nó hi u thì s không bao gi tính đó cho láng gi ng router tr khi đ ề ượ ừ ề ỉ ị
T ng quan ho t đ ng c a BGP ạ ộ ủ ổ
ế ố ế ậ ệ ộ ệ ng k t n i. Khi thi ộ t l p và duy trì. BGP s g i ra các thông đi p keepalive đ ế ậ ẽ ử ệ ể ứ ướ c thi ẽ ượ ề ệ ẽ ử ệ ậ ị ỉ ổ ả ả ỉ t l p m t quan h neighbor, m t phiên BGP là m t giao th c h ộ ể làm vi c TCP s đ ng truy n và duy trì phiên làm vi c TCP này. Các thông đi p keepalive ki m tra đ ườ này ch là nh ng header có giá tr 19-bytes. Sau đó các router s g i các c p nh t đ nh ậ ị ữ ẽ kỳ ch khi có thay đ i x y ra. Sau khi đã đi u ch nh b ng BGP, quá trình BGP s ỉ truy n đ n t ề t c các láng gi ng các thay đ i. ề ế ấ ả ề ổ
Có 4 ki u thông đi p đ c dùng trong BGP: ệ ượ ể
t l p k t n i v i các router BGP khác. : đ ế ố ớ ể ế ậ c g i đ nh kỳ gi a các BGP peers đ duy trì k t n I và đ ượ : đ ế ố ữ ể c dùng đ thi ượ ử ị ơ ế ng đi. Các thông đi p keepalive này đ ệ ượ ể ậ c g i theo c ch không tin c y. ượ ử c gán v b ng 0, s không có thông đi p keepalive ẽ ề ằ ệ ị
ườ ề ị ậ : ch a các đ ứ ỉ ồ ạ ứ ậ ng đi. Các c p nh t bao g m các route không còn t n t ồ ộ ậ ủ ng đi v các đ a ch đích và các thu c tính c a ộ i. Thông tin ch a trong ng d n, bao g m thu c tính origin, ồ ề ườ ẫ ộ ậ
ượ ể ề Thông đi p Open ệ Thông đi p keepalive ệ ki m tra đ ể ườ N u kho ng th i gian đ nh kỳ đ ả ờ ế nào đ c g i. ượ ử Thông đi p c p nh t ệ ậ đ ậ ườ các c p nh t bao g m các thu c tính v đ ồ AS_PATH, neighbor. Thông đi p Notification ệ nguyên nhân gây ra k t n i b ng t. : đ ế ố ị ữ c dùng đ thông báo cho các router khác v nh ng ắ
CIDR và Route Aggregation
không ph i t t c ả ầ ề ữ ẽ ầ ổ ở ậ BGP c n ph i truy n m t s thông tin gi a các AS nh ng có l ộ ố ư t. N u h th ng m ng đ các thông tin là c n thi c thi ạ ệ ố ế ế summarization, t ng s tài nguyên m ng s đ ẽ ượ ạ ố ả c dùng đ g i b ng đ nh tuy n. Th t ra, b ng cách tóm t băng thông và CPU đ ể ử ả ế ị ượ các l p đ a ch IANA, m ng Internet s tr thành m t m t môi tr ẽ ở ạ ả ấ ả quá trình t k đ h tr ượ ế ế ể ỗ ợ ớ c gi m đi b i vì có r t ít b nh , ộ ấ ắ t ằ ng nhanh h n và ườ ớ ộ ộ ơ ị ỉ
i pháp đ ơ ậ ượ ề ầ ữ ộ ỉ ẽ ượ ợ ị ộ ị ậ ộ ỉ ỉ ẽ ơ ố ộ ị ị ỉ
ố ế c qu ng bá nh m t network. c dùng nhi u trong tin c y h n. Cách dùng CIDR là m t trong nh ng gi ả ữ ỉ ạ i thành m t s đ a ch d ng c h p nh t l nh ng năm g n đây. Các đ a ch s đ ộ ố ị ấ ạ summary. Thay vì m t đ a ch có m t giá tr netmask đ nh n ra ph n đ a ch network, ị ầ ể ị nó s có m t giá tr prefix mask. Giá tr này đ n gi n là m t con s ch ra s bit đã ộ dành cho ph n network. Quá trình summarization s gi m thi u s prefix. N u m t m ng đ ạ c c p tám đ a ch l p C, nó có th đ ỉ ớ ộ ầ ượ ấ ả ẽ ả ả ể ố ư ộ ể ượ ị
ề ộ ượ c BGP s truy n các prefix và các prefix mask. M t router có th truy n route đã đ tóm t ề c summarize ho c truy n c hai. ặ ẽ t, các route riêng l ắ ể ề ả ch a đ ẽ ư ượ
C ch ho t đ ng c a IBGP ơ ế ạ ộ ủ
ổ ộ ộ ế ể ố c h c t ở ậ ế ượ ọ ừ ử IBGP ủ ẽ ể ữ ệ ả ộ ủ ộ ư ậ ự ả ậ i các tuy n BGP vào IGP đ th a mãn qui lu t ệ ố ạ ế ư ủ c thi ử ụ ế ế ộ ế ượ ể ả ươ ư ế ế ớ ể ỏ ng pháp này không nên s d ng trong các m ng core c a ISP do ạ t k không ph i đ có th qu n lý s ố ả ể ấ ớ ổ ề ng pháp này thì khi có s thay đ i v ự ế ng -> chi m ệ i thu t tìm đ ậ ườ ế ả IBGP không thay đ i thu c tính AS-PATH c a m t tuy n do đó đ ch ng loop, s d ng qui lu t split-horizon: m t BGP peer s không g i các tuy n đ ụ đ n m t BGP peer khác. Nh v y, đ có th forward d li u cho các AS khác, các ể ế router c a transit AS ph i th c hi n: - Gi i pháp th nh t: phân ph i l ứ ấ đ ng b , nh ng ph ươ ồ s tuy n trên Internet r t l n, các IGP đ ố tuy n quá l n nh vây, ngoài ra, n u dùng ph 1 tuy n trên Internet s làm các IGP ph i th c hi n gi ự ả ẽ nhi u CPU và b nh gây m t n đ nh. ớ ấ ổ ề ộ ị
- Gi ả ả ứ ượ ể ả ị ể i pháp th hai: các BGP peer đ ủ ẫ ệ ế ế ư ố ế ậ ị ể ắ ả ể ả ậ ộ ủ ể ậ ử ụ ế ể ế ể ở ứ ố i quy t v n đ ế ầ ủ ố ặ ử ổ ộ ộ ử ề ữ ủ ộ ẽ ứ ể ố ư i pháp này là các member-AS có th đ ả ủ ể ượ ả u đi m c a gi ả ế ị ả ể ẽ ấ ế ự ớ ư ợ ỉ ư ể ế ố ự ố ể ự ể ộ ậ ệ ố ặ ầ ủ ộ ể ử ụ ự ế ử ụ ộ ươ ử ụ ỉ ả ưở ế
ộ ệ ấ ớ ề c full-mesh đ đ m b o các router đ u có đ thông tin đ nh tuy n đ forward packet. Khi này có th t t ch c năng đ ng b c a IBGP. Nh ng full-mesh d n đ n vi c khó qu n lý, t n băng ồ ề thông đ c p nh t đ nh tuy n, t n CPU,mem. Có 2 cách đ gi này. S d ng Route Reflector: thay đ i qui lu t split-horizon c a IBGP. Các ổ RR có th g i các tuy n IBGP đ n các BGP peer khác. Đ ch ng l p vòng, ụ các RR thêm vào các thu c tính: cluster-id và originator. S d ng Confederation: thay đ i cách x lý AS-PATH c a IBGP: Chia m t AS thành nhi u member-AS. BGP gi a các BGP peer thu c các member-AS khác nhau s là EBGP (t c là s thêm member-AS vào AS-PATH đ ch ng loop) nh ng ư ẽ ổ các thu c tính khác nh Local Preference, MED, Next-hop s không thay đ i. ẽ ộ c qu n lý đ c l p, ộ ậ Ư ể tăng kh năng chính sách đ nh tuy n routing. Các member-AS có th s d ng ể ử ụ các IGP khác nhau. Nh ng qu n lý m t Confederation thì có th s r t ph c ứ ộ t p do đó nó ch thích h p cho các ISP c c l n (các ISP k t n i tr c ti p vào ạ nh NAP,...) ho c các công ty đa qu c gia c n các đi m trung chuy n qu c t ầ ố ế có s linh đ ng và đ c l p gi a các thành ph n c a h th ng. Đ l a ch n ọ ữ tuy n cho các Incoming traffic, có th s d ng các cách sau. S d ng thu c ộ ử ụ tính MED: cách này ít s d ng do MED là m t thu c tính y u và non- ế ộ c upstream ng pháp này đòi h i ph i đ transitive. S d ng community: ph ả ượ ỏ ng đ n ISP tr c ti p, trong nhi u tr ISP h tr , ch nh h ng h p không ườ ỗ ợ ợ ự ế ề c s d ng thông t. S d ng AS-Prepend: ph làm vi c t ng pháp này đ ượ ử ụ ươ ử ụ ệ ố ề d ng h n do có th làm vi c t t c các mô hình. Nh ng m t đi u t trong t ư ể ơ ấ ả ệ ố ụ c n ph i nh , quy t đ nh tuy n cho Incoming traffic r t khó th c hi n chính ự ế ế ị ả ầ xác do các AS khác có th thay đ i các attribute. ể ổ
Router(config-router)#default-metric number
Đ set metric, b n có th dùng l nh default-metric ể ệ ể ạ
router bgp 100 neighbor 1.1.1.1 route-map freddy out ! ip as-path access-list 1 permit ^690_ ip as-path access-list 2 permit .* ! route-map freddy permit 10 match as-path 1 set metric 127 ! route-map freddy permit 20 match as-path 2
ho c có th dùng route-map: ể ặ
trong ví d trên, các route as 690 s đ c set metric là 127. ụ ở ẽ ượ
Tóm t t gi ng đi t t nh t c a BGP. ắ ả i thu t tìm đ ậ ườ ố ấ ủ
ườ ườ ệ ố t nh t hi n có. Sau đó BGP đ u tiên nh là đ ư ấ ng đi k ti p trong danh sách cho đ n khi ớ ườ ng đi t ế ế ng đi t t c các đ ng đi h p l ế . D I đây là danh ợ ệ ướ ng đi t BGP s gán đ ẽ s so sánh đ ườ ẽ nào hoàn t t t ấ ấ ả sách các lu t đ ậ ượ ng đi h p l ợ ệ ầ t nh t này v I đ ấ ố ng trong danh sách các đ ườ c dùng đ xác đ nh đ ườ ể ố ị ườ t nh t. ấ
Ư ườ ấ ọ ố ng đi có tr ng s WEIGHT cao nh t. WEIGHT là m t thông s do ng trong ph m vi n i b c a router đ ộ ộ ộ ủ ố ỉ ưở ư ả ạ ượ c * u tiên đ Cisco đ a ra. Thông s này ch có nh h c u hình dùng thông s này. ấ ố ố
ng đi có LOCAL_PREF cao nh t. Nh ng đ ng đi không có thu c tính Ư ườ ữ ấ ườ ộ * u tiên đ LOCAL_PREF s có giá tr m c đ nh là 100. ị ặ ị ẽ
ng đi có ngu n g c t ữ Ư ườ ố ừ ệ ồ l nh network ho c l nh aggregate ho c ặ ặ ệ ố ừ ệ l nh ng đi có ngu n g c t ng đi có ngu n g c t ườ ồ ữ ố ừ ườ c u tiên h n nh ng đ ơ * u tiên nh ng đ ồ m t IGP. Các đ thông qua quá trình redistribution t ừ ộ network ho c l nh redistribution đ ượ ư ặ ệ l nh aggregate. ệ
ữ ườ ẽ ị ỏ ướ ấ c đ m t ế Ư ế ộ ượ ấ ẽ ượ ế ộ ậ ợ ấ ấ ợ ng đi có thu c tính AS_PATH ng n nh t. B c này s b b qua * u tiên nh ng đ ắ ừ c c u hình. M t t p h p AS_SET s đ n u bi n bgp bestpath as-path đ 1, b t ch p có bao nhiêu AS bên trong t p h p. Các bi n AS_CONFED_SEQUENCE ế và AS_CONFED_SET s không bao g m trong AS_PATH. ậ ồ ẽ
ng đi có ngu n g c th p nh t. IGP thì th p h p EGP và EGP thì ườ ấ ấ ấ ơ ố ồ * u tiên các đ th p h n INCOMPLETE. ơ Ư ấ
ng đi có giá tr MED nh nh t. S so sánh này ch đ ị ỏ ữ ự ườ ỉ ượ ự c th c ố ả ấ ườ Ư ế ế ệ ượ ầ ẽ ị ỏ ấ ứ ộ ỉ ế ị ng đi. B t c m t AS con nào c a ủ c so sánh ch n u giá tr AS đ u ầ ượ c ố c so sánh cho t ể ế ấ ả ả ượ ấ ọ ự ượ c ẽ ả ế c so sánh trên t t c các đ ỉ ứ ố ng đi mà ch ch a bi n ế ườ ng đi xu t phát t ấ ừ ng đi đ local confederation). ị ữ ậ ừ ộ ề ướ ả m t router láng gi ng có giá tr MED là 4,294,967,295 ượ c c u hình s đ c nh n mà không có MED đ ng đi đ c chèn vào b ng BGP. ị c gán giá tr c nh n t ổ ế ậ c khi đ ượ ấ ườ ị ườ ẽ ượ ượ * u ti n nh ng đ hi n n u AS đ u tiên là gi ng nhau cho c hai đ confederation s b b qua. Nói cách khác, MED đ tiên trong AS_SEQUENCE là gi ng nhau. N u l nh bgp always-compare-med đ ế ệ ng đi có th . N u dùng ch n l a này, c u hình, MED đ t c các đ ấ ọ ự ườ ượ t c c u hình v I ch n l a bgp always-compare- t c các router trong AS ph I đ ớ ấ ả med, n u không routing loop s x y ra. N u thông s bgp bestpath med-confed đ ế c u hình, MED s đ ấ ả ẽ ượ ấ AS_CONFED_SEQUENCE ( là nh ng đ ườ Nh ng đ ượ ữ s có giá tr MED thay đ I đ n 4,294,967,294 tr ẽ Nh ng đ ữ MED b ng 0. ằ
ng đi t t nh t đ ữ ườ ng đi eBGP so v I iBGP. N u đ ớ ế ườ ố ấ ượ ọ ự c ch n l a, * u tiên nh ng đ Ư qua b c 9. ướ
* u tiên nh ng đ ng đi có IGP metric th p nh t đ n BGP next-hop. Ư ữ ườ ấ ế ấ
ng đi d phòng c n ph i cài đ t vào b ng routing hay ể ự ầ ả ả bên ngoài, u tiên đ ề ườ ng đi là t ặ ng đi đ ế ả ườ ườ ượ c nh n tr ậ ướ c * Ki m tra xem có nhi u đ không. N u c hai đ (đ ư ng đi cũ nh t). B c này s b b qua n u ế ừ ẽ ị ỏ ườ ướ ấ
bgp best path compare-routerid đ c dùng -L nh ệ ượ
-RouterID là gi ng nhau cho nhi u đ ng đi vì các routes đ c nh n t cùng 1 router. ề ườ ố ượ ậ ừ
-Hi n t i không có m t đ ng đi t ệ ạ ộ ườ ố t nh t. ấ
ữ ườ ế ừ ỏ ị ể ượ ấ ằ ị BGP router có routerID nh nh t. Giá tr routerID là c gán b ng l nh bgp router- ệ ủ ứ * u tiên nh ng đ ng đi đ n t Ư đ a ch IP cao nh t trên router. Giá tr này cũng có th đ ỉ ấ ị ng đi ch a 1 route-reflector, thu c tính Originator ID c a Route- id. N u m t đ ộ ộ ườ ế Reflector s thay th cho routerID. ẽ ế
ề ườ ng đi, u tiên đ ư ng đi có s cluster là ít ố ế ấ ề ườ ữ ng BGP route-reflector. Nó cho phép nh ng ườ t l p quan h peer v I các thành viên trong các ế ậ ệ ớ * N u RouterID là gi ng nhau cho nhi u đ ố nh t. Đi u này ch đúng trong môi tr ỉ thành viên trong Route-Reflector thi RR khác.
nh ng láng gi ng có đ a ch th p nh t. Đ a ch này ườ ỉ ấ ề ấ ị ỉ ị * u tiên nh ng đ là đ a ch đ ữ ỉ ượ ng đi đ n t ế ừ ữ c dùng trong l nh neighbor. ệ Ư ị