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

Báo cáo chuyên đề KTVT: Các giao thức định tuyến trong internet

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 (718.24 KB, 28 trang )

CHỦ ĐỀ
CÁC GIAO THỨC ĐỊNH TUYẾN TRONG INTERNET

Bảng phân chia công việc các thành viên trong nhóm
STT

Họ và Tên

1

Nguyễn Văn Ngọc Nghĩa

Nhiệm vụ
- Sơ lượt về định tuyến và các giao thức

Mức độ
đóng góp
33,33%

định tuyến.
- Giao thức định tuyến trong RIP
2
3

Trần Đức Nhiên

- Giao thức định tuyến trong OSPF
- Giao thức định định tuyến trong IGRP

33,33%


Trần Tiến Phát

- Giao thức định tuyến trong EIGRP.
- Giao thức định tuyến ngoài EGP

33.33%

1


Mục lục

Trang

I. MỞ ĐẦU………………………………………….…………………………………….

3

1. Định tuyến là gì
2. Tại sao cần giao thức định tuyến
3. Phân loại giao thức định tuyến
a. Giao thức định tuyến trong
b. Giao thức định tuyến ngoài
II. CÁC GIAO THỨC ĐỊNH TUYẾN TRONG ……………………………………. …
1. GIAO THỨC ĐỊNH TUYẾN RIP (ROUTING INFOMATION PROTOCOL)

4

a.Đặc điểm
b. Khảo sát hoạt động của giao thức định tuyến RIP

2. GIAO THỨC ĐỊNH TUYẾN OSPF (OPEN SHORTEST PATH FIRST)………
7

a.Đặc điểm
b. Khảo sát hoạt động của giao thức định tuyến OSPF
3. GIAO THỨC ĐỊNH TUYẾN IGRP (Interio Gateway Routing Protocol) ……

10

a. Nguyên lý hoạt động và những đặc trưng của IGRP
b. IGRP timer
c. IGRP packet format
4. GIAO THỨC ĐỊNH TUYẾN EIGRP …………………………………………..

12

a. Định nghĩa
b. Ưu điểm
c. Nhược điểm
d. Nguyên lý hoạt động
e. Những thông tin chưa trong bảng cấu trúc
III. CÁC GIAO THỨC ĐỊNH TUYẾN NGOÀI EGP (Exterior Gateway Protocol)… 15
1. GIAO THỨC ĐỊNH TUYẾN BGP (Border Gateway Protocol).

1.1 Tổng quan BGP………………….…………………………………. 15
a> Khái Niệm
b> Sự cần thiết của BGP
c> Một số thuật ngữ BGP
1.2 Đặc điểm của BGP ………………………………………………… 16
1.3 Hoạt động của BGP ……………………………………………….. 17

1.3.1 Định dạng của các bản tin (Message Header Format)……… 18
a> Bản tin OPEN ( OPEN Message)
b> Bản tin UPDATE (UPDATE Message)
c> Bản tin KEEPALIVE (KEEPALIVE Message)
d> Bản tin NOTIFICATION (NOTIFICATION Message)
1.3.2 Thiết lập mối quan hệ BGP neighbor ……………………… 22
1.3.3 Chọn tuyến đường (Route Selection) ……………………... 24
a> Routing Information Bases
b> Quá trình quyết định (Decision Process)
c> Lọc tuyến (Route Filtering)
1.3.4 Thuật toán tìm đường đi tốt nhất của BGP ………………. 25
1.4 Khi dùng BGP và khi không dùng BGP …………………………… 26
a> Khi dùng BGP
2


b> Khi không dùng BGP

3


I. MỞ ĐẦU
1. Định tuyến là gì?
Định tuyến là quá trình chọn lựa các đường đi trên một mạng máy tính để gửi dữ liệu qua
đó. Định tuyến chỉ ra hướng, sự di chuyển của các gói (dữ liệu) được đánh địa chỉ từ mạng
nguồn của chúng, hướng đến đích cuối thông qua các node trung gian. Hướng của các gói dữ
liệu được xác định dựa vào bảng định tuyến, đó là bảng chứa những lộ trình tốt nhất đến các
đích khác nhau trên mạng. Vì vậy việc xây dựng bảng định tuyến trở nên vô cùng quan trọng
cho việc định tuyến hiệu quả.
Định tuyến có hai loại lớn là định tuyến tĩnh và định tuyến động.


Định tuyến tĩnh: đây là kĩ thuật mà người quản trị phải tự cấu hình đường đi đến mạng
đích trên router. Kĩ thuật này ít chiếm tài nguyên mạng và Router, đơn giản, tốc độ xử
lý nhanh.Tuy nhiên nó lại có một điểm yếu là không hội tụ với những thay đổi trên mạng,
đồng thời nếu như số lượng đường route quá lớn thì lại không thể cấu hình bằng tay.

Định tuyến động: các route thường xuyên trao đổi thông tin định tuyến cho nhau. Từ
những thông tin này, các route sẽ sử dụng các thuật toán tìm đường đi khác nhau, để tìm ra
đường đi đến đích tối ưu nhất theo tính toán của mình, từ đó tạo ra bảng định tuyến, lưu trữ
thông tin về các đường đi này. Định tuyến động chiếm ưu thế trên internet.
2. Tại sao cần giao thức định tuyến?
Trong một mạng rất lớn có rất nhiều bộ định tuyến như mạng Internet, việc cập nhật bảng
định tuyến bằng tay là không thể, vì vậy cần phải có giao thức định tuyến, giao thức định
tuyến cho phép các router xây dựng bảng định tuyến một cách linh hoạt đó là:

Chọn đường dẫn tốt nhất cho các gói tin

Cung cấp các tiến trình để chia sẻ thông tin định tuyến

Cho phép Router liên lạc với các router khác để update và duy trì bảng định tuyến.
3. Phân loại giao thức định tuyến.
Có hai họ giao thức định tuyến cơ bản là:
a. Giao thức định tuyến trong: IGP (Interior Gateway Protocol).
• Chức năng: Trao đổi các tuyến đường bên trong một hệ thống mạng tự trị.
• Giao thức định tuyến trong gồm các giao thức tiêu biểu như RIP, OSPF, IGRP, EIGRP.
Trong đó RIP và OSPF là các giao thức chuẩn quốc tế, còn EIGRP và IGRP là giao thức định
tuyến riêng được phát triển trên các thiết bị Cisco. Với IGP nó lại chia theo các nhánh khác
nhau. IGP là loại giao thức định tuyến chạy giữa các router nằm bên trong một hệ thống
mạng tự trị.
Ngoài ra các giao thức IGP còn có thể được chia thành 3 loại: Distance-Vector, Link-state,

Hybrid.
• Distance -Vector: tiêu biểu cho hình thức này là giao thức RIP. Hoạt động dựa trên
nguyên tắc neighbor, nghĩa là mỗi router sẽ gửi nguyên cả bảng định tuyến(routing table) của
mình cho các router kết nối với nó. Các router sẽ so sánh các tuyến đường với các tuyến
đường trong bảng định tuyến của mình. Tuyến đường nào tối ưu hơn sẽ được giữ lại.

Ưu điểm của giao thức này là: dễ cấu hình, router không xử lý nhiều nên tốc độ sẽ
nhanh hơn.

Nhược điểm:
+
Hệ thống metric quá đơn giản nên tuyến đường được chọn chưa phải là tối ưu nhất.
+
Vì các gói tin được gửi theo định kỳ nên một lượng lớn bandwith sẽ bị chiếm, dù cho
mạng không có gì thay đổi đi nữa.
+
Do Router hội tụ chậm, dẫn đến việc sai lệch trong bảng định tuyến, gây ra tình trạng
lặp
4


• Link –state: đại diện cho loại này là OSPF với loại giao thức này, các router sẽ không
gửi bảng routing table mà gửi bảng cơ sở dữ liệu trạng thái đường link (LSDB-Link State
Database) cho mọi router cùng vùng (area). Việc tính toán định tuyến được thực hiện dựa
theo giải thuật Dijkstra. Một khi mạng đã hội tụ, thì các router sẽ không gửi update định kỳ
mà chỉ gởi khi nào có sự thay đổi trong hệ thống mạng(link up or link down)

Ưu điểm: thích nghi được nhiều hệ thống, cho phép người thiết kế mạng linh hoạt,
phản ứng nhanh. Và do không gửi interval-update nên đảm bảo được bandwith của mạng


