chuong6-bgp.pdf

32
Giáo trình khóa hc BSCI Chƣơng 6 - BGP 100 CHƢƠNG 6: BGP 6.1. Sự cần thiết của BGP BGP là mt giao thc khá phc tạp được dùng nhiều trên Internet và trong các công ty đa quc gia. Mục đích chính của BGP là kết ni các mng rt ln hoc các Autonomous-System. Các công ty ln có thdùng BGP như là một kết ni gia các mng các quc gia khác nhau. Mục đích của các giao thc ngoại như BGP là không chỉ tìm ra một đường đi về mt mng nào đó mà còn cho phép người qun trtìm ra các AS ca các network. Các giao thc nội như EIGRP, RIP, OSPF và ISIS stìm ra network mà người qun trcn. 6.2. Một số tính chất của BGP BGP là mt giao thức định tuyến dng path-vector nên vic chn lựa đường đi tốt nht thông thường da trên mt tp hp các thuộc tính được gi là ATTRIBUTE. Do sdng metric khá phc tạp, BGP được xem là mt giao thc khá phc tp. Nhim vca BGP là đảm bo thông tin liên lc giữa các AS, trao đổi thông tin định tuyến gia các AS, cung cp thông tin vtrm kế cho mỗi đích đến. BGP sdng giao thc TCP cổng 179. Như các chương trước đã đề cp, các giao thức nhóm distance vector thường qung bá thông tin hin có đến các router láng ging, còn path vector chra chính xác danh sách toàn bđường dn đến đích. Ngoài ra các giao thức định tuyến hoạt động dùng path vector giúp việc xác định vòng lp trên mng rt tt bằng cách xem xét các con đường mà các router khác gi vxem có chính bản thân AS trong đó hay không, nếu có sbiết được ngay là lp, và sloi b. BGP htrcho các địa chCIDR (Classless Interdomain Routing). BGP cho phép dùng xác thực và BGP có các cơ chế keepalive định knhm duy trì quan hgia các BGP peers. Trong giai đoạn ban đầu ca ca phiên thiết lp quan hBGP, toàn bcác thông tin routing-update sđược gửi. Sau đó, BGP sẽ chuyển sang cơ chế dùng trigger-update. Bt kmột thay đổi nào trong hthng 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 bit nht ca BGP là trong các routing-update ca nó. Khi ta xem xét các BGP update, ta snhn thy các routing update này là khá chính xác. BGP không quan tâm đến vic giao tiếp để có đầy đủ kiến thc ca tt ccác subnet bên trong mt công ty mà BGP quan tâm đến vic chuyn tải đầy đủ thông tin để tìm mt AS khác. Các BGP update thc hiện quá trình summarization đến mt mc ti đa bằng cách cho phép mt sAS, cho phép mt sprefix và một vài thông tin định tuyến. Tuy nhiên, mt phn nhca BGP

Upload: boyloveit

Post on 26-Oct-2015

48 views

Category:

Documents


0 download

DESCRIPTION

mang

TRANSCRIPT

Page 1: chuong6-bgp.pdf

Giáo trình khóa học BSCI Chƣơng 6 - BGP

100

CHƢƠNG 6: BGP

6.1. 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 chỉ tìm ra một đường đi về một mạng

nào đó mà còn cho phép người quản trị tìm ra 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.

6.2. 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 đi tốt nhất

thông thường dựa trên một tập hợp các thuộc tính được gọi là ATTRIBUTE. Do sử dụng

metric khá phức tạp, BGP được xem là một giao thức khá phức tạp. Nhiệm 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 thức TCP cổng 179. Như các

chương trước đã đề cập, các giao thức nhóm distance vector thường quảng bá thông tin hiện

có đến các router láng giềng, còn path vector chỉ ra chính xác danh sách toàn bộ đường dẫn

đến đích. Ngoài ra các giao thức định 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ốt bằng cách xem xét các con đường mà các router khác gởi về xem

có chính bản thân AS trong đó hay không, nếu có sẽ biết đượ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.

Trong giai đoạn ban đầu của của phiên thiết lập quan hệ BGP, toàn bộ các thông tin

routing-update sẽ được gửi. Sau đó, BGP sẽ chuyển sang cơ chế dùng trigger-update. 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 xác. BGP không

quan tâm đến việc giao tiếp để có đầy đủ kiến thức của tất cả các subnet bên trong một công

ty mà BGP quan tâm đến việc chuyển tải đầy đủ thông tin để 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ố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 tin định tuyến. Tuy nhiên, một phần nhỏ của BGP

Page 2: chuong6-bgp.pdf

Giáo trình khóa học BSCI Chƣơng 6 - BGP

101

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ề đường đi đã được đồng bộ. BGP có thể được hiện thực bao gồm giữa các AS khác

nhau hay trong cùng 1 AS. Khi dùng BGP để kết nối các AS khác nhau, BGP được gọi là

eBGP. Giao thức này cũng có thể được dùng để mang thông tin giữa các router eBGP trong

một AS. Khi đó BGP được gọi là iBGP.

Hình 6.1 - Ví dụ về 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 tuyến gói đi từ

nguồn đến đích mà không cần quan tâm đến chính sách định tuyến (policy). Trong khi ra khỏi

phạm vi một AS thì chính sách định tuyến lại là vấn đề quan trọng .

Xét ví dụ sau:

AS4---AS1---AS2---AS3---(C Company)

|...............................|

|...............................|

B Company----------------A Company

Giả sử A muốn truyền dữ liệu đến AS4. A và B là 2 đối thủ của nhau. B không 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, AS2, AS1 để

Page 3: chuong6-bgp.pdf

Giáo trình khóa học BSCI Chƣơng 6 - BGP

102

đến được AS4, mặc dù con đường thông qua công ty B có thể là tối ưu 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 quan tâm đến chính sách định tuyến. Nó chỉ biết cố gắng làm

sao chuyển được các gói dữ liệu đến đích một cách hiệu quả và tối ưu nhất.

6.3. Các thuật ngữ BGP

Bảng 6.1 - Các thuật ngữ BGP

TT Thuật ngữ Định nghĩa

1 Aggregation Là quá trình tóm tắt các route – (summarization).

2 Attribute Tương tự như metric. Các biến này sẽ mô tả các đặc

điểm của đường đi tới một địa chỉ đích nào đó. Khi

được định nghĩa, các đặc điểm này có thể được dùng

để ra quyết định về nên đi theo đường đi nào.

3 Autonomous System Định nghĩa mạng của một tổ chức. Trong một AS,

các 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 cung cấp bởi các ủy ban Internet.

4 Exterior Gateway

Protocol (EGP)

Thuật ngữ chung cho một giao thức được chạy giữa

cá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.

5 EBGP Gửi thông tin định tuyến giữa các AS khác nhau

6 Interior Gateway

Protocol (IGP)

Đâ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ường được

dùng để định nghĩa một router.

7 IBGP Giao thức này được dùng bên trong một AS. Các

router không yêu cầu phải là láng giềng của nhau về

phương diện kết nối vật lý và thường ở ngoài rìa của

một AS. IBGP được dùng giữa các router chạy BGP

trong cùng một AS.

Page 4: chuong6-bgp.pdf

Giáo trình khóa học BSCI Chƣơng 6 - BGP

103

8 Originator-ID

