Tải bản đầy đủ (.doc) (71 trang)

Giao thức định tuyến bgp (border gateway protocol)

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 (825.58 KB, 71 trang )

LỜI CẢM ƠN
Trước hết tơi xin bày tỏ lịng biết ơn chân thành đến Th.s Trần Quang Đạt,
người đã tận tình hướng dẫn, giúp đỡ và tạo điều kiện thuận lợi cho tôi trong thời gian
thực hiện đề tài. Xin gửi lời cảm ơn chân thành, lòng biết ơn sâu sắc tới các thầy cô, bố
mẹ và tất cả các bạn trong khoa Điện tử viễn thông - ĐH Công Nghệ đã tận tình giúp
đỡ, động viên và tạo điều kiện để tôi thực hiện tốt đề tài này.
Mặc dù đã hết sức cố gắng xong chắc chắn không tránh khỏi những thiếu sót.
Em rất mong nhận được sự thơng cảm và chỉ bảo tận tình của q thầy cơ, các anh chị
và tất cả các bạn.

Hà Nội, tháng 5 năm 2008.
Lê Vũ Thắng

1


MỤC LỤC

LỜI CẢM ƠN................................................................................................................ 1
CÁC THUẬT NGỮ TIẾNG ANH................................................................................3
Lời giới thiệu.................................................................................................................4
CHƯƠNG 1................................................................................................................... 5
GIỚI THIỆU TỔNG QUAN VỀ GIAO THỨC BGP....................................................5
1.1 Giới thiệu.............................................................................................................5
1.2 Sử dụng BGP trong định tuyến............................................................................5
CHƯƠNG 2................................................................................................................... 7
CÁC THUỘC TÍNH VÀ THUẬT NGỮ SỬ DỤNG TRONG BGP.............................7
2.1 Định nghĩa Autonomous System (AS).................................................................8
2.2 Thuộc tính Autonomous system path (AS_PATH)..............................................9
2.3 Thuộc tính WEIGHT.........................................................................................11
2.4 Thuộc tính Local Preference (LOCAL_PREF)..................................................13


2.5 Thuộc tính Metric hay MULTI_EXIT_DISC (MED)........................................14
2.6 Thuộc tính ORIGIN...........................................................................................15
2.7 Thuộc tính NEXT_HOP.....................................................................................15
2.8 Thuộc tính Community......................................................................................17
CHƯƠNG 3................................................................................................................. 18
HOẠT ĐỘNG CỦA BGP............................................................................................18
3.1 Hoạt động của EBGP.........................................................................................18
3.1.1 Khảo sát hoạt động của EBGP...................................................................18
3.1.2 Cấu trúc thông báo của BGP.......................................................................19
3.2 Quảng bá tuyến trong BGP................................................................................25
3.2.1 Quảng bá tuyến sử dụng câu lệnh Network.................................................26
3.2.2 Quảng bá tuyến sử dụng redistribute...........................................................33
3.3 Hoạt động của IBGP..........................................................................................37
3.3.1 Khảo sát hoạt động của IBGP.....................................................................37
3.3.2 Giao diện loopback trong IBGP.................................................................48
3.3.3 Route-Reflector (RR)..................................................................................52
3.3.4 Phân cấp định tuyến trong các AS (Confederations)...................................57
3.4 Giải thuật định tuyến trong BGP........................................................................60
3.5 Sự tóm tắt tuyến trong BGP...............................................................................61
3.6 Quản lí lưu lượng trong BGP.............................................................................67
KẾT LUẬN.................................................................................................................70
TÀI LIỆU THAM KHẢO...........................................................................................71

2


CÁC THUẬT NGỮ TIẾNG ANH
AGGREGATE
AS_PATH


Q trình tóm tắt tuyến
Thuộc tính AS_PATH

ATTRIBUTE

Thuộc tính

AUTONOMOUS SYSTEM
BORDER GATEWAY PROTOCOL

Vùng tự trị
Giao thức BGP

COMMUNITY
CONFEDERATION

Thuộc tính COMMUNITY
Sự phân chia AS nhằm giảm số tuyến

EBGP

Giao thức BGP chạy giữa các AS

EGPs

Các giao thức sử dụng giữa các AS

IBGP

Giao thức BGP chạy trên một AS


IGPs