Nhược điểm: Router phải xử lý nhiều hơn, tốc độ CPU chậm hơn nên có delay. Ngoài
ra cấu hình OSPF phức tạp hơn so với RIP
• Hybrid: tiêu biểu là giao thức EIGRP của Cisco. Loại giao thức này kết hợp các đặc
điểm của hai loại trên. Tuy nhiên, thực chất thì EIGRP vẫn là giao thức loại Distance –
vector nhưng đã được cải tiến thêm để tăng tốc độ hội tụ và quy mô hoạt động nên còn được
gọi là Advanced distance vector.
Nếu chia hai, ta có thể chia các giao thức IGP thành hai loại:
• Các giao thức classful: router sẽ không gửi kèm theo subnet – mask trong bản tin định
tuyến của mình. Từ đó các giao thức classful không hỗ trợ mạng gián đoạn. Giao thức tiêu
biểu là RIPv1 (trước đây còn có thêm cả IGRP nhưng hiện giờ giao thức này đã được gỡ bỏ
trên các IOS mới của Cisco).
• Các giao thức classless: ngược với classful, router có gửi kèm theo subnet – mask trong
bản tin định tuyến. Từ đó các giao thức classless có hỗ trợ mạng gián đoạn (discontiguos
network). Các giao thức classless: RIPv2, OSPF, EIGRP.
b. Giao thức định tuyến ngoài: Exterior Gateway Protocol (EGP)
• Chức năng: Trao đổi các tuyến đường giữa các hệ thống mạng tự trị.
• Giao thức định tuyến ngoài với giao thức tiêu biểu là BGP (Border Gateway Protocol).
Là loại giao thức được dùng để chạy giữa các router thuộc các hệ thống mạng tự trị khác
nhau, phục vụ cho việc trao đổi thông tin định tuyến giữa các hệ thống mạng tự trị. Hệ thống
mạng tự trị là tập hợp các router thuộc cùng một sự quản lý về kỹ thuật và sở hữu của một
doanh nghiệp nào đó, cùng chịu chung một chính sách về định tuyến. Các hệ thống mạng tự
trị thường là các ISP. Như vậy định tuyến ngoài thường được dùng cho mạng Internet toàn
cầu, trao đổi số lượng thông tin định tuyến rất lớn giữa các ISP với nhau và hình thức định
tuyến mang nặng hình thức chính sách (policy).
II. CÁC GIAO THỨC ĐỊNH TUYẾN TRONG.
1. GIAO THỨC ĐỊNH TUYẾN RIP (ROUTING INFOMATION PROTOCOL)
a. Đặc điểm
• Giao thức định tuyến RIP là một giao thức điển hình thuộc loại distance-vector. Mỗi
router sẽ gửi toàn bộ bảng định tuyến của nó cho router kết nối trực tiếp với nó theo định kỳ
30s/lần. Thông tin này lại tiếp tục được các router đó lan truyền tiếp cho các router khác và

cứ thế lan truyền ra mọi router trên toàn mạng. Kiểu trao đổi thông tin như thế còn được gọi
là “lan truyền theo tin đồn”.
• Giá trị metric tối đa là 15, giá trị metric = 16 được gọi là infinity metric (“metric vô
hạn”), có nghĩa là một mạng chỉ được phép cách nguồn tin 15 router là tối đa, nếu nó cách
nguồn tin từ 16 router trở lên, nó không thể nhận được nguồn tin này và được nguồn tin xem
là không thể đi đến được.
• Cách hoạt động của RIP có thể dẫn đến loop nên một số quy tắc chống loop và một số
timer được đưa ra. Các quy tắc và các timer này có thể làm giảm tốc độ hội tụ của RIP.
b. Khảo sát hoạt động của giao thức định tuyến RIP
Bảng định tuyến của mỗi router chứa cá giá trị route trong mạng. mỗi route có cấu trúc như
sau: 192.168.23.0/24 S2/0 1. Trong đó 192.168.23.0/24 là giá trị của route, S2/0 là cổng kết
nối, 1 giá trị là metric (số route mà gói tin phải đi qua để đến được đích).
5


Xét sơ đồ kết nối của 3 router như sau:

Các router này được kết nối với nhau bằng các đường serial point – to – point mô tả các kết
nối leased – line. Bản thân mỗi router lại đấu nối xuống các mạng LAN bằng các cổng F0/0
của chúng. Quy hoạch IP cho các phân đoạn mạng được mô tả chi tiết trên sơ đồ.
Khi chưa chạy định tuyến RIP các router chỉ kết nối đến các mạng kết nối trực tiếp đến các
cổng của nó và đưa các địa chỉ (subnet) này vào bảng định tuyến của nó. Giá trị bảng định
tuyến của mỗi router như hình sau:

Tiếp theo ta chạy định tuyến RIP để router lan truyền bảng định tuyến của nó cho các router
kết nối trực tiếp với nó. Xét sự truyền bảng định tuyến từ router R3 cho router R2 ta thấy có
một route 192.168.3.0/24 trong bảng định tuyến của R3 mà R2 chưa có trong bảng định
tuyến vì vậy R2 sẽ sao chép route này vào bảng định tuyến của nó. Bảng định tuyến của R2
lúc này là:


Ta thấy route mới được cập nhật cổng kết nối đã thay đổi, lúc này cổng kết nối không phải là
F0/0 mà là cổng cổng S2/1, vì để đi đến được mạng 192.168.3.0/24, gói tin từ R2 phải được
đẩy ra cổng S2/1. Ta cũng thấy metric của route này được tăng thêm 1 đơn vị khi lan truyền
qua thêm một router.
Tiếp theo R2 sẽ gửi bảng định tuyến của nó qua cho R1. Có 2 route của R2 mà R1 chưa có
trong bảng định tuyến của nó là 192.168.23.0/24 và 192.168.3.0/24 vì vậy router R1 sẽ cập
nhật các route này vào bảng định tuyến của nó. Bảng định tuyến của R1 sau khi cập nhật là:

Ta cũng dễ dàng thấy các giá trị cổng kết nối và metric của 2 route đó đã thay đổi.
Tương tự như vậy bảng định tuyến của R1 cũng được cập nhật qua R2 và từ router R2 qua
router R3. Cuối cùng ta được bảng định tuyến của 3 router này như sau:

6


Các router đều đã học được các subnet ở xa không kết nối trực tiếp thông qua chạy giao thức
định tuyến, đảm bảo đi đến được mọi nơi trong hệ thống mạng. nhược điểm của giao thức
này là dễ xảy ra hiện tượng lặp, gửi gói tin qua lại nhau. Ví dụ như khi mạng 192.168.3.0/24
down router R3 sẽ loại bỏ route này ra khỏi bảng định tuyến trong khi bảng định tuyến của
router R2 vẫn còn giá trị của mạng 192.168.3.0/24 này và khi R2 gửi bản định tuyến của nó
qua cho R3 thì router R3 sẽ cập nhật giá trị route này vào và cổng kết nối sẽ là S2/1. Vì vậy
khi một gói tin từ router R2 muốn gửi đến mạng 192.168.3.0/24 thì nó sẽ gửi qua cổng S2/1
cho router R3, router R3 tra bảng định tuyến của nó và thấy cổng kết nối đến mạng
192.168.3.0/24 là S2/1 nên sẽ gửi ngược lại cho R2, cứ như vậy sẽ xảy ra một vòng lặp trong
vận tải gói tin này.
Để khắc phục hiện tượng lặp trong vận tải gói tin, RIP sử dụng một quy tắc chống lặp gọi là
quy tắc Split – horizon. Cụ thể là: khi nhận được route từ bất kì router nào thì trong lần cập
nhật tiếp theo nó sẽ không gửi lại route đó trở lại router mà nó đã nhận route đó. Tức là nó sẽ
loại bỏ route mà nó nhận được ra khỏi bảng định tính của nó khi gửi lại bảng định tính của nó
ngược lại co router đó.

Ngoài ra giao thức định tuyến RIP còn có một số quy tắc để thúc đầy nhanh quá trình cập
nhật và tránh hiện tượng lặp đó là:
• Quy tắc Route – poisoning: một khi mạng kết nối trực tiếp chuyển sang down router sẽ
lập tức gửi đi một bản tin cập nhật cho mạng này đến các router lân cận vơi metric=16. Các
router sau khi nhận được bản tin này cũng lập tức gửi đến các router khác với với metric=16,
việc gửi bản tin cập nhật cho mạng bị down được thực hiện ngay lập tức mà không cần chờ
đến định kì vì vậy toàn bộ mạng sẽ nhanh chóng biết là đường truyền qua mạng này không
còn nữa.
• Quy tắc Poison – reverse: khi một router nào nhận được cập nhật cho một subnet nào có
metric=16 thì ngay lập tức nó cũng gửi ngược trở lại bản tin cập nhật của subnet ấy với
metric=16.
• Quy tắc Trigger – update: Việc phát ra các bản tin Route – poisoning và Poison – reverse
phải được thực hiện ngay lập tức mà không cần chờ tới hạn định kỳ gửi cập nhật định tuyến
được gọi là hoạt động trigger update.
• Một trường hợp bị lặp nữa đó là khi 3 router kết nối theo 1 vòng tròn. Khi mạng
192.168.3.0/24 down thì R3 sẽ gửi bản tin poisoned đến R2 và đồng thời loại bỏ mạng
192.168.3.0/24 ra khỏi bảng định tuyến của nó. Trong khi lúc này mạng R1 lại gửi bảng định
tính của nó cho R3 trong khi R3 đã loại bỏ mạng 192.168.3.0/24 vì vậy router R3 sẽ lại cập
nhật mang 192.168.3.0/24 vào bảng định tính của nó dẫn đến lập. để tránh hiện tượng này
người ta sử dụng một bộ định thời holddown – timer .
• Luật Holddown timer: Sau khi nhận được một poisoned route, router sẽ khởi động bộ
định thời holddown – timer cho route này. Trước khi bộ timer này hết hạn, không tin tưởng
7


bất kỳ thông tin định tuyến nào về route down này, ngoại trừ thông tin đến từ chính láng
giềng đã cập nhật cho mình route này đầu tiên. Giá trị default của holddown – timer là 180s.
Như vậy theo luật này, khi R1 nhận được cập nhật route – poisoning từ R3 cho mạng
192.168.3.0/24 và kết luận rằng route này down, R1 sẽ không chấp nhận bất kỳ thông tin nào
đến từ nguồn tin khác ngoại trừ R3 trong suốt khoảng thời gian holddown – timer. Nhờ đó