Đâ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 một update từ chính nó, router đó

sẽ bỏ qua update đó.

9 policy-based routing

Cơ chế này cho phép người quản trị lập trình giao

thức định tuyến bằng cách định nghĩa traffic sẽ được

route 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.

10 prefix list

Prefix list được dùng như một thay thế cho

distribute-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.

11 Route-reflector Đây là router được cấu hình để chuyển các routes từ

các router iBGP 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.

12 Route-Reflector

Client

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ết lập peer với các

client khác.

13 Route_reflector

Clustor

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.

14 transit autonomous

system

Là AS được dùng để mang các BGP traffic qua các

AS khác.

Page 5: chuong6-bgp.pdf

Giáo trình khóa học BSCI Chƣơng 6 - BGP

104

6.4. Khi nào thì dùng BGP?

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 phí có thể

giảm thiểu nếu tất cả các kết nối đều được dùng. Trong trường hợp này, PBR có thể cần thiết

để triển khai trên từng kết nối. BGP còn đượ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 trong công ty cần phải được phân biệt với

traffic của ISP. Mạng của hai tổ chức 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.

6.5. 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ới hạn, chẳng hạn như bộ nhớ và CPU của router.

- 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ưởng đến quá

trình chuyển dữ liệu.

6.6. 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 đường đi trong BGP. Các thuộc tính

của BGP không chỉ là danh sách các biến mà qua đó route được chọn lựa. Một vài thông tin

được mang trong các thông điệp cập nhật là quan trọng hơn 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ì vậy các thông tin này phảI được mang

đến tất cả các router BGP trong mạng. Quá 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ẽ được tiếp tục chia ra làm các nhóm con.

Page 6: chuong6-bgp.pdf

Giáo trình khóa học BSCI Chƣơng 6 - BGP

105

Bảng 6.2 - Các nhóm thuộc tính

Nhóm Mô tả

Well-known mandatory Các thuộc tính này là bắt buộc và được công nhận bởi tất cả

các router BGP.

Well-known

Discretionary

Không yêu cầu các thuộc tính này tồn tại trong các cập nhật

nhưng nếu chúng tồn tại, tất cả các router sẽ công nhận và sẽ

có hành động tương ứng dựa trên thông tin được chứa bên

trong thuộc tính này.

Optional Transitive

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.

Optional Nontransitive

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ới các BGP.

6.6.1. Thuộc tính AS_PATH

Đây là thuộc tính quan trọng trong việc xác định đường đi tối ưu, mang 2 chức năng. Thứ

nhất, AS_PATH càng ngắn càng được router ưu tiên hơn. (ví dụ từ AS3 đến AS4 có 2 con

đường khác nhau: AS3 - B - AS4, hoặc AS3 - 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 mang tính bắt buộc, nghĩa là tất cả các bộ định tuyến phải

chuyển thuộc tính này đến tất cả các láng giềng trong mọi thông điệp cập nhật của BGP.

6.6.2. Thuộc tính nguồn gốc (Origin-attribute)

Đây là một thuộc tính xác đị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 được biết thông qua một IGP

(RIP, OSPF…). Nếu giá trị “e” thì routing thông tin cập nhật định tuyến được biết thông qua

một EGP. Nếu giá trị “?” (incomplete) thì chỉ rằng không biết nguồn gốc của routing thông tin

cập nhật đị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

được biết thông qua IGP rồi sau đó lại được thông báo qua EGP.). Khi nó học đường bằng

Page 7: chuong6-bgp.pdf

Giáo trình khóa học BSCI Chƣơng 6 - BGP

106

lệnh network thì nó để thuộc tính này là: i. Khi nó học đường qua các lệnh như redistribute

v.v... thì nó để thuộc tính là: “?”.Còn sau đó các mạng này được quảng bá tới các EGP router

láng giềng thì thuộc tính này được đổi thành e vì router mới học được các tuyến đường này

nhờ EGP. Thuộc tính origin không thay đổi qua giao thức EBGP mà vẫn giữ nguyên. Thuộc

tính origin là e khi tuyến được học từ giao thức EGP (đây là giao thức định tuyến giữa các

AS, được sử dụng nhiều trên Internet khi BGP chưa ra đời nhưng hiện nay hầu như không còn

được sử dụng).

6.6.3. Thuộc tính Next-Hop

Trong eBGP, giá trị next-hop là địa chỉ IP của router từ bên ngoài của vùng tự trị AS

quảng bá vào bên trong AS. Địa chỉ IP được chỉ ra bởi lệnh neighbor. Tuy nhiên trong môi

trường multiaccess, nếu một route đến từ một router, sẽ là không khôn ngoan 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 khi có thể tìm ra đượ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.

Khi BGP khai báo một mạng, router tự định rõ bản thân router đó như là Next Hop. 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ại tiếp tục dùng router ngoài AS làm Next hop. Do đó ta phải cấu hình cho các router

còn lại trong AS biết được chính router ở biên cùng AS với nó là router Next Hop chứ không

phải là router khác AS.

Page 8: chuong6-bgp.pdf

Giáo trình khóa học BSCI Chƣơng 6 - BGP

107

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ì trong môi trường

multiaccess, mọi router sẽ công bố nó là next-hop. Để tránh tình 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

Thuộc tính Next-Hop và mạng NBMA

Cũng giống như trong môi trường multiaccess, một mạng NBMS cũng tuân theo cùng 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.

Thuộc tính Next-Hop trong BGP

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)

Page 9: chuong6-bgp.pdf

Giáo trình khóa học BSCI Chƣơng 6 - BGP

108

Thuộc tính BGP nexthop là một địa chỉ next hop IP mà nó sẽ được dùng để đi đến 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ược lại 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ại 170.10.0.0 cho các IBGP peer của nó, trong trường hợp này là RouterB với

một next hop là 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ường NBMA, và có

thêm một RouterD (network 180.20.0.0) đượ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 được. Lúc này routing sẽ fail. Để khắc phục tình trạng này thì

NEXT-HOPE-SELF được sử dụng.

neighbor {ip-address| peer-group-name1 } 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.

RouterC#

router bgp 300

neighbor 170.10.20.1 remote-as 100

neighbor 170.10.20.1 next-hop-self

RouterC sẽ qủang cáo 180.20.0.0 với NextHop = 170.10.20.2. Next-hop-self chỉ có lợi

trong môi trường “non-meshed”.

6.6.4. Thuộc tính Local-Preference

Đâ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ờ gởi ra khỏi AS đó. Nó

được truyền đến các local BGP neighbors. Thuộc tính Local-Preference cho phép chúng ta

chọn con đường mong muốn nhất ra khỏi một AS.

Page 10: chuong6-bgp.pdf

Giáo trình khóa học BSCI Chƣơng 6 - BGP

109

6.6.5. Thuộc tính trọng số (Weight)

Đây cũng là thuộc tính không bắt buộc, các nhà cung cấp không cần phải hỗ trợ cho nó.

Thực tế thuộc tính chỉ được cung cấp cho một bộ định tuyến đơn và không gởi trong bất kỳ

thông điệp Update nào. Thuộc tính Weight được dùng để điều khiển hướng truyền các local

packet đến router khi router đó có hai route khác nhau ra khỏi AS (multihomed).

6.6.6. Thuộc tính MULTI_EXIT_DISC (MED)

