Tải bản đầy đủ (.pdf) (32 trang)

Chương 6: Giao thức định tuyến BGP

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (675.63 KB, 32 trang )

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
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 để
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.
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.
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.
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
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.

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)
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.
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ì đó).
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.
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
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
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.
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.

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

×