thông tin route – poisoning cho mạng 192.168.3.0/24 được cập nhật kịp thời đến R2 và
không còn gây ra loop nữa.
Bên cạnh các quy tắc chống loop đã đề cập ở trên, RIP còn sử dụng một số timer cho hoạt
động của mình:
Update timer: khoảng thời gian định kỳ gửi bản tin cập nhật định tuyến ra khỏi các cổng
chạy RIP, giá trị default là 30s.
Invalid timer: khi router đã nhận được cập nhật về một subnet nào đó mà sau khoảng thời
gian invalid timer vẫn không nhận lại cập nhật về mạng này (mà đúng ra là phải nhận được
30s/lần), router sẽ coi route đi đến subnet này là invalid nhưng vẫn chưa xóa route này khỏi
bảng định tuyến. Giá trị default của timer này là 180s.
Flush timer: : khi router đã nhận được cập nhật về một subnet nào đó mà sau khoảng thời
gian flush timer vẫn không nhận lại cập nhật về mạng này (mà đúng ra là phải nhận được
30s/lần), router sẽ xóa bỏ hẳn route này khỏi bảng định tuyến. Giá trị default của timer này là
240s.
Như vậy, khi một route cho một subnet nào đó xuất hiện trong bảng định tuyến, router kỳ
vọng rằng cứ 30s một lần route này phải được láng giềng gửi lại cập nhật để “refresh”. Nếu
sau 30s, route không được “refresh”, nó sẽ được theo dõi tiếp cho đến hết giây thứ 180 và bị
đánh dấu invalid. Khi invalid, route vẫn còn được duy trì trong bảng định tuyến thêm 60s nữa
(đến hết giây thứ 240) mới bị xóa hoàn toàn khỏi bảng định tuyến.
Có hai phiên bản của giao thức định tuyến RIP là RIPv1 và RIPv2. Hai phiên bản này có
cách thức hoạt động giống nhau như đã nêu ở trên tuy nhiên vẫn có một số điểm khác nhau
là:
• RIPv1 là giao thức định tuyến thuộc loại classful trong khi RIPv2 là giao thức định tuyến
thuộc loại classless. Các giao thức classful có nhiều hạn chế nên người ta chủ yếu sử dụng
giao thức RIPv2.
• RIPv1 sử dụng địa chỉ broadcast 255.255.255.255 để gửi đi các bản tin cập nhật trong
khi RIPv2 sử dụng địa chỉ multicast 224.0.0.9 để gửi đi các bản tin cập nhật.
• RIPv1 không hỗ trợ xác thực trong định tuyến trong khi RIPv2 có hỗ trợ xác thực. Điều
này dẫn đến những nguy cơ về bảo mật khi sử dụng RIPv1.
2. GIAO THỨC ĐỊNH TUYẾN OSPF (OPEN SHORTEST PATH FIRST)

OSPF – Open Shortest Path First là một giao thức định tuyến link – state điển hình. Đây là
một giao thức được sử dụng rộng rãi trong các mạng doanh nghiệp có kích thước lớn. Trong
chương trình CCNA, đây cũng là một chủ đề chính được đề cập nhiều. Do đó, nắm vững những
nguyên tắc hoạt động của OSPF sẽ giúp các bạn đang theo học chương trình CCNA hoàn thành
tốt kỳ thi lấy chứng chỉ quốc tế CCNA cũng như đáp ứng tốt nhu cầu công việc trong thực tế.
a. Đặc điểm.
• Giao thức định tuyến OSPF là một giao thức điển hình thuộc loại link-state. Đây là một
giao thức được sử dụng rộng rãi trong các mạng doanh nghiệp có kích thước lớn. Mỗi router
khi chạy giao thức sẽ gửi các trạng thái đường link của nó cho tất cả các router trong vùng.
Sau một thời gian trao đổi, các router sẽ đồng nhất được bảng cơ sở dữ liệu trạng thái đường
link với nhau, mỗi router đều có được “bản đồ mạng” của cả vùng. Từ đó mỗi router sẽ chạy
giải thuật Dijkstra tính toán ra một cây đường đi ngắn nhất và dựa vào cây này để xây dựng
nên bảng định tuyến.
• Metric của OSPF còn gọi là cost, được tính theo bandwidth trên cổng chạy OSPF.
8


b. Khảo sát hoạt động của giao thức OSPF.
Hoạt động của giao thức OSPF gồm các bước sau:
i. Bầu chọn Router – id.
Khi chạy OSPF thì mỗi router cần phải có một giá trị để định danh nó trong tập hợp nhiều
router chạy OSPF. Giá trị này gọi là router-id. Router –id có dạng một địa chỉ IP. Giá trị địa
chỉ IP được chọn là giá trị cao nhất của các interface đang active, ưu tiên cổng loopback.
Ví dụ:

Trong hình trên không có loopback nên ta xét các interface đang active, tức là đang ở trạng
thái up/up (status up, line protocol up). Vậy có 2 địa chỉ IP được xét đó là 192.168.1.1 và
192.168.2.1
Giá trị router-id được chon là giá trị địa chỉ IP lớn nhất đó là 192.168.2.1. như vậy khi tham
gia OSPF thì định danh của R router-id) sẽ là 192.168.2.1

ii. Thiết lập quan hệ láng giềng.
Sau khi đã chọn xong router – id để hoạt động, router sẽ chuyển qua bước tiếp theo là thiết
lập quan hệ láng giềng với các router kết nối trực tiếp với nó. router chạy OSPF sẽ gửi ra tất
cả các cổng chạy OSPF một loại gói tin được gọi là gói tin hello. Gói tin này được gửi đến
địa chỉ multicast dành riêng cho OSPF là 224.0.0.5, đến tất cả các router chạy OSPF khác
trên cùng phân đoạn mạng. Mục đích của gói tin hello là giúp cho router tìm kiếm láng giềng,
thiết lập và duy trì mối quan hệ này. Gói tin hello được gửi theo định kỳ mặc định 10s/lần.
Có nhiều thông tin được hai router kết nối trực tiếp trao đổi với nhau qua gói tin hello. Trong
các loại thông tin được trao đổi, có năm loại thông tin sau bắt buộc phải phù hợp với nhau
trên hai router để chúng có thể thiết lập được quan hệ láng giềng với nhau. Đó là:
• Area-id: Để giảm tải bộ nhớ cũng như tải tính toán cho mỗi router và giảm lượng thông
tin định tuyến cần trao đổi các router sẽ được chia làm nhiều vùng, mỗi router chỉ cần ghi
nhớ thông tin cho một vùng của nó. Vì vậy sẽ giảm tải được bộ nhớ và còn có thể cô lập
những bất ổn vào một vùng. Ví dụ như khi có một liên kết nào đó trên một router up hoặc
down, sự kiện này chỉ lan truyền trong nội bộ một vùng và gây ra sự tính toán lại định tuyến
của các router trong vùng ấy chứ không ảnh hưởng đến các router thuộc vùng khác. Mỗi
vùng sẽ có một giá trị định danh gọi là area-id, area-id có thể là một số hoặc là một địa chỉ
IP. Một nguyên tắc bắt buộc trong phân vùng OSPF là nếu chia thành nhiều vùng thì bắt
buộc phải tồn tại một vùng mang số hiệu 0 – Area 0, Area 0 còn được gọi là Backbone Area
và mọi vùng khác bắt buộc phải có kết nối nối về vùng area 0. Area – id được gán cho link
của router chứ không phải gán cho bản thân router. Những router mà có tất cả các link đều
được gán vào một vùng thì sẽ lọt hẳn vào vùng đó và được gọi là các Internal router, các
Internal router chỉ phải ghi nhớ trạng thái đường link của vùng mà nó nằm bên trong. Những
router nằm ở biên giới của hai vùng thì phải ghi nhớ trạng thái đường link của hai vùng đó.
Những router như vậy được gọi là các router ABR. Khi hai router láng giềng kết nối với nhau
qua một link, chúng phải thống nhất với nhau về area – id của link này. Cả hai router phải
gán cùng một số area – id cho link kết nối giữa chúng với nhau. Nếu điều này bị vi phạm,
chúng sẽ không thể thiết lập được quan hệ láng giềng thông qua link này và do đó không bao
9



giờ có thể trao đổi được thông tin định tuyến qua link. Đó là điều kiện thứ nhất trong việc
thiết lập quan hệ láng giềng: thống nhất về area – id trên link kết nối.
• Hello timer và Dead timer: Hello timer là khoảng thời gian định kỳ gửi gói tin hello ra
khỏi một cổng chạy OSPF. Khi một router nhận được hello từ láng giềng, nó sẽ khởi
động Dead timer. Nếu sau khoảng thời gian được chỉ ra trong Dead timer mà router không
nhận được gói tin hello từ láng giềng, nó sẽ coi như láng giềng này không còn và sẽ xóa mọi
thông tin mà nó học được từ láng giềng. Ngược lại, cứ mỗi lần nhận được gói tin hello từ
láng giềng, Dead timer lại được reset. Giá trị mặc định của hello – timer và dead – timer là
10s và 40s. Ta có thể hiệu chỉnh các giá trị này trên cổng chạy OSPF. Để hai router thiết lập
được quan hệ láng giềng với nhau, cặp giá trị này bắt buộc phải khớp nhau trên hai router ở
hai đầu của đường link.
• Hai địa chỉ IP đấu nối phải cùng subnet.
• Thỏa mản các điều kiện xác thực: Trong trường hợp để tăng cường tính bảo mật của hoạt
động trao đổi thông tin định tuyến, chúng ta thực hiện cài đặt các mật khẩu trên hai router hai
đầu đường link. Yêu cầu bắt buộc là hai mật khẩu này phải khớp nhau ở hai đầu để hai router
có thể thiết lập quan hệ láng giềng.
• Cùng bật hoặc cùng tắt cờ stub: Trong kiến trúc đa vùng của OSPF có một loại vùng gọi
là vùng stub. Vùng stub là vùng không tiếp nhận LSA type – 5. Khi ta đã cho một link của
một router thuộc vùng stub thì bắt buộc đầu kia của link cũng phải gán link này thuộc vùng
stub. Khi đó các gói tin định tuyên trao đổi nhau giữa hai đầu sẽ có cờ stub được bật lên.
Sau khi cả 05 điều kiện nêu trên đã được thỏa mãn, hai router thiết lập với nhau một mối
quan hệ gọi là quan hệ láng giềng và được ký hiệu là 2 – WAY. Khi các router đã thiết lập
được quan hệ 2 – WAY với nhau, chúng bắt đầu thực hiện trao đổi bảng cơ sở dữ liệu trạng
thái đường link (LSDB – Link State Database) cho nhau. Việc trao đổi này được lan ra toàn
mạng và cuối cùng mỗi router đều có được trạng thái đường link của mọi router trong mạng,
từ đó chúng thực hiện tính toán trên cơ sở dữ liệu trạng thái đường link này và xây dựng
bảng định tuyến.
LSDB – Link State Database – Bảng cơ sở dữ liệu trạng thái đường link là một bảng trên
router ghi nhớ mọi trạng thái đường link của mọi router trong vùng. Ta có thể coi LSDB là