Đây là thuộc tính được AS dùng để tham chiếu cho việc nên chọn router nào để đi đến

cùng một đích trong một AS. Trong BGP cũng có một ATTRIBUTE được gọi là 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 dẫn cho các router láng giềng lựa chọn đường đi

tốt nhất. MED(multiple-exit-discriminator) là 1 attribute của BGP, nó giới thiệu về những

router láng giềng bên ngoài về 1 mạng được chọn vào 1 AS có nhiều exit point, cái nào có

MED thấp hơn sẽ được chọn (do đó có lẽ nó giống với metric), không giống như Local

Preference, MED được trao đổi giữa các 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ừ chính AS thì MED sẽ

được tính theo metric của IBGP. MED là một attribute yếu (trong thứ tự route-selection của

BGP), nên để control được nó cần phải chú ý đến 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ược lại, nên

hiếm khi được dùng trong thực tế. Ngoài ra, với nhiều Customer vớ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 ta hay sử dụng community

attribute để giải quyết vấn đề chọn incomming traffic thay cho as-path prepending hoặc MED.

6.6.7. Thuộc tính Communtity

Đây là một thuộc tính không bắt buộc. Thuộc tính này được dùng để cung cấp chính sách

cho một nhóm các router đi qua các AS. Do đó các router này có cùng một tính chất và có

chung chính sách. Nếu một router nhận được một thông điệp Thông tin cập nhật định tuyến

với thuộc tính Community được thiết lập,nó sẽ xử lý thông điệp 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ờ gửi thuộc tính đó cho láng giềng router trừ khi được

chỉ định làm thêm điều gì đó).

Page 11: chuong6-bgp.pdf

Giáo trình khóa học BSCI Chƣơng 6 - BGP

110

6.7. Tổng quan hoạt động của BGP

BGP là một giao thức hướng kết nối. Khi thiết lập một quan hệ neighbor, một phiên làm

việc TCP sẽ được thiết lập và duy trì. BGP sẽ gửi ra các thông điệp keepalive để kiểm tra

đường truyền và duy trì phiên làm việc TCP này. Các thông điệp keepalive 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:

1. Thông điệp open: được dùng để thiết lập kết nối với các router BGP khác.

2. Thông điệp keepalive: được gửi định kỳ giữa các BGP peers để duy trì kết nốI và

để kiểm tra đường đi. Các thông điệp keepalive này được gửi theo cơ chế không

tin cậy. Nếu khoảng thời gian định kỳ được gán về bằng 0, sẽ không có thông điệp

keepalive nào được gửi.

3. Thông điệp cập nhật: chứa các đường đi về các địa chỉ đích và các thuộc tính của

đường đi. Các cập nhật bao gồm các route không còn tồn tại. Thông tin chứa trong

các cập nhật bao gồm các thuộc tính về đường dẫn, bao gồm thuộc tính origin,

AS_PATH, neighbor.

4. Thông điệp Notification: được dùng để thông báo cho các router khác về những

nguyên nhân gây ra kết nối bị ngắt.

6.8. CIDR và Route Aggregation

BGP cần phải truyền một số thông tin giữa các AS nhưng có lẽ không phải tất cả các

thông tin là cần thiết. Nếu hệ thống mạng được thiết kế để hỗ trợ quá trình summarization,

tổng số tài nguyên mạng sẽ được giảm đi bởi vì có rất ít bộ nhớ, băng thông và CPU được

dùng để gửi bảng định tuyến. Thật ra, bằng cách tóm tắt các lớp địa chỉ IANA, mạng Internet

sẽ trở thành một một môi trường nhanh hơn và tin cậy hơn. Cách dùng CIDR là một trong

những giải pháp được dùng nhiều trong những năm gần đây. Các địa chỉ sẽ được hợp nhất lại

thành một số địa chỉ dạng 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 quảng bá như một network.

BGP sẽ truyền các prefix và các prefix mask. Một router có thể truyền route đã được tóm

tắt, các route riêng lẽ chưa được summarize hoặc truyền cả hai.

Page 12: chuong6-bgp.pdf

Giáo trình khóa học BSCI Chƣơng 6 - BGP

111

6.9. Cơ chế hoạt động của IBGP

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 được học từ IBGP đế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:

1. Giải pháp thứ nhất: Phân phối lại các tuyến BGP vào IGP để thỏa mãn qui luật đồng

bộ, nhưng phương pháp này không nên sử dụng trong các mạng core của ISP do số tuyến trên

Internet rất lớn, các IGP được thiết kế không phải để có thể quản lý số tuyến quá lớn như vây,

ngoài ra, nếu dùng phương pháp này thì khi có sự thay đổi về 1 tuyến trên Internet sẽ làm các

IGP phải thực hiện giải thuật tìm đường chiếm nhiều CPU và bộ nhớ gây mất ổn định.

2. Giải pháp thứ hai: Các BGP peer đượ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

Page 13: chuong6-bgp.pdf

Giáo trình khóa học BSCI Chƣơng 6 - BGP

112

CPU,mem. Có 2 cách để giải quyết vần đề 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. Ưu điểm của giải pháp này là các member-AS có thể đượ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 các điểm trung chuyển quốc tế như NAP...)

hoặc các công ty đa quốc gia cần 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-transitive. Sử dụng

community: phương pháp này đòi hỏi phải được upstream ISP hỗ trợ, chỉ ảnh hưởng đến ISP

trực tiếp, trong nhiều trường hợp không làm việc tốt. Sử dụng AS-Prepend: phương pháp này

được sử dụng thông dụng hơn do có thể làm việc tốt trong tất cả các mô hình. Nhưng một điều

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 thuộc tính.

Để set metric, bạn có thể dùng lệnh default-metric

Router(config-router)#default-metric number

hoặc có thể dùng route-map:

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

Page 14: chuong6-bgp.pdf

Giáo trình khóa học BSCI Chƣơng 6 - BGP

113

match as-path 2

Trong ví dụ trên, các route ở as 690 sẽ được set metric là 127.

6.10. Tóm tắt giải thuật tìm đƣờng đi tốt nhất của BGP

BGP sẽ gán đường đi hợp lệ đầu tiên như là đường đi tốt nhất hiện có. Sau đó BGP sẽ so

sánh đường đi tốt nhất này vớI đường đi kế tiếp trong danh sách cho đến khi nào hoàn tất tất

cả các đường trong danh sách các đường đi hợp lệ. DướI đây là danh sách các luật được dùng

để xác định đường đi tốt nhất.

- Ưu tiên đường đi có trọng số WEIGHT cao nhất. WEIGHT là một thông số do Cisco

đưa ra. Thông số này chỉ có ảnh hưởng trong phạm vi nội bộ của router được cấu hình dùng

thông số này.

- Ưu tiên đường đi có LOCAL_PREF cao nhất. Những đường đi không có thuộc tính

LOCAL_PREF sẽ có giá trị mặc định là 100.

- Ưu tiên những đường đi có nguồn gốc từ lệnh network hoặc lệnh aggregate hoặc thông

qua quá trình redistribution từ một IGP. Các đường đi có nguồn gốc từ lệnh network hoặc

lệnh redistribution được ưu tiên hơn những đường đi có nguồn gốc từ lệnh aggregate.