Các giao thức sử dụng trong một AS

LOCAL_PREF

Thuộc tính LOCAL_PREF

MED
NEXT_HOP

Thuộc tính MED
Thuộc tính NEXT_HOP

ORIGIN

Thuộc tính ORIGIN

OSPF

Giao thức định tuyến OSPF

RIP

Giao thức định tuyến RIP

ROUTE_REFLECTOR

Phản xạ tuyến nhằm làm giảm số tuyến

trong BGP
Router có một phiên TCP với một
router khác hoạt động như một routereflector-server
Một cluster là một nhóm bao gồm routereflector và clients
Thuộc tính WEIGHT

ROUTE_REFLECTOR_CLIENT

ROUTE_REFLECTOR_CLUSTER
WEIGHT

3


Lời giới thiệu
Chúng ta đang sống trong thế kỉ 21, kỉ nguyên của khoa học kĩ thuật và công
nghệ hiện đại. Vào thời điểm này, ngành công nghiệp công nghệ thơng tin và chiếc
máy vi tính nắm giữ một vai trị khơng thể thiếu trong mọi lĩnh vực hoạt động của con
người. Một chiếc máy tính để bàn hoạt động độc lập là không đủ, con người muốn liên
kết các máy tính lại với nhau thành mạng máy tính để tận dụng sức mạnh xử lí, trao
đổi thơng tin và chia sẻ tài nguyên. Khi mạng máy tính tăng lên cả về quy mô và số
lượng, con người lại muốn liên kết các mạng máy tính này lại với nhau. Làm thế nào
để liên kết các máy tính lại với nhau ? Làm thế nào để thơng tin có thể được trao đổi
giữa các mạng máy tính cách nhau hàng trăm cấy số ? Một bài toán cần được giải để
trả lời những câu hỏi trên, đó là bài tốn định tuyến.
“Định tuyến” hiểu đơn giản là “tìm đường đi”. Trong truyền thơng máy tính định
tuyến nghĩa là chỉ ra đường đi để thơng tin có thể di chuyển từ nguồn đến đích theo
cách tốt nhất. Khơng thể phủ nhận tầm quan trọng của định tuyến trong truyền thơng
máy tính. Khơng có định tuyến, các máy tính khơng thể trao đổi thông tin với các
mạng khác.

Thiết bị thực hiện chức năng định tuyến trên mạng chủ yếu là các Router. Để có
thể thực hiện chức năng định tuyến, các Router phải trao đổi thông tin về tuyến với
nhau để xây dựng nên các tuyến đường. Tập hợp các qui tắc trao đổi thông tin định
tuyến giữa các thiết bị định tuyến với nhau gọi là giao thức định tuyến.
Đối tượng nghiên cứu của đề tài này là giao thức định tuyến BGP (Border
Gateway Protocol) – giao thức được sử dụng hết sức rộng rãi trên mạng Internet hiện
nay. Mục đích của đề tài là tìm hiểu hoạt động của giao thức định tuyến BGP và cách
thức triển khai giao thức định tuyến BGP trên các Router.
Do những hạn chế về mặt thời gian và thiết bị, một số nội dung liên quan không
được đưa vào đề tài như: Sự hoạt động và triển khai BGP trên IPv6. Mặc dù đã hết sức
cố gắng xong đề tài không tránh khỏi những thiếu sót vì vậy rất mong nhận được ý
kiến đóng góp, sự chỉ bảo tận tình của các thầy cơ và tất cả các bạn.

4


CHƯƠNG 1
GIỚI THIỆU TỔNG QUAN VỀ GIAO THỨC BGP
1.1 Giới thiệu.
BGP, viết tắt của từ tiếng Anh Border Gateway Protocol, là giao thức định tuyến
nịng cốt trên Internet. Nó hoạt động dựa trên việc cập nhật một bảng chứa các địa chỉ
mạng và cho biết mối liên kết giữa các hệ tự trị. BGP là giao thức vector đường đi
(path vector). Khác với các giao thức định tuyến khác như RIP (vector độ dài), OSPF
(trạng thái liên kết), BGP định tuyến bằng một tập các chính sách và luật. Phiên bản
BGP hiện nay là phiên bản 4, dựa trên RFC 4271. BGP hỗ trợ định tuyến liên vùng phi
lớp (CIDR Classless Inter-Domain Routing) và dùng kỹ thuật kết hợp tuyến để giảm
kích thước bảng định tuyến (ví dụ nếu một mạng chiếm 255 địa chỉ lớp C từ
203.162.0.0/24 - 203.162.254.0/24 thì chỉ dùng 1 địa chỉ 203.162.0.0/16 để định danh
mạng). Ngoài việc sử dụng BGP giữa các AS, BGP cũng có thể được sử dụng trong
các mạng riêng quy mơ lớn do OSPF không đáp ứng được. Một lý do khác là dùng