một “tấm bản đồ mạng” mà router sẽ căn cứ vào đó để tính toán định tuyến. LSDB phải hoàn
toàn giống nhau giữa các router cùng vùng. Các router sẽ không trao đổi với nhau cả một
bảng LSDB mà sẽ trao đổi với nhau từng đơn vị thông tin gọi là LSA – Link State
Advertisement. Các đơn vị thông tin này lại được chứa trong các gói tin cụ thể gọi là LSU –
Link State Update mà các router thực sự trao đổi với nhau. LSA không phải là một loại gói
tin mà chỉ là một bản tin. LSU mới thực sự là gói tin và nó chứa đựng các bản tin này. Việc
trao đổi thông tin diễn ra rất khác nhau tùy theo từng loại network – type gán cho link giữa
hai router. ta xét hai loại network – type là Point – to – Point và Broadcast Multiaccess.
• Point – to – point: Loại link point – to – point điển hình là kết nối serial điểm – điểm
chạy giao thức HDLC hoặc PPP nối giữa hai router. Trong trường hợp này, hai router láng
giềng sẽ ngay lập tức gửi toàn bộ bảng LSDB cho nhau qua kết nối point – to – point và
chuyển trạng thái quan hệ từ 2 – WAY sang một mức độ mới gọi là quan hệ dạng FUL.
• Broadcast Multiaccess: với môi trường này, mỗi router đều kết nối trực tiếp với nhau và
đều thiết lập quan hệ 2 – WAY với nhau. Tuy nhiên, các router sẽ không trao đổi trực tiếp
với nhau mà sẽ tiến hành trao đổi thông tin thông qua một router đầu mối gọi là DR –
Designated Router. Trên mỗi kết nối Multi – access, một DR router được bầu ra. Một router
khác sẽ được bầu làm Backup DR (BDR) để dự phòng cho DR trong trường hợp DR down.
Các router còn lại đóng vai trò là DROther. Nguyên tắc đặt ra như sau: các router DROther
10


khi trao đổi thông tin định tuyến sẽ không gửi trực tiếp cho nhau mà sẽ gửi lên cho DR và
BDR. Sau đó router DR này sẽ forward lại thông tin xuống cho các router DROther khác.
Khi các router gửi thông tin lên cho DR và BDR, chúng sẽ sử dụng địa chỉ multicast
224.0.0.6 còn khi DR forward lại thông tin xuống các router khác, nó sử dụng địa chỉ
224.0.0.5.
Sau khi hoàn thành xong thao tác trao đổi LSDB, mỗi router trong vùng đều đã có được
bảng cơ sở dữ liệu trạng thái đường link của mọi router trong vùng, hay nói một cách khác,
mỗi router đã có được “tấm bản đồ mạng” của cả vùng. Dựa trên LSDB này, các router sẽ
chạy giải thuật Dijkstra để xây dựng một cây đường đi ngắn nhất đến mọi đích đến trong

mạng với gốc cây chính là router ấy. Từ cây này, router xây dựng lên bảng định tuyến của
mình.
Metric trong OSPF được gọi là cost, được xác định dựa vào bandwidth danh định của
đường truyền theo công thức như sau:
Metric = cost = 10^8/Bandwidth (đơn vị bps).
3. GIAO THỨC ĐỊNH TUYẾN IGRP. (Interio Gateway Routing Protocol)
IGRP là giao thức định tuyến độc quyền của Cisco,là giao thức định tuyến động dạng
Distance Vector. IGRP được mở rộng nhiều chức năng hơn so với RIP. Là giao thức định
tuyến dạng Distance vector nên nó cũng bao gồm chức năng sau:
• Gửi bản update định tuyến theo định kỳ là 90s.
• Gửi đầy đủ thông tin cập nhật trong bảng định tuyến theo định kỳ
• Thuật toán mà nó sử dụng là Bellman Fort
IGRP nó có thể khắc phục được những yếu điểm của RIP như metric là hop-count, kích
thước mạng tối đa là 15 hop. Cụ thể metric của nó là sự kết hợp của 5 yếu tố sau:
• Bandwidth – Băng thong
• Delay – Trễ
• Load –Tải
• Reliabilyti –độ tin cậy
• Maximum transfer Unit (MTU)- đơn vị tối đa
IGRP không sử dụng hop count trong metric của mình mà nó vấn có thể theo dõi được hop
count. Một mạng mà sử dụng IGRP thì kích thước mạng tối đa có thể lên đến 255 hop.
Cái ưu điểm dễ thấy ở đây của IGRP so với RIP ở đây là có hổ trợ unequal-cost load sharing
(là tính năng load balancing nghĩa là gói tin có thể đi nhiều đường tới địa chỉ đích nhưng cố
định thay vì chỉ chọn đường đi tốt nhất cho gói tin) và thời gian update lâu hơn RIP gấp 3
lần.
Tuy vậy nhưng IGRP là giao thức định tuyến nên cũng tồn tại yếu điểm là giao thức độc
quyền của Cisco.
a. Nguyên lý hoạt động và những đặc trưng của IGRP
Cũng giống như RIP nó là Classfull Distance Protocol nghĩa là nó sẽ gửi toàn bộ thông tin
của bảng định tuyến một cách có định kỳ ra tất cả các active interface, cũng broadcast request

packet khi khởi động,cũng cẩn thận check packet xem sourch Address,chúng cũng không
mang theo subnet mask trong thông tin định tuyến. Nếu như RIP sử dụng port 520, chạy trên
nền UDP để trao đổi định tuyến thì IGRP lại làm điều này trực tiếp trong gói tin IP, vơi
protocol numbers là 9.
IGRP sử dụng khái niệm Autonomous System (AS), một IGRP AS là một IGRP process
domain_tập hợp các router có chung routing protocol là một IGRP process. Cho phép
multiple IGRP AS tồn tại bên trong một AS có nghĩa là người quản trị có phân đoạn mạng tốt
hơn. Người quản trị có thể tạo một IGRP AS cho mỗi routing domain, giúp cho việc điều
khiển thông tin giữa các mạng tương tác tốt hơn.
11


IGRP thừa nhận 3 loại tuyến đường trong thông tin update:
• Interior route: mạng nối trực tiếp với router
• System route: là đường tới địa chỉ mạng mà bị summary bởi network border router.
• Exterior route: là đường học qua IGRP từ IGRP AS khác, nó cung cấp thông tin sử
dụng bởi default route.
b. IGRP timer
Chu kỳ update của IGRP là 90 giây, IGRP có sử dụng nhân tố random 20% để ngăn chặn sự
đồng bộ update timer. Khoảng thời gian giữa 2 lần update biến đổi từ 72 đến 90 giây.
Khi một tuyến đường đầu tiên được học, invalid timer cho tuyến đó là 270 giây hay là gấp 3
lần update timer. Flush timer được thiết lập với giá trị là 630 giây_ gấp 7 lần update timer.
Mỗi lần tuyến được được update thì những thông số thời gian này được khởi động lại. Nếu
như invalid timer trôi qua mà tuyến đường đó không nhận được một update thì tuyến đường
đó sẽ bị đánh dấu là không đến được. Tuyến đường đó sẽ được giữ trong routing table và
quảng bá với thông tin là tuyến đó không đến được cho đến khi flush timer trôi qua, tuyến đó
sẽ được xoá khỏi routing table.
Update timer của IGRP gấp 3 lần RIP, điều đó chứng tỏ IGRP tốn it băng thông hơn cho việc
gửi update. Nhưng thời gian hội tụ của IGRP sẽ lớn hơn RIP.
c. IGRP packet format


Gói tin IGRP
Như ta thấy bản tin IGRP update mang nhiều thông tin hơn so với RIP. Mỗi bản tin IGRP
update có thể chứa tối đa 104 muc nhập (entry) với mỗi mục nhập có kích thước 14octet và
header của IGRP update là 12 octet. Ta có maximum của IGRP packet là 12 + 104*14 =
1468 byte.
• Ý nghĩa các trường
 Version: luôn luôn có giá trị bằng 1.
 Opcode: có giá trị là 1 cho IGRP Request packet và có giá trị là 2 cho IGRP Update
packet
Chú ý Request packet không chứa mục nhập (entry).
 Edition: giá trị được tăng lên bởi nơi gửi bất cứ khi nào có một thay đổi về thông tin
định tuyến. Giá trị này giúp cho router tránh update nhầm thông tin update cũ sau khi
nhận thông tin update mới.
 Autonomous System Number: là ID number của IGRP process. Thông số này cho phép