- Ưu tiên những đường đi có thuộc tính AS_PATH ngắn nhất. Bước này sẽ bị bỏ qua

nếu biến bgp bestpath as-path được cấu hình. Một tập hợp AS_SET sẽ được đếm từ 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.

- Ưu tiên các đường đi có nguồn gốc thấp nhất. IGP thì thấp hơp EGP và EGP thì thấp

hơn INCOMPLETE.

- Ưu tiến những đường đi có giá trị MED nhỏ nhất. Sự so sánh này chỉ được thực hiện

nếu AS đầu tiên là giống nhau cho cả hai đường đi. Bất cứ một AS con nào của confederation

sẽ bị bỏ qua. Nói cách khác, MED được so sánh chỉ nếu giá trị AS đầu tiên trong

AS_SEQUENCE là giống nhau. Nếu lệnh bgp always-compare-med được cấu hình, MED

được so sánh cho tất cả các đường đi có thể. Nếu dùng chọn lựa này, tất cả các router trong

AS phảI được cấu hình vớI chọn lựa bgp always-compare-med, nếu không routing loop sẽ xảy

ra. Nếu thông số bgp bestpath med-confed được cấu hình, MED sẽ được so sánh trên tất cả

các đường đi mà chỉ chứa biến AS_CONFED_SEQUENCE (là những đường đi xuất phát từ

local confederation). Những đường đi được nhận từ một router láng giềng có giá trị MED là

4,294,967,295 sẽ có giá trị MED thay đổI đến 4,294,967,294 trước khi được chèn vào bảng

BGP. Những đường đi được nhận mà không có MED được cấu hình sẽ được gán giá trị MED

bằng 0.

Page 15: chuong6-bgp.pdf

Giáo trình khóa học BSCI Chƣơng 6 - BGP

114

- Ưu tiên những đường đi eBGP so vớI iBGP. Nếu đường đi tốt nhất được chọn lựa, qua

bước 9.

- Ưu tiên những đường đi có IGP metric thấp nhất đến BGP next-hop.

- Kiểm tra xem có nhiều đường đi dự phòng cần phải cài đặt vào bảng routing hay

không. Nếu cả hai đường đi là từ bên ngoài, ưu tiên đường đi được nhận trước (đường đi cũ

nhất). Bước này sẽ bị bỏ qua nếu:

o Lệnh bgp best path compare-routerid được dùng.

o RouterID là giống nhau cho nhiều đường đi vì các routes được nhận từ cùng 1

router.

o Hiện tại không có một đường đi tốt nhất.

- Ưu tiên những đường đi đến từ BGP router có routerID nhỏ nhất. Giá trị routerID là

địa chỉ IP cao nhất trên router. Giá trị này cũng có thể được gán bằng lệnh bgp router-id. Nếu

một đường đi chứa 1 route-reflector, thuộc tính Originator ID của Route-Reflector sẽ thay thế

cho routerID.

- Nếu RouterID là giống nhau cho nhiều đường đi, ưu tiên đường đi có số cluster là ít

nhất. Điều này chỉ đúng trong môi trường BGP route-reflector. Nó cho phép những thành viên

trong Route-Reflector thiết lập quan hệ peer vớI các thành viên trong các RR khác.

- Ưu tiên những đường đi đến từ những láng giềng có địa chỉ thấp nhất. Địa chỉ này là

địa chỉ được dùng trong lệnh neighbor.

6.11. Xây dựng network dùng iBGP

Mặc dù BGP là một giao thức ngoại vùng, nó có hai phiên bản: BGP nội (iBGP) và BGP

ngoại (eBGP). Sự khác nhau phụ thuộc vào chức năng của giao thức định tuyến. Router sẽ xác

định khi nào thì một BGP sẽ là eBGP hoặc là một iBGP bằng cách kiểm tra giá trị AS được

gửi trong thông điệp open-message. eBGP sẽ tương thích với các yêu cầu chung của một giao

thức ngoại vùng. EBGP sẽ gửi các thông tin định tuyến giữa các AS khác nhau. Vì vậy, router

ở biên giới các AS là eBGP router. iBGP được dùng trong các AS. IBGP chuyển các thông tin

đến tất cả các BGP router bên trong domain và đảm bảo rằng tất cả các router có chung một

hiểu biết về các mạng hiện có. IBGP được dùng giữa các router trong cùng một AS.

Để thiết kế và triển khai BGP chính xác, có một vài đặc điểm của BGP cần phảI được

hiểu. iBGP không nhất thiết phải kết nối trực tiếp về mặt vật lý. Không giống như RIP hoặc

OSPF hoặc IP v.6, các router chạy iBGP không cần phải kết nối trực tiếp trên cùng một hạ

tầng mạng. Một số giao thức khác, chẳng hạn như OSPF sẽ định tuyến các gói BGP giữa các

iBGP router.

Page 16: chuong6-bgp.pdf

Giáo trình khóa học BSCI Chƣơng 6 - BGP

115

Hình 6.2 - Các AS của BGP

Thông qua các kết nối logic, TCP sẽ route các gói đi qua các AS bởi các bảng định tuyến

được duy trì bởi OSPF. Để BGP có thể truyền các thông tin định tuyến vào bên trong AS, nó

có thể dùng redistribute từ BGP vào IGP. Quá trình redistribute này có thể rất phức tạp.

Một iBGP sẽ truyền một route đến BGP neighbor theo hai điều kiện sau:

- Điều kiện 1: Một route được truyền bởi router bằng một trong những phương thức sau

dưới đây.

Thông qua lệnh network

Được redistribute từ một IGP

Được redistribute từ tuyến đường tĩnh

- Điều kiện 2: Nếu route được quảng bá là tuyến đường tĩnh.

Page 17: chuong6-bgp.pdf

Giáo trình khóa học BSCI Chƣơng 6 - BGP

116

Nếu một route được học từ một update từ một BGP peer trong cùng một AS, một router

BGP có thể truyền route này chỉ đến eBGP. Bởi vì iBGP không có chuyển những cập nhật mà

nó học từ iBGP peers, nó cần phải kết nối fully-mesh với nhau để có đầy đủ kiến thức. Tuy

nhiên, một mạng fully-mesh thì sẽ không có khả năng mở rộng vì tất cả các router trong một

AS phải thiết lập peer với nhau.

6.12. Luật synchronization

Luật đơn giản nói rằng trước khi một iBGP có thể truyền một route vào một AS khác,

route đó phải được biết trên toàn AS của nó. Nói cách khác, một giao thức định tuyến IGP

phải được đồng bộ (synchronized) với BGP. Luật synchronization này là được bật ON ở chế

độ mặc định và nó chỉ nên được tắt nếu tất cả các routers trong AS này chạy BGP.

Các router BGP có bảng định tuyến và BGP table riêng biệt. Luật synchronization được

phát biểu như sau: Một route được học từ một router IBGP láng giềng (tức là route này đã có

trong BGP table) chỉ được đưa vảo bảng định tuyến hoặc quảng bá (advertise) tới BGP peer

khi nó đã được biết tới nhờ một IGP. Khi một router BGP nhận một tuyến IBGP thì nó phải

xem trong bảng định tuyến IGP đã có đường đi đến mạng đó chưa, nếu có thì mới xem tuyến

đó có giá trị và có thể sử dụng hoặc gởi cho các BGP peer khác. Điều này là cần thiết để đảm