BGP để hỗ trợ kết nối đến nhiều nhà cung cấp dịch vụ. Đa số người sử dụng Internet
thường không sử dụng BGP một cách trực tiếp. Chỉ có các nhà cung cấp dịch vụ
Internet sử dụng BGP để trao đổi đường đi. BGP là một trong những giao thức quan
trọng nhất đảm bảo tính kết nối của Internet.
Như đã nói ở trên 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. BGP là giao thức khơng chỉ tìm
ra một tuyến đ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 mạng. Các giao thức như EIGRP, RIP, OSPF và ISIS sẽ tìm ra tuyến mà người
quản trị cần.
1.2 Sử dụng BGP trong định tuyến
Lựa chọn giao thức định tuyến phù hợp cho một mạng là việc quan trọng và đóng
góp vào sự ổn định của hệ thống. Khi quyết định sử dụng BGP cho việc định tuyến
người quản trị cần giải đáp được một số câu hỏi hết sức cần thiết

5


Câu hỏi đầu tiên cần được các nhà quản trị đặt ra là: Sử dụng BGP cho việc định
tuyến khi nào ?
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ì.
Mặc dù BGP là giao thức phức tạp tuy nhiên các trường hợp dưới đây được khuyến
cáo cho việc sử dụng giao thức BGP để định tuyến :
- Một AS cho phép chuyển tiếp gói tin qua nó để đến các AS khác
- Một AS có nhiều kết nối đến AS khác
- Lưu lượng thơng tin vào ra trên AS đó cần được xử lí
Các khuyến cáo trên được rút ra từ các đặc tính mà BGP sử dụng để định tuyến.
Các đặc tính đó sẽ được trình bày kĩ ở chương sau.
Để tránh việc sử dụng không hiệu quả giao thức định tuyến BGP câu hỏi thứ hai

mà các nhà quản trị cần quan tâm là: Không nên sử dụng BGP cho việc định tuyến khi
nào ? BGP là một giao thức khá phức tạp và được sử dụng trên internet và trong các
cơng ty lớn. Vì lí dó đó BGP được khuyến cáo là không nên sử dụng khi tồn tại một
trong các điều kiện dưới đây :
- Chỉ có một kết nối đơn đến Internet hoặc đến AS khác
- Chính sách định tuyến và lựa chọn tuyến khơng liên quan gì đến AS của
người sử dụng
- Tài nguyên mạng là có giới hạn: tài nguyên về bộ nhớ và khả năng xử lí của
CPU trên router.
- Quản trị mạng thiếu kinh nghiệm, hiểu biết đối với giao thức BGP trong việc
chọn, lọc tuyến
- 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. Giải pháp để xử lí vấn đề khi khơng sử dụng BGP để
định tuyến là sử dụng tuyến tĩnh (static route)
Việc trả lời tốt hai câu hỏi trên sẽ góp phần giúp cho các nhà quản trị lựa chọn và
sử dụng hiệu quả giao thức BGP trong việc định tuyến cho hệ thống mạng của mình

6


CHƯƠNG 2
CÁC THUỘC TÍNH VÀ THUẬT NGỮ SỬ DỤNG TRONG BGP
Các giao thức định tuyến IGPs quảng bá một mạng với các tham số định tuyến:
metric,cost. Mỗi giao thức IGPs có một tham số để lựa chọn tuyến đường tới đích khác
nhau (RIP sử dụng đếm số hop, OSPF sử dụng tham số cost = 100000000/BW…).
Nếu có nhiều đường dẫn đến đích với metric hoặc cost khác nhau thì đường dẫn với
metric hoặc cost thấp nhất phải được lựa chọn. BGP không phải là giao thức ngoại lệ
và cũng cần các tham số để lựa chọn tuyến tốt nhất đến đích. Các tham số trong BGP
được gọi là thuộc tính (Attributes).
BGP định tuyến 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 đó tuyến đượ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
định tuyến 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 4 nhóm: nhóm well-known mandatory , well-known discretionary, optional
transitive và optional nontrasitive. Các thuộc tính đó được mơ tả kĩ trong bảng
dưới đây :
Nhóm