multiple IGRP process trao đổi thông tin định tuyến qua một liên kết dữ liệu chung.
 Number of Interior Routes: là số mục nhập trong update, là những subnet của những
network nối trực tiếp.
12


 Number of System Routes: số tuyến đường tới những mạng mà không nối trực tiếp. Hay
nói cách khác, là những tuyến đường đã được summary bởi router biên.
 Number of Exterior Routes: là số tuyến đường tới những mạng mà được học bởi default
route.
 Checksum: được tính trên IGRP header và tất cả các mục nhập.
 Destination: là trường đầu tiên của mỗi mục nhập. Có một chú ý là trường destination
chỉ có 3 octet trong khi địa chỉ IP có 4 octet. Điều này được thực hiện do những nguyên
nhân sau. Nếu mục nhập là một interior route thì ít nhất octet đầu tiên của địa chỉ IP
luôn luôn được xác định từ địa chỉ IP của interface mà nó nhận được update. Tương tự

như vậy nếu mục nhập là system hay external route thì route sẽ bị summary và ít nhất là
octet cuối cùng là toàn zero. Do đó trường destination chỉ cần biểu diễn 3 octet đầu là
đủ.
 Delay: trường này bao gồm 24 bit.
 Bandwidth: trường này bao gồm 24 bit.
 MTU: là Maximum Transmission Unit nhỏ nhất của bất kỳ link nào trong tuyến đường
đến đích.
Mặc dù đây là một thông số nhưng không bao giờ được sử dụng để tính route.
Reliability, Load: có giá trị biến đổi từ 0x01 đến 0xFF.
Hop Count: có giá trị biến đổi từ 0x01 đến 0xFF cho biết số hop của tuyến đường
4. GIAO THỨC ĐỊNH TUYẾN EIGRP.
a. Định nghĩa:
EIGRP –Enhance Interio Gateway Routing Protocol lag giao thức định tuyến mở rộng của
IGRP, IGRP là giao thức dạng classfull, còn EIGRP là giao thức dạng Classless, nghĩa là có
mang theo subnet mask trong các lần cập nhật
EIGRP là giao thức định tuyến lai (Hybrid Routing), là sự kết hợp của Distance Vector và
Link States.
EIGRP là một giao thức định tuyến theo vector khoảng cách nâng cao nhưng khi cập nhật và
bảo trì thông tin láng giềng và thông tin định tuyến thì nó làm việc giống như một giao thức
định tuyến theo trạng thái đường liên kết.

b. Ưu điểm của EIGRP so với các giao thức định tuyến véc tơ khoảng cách
13


• Khả năng hội tụ nhanh: vì chúng sử dụng DUAL. DUAL bảo đảm hoạt động không bị lặp
vòng khi tính toán đường đi, cho phép mọi Router trong hệ thống mạng thực hiện đồng bộ
cùng lúc khi có sự thay đổi xảy ra
• Bảo tồn băng thông và sử dụng băng thông một cách hiểu quả: vì nó chỉ gửi thông tin cập
nhật một phần và giới hạn chứ không gửi toàn bộ bảng định tuyến. Nhờ vậy nó chỉ tốn một

lượng băng thông tối thiểu khi hệ thống mạng đã ổn định. Điều này tương tự như hoạt động
cập nhật của OSPF, Router EIGRP chỉ gửi thong tin cập nhật một phần cho Router nào cần
thông tin đó mà thôi chứ không gửi mọi Router khác trong vùng như OSPF. Chính vì hoạt
động cập nhật theo chu kỳ, các Router EIGRP giữ liên lạc với nhau bằng các gói hello rất
nhỏ. Việc trao đổi các gói hello theo định kỳ không chiếm nhiều băng thông đường truyền.
• Hỗ trợ VLSM (Veriable Length Subnet Mask) và CIDA(Classles Inter Domain Routing).
Không giống như IGRP,EIGRP có thể trao đổi thông tin ở các IP khác lớp mạng
• Hỗ trợ IP, IPX, Apple talk: vì Talk nhờ có cấu trúc từng phần theo giao thức (PDMs –
Protocok dependent modules). EIGRP có thể phân phối thông tin của IPX,RIP để cải tiến
hoạt động toàn diện. Trên thực tế, EIGRP có thể điều khiển giao thức này. Router EIGRP
nhận thông tin định tuyến và dịch vụ, chỉ cập nhật cho các Router khác khi thông tin trong
bảng định tuyến thay đổi.
• Chạy trực tiếp trên IP và protocol number là 88
• Load balancing trên tất cả các cost không bằng nhau
• Hổ trợ tất cả các giao thức và cấu trúc dữ liệu ở layer 2
• Không dùng broadcast và dùng Multicast hoặc Unicast trong từng trường hợp cụ thể
• Hổ trợ việc chứng thực
• Manual Summary trên bất kỳ interface nào
c. Nhược điểm: EIGRP là một giao thức với rất nhiều ưu điểm và có thể được sử dụng trong
những mô hình mạng vừa và lớn tuy nhiên vì đây là giao thức độc quyền của Cisco nên nó chỉ
chạy trên thiết bị của cisco, trong khi đó không phải một tổ chức nào cũng có thể dùng toàn đồ
Cisco mà còn các dòng sản phẩm khác nữa. Chính vì vậy, đây là một bất lợi của giao thức định
tuyến EIGRP.
d. Nguyên lý hoạt động
EIGRP Router lưu giữ các thông tin về đường đi và cấu trúc mạng trên RAM, nhờ đó chúng đáp
ứng nhanh chóng theo sự thay đổi. Giống như OSPF, EIGRP cũng lưu những thông tin này
thành từng bảng và từng cơ sở dữ liệu khác nhau.
EIGRP lưu các con đường mà nó học được theo một cách đặc biệt. Mỗi con đường có trạng thái
riêng và có đánh dấu để cung cấp thêm nhiều thông tin hữu dụng khác.
Topology exchange: Những Router neighbor sẽ trao đổi thông tin lẫn nhau, cập nhật đầy đủ cấu

trúc liên kết, topology mạng. Khi topoly mạng thay đổi nó sẽ cập nhật phần thay đổi.
Choosing routes: Mỗi Router sẽ tiến hành phân tích bảng EIGRP topology table, chọn ra con
đường định tuyến có metric tốt để đến các subnet.
Sau khi thực hiện 3 bước ở trên,hệ điều hành IOS sẽ lưu 3 bảng EIGRP Tables quan trọng:
• Bảng láng giềng(Neighbor table): Bảng láng giềng là bảng quan trọng nhất của EIGRP,
trong đó có danh sách các router thân mật với nó. Đối với mỗi giao thức mà EIGRP hổ
trợ thì nó sẽ có 1 bảng láng giềng tương ứng. Khi phát hiện một láng giềng mới, router sẽ
ghi lại thông tin về địa chỉ, cổng kết nối
• Bảng cấu trúc mạng(Topology table): là bảng cung cấp dữ liệu để xây dựng nên bảng
định tuyến của EIGRP. Thuật toán DUAL sẽ lấy thông tin từ bảng láng giềng và bảng
cấu trúc để chọn đường có chi phí thấp nhất cho từng mạch đích. Mỗi EIGRP Router lưu
một bảng cấu trúc mạng riêng tương ứng với từng loại giao thức mạng khác nhau. Bảng
14


cấu trúc mạng chứa thông tin về tất cả các con đường mà Router học được. Nhờ những
thông tin này mà Router có thể xác định đường đi khác để thay thế nhanh chóng khi cần
thiết. Thuật toán DUAL chọn ra đường tốt nhất đến mạng đích gọi là đường
kính(successor Router).
Những thông tin chưa trong bảng cấu trúc:
 Feasible Distance (FD): Là thông tin định tuyến nhỏ nhất mà EIGRP tính được cho
từng mạch đích
 Router Sourch: Là nguồn phát khởi thông tin về một nguồn nào đó, phần thông tin
này chỉ có đối với những kết nối ngoài mạng EIGRP
 Reported Distance (RD) : Là thông số định tuyến đến 1 Router láng giềng được thông
báo qua
 Thông tin về cổng giao tiếp mà Router sử dụng để đi đến mạch đích
 Trạng thái đường đi: Trạng thái không tác động (P-Passive) là trạng thái ổn định, sẵn
sàng sử dụng được, trạng thái tác động(A-active) là trạng thái đang trong tiến trình
tính toán lại của DUAL.

• Bảng định tuyến (Routing table): Bảng định tuyến EIGRP lưu giữ danh sách các đường
tốt nhất đến các mạng đích. Những thông tin trong bảng định tuyến được rút ra từ bảng
cấu trúc mạng. Router EIGRP có bảng định tuyến riêng cho từng giao thức mạng khác
nhau.
Con đường được chọn làm đường chính đến mạng đích gọi là successor. Từ thông tin
trong bảng láng giềng và bảng cấu trúc mạng, DUAL chọn ra một đường chính và đưa
lên mạng định tuyến. Đến một mạng đích có thể có đến 4 successor. Những đường này
có chi phí bằng nhau hoặc không bằng nhau. Thông tin về successor cũng được đạt trong
bảng cấu trúc mạng.
Đường Feasible successor (FS) là đường dự phòng cho đường successor. Đường này cũng được
chọn ra cùng với đường successor nhưng chúng chỉ được lưu trong bảng cấu trúc mạng nhưng
điều này không bắt buộc.
Router xem hop kế tiếp của đường Feasible successor dưới nó gần mạng đích hơn nó. Do đó,
chi phí của Feasbile successor được tính bằng chi phí của chính nó cộng với chi phí vào Router
láng giềng thông báo qua. Trong trường hợp này successor bị sự cố thì Router sẽ tìm Feasible
successor để thay thế. Một đường Feasible successor bắt buộc phải có chi phí mà Router láng
giềng thông báo qua thấp hơn chi phí của đường successor hiện tại. Nếu trong bảng cấu trúc
mạng không có sẵn đường Feasible successor thì con đường đến mạng đích tương ứng được
đưa vào trạng thái Active và Router bắt đầu gửi các gói yêu cầu đến tất cả láng giềng để tính
toán lại cấu trúc mạng. Sau đó với thông tin mới nhận được, Router có thể sẽ chọn ra được
successor mới hoặc Feasible successor mới. Đường mới được chọn xong sẽ có trạng thái là
Passive.