bảo các router dọc đường không loại bỏ các gói tin do không có tuyến.

Hình 6.3 - Luật synchronization

Page 18: chuong6-bgp.pdf

Giáo trình khóa học BSCI Chƣơng 6 - BGP

117

Trong hình vẽ trên, nếu transit AS chỉ có các router ngoài rìa chạy iBGP, ta cần phải dựa

vào các IGP để mang traffic giữa các router iBGP. Vì vậy, IGP cần phảI có các thông tin này

trong bảng định tuyến để có thể hoàn tất việc này. AS400 và AS800 dùng AS200 như là

transit AS. Theo luật synchronization, router sẽ gửi các cập nhật đến AS 800 sẽ không truyền

network 56.0.0.0 được quảng bá bởi AS 400 trừ phi OSPF có đầy đủ thông tin về network

56.0.0.0. Nói cách khác, AS800 có thể gửI traffic đến 56.0.0.0 sẽ bị mất trong AS200 bởi vì

nếu không có thông tin trong bảng định tuyến, nó sẽ không có khả năng đẩy traffic đến địa chỉ

đích phù hợp.

Trong một mạng mà có IGP và IBGP chạy song song thì vẫn không ảnh hưởng gì cả. Các

IBGP cần phải được full-meshed và để một router có thể biết được cách đến được IBGP peer

của nó , nó phải dựa vào IGP. Trong bảng định tuyến của một router sẽ có cả các route của

BGP và IGP , do đó để tất cả các router trong mạng đều biết đường đi đến tất cả các net work

ta phải thực hiện redistribute , hoặc quảng cáo net work đó ở một router trong mạng. Tùy theo

topo của mạng mà ta có những giải pháp cụ thể.

Trong một vài trường hợp, việc tắt synchronization là cần thiết. Các trường hợp này là:

- Tất cả các Router trong AS đều chạy BGP.

- AS của bạn không phải là 1 transit AS, tức là không advertise routes từ 1 AS sang 1

AS khác.

- Nếu tất cả các router trong AS là fully-mesh.

- Version 12.2 thì BGP Sync sẽ tắt ở chế độ mặc định.

6.13. Aggregate Address

Khi cấu hình aggregate-address mà không dùng thêm một tùy chọn nào, route được sinh ra

sẽ không thừa hưởng bất cứ một attribute nào của từng specific route (ví dụ như AS_PATH

hoặc community). Khi bạn dùng từ khóa as-set, thuộc tính của từng route thành viên sẽ được

lưu lại.

router bgp 300

neighbor 2.2.2.2 remote-as 100

neighbor 3.3.3.3 remote-as 200

neighbor 4.4.4.4 remote-as 400

aggregate-address 160.0.0.0 255.0.0.0 summary-only as-set

!

RouterD#show ip bgp

Page 19: chuong6-bgp.pdf

Giáo trình khóa học BSCI Chƣơng 6 - BGP

118

BGP table version is 2, local router ID is 4.4.4.4

Status codes: s suppressed, d damped, h history, * valid, > best, i –

internal

Origin codes: i - IGP, e - EGP, ? - incomplete

Network Next Hop Metric LocPrf Weight Path

*> 160.0.0.0/8 4.4.4.1 0 300 {200,100} i

Trong bảng BGP, as-path của aggregate-route đã có thêm các path của từng route thành

viên.

6.14. Mạng Fully-Mesh

Luật BGP split horizon nói rằng mặc dù các router không cần kết nối trực tiếp, nó cần phải

fully-mesh. Điều kiện này nhằm đảm bảo các mạng phải thấy nhau. Để tránh routing-loop,

giao thức BGP phải tuân theo luật split horizon rằng không có update nào học từ một peer bên

trong có thể gửi đến một peer khác. Điều này có nghĩa rằng, một network khi được nhận sẽ

không phân phối đến các router iBGP khác. Các mạng này chỉ được truyền đến các router

BGP trong các AS khác, còn gọi là eBGP peer.

BGP duy trì các thông tin cập nhật bằng cách gửi các update trên các kết nối TCP. Các kết

nốI TCP này là một cách xuất sắc để đảm bảo tính chính xác của thông tin, nhưng nhược điểm

của nó là tốn nhiều tài nguyên hệ thống. Số kết nối càng lớn, tài nguyên yêu cầu càng nhiều.

Một công thức đơn giản như sau:

Sẽ cần n (n – 1) / 2 kết nốI TCP trên một mạng gồm n router BGP.

Như vậy một mạng gồm 10 router sẽ yêu cầu 10 (10 – 1) / 2 = 10 * 9 / 2 = 45 phiên làm

việc. Công thức này chấp nhận được trong môi trường có một vài kết nối, tuy nhiên nếu hệ

thống mạng là một nhà ISP thì thiết kế trên không phù hợp.

Chi phí quản trị trong mạng fullymesh

Cũng có những phí tổn quản lý trong việc duy trì các mạng kết nối fully-mesh. Ví dụ, mỗi

lần có một router BGP mới thêm vào, số kết nối phải thiết lập cũng sẽ tăng lên nhiều lần

tương ứng. Đối vớI TCP, không chỉ phải duy trì các kết nối rất tốn tài nguyên mà còn là các

cập nhật – updates phải đi trên các kết nối này. Nếu tất cả các router kết nối với tất cả các

router khác, một số lượng lớn thông tin sẽ được gửi đi trùng lắp.

Page 20: chuong6-bgp.pdf

Giáo trình khóa học BSCI Chƣơng 6 - BGP

119

Hình 6.4 - Cấu hình fullmesh cho iBGP

Thiết kế và cấu hình một mạng iBGP

Vấn đề hạn chế khả năng mở rộng trong một mạng fully meshed iBGP có thể được giải

quyết bằng các giải pháp thiết kế. Các giải pháp về cấu hình sẽ cho phép ta bỏ qua luận các

iBGP phải được full mesh. Các lệnh mới này cho phép ta phát triển một mạng hub-and-spoke

để đơn giản hóa các kết nối TCP. Giải pháp được giới thiệu trong phần này là giải pháp dùng

route reflector.

6.15. Route Reflectors

Một route reflector là một router được cấu hình để chuyển những routing update đến các

router láng giềng hoặc các router chạy BGP bên trong một AS. Các router iBGP cần phải

được chỉ ra như là client trong khi cấu hình. Khi một client gửi một update đến route-reflector,

nó sẽ chuyển update đó đến các router client khác. Đặc biệt, route-reflector định nghĩa luật

split horizon. Lụât này nói rằng một iBGP router sẽ không truyền một route được học từ một

router láng giềng trong cùng một AS. Route Reflector và client sẽ đòi hỏi một quan hệ peer

đầy đủ bởi vì route reflector sẽ gửi các cập nhật từ các client khác nhưng việc thiết lập peer

giữa các client là không cần thiết.

Page 21: chuong6-bgp.pdf

Giáo trình khóa học BSCI Chƣơng 6 - BGP

120

Một route-reflector sẽ kết nối đến các peers mà nó không đẩy route đến. Từ quan điểm của

route-reflector, các neighbor này được gọi là non-clients. Các router nonclients phải được kết

nối fully-meshed với các route-reflector và với các non-client khác. Khi một router đã cấu