MƠ TẢ
Các thuộc tính này là bắt buộc và được công nhận bởi tất cả
Well-known mandatory
các router BGP
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
Well-known Discretionary 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.
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
Optional Transitive
đầy đủ cập nhật này đến router kế tiếp. Các thuộc tính sẽ
khơng thay đổi khi đi qua router nếu thuộc tính này khơng
được cơng nhận bởi router.
Các thuộc tính này bị loại bỏ nếu cập nhật mang thuộc tính
này đi vào router mà router khơng hiểu hoặc khơng cơng
Optional Nontransitive
nhận thuộc tính. Các thuộc tính này sẽ khơng truyền tới các
BGP.


7


Bốn nhóm trên mơ tả một cách tổng qt các thuộc tính của BGP. Ứng với mỗi nhóm
đó ta sẽ đi sâu nghiên cứu các đặc tính cụ thể của từng loại thuộc tính trong nhóm .
Attribute Name

Attribute Type

Description

AS_PATH

Well-known
mandatory

Danh sách các AS mà tuyến được quảng bá
thơng qua nó

WEIGHT

Cisco defined
attribute

Được sử dụng để định tuyến trong BGP

LOCAL_PREF

Well-known

discretionary

Được sử dụng để chọn tuyến, thường được
sử dụng trong một AS

MULTI_EXIT_DISC

Optional
nontransitive

Được sử dụng để chọn tuyến, thường được
sử dụng giữa các AS

ORIGIN

Well-known
mandatory

Chỉ ra các tuyến BGP được học như thế nào
IGP— Từ câu lệnh Network
EGP— Từ EBGP hàng xóm
Incomplete— Từ redistribution

NEXT_HOP

Well-known
mandatory

EBGP— Địa chỉ


Community

của giao diện được sử
dụng để truyền thơng với hàng xóm bên
khác
IBGP— EBGP next hop được gửi và không
thay đổi khi tới các IBGP hàng xóm.

Optional transitive Một số được sử dụng cho việc áp một chính
sách đến một nhóm các tuyến.

2.1 Định nghĩa Autonomous System (AS)
Là một tập hợp các mạng có cùng chính sách định tuyến và thường thuộc quyền
quản lý, khai thác của một chủ thể. Mỗi nhà cung cấp dịch vụ internet (ISP) có thể coi
là một AS. Việc kết nối giữa các AS này thường được sử dụng BGP

8


Hình 1: Kết nối giữa các AS
2.2 Thuộc tính Autonomous system path (AS_PATH)
Thuộc tính này được sử dụng cho việc chọn tuyến và chống loop trong BGP.
AS_PATH thuộc vào nhóm well-known mandatory, cần được quảng bá và hiểu bởi tất
cả các router hàng xóm. Mỗi nhà cung cấp dịch vụ đều được gán một số định danh
duy nhất autonomous system (AS) trong khoảng từ 1 đến 64511. Các số AS này đã
được đăng kí và gán tương tự như việc cung cấp các dải địa chỉ IP . Các nhà cung cấp
dịch vụ cũng có thể định nghĩa các vùng tự trị AS bằng cách sử dụng các số AS riêng
có phạm vi cho phép trong khoảng 64512 đến 65534. Tuy nhiên các số AS riêng này
không được quảng bá ra internet và chỉ được sử dụng trong vùng AS đã tạo ra nó. Các
AS riêng tương tự như địa chỉ IP riêng

Chúng ta xét một ví dụ dưới đây với các nhà cung cấp dịch vụ được gán các số
AS 1, 2, 3 và 4. Nhà cung cấp dịch vụ với AS bằng 1 quảng bá mạng và netmask của
mạng 156.26.32.0/24 đến nhà cung cấp dịch vụ 2 với AS là 2.

Hình 2: thuộc tính AS_PATH

9


