You are on page 1of 10

Qúa trình thỏa thuận BGP

- Qúa trình thỏa thuận BGP gồm nhiều giai đoạn, có thể mô tả theo khái niệm của máy
hữu hạn trạng thái.
- Máy hữu hạn trạng thái (FSM - Finite State Machine) của BGP mô tả các trạng thái và
các sự kiện mà một router BGP có thể trải qua trong quá trình thiết lập và duy trì kết nối
với các peer của mình

Dưới đây là các trạng thái cơ bản trong máy hữu hạn trạng thái của BGP:
Idle: idle là trạng thái đầu tiên của một kết nối BGP, BGP chờ sự kiện bắt đầu, nó thường
là khởi tạo bởi nhà quản trị hoặc là các sự kiện (event) trong mạng. Tại sự kiện khởi tạo,
tạo các thông tin cần thiết và reset lại các timer : holdtime… Idle có thể được chuyển về
từ một trạng thái khác trong trường hợp có lỗi.
Connect: trong trạng thái connect : BGP chờ cho kết nối TCP được hoàn thành. Nếu kết
nối TCP thành công, thì trạng thái này được chuyển tiếp sang trạng thái OpenSent. Nếu
kết nối TCP lỗi thì trạng thái này chuyển sang trạng thái Acitve và router cố gắng để thiết
lập kết nối lại. Nếu một kết nối mà hết hạn (expire) thì trạng thái được duy trì ở trạng thái
Connect, thì timer được reset, và kết nối TCP được khởi tạo lại. Trong trường hợp có một
sự kiện khác, có thể do mạng hoặc người quản trị khởi tạo, trạng thái trở về Idle.
Active: trong trạng thái Active thì BGP cố gắng yêu cầu một peer khởi tạo kết nối TCP.
Nếu thành công, nó chuyển sang trạng thái OpenSent. Nếu thời gian kết nối hết hạn, thì
BGP sẽ chuyển về trạng thái Connect lại. Trong khi active, thì BGP vẫn lắng nghe một
kết nối khác được khởi tạo từ peer. Trạng thái có thể chuyển về Idle trong trường hợp có
các sự kiện khác, như kết thúc sự kiện bởi hệ thống hay nhà quản trị.
OpenSent : trong trạng thái này, BGP chờ một bản tin open từ peer của nó. bản tin open
được kiểm tra tính đúng đắn. Trong trường hớp có xảy ra lỗi như: version không thích
hợp hay AS không chấp nhận, thì hệ thống truyền bản tin chỉ báo và reset keepalive timer.
Tại trạng thái này thì hold time được thoả thuận và khoảng thời gian nào nhỏ hơn sẻ được
chọn. Nếu thời gian hold time được thoả thuận là 0 thì hold timer và keepalive timer sẽ
không được khởi tạo.
OpenConfirm: Trong trạng thái này, BGP chờ bản tin keepalive hay bản tin chỉ thị cảnh
báo. Nếu một bản tin keepalive được nhận, thì trạng thái này chuyển sang trạng thái
Established, và láng giềng thoả thuận hoàn thành. Nếu hệ thống nhận một bản tin cập
nhật hay keepalive, thì nó reset holdtime, và trạng thái chuyển vè idle. Hệ thống truyền
một cách có chu kỳ các bản tin keepalive cho peer theo tốc độ được cài đặt theo keepalive
timer. Trong trường hợp bất kỳ một sự ngưng kết nối TCP hay chấm dứt sự kiện, được tạo
ra bởi nhà quản trị thì trạng thái sẻ chuyển vê trạng thái idle.
Established: Đây là trạng thái sau cùng của sự thoả thuận của các peer. BGP bắt đầu trao
đổi các gói cập nhật với các peers của nó. Nếu không phải là 0 thì hold time sẻ đươc reset
lại khi nó nhận được thông tin cập nhật hay bản tin keepalive. Mỗi gói cập nhật đều được
kiểm tra lỗi, như trường hợp lỗi hay trùng lặp các thuộc tính. Nếu có lỗi được phát hiện
thì một bản tin cảnh báo (notification) được gởi đi cho Peer. Bất kỳ bản tin cảnh báo nào
được nhận trong khi ở trạng thái Established đề làm cho BGP xoá Peer dang nhận và trở
về trạng thái Idle. Nếu Hold time hết hạn, hay một bản tin chỉ thị cắt kết nối nhận được từ
Peer, hay ngưng sự kiện được nhận thì hệ thống sể trở về trạng thái Idle.
Các thuộc tính của BGP
Dựa vào các thuộc tính, BGP có thể được cấu hình để lọc thông tin định tuyến, chọn
đường đi ưa thích hoặc tùy chỉnh các hành động khác.
4 thuộc tính của BGP:
o Thông dụng bắt buộc (Well-Know Mandatory): là thuộc tính bắt buộc phải có trong gói
cập nhật BGP. Nó phải được nhận ra bởi tất cả các triển khai BGP. Nếu thiếu thuộc tính
này, thông báo lỗi sẽ được tạo ra. Điều này đảm bảo rằng tất cả các triển khai BGP phải
thống nhất với nhau một tập thuộc tính chuẩn.
o Thông dụng tùy chọn (Well-Know Discretionary): là thuộc tính phải được nhận ra bởi
tất cả triển khai BGP nhưng có thể không được gửi kèm với gói cập nhật
o Tùy chọn chuyển tiếp(Option transitive): là thuộc tính có thể được hoặc không được
nhận ra bởi tất cả triển khai BGP. Có nghĩa nó là tùy chọn. Tuy nhiên do là thuộc tính
chuyển tiếp nên BGP phải chấp nhận và quảng bá thuộc tính ngay cả khi nó không nhận
ra được thuộc tính.
o Tùy chọn không chuyển tiếp(Option non-transitive): là thuộc tính có thể được hoặc
không được nhận ra bởi tất cả triển khai BGP. Cho dù BGP có nhận ra thuộc tính hay
không, nó cũng không chuyển tới các BGP hàng xóm vì đây là thuộc tính không chuyển
tiếp.
Mỗi thuộc tính đều được chia ra thành các loại và có các mã riêng biệt
Loại thông dụng bắt buộc (Well-Know Mandatory):
-ORIGIN