hình như một route-reflector, nó sẽ đẩy những đường đi được học từ các iBGP khác chỉ đến

các route-reflector clients và tới các iBGP/eBGP neighbors. Điều này có nghĩa là một thiết kế

hub-and-spoke có thể được triển khai trong một AS giữa các iBGP peers, như vậy giảm thiểu

số session giữa các routers. Cả route-reflector và các client của nó hình thành nên một đơn vị

để chia sẽ thông tin. Đơn vị này gọi là cluster.

Một Autonomous System có thể được chia ra thành các cluster, trong các các cluster sẽ có

các route-reflector được chỉ định và cấu hình. Phải có ít nhất một route-reflector trong mỗi

cluster. Nếu một route-reflector kết nối đến các route reflector khác, route-reflector phải được

fully-meshed. Điều này nhằm đảm bảo các bảng iBGP routing là đầy đủ. Khi một route-

refletor chuyển đi một update, thuộc tính Originator_ID sẽ được thiết lập. Đây là BGP

routerID của router đã tạo ra đường đi. Nếu router này nhận lạI bản update đó, router sẽ thấy

ID của chính nó và sẽ bỏ qua packet. Điều này nhằm ngăn ngừa khả năng routing loop. Nếu

có nhiều route-reflector trong cluster, các router sẽ phân biệt với nhau bằng clusterID. Thông

số này phục vụ cùng một mục đích như thuộc tính Originator_ID để ngăn ngừa routing loops.

Với cách dùng route-reflector, router đóng vai trò route-reflector sẽ tốn nhiều tài nguyên

hơn. Nếu cấu hình route-reflector không chính xác, nó có thể gây ra routing-loop. Có nhiều

mức route-reflector có thể được cấu hình bằng cách tạo ra các thiết kế theo thứ bậc. Các router

không là thành phần của route-reflector sẽ không bị ảnh hưởng trong những thay đổi về thiết

kế và những thay đổi về quá trình truyền các cập nhật. Thay vào đó, các router này sẽ không

nhận biết được bất cứ thay đổi nào vì nó vẫn nhận được các update mà nó cần. Bản thân các

routing update cũng không bị thay đổi bởi vì không có sự thay đổi nào trong giá trị các thuộc

tính được mang trong các routing update.

Chính vì các đặc điểm trên, quá trình chuyển đổi thiết kế một hệ thống mạng nào đó sang

dạng dùng route-reflector thì rất dễ dàng. Một thiết kế quan trọng là bản thân các route-

reflector trong một AS cũng phải fully-meshed. Ngoài ra, một route-reflector này có thể là

client cho một route-reflector khác. Thiết kế như vậy khá phức tạp và yêu cầu xem xét cẩn

thận bởi vì khi các route-reflector được cấu hình và split horizon bị disable, không còn một cơ

chế nào để bảo vệ routing loop.

Page 22: chuong6-bgp.pdf

Giáo trình khóa học BSCI Chƣơng 6 - BGP

121

Hình 6.5 - Thiết kế Route-reflector

Các lợi ích của route-reflector bao gồm:

- Khả năng mở rộng mạng.

- Thiết kế mang tính cấu trúc cao.

- Giảm traffic trên mạng.

- Giảm bộ nhớ và CPU cần thiết để duy trì các phiên TCP session trên các máy iBGP

peers.

- Hội tụ nhanh hơn và mạng trở nên đơn giản hơn bởi vì có đến hai giao thức định tuyến

được dùng: iBGP cho các thông tin định tuyến bên ngoài đi qua AS; IGP cho các

router bên trong một AS.

Page 23: chuong6-bgp.pdf

Giáo trình khóa học BSCI Chƣơng 6 - BGP

122

Hình 6.6 - Cấu hình các route-reflector

Hoạt động của Route Reflector

Một RR đơn giản giống như một tấm gương để phản hồi các update từ các client đến các

client khác mà không yêu cầu một mạng phải fully-meshed.

Khi một RR nhận được một cập nhật:

- Client sẽ chuyển update đó cho router láng giềng của nó, trong trường hợp này là RR.

- Một cập nhật từ client được nhận từ RR và cập nhật sẽ được chuyển đến các RR

clients cũng như nonclients. Thông số originatorID ban đầu sẽ bị loại trừ ra khỏi cập

nhật.

- Nếu có nhiều đường đi nhận được từ RR, đường đi tốt nhất sẽ được chọn thông qua

RR.

- Router duy nhất mà có update chuyển đến nó là nguồn gốc của route.

- Một nonclient router sẽ chuyển các cập nhật tớI các láng giềng của nó, có thể là một

RR.

- Một RR nhận một update từ một router nonclient và update chỉ được chuyển đến

clients

RR sẽ cập nhật cả client và non-clients.

Page 24: chuong6-bgp.pdf

Giáo trình khóa học BSCI Chƣơng 6 - BGP

123

6.16. Route Refresh

Sau khi thực hiện bất kỳ một cấu hình BGP nào, cần phải reset các phiên làm việc TCP

sao cho các thay đổi có hiệu lực. Điều này là do các quá trình BGP lưu trữ chỉ những tiền tố

prefix áp dụng cho một chính sách liệt kê trước. Nếu chính sách thay đổi, các phiên TCP phải

được kết thúc và kết nối lại với các đặc điểm mới. Có thể dùng các lệnh sau:

Router#clear ip bgp *

Hoặc để gửi một BGP update đến một neighnor nào đó:

Router#clear ip bgp neighbor-address in

Cũng có thể cấu hình BGP để lưu các mạng trước khi policy thay đổi. Tác vụ này rõ ràng

đòi hỏI nhiều bộ nhớ, nhưng nó cho phép các cấu hình mới được hiện thực mà không hủy các

session hiện có. Lệnh dưới đây áp dụng cho từng neighbor và chỉ áp dụng cho các cập nhật

theo chiều inbound.

Router#neighbor neighbor-address soft-configuration inbound

Router#clear ip bgp neighbor-address soft [inbound]

6.17. Peer Groups

Nếu không có peer-group, tất cả các iBGP peer phải được fully meshed để nhận cùng một

update. Điều này có nghĩa là mọi iBGP router đều thực hiện cùng một tính toán, gây lãng phí

CPU và giới hạn khả năng mở rộng của iBGP. Khi peer group được cấu hình, tất cả các router

bên trong peer group có cùng chính sách đối với bên ngoài, nhưng vẫn cho phép các chính

sách đi vào khác nhau được cấu hình trên nhóm. Có nghĩa là một cập nhật sẽ được tạo ra cho

cả nhóm. Kết quả là:

- Phí tổn để quản lý được giảm đi bởi vì cấu hình là đơn giản hơn, giảm thiểu khả năng

bị lỗi.

- Ít đòi hỏi tài nguyên CPU, mạng hội tụ nhanh, ổn định và tin cậy.

6.18. Kiểm soát BGP Traffic

Các BGP update có thể được kiểm soát. Nhìn chung, trong các giao thức định tuyến, kiểm

soát các cập nhật là một việc tốt. Việc kiểm soát các cập nhật giúp cho đơn giản hoá hệ thống

mạng và dể dàng bảo trì. Việc thiết kế các thông tin định tuyến được chuyển đi như thế nào

cũng được xem là một tác vụ cơ bản của bảo mật mạng và điều này giúp cho giảm nguy cơ bị