Khi tuyến được quảng bá được nhận bởi AS 2, AS 2 biết mạng 156.26.32.0 nằm
trong AS 1 bởi vì chỉ có 1 số AS duy nhất nằm trong thuộc tính AS_PATH và được
đặt bằng 1. Khi AS 2 quảng bá tuyến 156.26.32.0/24 đến AS 3, AS 2 sẽ được bổ xung
và được đặt vào AS_PATH. Kết quả sau khi nhận được quảng bá từ AS 2 thuộc tính
AS_PATH sẽ có giá trị là 2 1 với dấu cách giữa các số AS. AS 3 cũng biết rằng mạng
được quảng bá nằm trong AS 1 (do số cuối trong thuộc tính AS_PATH được đặt bằng
1 ) và mạng đó được quảng bá thông qua AS 2. AS 3 bổ xung số AS của nó vào thuộc
tính AS_PATH và quảng bá tuyến đến AS 4. AS 4 nhận thuộc tính quảng bá với
AS_PATH là 3 2 1 cho mạng 156.26.32.0/24
Nếu tất cả cá thuộc tính khác của BGP là bằng nhau, router với AS_PATH ngắn
nhất sẽ được sử dụng làm tham số để lựa chọn tuyến. Trong ví dụ trên ta chỉ quảng bá
cho mạng 156.26.32.0/24 và mặc định nó sẽ có đường dẫn tối ưu đến đích. Nếu có
nhiều tuyến, thuộc tính AS_PATH sẽ được sử dụng để lựa chọn tuyến tốt nhất tới đích.
Dưới đây là một ví dụ. Trong hình 3, AS 4 nhận 2 sự quảng bá cho mạng
156.26.32.0/24. Quảng bá từ AS 3 có độ dài AS là 3 và từ AS 5 có độ dài là 2. Vì thế
AS 4 chỉ quan tâm đến tuyến thơng qua AS 5 và lựa chọn nó là tuyến tốt nhất để đến
đích. Tuyến tốt nhất này sẽ được đặt trong bảng định tuyến.

Hình 3: Lựa chọn tuyến thơng qua thuộc tính AS_PATH
AS_PATH là danh sách các số AS được quảng bá . Tham số này tương tự việc
đếm số hop trong RIP vì số AS cũng được sử dụng để quyết định tuyến tốt nhất đến

đích (tương tự như hop count).
Ngoài việc AS_PATH được sử dụng cho việc lựa chọn tuyến tốt nhất đến đích.
BGP cịn sử dụng thuộc tính AS_PATH để chống loop.

10


Trong hình 4, AS 4 quảng bá tuyến tốt nhất cho mạng 156.26.32.0/24 đến AS 6.
AS 6 quảng bá tuyến này đến AS 1 với AS_PATH là 6 4 5 1 . Khi AS 1 nhận quảng bá
từ AS 6 tuyến này sẽ bị từ chối vì AS 1 đã nằm trong AS_PATH. Các BGP routers từ
chối bất kì sự quảng bá nào mà chứa đựng số AS của chúng.

Hình 4: BGP chống loop sử dụng thuộc tinh AS_PATH
2.3 Thuộc tính WEIGHT
Weight là thuộc tính khơng được chỉ định trong BGP . Nó là thuộc tính đặc biệt
được phát triển trên các thiết bị của cisco và là thuộc tính do cisco định nghĩa. Tham
số này cũng là một trong các thuộc tính được sử dụng để quyết định tuyến tốt nhất tới
đích. Trong hình 5, AS 2 nhận 2 sự quảng bá cho mạng 156.26.32.0/24. Quảng bá từ
AS 3 có AS_PATH dài là 3 và quảng bá từ AS 1 có độ dài là 2. AS 2 sẽ lựa chọn
tuyến thơng qua AS 1 vì qua đó AS_PATH sẽ là ngắn nhất.

11


Hình 5 : AS 2 lựa chọn đường đến 156.26.32.0/24 thơng qua AS 1 vì nó có thuộc tính
AS_PATH tốt nhất
Tuy nhiên nếu muốn router trong AS 2 sử dụng tuyến thông qua AS 3 thay thế
cho AS 1 ta sử dụng thuộc tính weight. Weight là thuộc tính được biểu diễn bằng 16
bit và giá trị trong khoảng 0 đến 65535. Router được sử dụng thuộc tính Weight để chỉ
định tuyến tới đích. Việc lựa chọn này thường được sử dụng khi có nhiều đường dẫn