III. GIAO THỨC ĐỊNH TUYẾN NGOÀI EGP (Exterior Gateway Protocol)
Người ta sử dụng thuật ngữ EGP để chỉ bất cứ giao thức định tuyến nào được sử dụng để mang
thông tin định tuyến giữa các AS với nhau. Hiên nay giao thức cổng ngoại được sử dụng hầu
hết trong các Inernet TCP/IP đó chính là Border Gateway Protocol (BGP).
15



1. GIAO THỨC ĐỊNH TUYẾN BGP (Border Gateway Protocol).

BGP CƠ BẢN

1.1 Tổng quan BGP
a> Khái Niệm
- Như ta đã biết Internet được tạo bởi rất nhiều các Autonomous System (AS). BGP được sử
dụng để chia sẻ thông tin định tuyến giữa các AS khác nhau. BGP sử dụng giao thức vận
chuyển tin cậy (reliable transport protocol) để trao đổi thông tin định tuyến đó chính là
Transmission Control Protocol (TCP). BGP sử dụng cổng 179 để thiêt lập kết nối. BGP hỗ trợ
variable-length subnet mask (VLSM), classless interdomain routing (CIDR), và summarization.
Điều đáng chú ý về BGP là nó không quan tâm về intra-AS routing, nó tin tưởng rằng các IGP
được sử dụng trong AS sẽ đảm nhiệm intra-AS routing. Mà nó chỉ đề cập tới inter-AS routing.
Một BGP speaking device sẽ chia sẻ thông tin đến được mạng với neighbor của nó. Thông tin
đến được mạng chứa đựng dữ liệu dựa trên các AS khác nhau mà nó đi qua. Thông tin này sẽ
được BGP spaking device để tạo graph của tất cả các AS đang sử dụng. Graph đó sẽ giúp cho
BGP loại bỏ được routing loop và đảm bảo hiệu lực của policy cho AS của nó.
b> 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.
c> Một số thuật ngữ BGP
 Autonomous system (AS): Hệ thống tự trị. 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.
 BGP speaker: Bất cứ thiết bị nào mà chạy BGP routing process đều được coi là một BGP
speaker.

 Peer: Khi 2 BGP speaker thiết lập một kết nối TCP giữa chúng, thì chúng được coi là Peer.
Từ neighbor tương đương với peer.
 eBGP (External Border Gateway Protocol): Là routing protocol được sử dụng để trao đổi
thông tin định tuyến giữa các BGP peer của các AS khác nhau.
 iBGP (Internal Border Gateway Protocol): Là routing protocol sử dụng để trao đổi thông tin
định tuyến giữa các BGP peer của cùng chung một AS.
16


 Inter-AS routing: Là định tuyến xảy ra giữa các AS khác nhau.
 Intra-AS routing: Là định tuyến xảy ra trong cùng một AS.
1.2 Đặc điểm của BGP
 Sử dụng giao thức định hướng kết nối với những cải tiến:
- Bản tin cập nhật là tin cậy
- Cập nhật theo chu kì
- Nhiều thông số tính metrics
 Được dùng để thiết kế mạng có quy mô rất lớn
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. 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 routingupdate 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 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.

17


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
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 để đế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.
1.3 Hoạt động của BGP
- BGP cho phép truyền thông thông tin định tuyến giữa các AS khác nhau trải khắp thế giới.
- Chúng sử dụng 2 dạng BGP để
thực hiện điều đó:
+ Internal BGP (iBGP)
+ External BGP (eBGP)

- Tất cả BGP speaking device cùng trong một AS sẽ sử dụng iBGP để liên lạc với một BGP
speaking khác. Và đối với các BGP speaking trong cùng AS sẽ phải thiết lập peer với các BGP
speaking khác. Điều đó có nghĩa là chúng ta phi cấu hình full mesh cho iBGP để hoạt động một
cách đúng cách. Hay nói cách khác tất cả các thiết bị phải thiết lập kết nối TCP với thiết bị
khác.
- eBGP được sử dụng giữa BGP speaking device của các AS khác nhau. Giống như iBGP, BGP
speking device tham gia phi có kết nối layer-3 giữa chúng. Sau đó TCP sẽ được sử dụng bởi
eBGP để thiết lập peer session.
- Sau khi đã thiết lập được peer, BGP speaking device sẽ sử dụng thông tin mà chúng có được
từ những trao đổi để tạo một BGP graph.
Chỉ một lần BGP speaking device thiết lập được peer cũng như tạo được BGP graph, chúng mới
bắt đầu quá trình trao đổi thông tin định tuyến. Lúc khởi tạo BGP speaking sẽ trao đổi toàn bộ
BGP routing table của nó. Sau đó chúng sẽ trao đổi thông tin update từng phần giữa các peer
với nhau và trao đổi bản tin KEEPALIVE dể duy trì kết nối.
1.3.1 Định dạng mào đầu của các bản tin (Message Header Format)
18


- BGP sẽ tiến hành xử lý bản tin chỉ khi toàn bộ bản tin được nhận. BGP yêu cầu mỗi bản tin có
kích thước nhỏ nhất là 19 bytes và max là 4096 bytes. Header của bản tin bao gồm những thông

tin sau:

+ Marker: Trường này dài 16 byte. Trường Marker được sử dụng để xác định sự mất đồng bộ
giữa một tập BGP peer và chứng thực các bản tin BGP đến (incoming BGP message). Giá trị
của trường này phụ thuộc vào loại bản tin. Nếu là một OPEN message nó sẽ không chứa thông
tin chứng thực và Marker có giá trị là toàn bit 1.
+ Length: Trường này có độ dài là 2 byte. Trường Length cho biết độ dài của toàn bộ bản tin.
Giá trị của nó biến đổi từ 19 cho đến 4096.
+ Type: trường này có độ dài 1 byte. Nó cho biết loại bản tin được sử dụng. Cụ thể như hình
bên dưới:

a> Bản tin OPEN ( OPEN Message)
Bản tin OPEN là loại bản tin đầu tiên được gửi sau khi phiên kết nối TCP được thiết lập. Khi
bản tin OPEN được chấp nhận, một bản tin KEEPALIVE xác nhận bản tin OPEN được gửi trả
lại. Sau khi bản tin KEEPALIVE được gửi để xác nhận bản tin OPEN, bản tin UPDATE từng
phần, bản tin NOTIFICATION và bản tin KEEPALIVE sẽ được trao đổi giữa các BGP peer.
Bản tin OPEN có định dạng như sau:

 Version: trường này có chiều dài 1 byte và được sử dụng để xác định phiên bản của các BGP
speaker từ kết quả của quá trình đàm phán với neighbor. Cụ thể quá trình này như sau: BGP
speaker sẽ thử đàm phán với giá trị version number cao nhất mà cả 2 cùng hỗ trợ. Nếu giá trị
version number được xác định trong trường version mà BGP speaker khác không hỗ trợ,
19


một bản tin lỗi sẽ được gửi về cho nơi gửi và phiên kết nối TCP sẽ bị ngắt. Quá trình trên sẽ
tiếp tục cho đến khi có một giá trị version number chung được thiết lập.
 My Autonomous System: trường này có độ dài 2 byte và nó chứa đựng Autonolous System
Number của BGP speaker gửi. Trường này sẽ thông báo cho BGP speaker nhận biết được
giá trị của AS Number của neighbor của nó. Và giá trị đó cũng được sử dụng để tạo nên

BGP graph của BGP speaker.
 Hold Time: trường này có độ dài 2 byte. Nó thông báo cho BGP speaker nhận giá trị đề
nghị hold time của BGP speker gửi. Sau khi BGP speaker nhận được giá trị hold time từ
neighbor nó sẽ tính toán và đưa ra giá trị hold time trong trường Hold Time. Nó sẽ xác định
thời gian tối đa mà nơi nhận phải đợi một thông điệp từ nơi gửi (KEEPALIVE hay
UPDATE
message). Mỗi lần một bản tin được nhận giá trị hold time được reset về 0.
 BGP Identifier: trường này có độ dài 4 byte và chứa đựng giá trị BGP identifier của BGP
speaker gửi. BGP identifier tưng tự RID trong OSPF, nó xác định duy nhất một BGP
speaker. BGP identifier chính là địa chỉ IP cao nhất của loopback interface. Nếu loopback
không được cấu hình thì nó chính là địa chỉ IP cao nhất của bất kỳ interface nào của router.
Giá trị này được xác định chỉ một lần và giá trị này không thay đổi trừ phi khởi động lại
BGP process.
 Optional Parameters Length: trường này có độ dài 1 byte và nó thể hiện tổng độ dài của
trường.
 Optional Parameters. Nếu giá trị trường này là 0 cho biết Optional Parameters không được
thiết lập. Trường này có độ dài biến đổi và chứa đựng một danh sách các Optional
parameters mà chúng sẽ được sử dụng trong quá trình đàm phán với neighbor. Mỗi một
optional parameter được biểu diễn bởi bộ ba: value.>
Định dạnh cụ thể như hình sau:

+ Parameter Type: trường này có độ dài 1 byte và nhận ra từng thông số riêng lẻ.
+ Parameter Length: có độ dài 1 byte và chứa đựng độ dài của trường Parameter Value.
+ Parameter Value: trường này có độ dài thay đổi và giải thích dựa trên giá trị của trường
Parameter Type.
b> Bản tin UPDATE (UPDATE Message)
- Sau khi BGP speaker trở thành peer, chúng sẽ trao đổi bản tin UPDATE từng phần
(incremental UPDATE message) chứa đựng thông tin định tuyến cho BGP. Thông tin này chứa
trong bản tin UPDATE được sử dụng để xây dựng môi trường định tuyến không có loop (loopfree routing environment).

- Bản tin UPDATE không chỉ chứa tuyến khả thi để sử dụng mà nó còn chứa những tuyến
không khả thi để loại bỏ. Một bản tin UPDATE có thể chứa tối đa một feasible route để sử dụng
và nhiều unfeasible route để loại bỏ. Đinh dạng của bản tin UPDATE như sau:

20


 Unfeasible Routes Length: trường này có độ dài 2 byte và chứa đựng độ dài của trường
Withdrawn Routes. Giá trị của nó là 0 cho biết trường Withdrawn Routes không được thể
hiện trong bản tin UPDATE.
 Withdrawn Routes: trường này có độ dài thay đổi và chứa một danh sách những tiền tố địa
chỉ IP (IP address prefixes)sẽ bị loại bỏ. Với mỗi tiền tố địa chỉ IP có định dạng như sau:
 Length: trường này có độ dài 1 byte và chứa đựng độ dài (đơn vị là bit) của IP
address prefix. Nếu có giá trị là 0 có nghĩa là tất cả IP address prefix.
 Prefix: có giá trị biến đổi và chứa đựng IP address
prefix.
 Total Path Attributes Length: trường này có độ dài 2 byte và
chứa đựng độ dài của trường Path Attributes.
 Path Attributes: trường này có độ dài thay đổi và chứa đựng một chuỗi các thuộc tính về
path. Trường Path Attributes được thể hiện trong mỗi bản tin UPDATE. Thông tin chứa
đựng trong trường Path Attribute được sử dụng để theo dõi thông tin định tuyến đặc biệt và
cũng được sử dụng cho routing decision và filtering. Mỗi path attribute được phân chia vào
một bộ ba (triplet): <Attribute type, Attribute length, Attribute value>.
 Attribute Type: có độ dài 2 bytes và bao gồm 1 byte Attribute Flags và 1 byte
Attribute Type Code có cấu trúc:
 Attribute Flags: có 4 trạng thái như sau:
+ Well-known mandatory: Thuộc tính này phải được thừa nhận bởi sự thi
hành của tất cả BGP speaker và phải được trình bày trong bản tin UPDATE. Một
phiên BGP sẽ bị ngắt nếu một thuộc tính well-known attribute không được trình bày
trong bản tin UPDATE.

+ Well-known discretionary: Thuộc tính này phải được thừa nhận bởi sự thi
hành của tất cả BGP speaker nhưng không nhất thiết nó phải có trong bản tin
UPDATE.
+ Optional transitive: Thuộc tính này là một tính tuỳ chọn và nó có thể
không được thừa nhận bởi sự thi hành của BGP speaker. Chú ý giá trị này không
thay đổi nếu nó không được thừa nhận bởi BGP speaker.
+ Optional non-transitive: Nếu thuộc tính này không được thừa nhận bởi
BGP speaker và transitive flag không được thiết lập thì thuộc tính này sẽ bị loại bỏ.
 Attribute Type Code: Xác định loại Path Attribute. Cụ thể được minh hoạ như
hình sau:

21


Trong đó:
- ORIGIN: là một well-known mandatory attribute. AS mà tạo ra thông tin định tuyến sẽ
tạo ra thuộc tính ORIGIN attribute. Nó có trong tất cả bản tin UPDATE để nhân bản thông tin
định tuyến.
- AS_PATH: là một well-known mandatory attribute. Nó bao gồm một danh sách của tất
cả các AS mà thông tin định tuyến đã đi qua. Thành phần AS_PATH bao gồm một chuỗi của
các AS path segment. Mỗi AS path segment được biểu diễn bằng bộ ba (triplet): type, path segment length, path segment value>. Khi một BGP speaker quảng bá một route mà
nó học được tới BGP speaker khác trong AS của nó, BGP speaker sẽ không sửa đổi (modify)
AS_PATH attribute. Khi một BGP speaker quảng bá một route mà nó được tới BGP speaker
khác ở ngoài AS của nó, BGP speaker sẽ sửa đổi (modify) AS_PATH.
Khi một BGP speaker tạo ra một route. Nó sẽ bao gồm một empty AS_PATH attribute khi
quảng bá tới BGP speaker trong AS của nó_đó chính là iBGP peer.
BGP speaker sẽ bao gồm AS number trong AS_attribute khi qung bá tới BGP speaker ở ngoài
AS củanó_đó chính là eBGP peer.
- NEXT_HOP: là một well-known mandatory attribute, nó xác định địa chỉ IP của router

biên (border router) mà được sử dụng như hop tiếp theo để tới đích xác định nào đó.
- MULTI_EXIT_DISC: là một optional non-transitive attribute. Nếu có nhiều mục nhập
tới cùng một AS, nó có thể được sử dụng để xác định mục nhập nào được sử dụng. Mục nhập
nào có metric nhỏ nhất sẽ được sử dụng.
- LOCAL_PREF: là một well-known discretionary attribute. Thuộc tính này được sử
dụng bởi BGP speaker để thiết lập độ ưu tiên của một route, nó được sử dụng để cho biết độ ưu
tiên cao hơn của một đường để thoát khỏi AS. BGP speaker sẽ quảng bá thuộc tính này tới BGP
peer của nó.
- ATOMIC_AGGREGATE: là một well-known discretionary attribute. Khi một BGP
speaker nhận được những route trùng khớp từ peer của nó, nó có thể thiết lập thuộc tính
ATOMIC_AGGREGATE. Thuộc tính này sẽ được thiết lập nếu BGP speaker chọn được một
route với subnet mask ngắn hơn subnet mask của một route khác.
22


- AGGREGATOR: là một optional transitive attribute. Khi một BGP speaker thực hiện
route aggregator, nó sẽ tính đến thuộc tính AGGREGATOR bao gồm AS number của nó và
BGP identifier.
- COMMUNITY: là một optional transitive attribute. Thuộc tính này sẽ phân nhóm các
bằng cách gằn thẻ (tag) vào những route có một số đặc điểm chung.
- ORIGINATOR_ID: là một optional non-transitive attribute. Một BGP speaker thực hiện
vai trò của một route reflector sẽ tạo ra thuộc tính này. Thuộc tính ORIGINATOR_ID sẽ bao
gồm BGP identifier của route reflector. Thuộc tính này chỉ có ý nghĩa local AS.
- CLUSTER_LIST: là một optional non-transitive attribute. Thuộc tính này bao gồm một
danh sách giá trị CLUSTER_ID. Khi một route reflector reflect một route, nó sẽ gắn giá trị
CLUSTER_ID của nó vào CLUSTER_LIST.
…….. vv…………………………………………….
 Network Layer Reachability Information: Với BGP version 4 nó hỗ trợ Classless
Interdomain Routing (CIDR). Để thực hiện được điều này nó sử dụng trường Network Layer
Reachability Information (NLRI). Trường này có 2 phần sau:

+ Length: cho biết độ dài của IP address prefix.
+ Prefix: có độ dài thay đổi và chứa đựng IP address prefix thực sự.
c> Bản tin KEEPALIVE (KEEPALIVE Message)
- Bản tin KEEPALIVE được sử dụng để đảm bảo rằng peer vẫn tồn tại. Bản tin KEEPALIVE
được cấu trúc bởi BGP Message Header. Bản tin KEEPALIVE được gửi trong trường hợp
restart giá trị hold timer. Chu kỳ gửi bản tin KEEPALIVE có giá trị bằng 1/3 giá trị hold time.
Bản tin KEEPALIVE không được gửi nếu một bản tin UPDATE trong suôt khoảng chu kỳ này.
d> Bản tin NOTIFICATION (NOTIFICATION Message)
- Bất cứ khi nào có một lỗi xảy ra trong một BGP session, BGP speaker phát ra một bản tin
NOTIFICATION. Ngay sau khi BGP speaker được phát ra thì phiên kết nối sẽ bị ngắt. Bản tin
NOTIFICATION bao gồm error code, error sub-code sẽ cho phép người quản trị thuận lợi hơn
trong quá trình gỡ rối. Định dạng của bản tin NOTIFICATION như sau:

1.3.2 Thiết lập mối quan hệ BGP neighbor:
- Trước khi quá trình BGP liên lạc xảy ra, BGP speaker phải trở thành neighbor hay peer của
nhau. Bước đầu trong quá trình thiết lập peer là BGP speaker thiết lập phiên kết nối TCP sử
dụng port 179 với BGP speaker khác. Nếu điều này không xảy ra thì BGP speaker sẽ không bao
giờ trở thành peer của nhau. Sau khi phiên kết nối TCP được thiết lập, BGP speaker gửi bản tin
OPEN tới peer của nó. Tiếp đó là các bản tin UPDATE, NOTIFICATION, KEEPALIVE sẽ
được trao đổi.
- Quá trình thiết lập neighbor đó được gọi là Finite State Machine. Quá trình trên có 6 trạng thái
có thể xảy ra trong quá trình thiết lập quan hệ với neighbor
 Idle state: là trạng thái đầu tiên mà BGP speaker trải qua khi khởi tạo một phiên BGP. Ơ