1. Định nghĩa:

 ORIGIN là một thuộc tính bắt buộc trong mọi bản tin cập nhật BGP cho mọi
prefix.
 Thuộc tính này xác định nguồn gốc của prefix, giúp router nhận biết cách thức
prefix được đưa vào BGP.

2. Các giá trị của ORIGIN:

 i (IGP): Prefix được đưa vào BGP từ một giao thức IGP nội bộ (như OSPF, IS-
IS).
 e (EGP): Prefix được đưa vào BGP từ một EGP (như EGP).
 ? (Unknown): Nguồn gốc của prefix không xác định được.
 2 (Incomplete): Prefix được redistributed từ một nguồn khác (như RIP).

3. Ví dụ:

 i: 10.0.0.0/24 được redistributed từ OSPF vào BGP.


 e: 192.168.1.0/24 được học từ một router BGP khác.
 ?: 172.16.0.0/24 được nhận từ một nguồn không xác định.
 2: 130.0.0.0/24 được redistributed từ RIP vào BGP.

4. Tầm quan trọng:

 ORIGIN được sử dụng trong quá trình chọn đường BGP để quyết định đường đi
nào được ưu tiên.
 Router thường ưu tiên các prefix có ORIGIN là i hơn e, và ưu tiên e hơn ?.
 ORIGIN cũng giúp router tránh các vòng lặp routing.
-AS_PATH
1. Định nghĩa:

 AS_PATH là một thuộc tính quan trọng trong BGP, chứa danh sách các Hệ thống
Tự trị (AS) mà prefix đã đi qua để đến router BGP hiện tại.
 Thuộc tính này giúp router nhận biết được độ dài và tính hợp lệ của đường đi, từ
đó đưa ra quyết định chọn đường tối ưu.

2. Cấu trúc:
 AS_PATH là một danh sách các ASN (số AS) được nối với nhau bằng dấu " ".
 ASN có thể được biểu diễn dưới dạng thập phân hoặc thập lục phân.
 Danh sách AS_PATH được sắp xếp theo thứ tự từ AS đầu tiên đến AS cuối cùng
(AS của router nhận được prefix).

3. Ví dụ:

 AS_PATH: 1 2 3 4 5
 Prefix này đã đi qua 5 AS (1, 2, 3, 4 và 5) trước khi đến router BGP hiện tại.
 AS_PATH được sử dụng trong quá trình chọn đường BGP để quyết định đường đi