tốt nhất đến cùng 1 đích. Trọng số Weight sẽ được ưu tiên hơn

Hinh 6 : Chọn tuyến thơng qua thuộc tính weight

12


Thuộc tính weight chỉ có giá trị trên router đó và khơng quảng bá ra các router
hàng xóm chạy BGP. Các tuyến BGP có weight mặc định là 32768
2.4 Thuộc tính Local Preference (LOCAL_PREF)
LOCAL_PREF là thuộc tính tương tự như weight. Khi có nhiều hơn một tuyến
tới một đích, tuyến có thuộc tính LOCAL_PREF cao nhất (khi các weight bằng nhau)
sẽ được lựa chọn là tuyến tốt nhất. Mặc định LOCAL_PREF có giá trị 100 và giá trị
cao hơn sẽ được ưu tiên sử dụng là tham số quyết định tuyến tới đích (khi weight bằng
nhau). LOCAL_PREF là một số 32 bit có giá trị từ 0 – 4294967295.
Trong hình 7, Router A và Router B có 2 đường đến mạng 156.26.32.0/24.
Router A sử dụng giá trị LOCAL_PREF mặc định là 100. Router B được thiết lập giá
trị LOCAL_PREF là 200 vì thế Router B sẽ lựa chọn tuyến qua AS 3. Khơng giống
như thuộc tính weight LOCAL_PREF được quảng bá trong 1 AS. Router A nhận
quảng bá cho mạng 156.26.32.0/24 từ Router B với LOCAL_PREF là 200. Vì thế
Router A sử dụng tuyến thông qua AS 3 để đạt tới mạng 156.26.32.0/24

Hình 7: Thuộc tính LOCAL_PREF

13


2.5 Thuộc tính Metric hay MULTI_EXIT_DISC (MED)
Thuộc tính Weight được sử dụng để quyết định tuyến từ một router.
LOCAL_PREF được sử dụng để lựa chọn tuyến rời khỏi 1 autonomous system. Thuộc

tính MULTI_EXIT_DISC (Multi-exit discriminator hay MED) được sử dụng để quyết
định tuyến giữa các AS. MED cũng là một số có giá trị 32 bit tuy nhiên thuộc tính này
có một điểm khác biệt với thuộc tính LOCAL_PREF đó là giá trị thấp hơn sẽ được ưu
tiên thay vì giá trị cao sẽ được ưu tiên để chọn tuyến như trong LOCAL_PREF.
Dưới đây là một ví dụ chỉ ra việc lựa chọn tuyến dùng MED. Trong Hình 8, AS 5
quảng bá mạng 156.26.32.0/24 và có 2 đường để tới được mạng 156.26.32.0/24 từ AS
1. AS 5 muốn AS 1 sử dụng tuyến bên phải cho lưu lượng từ AS 1 đến AS 5. AS 5
thiết lập MED bên trái có giá trị cao hơn giá trị mặc định là 0 và quảng bá giá trị này
đến AS 1

Hình 8 : Sử dụng thuộc tính MED để chọn tuyến
Nếu tất cả các thuộc tính khác của BGP là bằng nhau. AS 1 sẽ lựa chọn tuyến
bên phải đến AS 5 vì nó có giá trị MED thấp hơn. Độ ưu tiên của các thuộc tính trong
BGP được quyết định lần lượt là WEIGHT, LOCAL_PREF,AS_PATH và cuối cùng
là MED.
Khi 3 tham số trên là bằng nhau MED sẽ được sử dụng để chọn tuyến tốt nhất
đến đích

14


2.6 Thuộc tính ORIGIN
Thuộc tính ORIGIN chỉ ra kiểu tài nguyên của BGP trong bảng BGP routing. Có
ba cách giúp cho BGP có thể học tuyến, trong các thiết bị của cisco ba cách đó là :
Sử dụng câu lệnh network
Từ EBGP hàng xóm
Thơng qua redistribution
Câu lệnh network được sử dụng để quảng bá tuyến trong bảng định tuyến đến các
BGP hàng xóm. Các tuyến học được thơng qua câu lệnh network có thuộc tính
ORIGIN đặt là IGP và chỉ ra rằng tuyến đó là tuyến nằm trong cùng AS.