routing-loop.

Có ba cách để áp đặt PBR trong BGP:

Page 25: chuong6-bgp.pdf

Giáo trình khóa học BSCI Chƣơng 6 - BGP

124

- Ra quyết định dựa trên thuộc tính AS_PATH, thuộc tính community hoặc prefix.

- Từ chối hay chấp nhận các routes được chọn.

- Thiết lập các thuộc tính để ảnh hưởng đến quá trình chọn lựa đường đi.

Quá trình từ chối hay chấp nhận các routes yêu cầu một vài dạng của filtering thông qua

các ACL. Tác vụ filtering không chỉ được dùng trong PBR mà còn để kiểm soát traffic trong

mạng. Có ba dạng filtering trong Cisco router:

Access-list cho AS_PATH

Được dùng để lọc các AS. Một ACL được dùng trong BGP sẽ lọc các update được gửi từ

một router peer trên AS path.

Prefix list

Được dùng để lọc các prefix, đặc biệt trong quá trình redistribution. Từ Cisco IOS v.11.2,

các ISP sử dụng các prefix-list là một dạng khá hiệu quả của filtering. Cơ chế dùng prefix-list

dựa trên prefix của một địa chỉ.

Distribute lists

Distribute-list được dùng để lọc các cập nhật. Mặc dù distribute-list thường được dùng

trong redistribution, công cụ này không chỉ dành riêng cho quá trình redistribution. Nó có thể

áp dụng cho các traffic theo chiều inbound và chiều outbound từ bất cứ các peer nào. Cả

prefix-list và distribute-list đều lọc dựa trên địa chỉ mạng chứ không dùng AS_PATH.

Route maps

Route map được dùng để định nghĩa chính sách định tuyến. Một route-map là một access-

list phức tạp qua đó router hoạt động khi một match được nhận dạng. Route map được dùng

trong BGP để xác lập các thuộc tính của BGP để chọn ra đường đi tốt nhất.

Prefix List hoạt động nhƣ thế nào?

Prefix-list chỉ tìm kiếm trên phần network của một địa chỉ nên quá trình tìm kiếm là rất

nhanh. Điều này đặc biệt quan trọng trong khi tìm kiếm những bảng định tuyến kích thước lớn

trong BGP. Một thuận lợi khác của prefix-list là khả năng soạn thảo. Mặc dùng trong ACL

truyền thống vẫn cho phép soạn thảo động (dùng named ACL), prefix-list có thể tạo và sử

dụng dễ dàng. Điều này không chỉ đúng với tính năng soạn thảo mà còn với giao diện đã cải

tiến.

Trước khi áp dụng một prefix-list vào một quá trình hay một cổng giao tiếp, người quản

trị phải định nghĩa các tiêu chí cho access-list. Mỗi dòng trong prefix-list được kết hợp với

một chỉ số, tương tự như các dòng trong một chương trình máy tính. Nếu ta không nhập vào

Page 26: chuong6-bgp.pdf

Giáo trình khóa học BSCI Chƣơng 6 - BGP

125

chỉ số thứ tự (sequence-number), chỉ số này sẽ được tự động tạo ra, với mỗi lần tăng là 5. Các

số không được dùng, chẳng hạn như từ 1 đến 4 cho phép các dòng thêm vào về sau. Ta có thể

soạn thảo prefix-list bằng cách chỉ ra chỉ số dòng hoặc sequence-number. Khả năng này là

không có trong ACL.

Prefix-list hoạt động bằng cách tìm các prefix trong danh sách match với các prefix đang

kiểm tra. Nếu có một match xảy ra, route sẽ được dùng hay bị loại bỏ. Cụ thể, khi có một

prefix bị deny hoặc được permit, các luật sau sẽ được dùng:

- Nếu một route là permit, route sẽ được dùng

- Nếu một route là deny, route sẽ không được dùng

- Kết thúc của mọi prefix-list là một phát biểu ngầm định deny. Như vậy, nếu cho trước

một prefix mà prefix này không match với một entry trong prefix-list, prefix sẽ bị

deny theo luật mặc định.

- Nếu có nhiều entry trong một prefix list match với một prefix, entry có chỉ số

sequence number nhỏ nhất sẽ được dùng.

- Router bắt đầu tìm kiếm ở đỉnh của prefix-list, với chỉ số sequence-number bằng 1.

Khi một match là tìm thấy, quá trình tìm kiếm kết thúc. Thời gian xử lý sẽ được giảm

nếu các điều kiện match/deny được đặt ở đầu của danh sách. Điều này ngăn ngừa việc

phải xử lý các điều kiện hiếm khi gặp mỗi khi một route được kiểm tra.

- Các chỉ số sequence number tự động gia tăng theo mặc định. Để cấu hình sequence-

number, dùng thông số seq seq-value trong lệnh ip prefix-list.

- Chỉ số sequence number không cần thiết chỉ ra khi xóa một dòng trong cấu hình.

Làm thế nào để cấu hình BGP prefix-list?

Dùng lệnh sau để cấu hình prefix-list:

Router(config-router)#ip prefix-list prefix-list-name [seq seq-value]

{deny|permit} network/len [ge ge-value] [le le-value]

Bảng 6.3 - Chú giải các thông số cấu hình prefix-list

Thông số (Parameter) Mô tả (Description)

prefix-list-name Tên của prefix-list

[seq seq-value] Số thứ tự được gán đến tiêu chuẩn đang định nghĩa

{deny | permit} Hành động là từ chối hoặc cho phép đối với kết quả

Page 27: chuong6-bgp.pdf

Giáo trình khóa học BSCI Chƣơng 6 - BGP

126

network/len Chiều dài của prefix phải match

[ge ge] [le le_value] Chỉ ra chiều dài của prefix cần phải match

Để cấu hình một router dùng prefix-list như là filter trong distribute-list, dùng lệnh sau:

Router(config-router)#neighbor {ip address|peer-group} prefix-list

prefix-list-name {in|out}

6.19. Kết nối Internet dùng BGP

Do là giao thức ngoại vùng, BGP được dùng để kết nối đến Interner và định tuyến traffic

trên Internet. Do đó bạn cần phải biết một số tiêu chí thiết kế khi kết nối đến một nguồn tài

nguyên khổng lồ như vậy. Khi kết nối Internet, mạng của bạn tham gia vào một hệ thống

mạng rộng lớn, vì vậy bạn phải đảm bảo router của bạn không bị quá tải bởi lượng thông tin.

Phần này khảo sát hai vấn đề: nhu cầu cho các kết nối dự phòng (còn gọi là multihoming) và

nhu cầu ra quyết định sẽ có bao nhiêu thông tin nhận từ Internet.

6.20. Kết nối dự phòng ra Internet - Multihoming

Một lượng lớn các traffic trên Internet là để tìm kiếm tài nguyên. Traffic này không chỉ

bao gồm email và các phương tiên khác của giao tiếp mà còn truy cập thông tin từ Internet.

Người quản trị mạng phải phải thường xuyên kết nối tới Internet. Nếu có nhiều kết nối đến

Internet, người ta gọi đây là multi-homing. Nguyên nhân để có nhiều kết nối đến internet thì

khá rõ ràng. Nếu dùng nhiều kết nối dự phòng, ta còn có thể triển khai việc chia tải để cải tiến