nào được ưu tiên.
 Router thường ưu tiên các prefix có AS_PATH ngắn hơn (số lượng AS ít hơn).
 AS_PATH cũng giúp router tránh các vòng lặp routing và các đường đi không an
toàn.

NEXT_HOP

1. Định nghĩa:

 NEXT_HOP là một thuộc tính bắt buộc trong mọi bản tin cập nhật BGP cho mọi
prefix.
 Thuộc tính này xác định địa chỉ IP tiếp theo mà router cần chuyển tiếp gói tin để
đến được prefix đích.

2. Chức năng:

 NEXT_HOP giúp router xác định đường đi cụ thể để chuyển tiếp gói tin đến
prefix đích.
 Thuộc tính này cũng giúp router tránh các vòng lặp routing.

3. Loại NEXT_HOP:

 NEXT_HOP unicast: Địa chỉ IP của router tiếp theo trong đường đi unicast.
 NEXT_HOP multicast: Địa chỉ IP nhóm multicast.

4. Ví dụ:

 NEXT_HOP unicast: 192.168.1.1


 Router sẽ chuyển tiếp gói tin đến địa chỉ IP 192.168.1.1 để đến được prefix đích.

5. Tầm quan trọng:

 NEXT_HOP là một trong những thuộc tính quan trọng nhất trong BGP, giúp đảm
bảo việc chuyển tiếp gói tin chính xác và hiệu quả.
Loại tùy chọn không chuyển tiếp(Option non-transitive):

MULTI_EXIT_DISC:

1. Định nghĩa:

 MED là một thuộc tính tùy chọn trong BGP, được sử dụng để so sánh và lựa chọn
đường đi tối ưu trong trường hợp có nhiều đường đi đến cùng một prefix.
 Giá trị MED càng thấp, đường đi được ưu tiên càng cao.

2. Chức năng:

 MED giúp router đưa ra quyết định chọn đường đi dựa trên chi phí và hiệu quả.
 Thuộc tính này có thể được sử dụng để điều khiển lưu lượng truy cập giữa các AS.

3. Phạm vi sử dụng:

 MED chỉ có hiệu lực trong các AS nội bộ (iBGP).


 Thuộc tính này không được sử dụng giữa các AS bên ngoài (eBGP).

4. Ví dụ:

 AS1 có hai đường đi đến prefix 10.0.0.0/24:


o Đường đi 1: MED = 10
o Đường đi 2: MED = 20
 AS1 sẽ chọn đường đi 1 vì có MED thấp hơn.

5. Tầm quan trọng:

 MED là một công cụ hữu ích để quản lý lưu lượng truy cập và tối ưu hóa hiệu quả
mạng BGP.

Loại thông dụng tùy chọn(Well-Know Discretionary):

LOCAL_PREF

1. Định nghĩa:

 LOCAL_PREF là một thuộc tính tùy chọn trong BGP, được sử dụng để so sánh và
lựa chọn đường đi tối ưu trong trường hợp có nhiều đường đi đến cùng một prefix
trong cùng một AS.
 Giá trị LOCAL_PREF càng cao, đường đi được ưu tiên càng cao.

2. Chức năng:
 LOCAL_PREF giúp router đưa ra quyết định chọn đường đi dựa trên chính sách
nội bộ của AS.
 Thuộc tính này có thể được sử dụng để điều khiển lưu lượng truy cập trong AS.

3. Phạm vi sử dụng:

 LOCAL_PREF chỉ có hiệu lực trong các AS nội bộ (iBGP).


 Thuộc tính này không được sử dụng giữa các AS bên ngoài (eBGP).

4. Ví dụ:

 Router R1 có hai đường đi đến prefix 10.0.0.0/24:


o Đường đi 1: LOCAL_PREF = 100
o Đường đi 2: LOCAL_PREF = 200
 R1 sẽ chọn đường đi 2 vì có LOCAL_PREF cao hơn.

5. Tương tác với MED:

 LOCAL_PREF được ưu tiên hơn MED trong quá trình chọn đường BGP.
 Nếu hai đường đi có LOCAL_PREF bằng nhau, MED sẽ được sử dụng để so sánh.

ATOMIC_AGGREGATE

1. Định nghĩa:

 ATOMIC_AGGREGATE là một thuộc tính tùy chọn trong BGP, được sử dụng để