Có hai kiểu kết nối BGP. Kiểu thứ nhất là kiểu kết nối giữa cá router chạy BGP
trong cùng 1 AS. Kiểu này được gọi là Internal BGP (IBGP). Kiểu kết nối thứ 2 là
kiểu kết nối giữa các autonomous-system khác nhau. Kiểu này được gọi là External
BGP (EBGP)

Hình 9 : Các tuyến IBGP và EBGP
Các tuyến được học từ EBGP hàng xóm có thuộc tính ORIGIN là EGP. Các
tuyến redistributed trong BGP có thuộc tính ORIGIN là incomplete. Các tuyến IGP
được ưu tiên thông qua các tuyến EGP và các tuyến EGP được ưu tiên thơng các các
tuyến incomplete. Nói cách khác các tuyến EBGP được ưu tiên, sử dụng thơng qua các
tuyến IBGP
2.7 Thuộc tính NEXT_HOP
Khi một router quảng bá một tuyến đến router EBGP hàng xóm, thuộc tính
NEXT_HOP được đặt là địa chỉ IP của giao diện kết nối đến hàng xóm đó. Đặc biệt
nếu router quảng bá một tuyến được học thông qua EBGP đến IBGP hàng xóm, thuộc
tính NEXT_HOP sẽ khơng được thay đổi.

15


Hình 10 : Thuộc tính NEXT_HOP
Khi một router nhận một tuyến từ một BGP hàng xóm, thuộc tính đầu tiên nó
kiểu tra là NEXT_HOP. Nếu NEXT_HOP khơng đạt được ( khơng nằm trong bảng
định tuyến), tuyến đó sẽ bị từ chối. EBGP sử dụng kết nối vật lí trực tiếp trên các giao
diện vật lí vì thế NEXT_HOP sẽ được đặt trong bảng routing giống như giao diện kết
nối trực tiếp. Các IBGP hàng xóm khơng có kết nối trực tiếp. Trong ví dụ hình 10
router B chấp nhận tuyến từ router A vì NEXT_HOP là mạng kết nối trực tiếp với nó.
Router C sẽ chấp nhận tuyến từ router B nếu mạng NEXT_HOP có trong bảng định
tuyến của router C.
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 hàng xóm khác
trong cùng một AS thì nó lại tiếp tục dùng router ngồ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.

Hình 11: Hoạt động của router với thuộc tính NEXT_HOP

16


Xét ví dụ hoạt động của router với thuộc tính NEXT_HOP trong hình 11
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 router D thay đổi địa chỉ
nguồn thành đị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 đa
truy cập, 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 thông tin cập nhật tuyến không thay đổi.
Bước 3: Router B biết router A là NEXT_HOP của mạng 192.33.33.0
Do tính chất này mà bắt buộc các IBGP hàng xóm phải có tuyến đến mạng
NEXT_HOP trong bảng định tuyến
2.8 Thuộc tính Community
Đâ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 hàng xóm xử lý. (Tuy nhiên, nếu nó hiểu thì sẽ khơng bao giờ gửi thuộc tính đó
cho router hàng xóm trừ khi được chỉ định làm thêm điều gì đó).

17



CHƯƠNG 3
HOẠT ĐỘNG CỦA BGP
3.1 Hoạt động của EBGP
3.1.1 Khảo sát hoạt động của EBGP
Các router BGP ( EBGP ) là hàng xóm của nhau có kết nối trực tiếp. Chúng ta có
thể thiết lập cấu hình giữa các router A và B và kiểm tra sự hoạt động giữa các router
đó. Xét sự hoạt động của 2 router dưới đây :

Hình 12: Cấu hình hoạt động EBGP
Trước tiên chúng ta sẽ thiết lập các giao diện loopback trên các router. Giống như
trong OSPF địa chỉ IP được gán trên giao diện loopback được sử dụng như là ID của
các router chạy BGP
Router A
interface Loopback0
ip address 172.16.15.254 255.255.255.255
Router B
interface Loopback0
ip address 172.16.16.254 255.255.255.255

Các câu lệnh trên giúp thiết lập địa chỉ IP trên giao diện loopback. Bước tiếp theo là
bước quan trọng và cho phép khởi tạo một quá trình BGP trên các router.