performance của hệ thống mạng. Cơ chế multihoming có thể bao gồm vài kết nối đến cùng

một nhà cung cấp dịch vụ hoặc bao gồm nhiều mức dự phòng bằng cách kết nối đến một nhà

cung cấp dịch vụ ISP khác. Có các mối quan tâm sau đây khi kết nối đến nhiều hơn một ISP:

- Mỗi nhà cung cấp dịch vụ có thể không truyền cùng các routes đến từ Internet. Nếu

các nhà cung cấp dịch vụ gửi cùng một subnets của các routes được yêu cầu, sẽ có vấn

đề lớn phát sinh khi kết nối từ một trong những nhà cung cấp dịch vụ bị rớt.

- Nếu bạn kết nối đến hai nhà cung cấp dịch vụ khác nhau, vùng AS của bạn có thể trở

thành transit AS giữa các ISP. Điều này có thể xảy ra nếu một router trong AS của một

nhà cung cấp dịch vụ tìm thấy đường đi đến đích thông qua AS của một nhà ISP khác.

Và nếu AS của bạn cung cấp đường đi tốt nhất đến AS của nhà ISP kia.

Cấu hình ở mức ISP là giải pháp cho những mối quan tâm này và nó liên quan đến việc

thiết lập dịch vụ. Vì vậy, bạn nên đưa ra yêu cầu về multihome khi thoả thuận với các nhà

cung cấp dịch vụ sao cho các ISP nhận biết về nhu cầu cấu hình thêm cho bạn.

Page 28: chuong6-bgp.pdf

Giáo trình khóa học BSCI Chƣơng 6 - BGP

127

6.21. Nhận thông tin định tuyến từ Internet

Khi kết nối ra một hệ thống mạng lớn như Internet, vài kế hoạch phải được chuẩn bị kỹ.

Đặc biệt, người quản trị cần phải quyết định những updates nào là cần gửi ra thế giới bên

ngoài và các router bên trong một AS cần phải biết về thế giới bên ngoài như thế nào.

Có 3 giải pháp để chọn lựa route từ Internet:

- Chấp nhận chỉ default-route từ tất cả các nhà cung cấp dịch vụ.

- Chấp nhận một phần routes bên cạnh các default-routes từ các nhà cung cấp dịch vụ.

- Chấp nhận toàn bộ bảng định tuyến từ tất cả các nhà cung cấp dịch vụ.

Page 29: chuong6-bgp.pdf

Giáo trình khóa học BSCI Chƣơng 6 - BGP

128

Quá trình quyết định thì khá rõ ràng: Nó phải cân bằng giữa các tài nguyên mạng và thông

tin. Tổng số thông tin càng nhiều, càng nhiều routes có thể được chấp nhận từ các nhà cung

cấp dịch vụ.

Page 30: chuong6-bgp.pdf

129

Routes chấp nhận từ

Internet Bộ nhớ CPU

IGP chọn đƣờng đi

tốt nhất đến

default-route

BGP chọn lựa

đƣờng đi đến mạng

bên ngoài

Đƣờng đi ra bên

ngoài có thể hiệu

chỉnh thông qua các

thuộc tính BGP

AS có gửi

tất cả các

route đến

ISP?

ISP chọn

đƣờng đi

về AS?

Các default routes chỉ từ

các ISP

Thấp Thấp Yes Đi đến gateway gần

nhất đang quảng bá

đường đi

No Yes Yes

Chọn lựa route và

default route từ ISP

Trung

bình

Trung

bình

Yes Yes: thông thường

AS path là thuộc tính

chọn lựa đường đi ra

Internet

Yes Yes Yes

Nhận đầy đủ bảng định

tuyến từ ISP

Cao Cao Yes Yes: thông thường

thuộc tính AS_PATH

giúp chọn lựa đường

đi ra Internet

Yes Yes Yes

Page 31: chuong6-bgp.pdf

Chƣơng 6 - BGP

130

6.22. Dùng thuộc tính Local Preference và trọng số weight

Thuộc tính trọng số weight sẽ chọn lựa đường đi ra khỏi router khi có nhiều đường đi đến

cùng một địa chỉ đích. Trọng số càng cao, đường đi càng tốt. Lệnh này có tầm vực cục bộ và

thuộc tính này sẽ không truyền đến các router khác. Thuộc tính này cũng là của riêng Cisco.

Để cấu hình trọng số weight, dùng lệnh sau:

Router(config-router)#neighbor { ip-address | peer-group-name} weight

weight

6.23. Redistribution giữa IGP và BGP

Trong trường hợp mạng không phải là một ISP, sẽ có tình huống là mạng đó đang chạy

một IGP trong một AS. Các đường đi có thể được đưa vào bảng định tuyến từ IGP vào BGP

hoặc từ BGP vào IGP.

6.23.1. Quảng bá route từ IGP vào BGP

Đầu tiên, hãy xem xét quá trình quảng bá route vào BGP. Có ba cách để quảng bá bảng

BGP với các IGP routes:

- Dùng lệnh network: Lệnh này dùng để quảng bá những routes có trong bảng định

tuyến.

- Redistributing static: Mặc dù bất cứ tuyến đường tĩnh nào có thể được redistribute vào

BGP, các định tuyến tĩnh thường được dùng để tạo ra các supernet. Định tuyến tĩnh là

tóm tắt các địa chỉ, ví dụ các địa chỉ lớp C với giá trị prefix-mask bằng 16 bit.

Summary-route sẽ chỉ về next-hop là null0. Khi này sẽ có khả năng tạo ra các lỗ đen

(black-hole) có thể làm mất route. Cisco khuyến cáo rằng ta nên dùng lệnh aggregate-

address thay cho cách dùng định tuyến tĩnh với null0.

- Redistribute các route từ IGP: cách này không được khuyến cáo vì sẽ phụ thuộc nhiều

vào bảng BGP. Các route iBGP sẽ bị loại bỏ, nếu không routing loop sẽ xảy ra khi các

BGP routes được đưa vào IGP.

6.23.2. Quảng bá route từ BGP vào IGP

Phân phối các routes từ Internet vào một hệ thống mạng nhỏ là không hiệu quả. Điều này

là do Internet quá rộng lớn và và do kích thước khổng lồ của bảng định tuyến của các router

trên Internet. Khi cả khi dùng rất nhiều phép summary và lọc, vẫn có rất nhiều thông tin phải

truyền tải. Bởi vì ISP thường chạy eBGP và iBGP rất nhiều, các ISP thường chạy BGP cho

các routes bên ngoài và dùng IGP cho các routes bên trong. Không có yêu cầu phải dùng

Page 32: chuong6-bgp.pdf

Chƣơng 6 - BGP

131

redistribution. Chức năng synchronization thì không cần thiết trong kiểu mạng này vì IGP vẫn

chạy theo kiểu full-mesh. Nếu dùng full-mesh hoặc RR, luật synchronization có thể được tắt

đi. IGP cần phải mang những routes đi qua các AS đến các BGP khác. Ngoài ra, bất cứ thiết

bị nào muốn kết nối đến Internet cần phải có một default-route hoặc các route riêng lẽ đến

chuyển traffic. Lúc này nên cấu hình các cơ chế route-filering, nếu không bảng định tuyến sẽ

bị quá tải.