thông báo cho các router láng giềng rằng một nhóm prefix được quảng bá là một
tập hợp duy nhất.
 Thuộc tính này giúp giảm thiểu kích thước của bản tin cập nhật BGP và cải thiện
hiệu quả hoạt động của mạng.

2. Chức năng:

 ATOMIC_AGGREGATE giúp router láng giềng chỉ cần cập nhật bảng định tuyến
một lần cho cả nhóm prefix, thay vì cập nhật riêng lẻ cho từng prefix.
 Thuộc tính này cũng giúp giảm thiểu nguy cơ xảy ra vòng lặp routing.

3. Phạm vi sử dụng:

 ATOMIC_AGGREGATE có thể được sử dụng trong cả iBGP và eBGP.

4. Ví dụ:
 Router R1 có 10 prefix thuộc cùng một subnet: 10.0.0.0/24, 10.0.1.0/24, ...,
10.0.9.0/24.
 R1 có thể sử dụng ATOMIC_AGGREGATE để quảng bá 10 prefix này như một
tập hợp duy nhất với prefix 10.0.0.0/24.

5. Tương tác với AS_PATH:

 Khi sử dụng ATOMIC_AGGREGATE, AS_PATH của prefix được tổng hợp sẽ


bao gồm AS_PATH của tất cả các prefix trong nhóm.

AGGREGATOR

1. Định nghĩa:

 AGGREGATOR là một thuộc tính tùy chọn trong BGP, được sử dụng để xác định
AS chịu trách nhiệm tổng hợp một nhóm prefix thành một prefix duy nhất.
 Thuộc tính này giúp giảm thiểu kích thước của bản tin cập nhật BGP và cải thiện
hiệu quả hoạt động của mạng.

2. Cấu trúc:

 AGGREGATOR bao gồm hai phần:


o ASN: Số AS của AS chịu trách nhiệm tổng hợp prefix.
o Address: Địa chỉ IP của router trong AS đó.

3. Chức năng:

 AGGREGATOR giúp router láng giềng xác định được AS nào đã thực hiện tổng
hợp prefix.
 Thuộc tính này cũng giúp router láng giềng kiểm tra tính hợp lệ của prefix được
tổng hợp.

4. Phạm vi sử dụng:

 AGGREGATOR có thể được sử dụng trong cả iBGP và eBGP.

5. Ví dụ:

 AS1 có 10 prefix thuộc cùng một subnet: 10.0.0.0/24, 10.0.1.0/24, ..., 10.0.9.0/24.
 AS1 sử dụng AGGREGATOR để quảng bá 10 prefix này như một tập hợp duy
nhất với prefix 10.0.0.0/24.
 AS2 nhận được bản tin cập nhật BGP từ AS1 và có thể xác định được AS1 là AS
đã thực hiện tổng hợp prefix 10.0.0.0/24.
6. Tương tác với ATOMIC_AGGREGATE:

 AGGREGATOR thường được sử dụng cùng với ATOMIC_AGGREGATE để tối


ưu hóa hiệu quả hoạt động của mạng.

Loại tùy chọn chuyển tiếp(Option transitive):

COMMUNITY

1. Định nghĩa:

 COMMUNITY là một thuộc tính tùy chọn trong BGP, được sử dụng để gắn các
giá trị tùy chỉnh vào một prefix.
 Các giá trị này có thể được sử dụng để điều khiển lưu lượng truy cập, áp dụng
chính sách định tuyến hoặc cung cấp thông tin bổ sung về prefix.

2. Cấu trúc:

 COMMUNITY là một tập hợp các giá trị được biểu diễn dưới dạng chuỗi.
 Mỗi giá trị có thể là một số thập phân hoặc một chuỗi ký tự.
 Các giá trị được phân cách bởi dấu ":".

3. Ví dụ:

 Prefix 10.0.0.0/24 có COMMUNITY "1234:5678".


 Giá trị "1234" có thể được sử dụng để điều khiển lưu lượng truy cập.
 Giá trị "5678" có thể được sử dụng để cung cấp thông tin về AS nguồn của prefix.

4. Loại COMMUNITY:

 Có hai loại COMMUNITY:


o Well-known COMMUNITY: Các giá trị được định nghĩa sẵn bởi IETF
hoặc các tổ chức khác.
o Local COMMUNITY: Các giá trị được định nghĩa bởi người dùng.