18


Router A
router bgp 1
neighbor 172.16.15.162 remote-as 2
Router B

router bgp 2
neighbor 172.16.15.161 remote-as 1

Các câu lệnh router bgp as-number cho phép thực thi một tiến trình BGP trên
router. Chỉ một số AS có thể được gán tới nhà cung cấp dịch vụ, vì thế chỉ một tiến
trình BGP được thiết lập trên một router. Câu lệnh neighbor neighbor-ip-address cho
phép BGP hoạt động trên giao diện đó. Giao diện chạy BGP được quyết định bởi bảng
IP routing. Bảng này quyết định giao diện được sử dụng để có thể đạt tới được địa chỉ
IP của hàng xóm. Với EBGP các hàng xóm có kết nối trực tiếp với nhau vì thế giao
diện được sử dụng chỉ có một kết nối trực tiếp đến hàng xóm của nó.
3.1.2 Cấu trúc thơng báo của BGP
Các giao thức RIP, IGRP, EIGRP và OSPF sử dụng câu lệnh network để thực
hiện cấu hình cho phép định tuyến, quảng bá mạng, netmask. Ngồi ra nó cịn cho
phép các giao thức IGPs khám phá, nhận biết các router hàng xóm. Tuy nhiên với
EBGP do đã chỉ rõ các router hàng xóm nên khơng cần phải có bước tìm, nhận biết
hàng xóm như ở các giao thức IGPs nữa. Vì thế có thể thiết lập một mối quan hệ hàng
xóm mà khơng cần quảng bá bất kì tuyến nào . Khi EBGP được cho phép chạy trên
một giao diện, các router sẽ cố gắng thực hiện một tiến trình thiết lập mối quan hệ theo
các bước dưới đây :
 Idle State: Ở trạng thái này router sẽ khởi tạo một kết nối TCP với BGP hàng
xóm
 Connect State : Giai đoạn này router khởi tạo sẽ chờ cho kết nối TCP được
thực hiện với router BGP hàng xóm. Nếu một kết nối TCP được thực hiện , router sẽ
gửi một thông báo OPEN và chuyển sang trạng thái OpenSent. Nếu hết thời gian chờ
router vẫn không thiết lập được kết nối nó sẽ chuyển tiếp sang trạng thái Active
 Active State: Ở giai đoạn này router vẫn chờ cho một kết nối được thực hiện
với router hàng xóm. Nếu kết nối được thực hiện nó sẽ chuyển sang trạng thái Connect

19



 OpenSent State : Ở giai đoạn này router sẽ chờ một thơng báo OPEN từ BGP
hàng xóm. Nếu xảy ra lỗi nó sẽ chuyển sang chế độ Idle State. Nếu một thông báo
OPEN được nhận từ router BGP hàng xóm thì nó sẽ chuyển sang trạng thái
OpenConfirm.
 OpenConfirm State: Giai đoạn này router chờ một thông báo KEEPALIVE từ
BGP hàng xóm. Khi một KEEPALIVE được nhận nó sẽ chuyển sang trạng thái
Established.
 Established State: Giai đoạn này các router sẽ trao đổi thông tin định tuyến
với nhau
Định dạng chung phần tiêu đề của thông báo BGP bao gồm các trường thông tin
sau : trường đánh dấu 16 byte, trường độ dài 2 byte và trường kiểu 1 byte.

Hình 13: Định dạng chung phần tiêu đề của thông báoBGP
Tùy từng kiểu thơng báo mà có thể có hoặc khơng có phần dữ liệu sau phần tiêu
đề . Ví dụ thơng báo KEEPALIVE không chứa dữ liệu mà chỉ chứa phần tiêu đề
- Trường đánh dấu (Marker field): Trường này có độ dài 16 byte được sử dụng
cho mục đích chứng thực các thơng báo BGP đến hoặc để dị tìm sự mất đồng bộ giữa
2 hàng xóm. Trường này có thể có 1 hoặc 2 dạng :
+ Nếu kiểu thơng báo của BGP là OPEN hoặc OPEN không sử dụng chứng
thực thì trường đánh dấu này phải được đặt tất cả bằng 1
+ Ngược lại trường này sẽ được đặt dựa vào việc tính tốn các kĩ thuật sử
dụng để chứng thực

20



×