trạng thái này BGP speaker đợi một start event, từ chối tất cả BGP kết nối đến và không
khởi tạo bất kỳ một BGP kết nối nào (BGP connection). Start event có thể được tạo ra
bởi BGP speaker hay quản trị hệ thống. Chỉ một lần start event xảy ra, BGP speaker sẽ
khởi tạo tất cả tài nguyên BGP của nó. BGP sẽ khởi tạo ConnectRetry timer, khởi tạo
23











một kết nối TCP tới BGP speaker mà muốn trở thành peer với nó và cũng lắng nghe start
event từ BGP speaker khác. BGP speaker sẽ thay đổi trạng thái của nó sang Connection.
Nếu bất kỳ lỗi nào xảy ra trong xuốt quá trình này, phiên TCP sẽ bị ngắt và trạng thái của
BGP speaker sẽ trở lại Idle. Và một start event mới cần phải xảy ra để BGP speaker thử
kết nối lại lần nữa. Nếu start event được tự động sinh ra, BGP speaker sẽ đợi 60 giây
trước khi thử lại (retry) kết lối. Và mỗi lần retry kế tiếp thời gian chờ sẽ tăng lên gấp đôi.
Connection state: Trong trạng thái này, BGP sẽ đợi kết nối TCPđược thiết lập. Chỉ một
lần kết nối được thiết lập thành công, BGP speaker sẽ làm sạch ConnectRetry timer, nó
sẽ gửi một bản tin OPEN tới remote BGP speaker và chuyển trạng thái của nó sang
OpenSent. Nếu kết nối TCP không được kết nối thành công, BGP speaker sẽ khởi tạo lại
ConnectRetry timer, và tiếp tục nghe một yêu cầu kết nối khác tử remote BGP speaker,
và chuyển trạng thái sang Active. Nếu ConnectRetry timer hết hạn, BGP speaker sẽ khởi
tại lại ConnectRetry timer và tiếp tục lắng nghe một yêu cầu kết nối từ remote BGP
speaker và nó vẫn giữ trạng thái của nó ở Connection state. Nếu bất cứ loại event khác
gây lên lỗi thì BGP speaker sẽ đóng kết nối TCP và chuyển trạng thái của nó về Idle. Tất
cả các start even đều sẽ bị lờ đi trong Connection state.
Active state: trong trạng thái này, BGP speaker thử khởi tạo một phiên kết nối TCP với
BGP speaker mà muốn trở thành peer với nó. Chỉ một lần kết nối thành công, BGP
speaker sẽ xoá sạch ConnectRetrry timer, sau đó BGP speaker sẽ gửi một bản tin OPEN
tới remote BGP speaker và chuyển trạng thái sang OpenSent. Nếu ConnectRetry timer
hết hạn, BGP speaker sẽ thiết lập lại thời gian, khởi tạo một phiên kết nối TCP và tiếp
tục lắng nghe các yêu cầu kết nối từ remote BGP speaker và chuyển trạng thái sang

Connection. Nếu BGP speaker xác định được một BGP speaker khác thử thiết lập kết
nối với nó và địa chỉ IP của remote BGP speakerkhông phải là địa chỉ mong muốn, BGP
speaker sẽ từ chối yêu cầu kết nối này và thiết lập lại ConnectRetry timer, tiếp tục lắng
nghe một yêu cầu kết nối khác từ remote BGP speaker và giữ trạng thái Active. Nếu bất
cứ loại event khác nào gây ra lỗi, BGP speaker sẽ đóng kết nối TCP và chuyển trạng thái
về Idle. Tất cả start event sẽ bị lờ đi ở trạng thái Active.
OpenSent state: ở trạng thái này, BGP speaker đợi để nhận một bản tin OPEN từ remote
BGP speaker. Chỉ một lần BGP speaker nhận bản tin OPEN, tất cả các trường sẽ được
kiểm tra.Nếu một lỗi được xác định bởi BGP speaker, nó sẽ gửi một bản tin
NOTIFICATION tới remote BGP speaker và ngắt kết nối TCP, và chuyển trạng thái của
nó sang Idle. Nếu không có lỗi nào được xác định, BGP speaker sẽ gửi một bản tin
KEEPALIVE tới remote BGP speaker, thiết lập các giá trị keepalive timer và hold timer
để đàm phán với neighbor. BGP speaker sẽ đàm phán để điều chỉnh giá trị hold time.
Nếu hold time giá trị là 0, có nghĩa là keepalive timer và hold timer sẽ không bao giờ
được thiết lập lại. Sau quá trình đàm phán về hold timer, BGP speaker sẽ xác định kết
nỗi là iBGP hay eBGP.
Nếu 2 BGP speaker cùng trong một autonomous system, loại BGP sẽ là iBGP.
Nếu chúng thuộc 2 autonomous system khác nhau, loại BGP sẽ là eBGP. Chỉ một lần
loại BGP được xác định, trạng thái của nó sẽ chuyển sang OpenConfirm. Trong suốt
trạng thái này, có thể BGP speaker sẽ nhận được một bản tin disconnect. Nếu điều này
xảy ra, BGP speaker sẽ chuyển trạng thái sang Active. Nếu bất kỳ event khác nào gây ra
một lỗi, BGP speaker sẽ đóng kết nối TCP và chuyển trạng thái sang Idle. Tất cả các
start event sẽ bị lờ đi trong trạng thái OpenSent.
OpenConfirm state: ở trạng thái này, BGP speker đợi để nhận một bản tin KEEPALIVE
từ remote BGP speaker. Chỉ một lần bản tin KEEALIVE được nhận, BGP speaker sẽ
24


thiết lập lại hold timer và chuyển trạng thái sang Established. Tại thời điểm này mối
quan hệ peer giữa chúng đã được thiết lập. Nếu một bản tin NOTIFICATION được nhận

thay thế cho bản tin KEEPALIVE, BGP speaker sẽ thay đổi trạng thái sang Idle. Trong
trường hợp hold timer hết hạn trước khi nhận được bản tin KEEPALIVE từ remote BGP
speaker, kết thúc kết nối TCP chuyển trạng thái sang Idle. BGP speaker có thể nhận
được bản tin disconnect từ peer của nó. Nếu điều này xảy ra, BGP speaker chuyển trạng
thái sang Idle. Bất cứ loại event khác gây lên lỗi, BGP speaker sẽ đóng kết nối TCP và
chuyển trạng thái sang Idle. Tất cả các start event sẽ bị lờ đi trong trạng thái
OpenConfirm.
 Established state: chỉ một lần một BGP speaker đạt đến trạng thái Established, tất cả các
quá trình đàm phán với neigbor đã hoàn tất. Ơ trạng thái này BGP peer sẽ trao đổi bản tin
UPDATE và bản tin KEEPALIVE. Mỗi lận BGP speaker nhận được một bn tin
UPDATE hay bn tin KEEPALIVE, nó sẽ thiết lập lại hold timer của nó. Nếu hold timer
hết hạn trước khi nhận được một bản tin UPDATE hay bản tin KEEPALIVE, BGP
speaker sẽ gửi một bản tin NOTIFICATION tới peer của nó, ngắt phiên kết nối TCP và
chuyển trạng thái sang Idle. Bất cứ event khác khiến cho BGP speaker tạo ra một bản
NOTIFICATION thì BGP speaker sẽ chuyển trạng thái về Idle. Tất cả Start event sẽ bị
lờ đi trong trạng thái Established.
Chỉ một lần BGP peer đạt đến trạng thái Established, chúng sẽ bắt đầu quá trình trao
đổi thông tin định tuyến.
1.3.3 Chọn tuyến đường (Route Selection)
Trong phần trước chúng ta đã xem xét đến quá trình trao đổi thông tin định tuyến giữa các BGP
speaker. Trong phần này chúng ta sẽ xem xét đến quá trình xử lý thông tin định tuyến của BGP
speaker khi nhận được thông tin định tuyến. Để có được sự hiểu đầy đủ về quá trình xử lý thông
tin định tuyến của BGP speaker trước hết ta cần tìm hiểu về Routing Information Bases.
a> Routing Information Bases
- Khi BGP speaker học được một tuyến đường thì tuyến đường đó phải đi qua Routing
Information Base (RIB) của nó. Tất cả BGP speaker đều có một RIB, nó bao gồm ba phần
chính sau: + Adj-RIBs-In: BGP speaker sẽ có một Adj-RIB-In cho một peer của nó. Đây là
nơi mà
tuyến đường BGP đến được lưu giữ.
+ Loc-RIB: đây là cái mà router cần dựa vào để đưa ra những quyết định định tuyến.

+ Adj-RIBs-Out: Nếu một tuyến đường BGP (BGP route) đã lọt qua outbound policy
engine, thì tuyến đường đó sẽ được đưa ra Adj-RIB-Out. BGP speaker có một Adj-RIBOut tương ứng với một peer của nó. Những tuyến đường mà được đưa ra Adj-RIB-Out
sẽ được quảng bá tới BGP speaker là peer của nó.
Hình sau sẽ minh hoạ một quá trình xử lý BGP route:

Bước 1: BGP speaker nhận một tuyến đường BGP.
Bước 2: Tuyến đường đó được đưa vào Adj-RIBs-In sau khi được nhận.
Bước 3: Tuyến đường BGP đượcgửi tới inbound policy engine.
Bước 4: Inbound policy engine sẽ lọc và tác chế (manipulate) tuyến đường dựa trên (chính
sách) policy được thiết lập bởi người quản trị router. Những tuyến đường BGP được lọc sẽ bị
drop tại điểm này.
Bước 5: những tuyến đường BGP còn lại được đưa tới Loc-RIB.
25


×