5. Sử dụng COMMUNITY:

 COMMUNITY có thể được sử dụng cho nhiều mục đích khác nhau, bao gồm:
o Điều khiển lưu lượng truy cập: Các giá trị COMMUNITY có thể được sử
dụng để điều khiển lưu lượng truy cập đi qua các AS khác nhau.
o Áp dụng chính sách định tuyến: Các giá trị COMMUNITY có thể được
sử dụng để áp dụng các chính sách định tuyến khác nhau cho các prefix
khác nhau.
o Cung cấp thông tin bổ sung: Các giá trị COMMUNITY có thể được sử
dụng để cung cấp thông tin bổ sung về prefix, chẳng hạn như AS nguồn
hoặc thời gian tạo prefix.

ORIGINATOR_ID

1. Định nghĩa:

 ORIGINATOR_ID là một thuộc tính tùy chọn trong BGP, được sử dụng để xác
định AS nguồn của một prefix.
 Thuộc tính này giúp router láng giềng xác định được AS nào đã tạo ra prefix.
2. Cấu trúc:
 ORIGINATOR_ID là một giá trị 4 byte biểu thị AS number của AS nguồn.
3. Chức năng:

 ORIGINATOR_ID giúp router láng giềng kiểm tra tính hợp lệ của prefix được
quảng bá.
 Thuộc tính này cũng có thể được sử dụng để điều khiển lưu lượng truy cập và áp
dụng chính sách định tuyến.

4. Ví dụ:

 Prefix 10.0.0.0/24 được quảng bá bởi AS1 với ORIGINATOR_ID là 1234.


 AS2 nhận được bản tin cập nhật BGP từ AS1 và có thể xác định được AS1 là AS
đã tạo ra prefix 10.0.0.0/24.

5. Tương tác với AS_PATH:

 ORIGINATOR_ID được sử dụng cùng với AS_PATH để xác định nguồn gốc của
prefix.

Các Tiêu chuẩn lựa chọn tuyến đường tốt nhất trong BGP
 loại bỏ tuyến đường nếu next-hop không đúng.
 Chọn giá trị weight cao hơn ( có giá trị trong 1 router).
 Chọn giá trị local-preference cao hơn ( trong 1 AS).
 Chọn nguồn gốc tuyến đường ( Tuyến đường sinh ra từ chính router).
 Chọn giá trị AS-path ngắn hơn ( Chỉ so sánh nhiều dài).
 Chọn giá trị origin nhỏ hơn ( IGP<EGP <unknown).
 Chọn giá trị MED nhỏ hơn.
 Chọn giá trị EBGP ưu tiên hơn IBGP.
 Đối với các tuyến đường IBGP, ưu tiên chọn tuyến đường qua hàng xóm gần
nhất.
 Đối với các tuyến đường EBGP, ưu tiên chọn tuyến đường học được sớm hơn
 Chọn giá trị từ router với giá trị BGP router-ID nhỏ hơn

Thuộc tính weight

1. Định nghĩa:

 "Weight" là một thuộc tính tùy chọn trong BGP, được sử dụng để gán giá trị ưu
tiên cho một đường đi đến một prefix.
 Giá trị "weight" càng cao, đường đi được ưu tiên càng cao.

2. Phạm vi sử dụng:

 "Weight" chỉ có hiệu lực trong nội bộ AS (iBGP).


 Thuộc tính này không được sử dụng giữa các AS bên ngoài (eBGP).

3. Chức năng:

 "Weight" giúp router lựa chọn đường đi tốt nhất dựa trên chính sách nội bộ của
AS.
 Thuộc tính này có thể được sử dụng để điều khiển lưu lượng truy cập trong AS.

4. Ví dụ:

 Router R1 có hai đường đi đến prefix 10.0.0.0/24:


o Đường đi 1: weight = 100
o Đường đi 2: weight = 200
 R1 sẽ chọn đường đi 2 vì có weigh cao hơn.

5. Tương tác với MED:

 "Weight" được ưu tiên hơn MED trong quá trình chọn đường BGP.
 Nếu hai đường đi có weigh bằng nhau, MED sẽ được sử dụng để so sánh.

6. Lưu ý:

 Thuộc tính "weigh" do Cisco phát triển và chỉ có trên các thiết bị của Cisco.
 Các nhà cung cấp khác có thể sử dụng các thuộc tính khác để thực hiện chức năng
tương tự.

You might also like