HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
KHOA VIỄN THƠNG 1
----------
TIỂU LUẬN CUỐI KỲ MÔN HỌC
INTERNET VÀ GIAO THỨC
Giảng viên hướng dẫn: PGS. TS Nguyễn Tiến Ban
Nhóm mơn học: 06
Nhóm tiểu luận: 04
Tháng 12 - 2021
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
KHOA VIỄN THƠNG 1
----------
ĐỀ TÀI TIỂU LUẬN
GIAO THỨC BGP
Sinh viên thực hiện
Đào Mạnh Hưng
B18DCVT211
Trần Quang Hưng
B18DCVT219
Đỗ Thái Hoàng
B18DCVT171
Tháng 12 - 2021
Tiểu luận cuối kỳ
Internet và giao thức
LỜI NÓI ĐẦU
Trong thời đại mà cuộc cách mạng công nghiệp 4.0 đang phát triển mạnh mẽ, mạng
Internet nắm giữ một vai trò rất quan trọng - là mơi trường để chúng ta có thể trao đổi thơng
tin với nhau một cách nhanh chóng, chính xác bất kể chúng ta đang ở đâu hay đang làm gì.
Để trao đổi thơng tin được với nhau, ta cần kết nối vào mạng Internet mà mạng Internet ở
đây là một tập các thiết bị kết nối với nhau bằng các cách khác nhau, ta sẽ như là một thiết
bị tham gia vào mạng lưới này. Tuy nhiên, một điều chắc chắn rằng số lượng các kết nối
trong mạng Internet là rất lớn (cỡ hàng tỉ, trăm tỉ hoặc có thể lớn hơn nhiều lần nữa). Điều
này địi hỏi một phương thức phù hợp sao cho thông tin trao đổi với nhau chính xác, nhanh
chóng mà vẫn đảm bảo các điều kiện về tài nguyên mạng, giá thành, khả năng tích hợp
cao,... Vì vậy, một bài tốn được đặt ra để giải quyết những yêu cầu trên, đó là bài tốn
định tuyến.
Định tuyến, một cách đơn giản, có thể hiểu là xác định đường đi. Từ đó, áp vào mạng
Internet thì định tuyến nghĩa là xác định tuyến đường để chuyển thơng tin từ nguồn đến
đích như mong muốn một cách tối ưu nhất. Định tuyến cũng đóng một vai trị rất quan trọng
trong việc trao đổi thơng tin giữa các thiết bị mạng với nhau. Nếu như khơng có định tuyến,
các thơng tin sẽ khơng biết hướng đi và như vậy việc trao đổi thông tin giữa các thiết bị là
bất khả thi.
Thông thường, để thực hiện chức năng định tuyến, ta sử dụng một loại thiết bị mạng,
đó là Router. Các Router sẽ như là một đại diện cho các thiết bị, các mạng con và kết nối
với nhau thành mạng lưới. Hiểu đơn giản, các Router chính là các nút mạng (các điểm trong
mạng lưới Internet). Các nút mạng này kết nối và trao đổi thông tin với nhau bằng định
tuyến. Dĩ nhiên, sẽ luôn có những quy tắc nhất định phải tuân theo khi thực hiện định tuyến.
Tập các quy tắc này được gọi là giao thức định tuyến.
Trong bài tiểu luận này, chúng em sẽ trình bày về một trong những giao thức định
tuyến phổ biến hiện nay, đó là giao thức BGP. Bố cục bài tiểu luận gồm 5 chương:
-
Chương 1: Tổng quan về BGP
Chương 2: Cách thức hoạt động của BGP
Chương 3: Một số thuộc tính đường dẫn của BGP
Chương 4: Các chính sách khi sử dụng BGP
Chương 5: Mơ phỏng thử nghiệm BGP
Nhóm sinh viên
Nhóm tiểu luận 04 - Nhóm môn học 06
1
Tiểu luận cuối kỳ
Internet và giao thức
MỤC LỤC
LỜI NÓI ĐẦU..................................................................................................................... 1
THUẬT NGỮ ...................................................................................................................... 5
DANH MỤC HÌNH ẢNH .................................................................................................. 7
DANH MỤC BẢNG ........................................................................................................... 7
Chương 1 - Tổng quan về BGP ......................................................................................... 8
I. Khái niệm ...................................................................................................................... 8
II. Đặc điểm ...................................................................................................................... 8
III. Các trường hợp sử dụng BGP................................................................................... 10
1. Trường hợp nên sử dụng ........................................................................................ 10
2. Trường hợp không nên sử dụng ............................................................................. 11
IV. So sánh iBGP và eBGP ............................................................................................ 11
V. Các bước xây dựng bảng định tuyến ......................................................................... 11
Chương 2 - Cách thức hoạt động của BGP .................................................................... 12
I. Định dạng tiêu đề của bản tin ...................................................................................... 13
1. Bản tin OPEN ......................................................................................................... 14
2. Bản tin UPDATE .................................................................................................... 15
3. Bản tin KEEPALIVE ............................................................................................. 18
4. Bản tin NOTIFICATION ....................................................................................... 18
II. Thương lượng với các hàng xóm ............................................................................... 18
1. Trạng thái rỗi .......................................................................................................... 19
2. Trạng thái kết nối.................................................................................................... 19
3. Trạng thái hoạt động ............................................................................................... 19
4. Trạng thái sẵn sàng gửi........................................................................................... 20
5. Trạng thái sẵn sàng nhận ........................................................................................ 20
6. Trạng thái thiết lập.................................................................................................. 20
III. Thứ tự ưu tiên khi tìm tuyến đường ......................................................................... 21
Chương 3 - Một số thuộc tính đường dẫn của BGP ...................................................... 22
I. AS-PATH .................................................................................................................... 22
II. NEXT HOP ................................................................................................................ 23
Nhóm tiểu luận 04 - Nhóm mơn học 06
2
Tiểu luận cuối kỳ
Internet và giao thức
1. Giới thiệu ................................................................................................................ 23
2. NEXT HOP trong Multi-access.............................................................................. 24
3. NEXT HOP trong NBMA (Frame Relay) .............................................................. 24
III. AGGREGATOR và LOCAL PREFERENCE ......................................................... 25
1. AGGREGATOR..................................................................................................... 25
2. LOCAL PREFERENCE ......................................................................................... 25
IV. WEIGHT và MED ................................................................................................... 26
1. WEIGHT ................................................................................................................ 26
2. MED (Multiple Exit Discriminator) ....................................................................... 26
Chương 4 - Các chính sách khi sử dụng BGP ............................................................... 28
I. Lọc tuyến ..................................................................................................................... 28
II. Sử dụng DISTRIBUTE LIST để lọc tuyến ................................................................ 28
III. IP prefix-list .............................................................................................................. 29
1. Một số ưu điểm ....................................................................................................... 29
2. Cấu trúc câu lệnh IP prefix-list ............................................................................... 29
3. Nguyên tắc sử dụng ................................................................................................ 30
4. Một số lưu ý ............................................................................................................ 31
IV. ROUTE MAP ........................................................................................................... 31
1. Mục đích sử dụng ................................................................................................... 31
2. Một số đặc điểm ..................................................................................................... 31
3. Một số quy luật tổng quát ....................................................................................... 32
Chương 5 - Mô phỏng thử nghiệm BGP ........................................................................ 33
I. Yêu cầu ........................................................................................................................ 33
II. Các bước cấu hình...................................................................................................... 33
1. Bước 1 .................................................................................................................... 34
2. Bước 2 .................................................................................................................... 34
3. Bước 3 .................................................................................................................... 35
4. Bước 4 .................................................................................................................... 35
III. Kiểm tra kết quả ....................................................................................................... 36
1. Kiểm tra hàng xóm BGP ........................................................................................ 36
Nhóm tiểu luận 04 - Nhóm môn học 06
3
Tiểu luận cuối kỳ
Internet và giao thức
2. Kiểm tra bảng BGP ................................................................................................ 37
3. Kiểm tra bảng định tuyến ....................................................................................... 38
LỜI KẾT ........................................................................................................................... 40
TÀI LIỆU THAM KHẢO ............................................................................................... 41
Nhóm tiểu luận 04 - Nhóm mơn học 06
4
Tiểu luận cuối kỳ
Internet và giao thức
THUẬT NGỮ
STT
Thuật ngữ
Mô tả
Aggregation
Là q trình tóm tắt các tun đường –
(summarization)
Attribute
Tương tự như metric, các biến này sẽ mơ tả
các thuộc tính của đường dẫn đến một địa
chỉ đích cụ thể nào đó. Sau khi được xác
định, các thuộc tính này có thể được sử
dùng để ra quyết định về con đường sẽ đi
Autonomous System
Là tập hợp các hệ thống mạng dưới sự kiểm
soát của cùng một admin, thường là một
nhà cung cấp dịch vụ Internet (ISP). Các
router trong cùng một AS có cùng giao thức
định tuyến. Khi 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 Internet Committee.
4
Exterior Gateway Protocol (EGP)
Thuật ngữ chung cho một giao thức được
thực thi giữa các AS khác nhau, tiền thân
của BGP
5
eBGP
Gửi thông tin định tuyến giữa các AS khác
nhau
6
Interior Gateway Protocol (IGP)
Các giao thức định tuyến sử dụng bên trong
cùng một AS
7
IBGP
Giao thức này được sử dụng bên trong một
AS. Các bộ định tuyến không nhất thiết
phải là neighbor của nhau về phương diện
kết nối vật lý và thường đặt ở rìa của một
AS. IBGP được dùng giữa các router chạy
BGP trong một AS.
8
Originator-ID
Là thuộc tính tùy chọn của BGP, chứa ID
của router đã tao ra tuyến đường đó. Mục
đích: ngăn ngừa routing loop.
1
2
3
Nhóm tiểu luận 04 - Nhóm môn học 06
5
Tiểu luận cuối kỳ
Internet và giao thức
Policy-based routing
Một cơ chế cho phép các admin lập trình
routing protocol bằng cách định tuyến lưu
lượng. Là một dạng định tuyến tĩnh. PBR
độc lập với các giao thức định tuyến và sử
dụng route-map để tạo ra các quá trình
riêng lẻ nhằm thực thi các quyết định định
tuyến.
Prefix-list
Được dùng như một distribute-list để kiểm
soát cách mà BGP nhận hoặc gửi cập nhật.
Prefix-list nhanh hơn, linh hoạt và tốn ít tài
nguyên hệ thống hơn.
Route-reflector
Là một bộ định tuyến được config để
chuyển tiếp các tuyến đường từ các bộ định
tuyến iBGP khác. Khi config routereflector, các iBGP khơng cần phải fullymesh nữa. Một network fully-mesh thì
khơng thể mở rộng.
Route-Reflector-Client
Một client là một router có một phiên TCP
và một router khác hoạt động như một
route-reflector-server. Client không nhất
thiết phải setup peer với client khác.
13
Route-Reflector Cluster
Một cluster là một nhóm bao gồm một
route-reflector và clients. Có thể có nhiều
hơn một máy chủ route-reflector trong một
cluster.
14
Transit autonomous system
Là AS được dùng để mang BGP traffic qua
các AS khác.
9
10
11
12
Nhóm tiểu luận 04 - Nhóm mơn học 06
6
Tiểu luận cuối kỳ
Internet và giao thức
DANH MỤC HÌNH ẢNH
Hình 1.1 - Các giao thức định tuyến động............................................................................ 8
Hình 1.2 - Các AS sử dụng BGP .......................................................................................... 9
Hình 1.3 - Ví dụ về vấn đề chính sách ............................................................................... 10
Hình 2.1 - Các AS khác nhau trong mạng .......................................................................... 12
Hình 2.2 - Định dạng tiêu đề của bản tin ............................................................................ 13
Hình 2.3 - Trường Type và các loại bản tin ....................................................................... 13
Hình 2.4 - Định dạng bản tin OPEN................................................................................... 14
Hình 2.5 - Cấu trúc trường Optional Parameters................................................................ 15
Hình 2.6 - Định dạng bản tin UPDATE ............................................................................. 16
Hình 2.7 - Cấu trúc tiền tố địa chỉ IP .................................................................................. 16
Hình 2.8 - Một số thuộc tính đường dẫn Path Attributes ................................................... 17
Hình 2.9 - Định dạng bản tin NOTIFICATION ................................................................. 18
Hình 3.1 - Ví dụ về thuộc tính AS-PATH .......................................................................... 22
Hình 3.2 - Ví dụ về AS-PATH với số Private AS .............................................................. 23
Hình 3.3 - Ví dụ về thuộc tính NEXT HOP ....................................................................... 23
Hình 3.4 - Ví dụ về NEXT HOP trong Multi-access ......................................................... 24
Hình 3.5 - Ví dụ về NEXT HOP trong NBMA .................................................................. 25
Hình 3.6 - Sử dụng lệnh Next-hop-self .............................................................................. 25
Hình 3.7 - Ví dụ về thuộc tính WEIGHT ........................................................................... 26
Hình 3.8 - Ví dụ về thuộc tính MED .................................................................................. 27
Hình 4.1 - Sử dụng DISTRIBUTE LIST để lọc tuyến ....................................................... 28
Hình 5.1 - Topo mạng thử nghiệm BGP ............................................................................ 33
DANH MỤC BẢNG
Bảng 1.1 - So sánh iBGP và eBGP..................................................................................... 11
Bảng 4.1 - Các thành phần trong cấu trúc câu lệnh IP prefix-list ...................................... 30
Nhóm tiểu luận 04 - Nhóm môn học 06
7
Tiểu luận cuối kỳ
Internet và giao thức
Chương 1 - Tổng quan về BGP
I. Khái niệm
BGP (Border Gateway Protocol) là một giao thức định tuyến sử dùng giữa các miền
quản trị khác nhau với mục đích chia sẻ routing information của các hệ tự trị hay AS
(Autonomous system) cho các hệ tự trị khác trong cùng một mạng lưới. Giao thức này hoạt
động dựa một cơ sở dữ liệu là một bảng chứa các địa chỉ mạng (prefix), các địa chỉ này cho
biết mối quan hệ giữa các AS trong cùng một network. Border Gateway protocol là một
giao thức dạng vector đường đi (path - vector). Tính đến năm 2021, phiên bản BGP mới
nhất được biết đến là BGPv4.
Hình 1.1 - Các giao thức định tuyến động
II. Đặc điểm
BGP sử dụng cổng 179 của Giao thức điều khiển vận chuyển (TCP - Transmission
Control Protocol) để trao đổi routing information.
Ưu điểm:
❖ Tính tin cậy của các bản tin cập nhật là cao
❖ Các bản tin được cập nhật đều đặn theo chu kỳ
❖ Có nhiều thơng số, tiêu chí có thể dùng để tính chỉ số tuyến đường
BGP được dùng để thiết kế những network có quy mơ rất lớn (lên đến hàng triệu
host) vì vậy giao thức này có cấu trúc mạng lưới cực kỳ phức tạp.
BGP có nhiệm vụ đảm bảo việc trao đổi các thông tin liên lạc cũng như thông tin
định tuyến giữa các hệ tự trị diễn ra đều đặn, được cập nhật đầy đủ và liên tục, đồng thời
cung cấp thông tin về next-hop cho mỗi đích đến.
BGP là một giao thức định tuyến dạng path-vector, do đó việc đường đi nào được
lựa chọn là rất quan trọng nhất, thường dựa trên một tập hợp ATTRIBUTE (thuộc tính).
Nhóm tiểu luận 04 - Nhóm mơn học 06
8
Tiểu luận cuối kỳ
Internet và giao thức
Các giao thức nhóm distance - vector thường quảng bá thơng tin hiện có đến các neighbors,
trong khi đó path - vector lại cho phép quản trị viên biết chính xác danh sách tồn bộ các
path dẫn đến đích. Đặc biệt, các giao thức định tuyến hoạt động dựa trên path - vector giúp
việc xác định loop trên network tốt hơn bởi chúng sẽ xét đến tất cả các đường dẫn mà các
router khác gửi về cho AS đầu xem có bản thân AS đó tồn tại bên trong hay khơng, nếu có
sẽ ngay lập tức loại bỏ.
BGP hỗ trợ VLSM (variable-length subnet mask – Mặt nạ mạng có chiều dài thay
đổi được), CIDR (Classless interdomain routing - Định tuyến liên miền phân lớp) và cịn
có các bản tin KEEPALIVE được gửi và nhận định kỳ nhằm duy trì kết nối giữa các BGP
peers. Ngồi ra, BGP cịn dùng kỹ thuật kết hợp đường đi để giảm kích thước bảng tìm
đường.
Trong giai đoạn đầu tạo phiên kết nối BGP, tồn bộ các thơng tin routing-update sẽ
được gửi. Sau đó, BGP sẽ chuyển sang cơ chế dùng trigger-update. Mọi thay đổi trong hệ
thống mạng đều là nguyên nhân của quá trình trigger-update.
Một trong các đặc điểm của BGP chính là các bản tin cập nhật định tuyến. Nếu nhìn
vào các bản tin cập nhật này, ta sẽ thấy rằng các bản tin này là khá chính xác. Do BGP
khơng quan tâm hoạt động trao đổi để có đầy đủ knowledge của tất cả các subnet bên trong
một hệ tự trị mà nó quan tâm đến chuyển tải đầy đủ thơng tin cần thiết để tìm được một AS
khác. Các bản tin BGP update thực hiện q trình tóm tắt đến một mức tối đa từ AS cho tới
một số prefix và một vài thông tin của bản cập nhật mà vẫn đảm bảo được độ chính xác tối
đa cũng như đảm bảo rằng lớp transport truyền đi các bản cập nhật cũng như cơ sở dữ liệu
về tuyến đường khi đã được đồng bộ.
BGP là giao thức có thể được sử dụng giữa các AS khác nhau cũng như trong cùng
1 AS. Trong trường hợp kết nối các AS khác nhau, ta sử dụng eBGP (exterior BGP – BGP
ngoại miền). Với trường hợp dùng BGP để kết nối các router trong cùng một AS, ta dùng
iBGP (interior BGP – BGP nội miền).
Hình 1.2 - Các AS sử dụng BGP
Nhóm tiểu luận 04 - Nhóm mơn học 06
9
Tiểu luận cuối kỳ
Internet và giao thức
Về vấn đề chính sách (Policy) : Trong một AS ta thường sử dụng các giao thức định
tuyến nội IGP (ví dụ như RIP, ISIS, EIGRP, OSPF), cịn khi ra ngồi một AS ta phải dùng
giao thức định tuyến ngoại, gọi chung là EGP. Mục đích sử dụng và thiết lập 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 quan tâm đến chính sách định tuyến (policy). Trong khi đó, nếu ra khỏi phạm vi một
AS thì chính sách định tuyến lại cực kì quan trọng và EGP cực kỳ chú trọng đến vấn đề
này. Xét ví dụ sau:
Hình 1.3 - Ví dụ về vấn đề chính sách
Giả sử cơng ty A muốn chuyển dữ liệu đến AS4 .Tuy nhiên A và B là đối thủ cạnh
tranh, công ty B không muốn cho công ty A chuyển dữ liệu thông qua tuyến đường của
mình. Chính vì vậy, cơng ty 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ơng ty C
thuộc AS3 cũng muốn đến AS4 nhưng C và B là đối tác nên B sẵn sàng cho quá giang. Như
vậy A và C vẫn đi tới được cùng một đích đến nhưng đường đi lại khác nhau. Các giao thức
định tuyến nội không thể làm được điều này bởi lẽ ưu tiên hàng đầu của chúng là metric
hay cost, nói cách khác là làm sao để truyền tín hiệu tới đích nhanh nhất, tối ưu nhất có thể
mà hồn tồn khơng quan tâm đến chính sách định tuyến. Chính vì vậy, BGP chọn đường
bằng một tập các chính sách và luật.
III. Các trường hợp sử dụng BGP
1. Trường hợp nên sử dụng
Khi một company network kết nối đến nhiều ISP hoặc các AS khác và đang dùng
các kết nối này. Nhiều công ty sử dụng các kết nối khác nhau để back-up. Có thể giảm thiểu
chi phí nếu tất cả các kết nối đều được thực hiện. Trong trường hợp này, có thể cần phải
triển khai PBR trên từng kết nối. BGP cũng được sử dụng khi chính sách định tuyến của
ISP và company là khác nhau hoặc traffic trong company cần phải được phân biệt với ISP.
Mạng của hai tổ chức không được xuất hiện dưới AS. Một trường hợp khác BGP nên được
dùng là khi network của ta chính là một ISP. Khi này, hệ thống mạng phải cho phép các
traffic khác đi qua AS của mình. Lúc này nó hoạt động như một miền chuyển tuyến (transit
domain).
Nhóm tiểu luận 04 - Nhóm mơn học 06
10
Tiểu luận cuối kỳ
Internet và giao thức
2. Trường hợp không nên sử dụng
Một hệ thống mạng đơn giản là một hệ thống mạng dễ dàng quản lý và bảo trì. Đây
là lý do chính để tránh sử dụng BGP trên mạng. Nếu mạng có các đặc điểm sau, nên sử
dụng các phương pháp khác:
❖ Static hay default-routing.
❖ Mạng của ISP và mạng của company dùng chung một chính sách định tuyến.
❖ Nếu cơng ty của bạn có nhiều kết nối với ISP nhưng chỉ để back-up thì khơng cần một
kế hoạch để kích hoạt nhiều hơn một kết nối đến Internet.
❖ Tài nguyên mạng như CPU và bộ nhớ của router bị hạn chế.
❖ Băng thông giữa các AS thấp và chi phí định tuyến ảnh hưởng đến việc truyền dữ liệu.
IV. So sánh iBGP và eBGP
Bảng 1.1 - So sánh iBGP và eBGP
iBGP
eBGP
Nằm trong một AS
Nằm giữa hai AS khác nhau
Khoảng cách hành chính (AD) là 200
Khoảng cách hành chính (AD) là 20
Các path học được từ IBGP peer sẽ khơng
được quảng bá cho các IBGP peer khác
nhưng có thể quảng bá cho EBGP peer
Các path học được từ EBGP peer sẽ được
quảng bá cho các peer khác
Yêu cầu cấu trúc fully-mesh
Không yêu cầu cấu trúc fully-mesh
Sử dụng trong cùng 1 tổ chức
Sử dụng giữa các tổ chức hoặc tổ chức với
các ISP
Sử dụng BGP split horizon để chặn loop
Dùng As-path để ngăn chặn loop
Default peer được thiết lập với TTL = 255
Default peer được thiết lập với thời gian
sống TTL = 1
Ở IBGP beers, các thuộc tính ưu tiên cục
bộ sẽ gửi đi
Ở EBGP beers, các thuộc tính ưu tiên cục
bộ sẽ không được gửi đi
V. Các bước xây dựng bảng định tuyến
❖ Nhận các bản tin cập nhật.
❖ Xây dựng bảng BGP.
❖ Lựa chọn tuyến đường tốt nhất BG.
❖ Quảng bá tuyến đường BGP.
❖ Xây dụng bảng định tuyến BGP.
❖ Quảng bá ra mạng Cục bộ
Nhóm tiểu luận 04 - Nhóm mơn học 06
11
Tiểu luận cuối kỳ
Internet và giao thức
Chương 2 - Cách thức hoạt động của BGP
Như đã tìm hiểu trong chương 1, BGP được sử dụng giữa các AS khác nhau trong
cùng mạng lưới để trao đổi thông tin định tuyến. Hình dưới đây cho thấy các AS sử dụng
BGP để trao đổi thông tin định tuyến với nhau. Để làm điều này, các AS sử dụng 2 loại
BGP: BGP nội miền (iBGP), BGP ngoại miền (eBGP).
Hình 2.1 - Các AS khác nhau trong mạng
Trong một AS, ta sử dụng iBGP để định tuyến thông tin. Các thiết bị thực hiện chức
năng này được gọi là BGP speakers. Các BGP speaker này phải thiết lập ngang hàng với
nhau thì mới sử dụng được iBGP. Lúc này, ta gọi chúng là các thiết bị ngang hàng. Nói
cách khác, các BGP speaker phải thiết lập kết nối TCP với nhau.
Ngược lại, khi không ở trong cùng một AS, BGP speakers sẽ sử dụng eBGP để định
tuyến. Giống như iBGP, eBGP cũng yêu cầu các BGP speaker phải được thiết lập ngang
hàng với nhau.
Sau khi các thiết bị ngang hàng được thiết lập, thông tin từ các thiết bị này có thể
được sử dụng để tạo thành một biểu đồ BGP có dạng hình cây. Sau đó, q trình trao đổi
thơng tin định tuyến mới được bắt đầu. Ban đầu, các BGP speaker sẽ trao đổi tồn bộ bảng
định tuyến với nhau. Sau đó, chúng sẽ trao đổi các cập nhật trong bảng định tuyến và các
bản tin KEEPALIVE để duy trì kết nối với nhau.
Nhóm tiểu luận 04 - Nhóm mơn học 06
12
Tiểu luận cuối kỳ
Internet và giao thức
I. Định dạng tiêu đề của bản tin
Chỉ khi mỗi thiết bị nhận được toàn bộ các trường của bản tin, BGP mới thực hiện
xử lý bản tin. Mỗi bản tin phải có kích thước tối thiểu là 19 bytes và tối đa là 4096 bytes.
Tiêu đề của bản tin bao gồm những trường sau:
Hình 2.2 - Định dạng tiêu đề của bản tin
❖ Marker: Có độ dài 16 bytes, được sử dụng để đánh dấu sự mất đồng bộ giữa các thiết bị
BGP ngang hàng, xác thực các bản tin BGP đến. Tùy thuộc vào loại bản tin mà trường này
sẽ có những giá trị khác nhau. Ví dụ, với bản tin OPEN thì Marker có giá trị là 1.
❖ Length: Có độ dài 2 bytes, cho biết kích thước của bản tin. Như đã nói ở trên, giá trị của
nó sẽ nằm trong khoảng từ 19 đến 4096
❖ Type: Có độ dài 1 byte, cho biết loại bản tin. Các loại bản tin cùng với giá trị của trường
này được cho trong hình dưới đây:
Hình 2.3 - Trường Type và các loại bản tin
Nhóm tiểu luận 04 - Nhóm mơn học 06
13
Tiểu luận cuối kỳ
Internet và giao thức
1. Bản tin OPEN
Sau khi thiết lập phiên kết nối TCP, bản tin này sẽ được gửi đi đầu tiên. Khi bản tin
OPEN được chấp nhận, một bản tin KEEPALIVE được trả về bên gửi. Sau đó, bản tin
OPEN sẽ được gửi lại, tiếp theo là bản tin UPDATE, NOTIFICATION và cuối cùng là
KEEPALIVE.
Dưới đây là định dạng của bản tin OPEN:
Hình 2.4 - Định dạng bản tin OPEN
❖ Version: Có độ dài 1 byte. Trường này xác định phiên bản của các BGP speaker sau khi
thương lượng với các thiết bị hàng xóm. Cụ thể, quy trình như sau: Các BGP speaker sẽ cố
gắng thương lượng với giá trị phiên bản cao nhất mà các thiết bị này nghĩ rằng cả 2 bên có
thể sử dụng. Nếu hàng xóm khơng hỗ trợ phiên bản này, một thông báo lỗi sẽ được gửi trả
bên gửi và phiên TCP kết thúc. Quá trình trên tiếp tục cho đến khi tìm được một phiên bản
mà cả 2 bên đều hỗ trợ sử dụng.
❖ My Autonomous System: Có độ dài 2 bytes, chứa số của AS mà bên gửi đang nằm trong.
Giá trị này có thể được sử dụng để tạo biểu đồ BGP.
❖ Hold Time: Có độ dài 2 bytes, sử dụng để thông báo cho hàng xóm thời gian chờ mà
bên gửi đề xuất. Sau khi nhận được giá trị này, bên nhận sẽ tính tốn, so sánh với giá trị
thời gian chờ của chính nó. Từ đó xác định thời gian mà bên nhận phải đợi để nhận được
bản tin từ bên gửi (bản tin KEEPALIVE hoặc UPDATE). Nếu một trong những bản tin này
không được nhận trong thời gian quy định, bên gửi sẽ được coi là “đã chết” hay khơng có
kết nối (phản hồi). Thời gian chờ được đặt lại về 0 sau khi mỗi bản tin được nhận hoàn
toàn. Khác với trường Version, việc xác định thời gian chờ sẽ không yêu cầu phải đặt lại
kết nối.
Nhóm tiểu luận 04 - Nhóm mơn học 06
14
Tiểu luận cuối kỳ
Internet và giao thức
❖ BGP Identifier: Có độ dài 4 byte, dùng để nhận dạng các BGP speaker. Nó tương tự như
ID của router trong OSPF và sẽ được gán cho từng BGP speaker phù hợp. Với giao diện
Loopback trên router, BGP ID là địa chỉ IP cao nhất có thể thiết lập cho giao diện này. Nếu
router khơng có giao diện này thì địa chỉ IP cao nhất có thể thiết lập cho các giao diện vật
lý trên router sẽ được đặt cho BGP ID. ID khi đã được xác định thì khơng thể thay đổi. Nếu
muốn thay đổi, ta phải cài đặt lại BGP cho router.
❖ Optional Parameters Length: Có độ dài 1 byte, xác định kích thước của trường Optional
Parameters. Nếu trường này có giá trị 0 thì sẽ khơng có tham số tùy chọn nào được thiết
lập.
❖ Optional Parameters: Có độ dài thay đổi, chứa danh sách các tham số tùy chọn được sử
dụng khi thương lượng với hàng xóm. Mỗi tham số có cấu trúc như sau:
Hình 2.5 - Cấu trúc trường Optional Parameters
➢ Parameter Type: Có độ dài 1 byte, xác định loại tham số.
➢ Parameter Length: Có độ dài 1 byte, xác định kích thước tham số.
➢ Parameter Value: Có độ dài thay đổi, giá trị biểu thị dựa trên trường Parameter Type.
2. Bản tin UPDATE
Sau khi các BGP speakers trở thành thiết bị ngang hàng, chúng trao đổi các bản tin
UPDATE với nhau. Bản tin này chứa thông tin định tuyến và thông tin này được dùng để
tạo môi trường định tuyến khơng có vịng lặp (loop-free routing environment).
Trong bản tin này, ngoài các tuyến đường khả thi (Feasible Routes) thì cịn các tuyến
đường khơng khả thi (Unfeasible Routes). Một bản tin UPDATE có thể chỉ chứa một
Feasible Route nhưng Unfeasible Route thì hàng tá. Các Unfeasible Route này nằm trong
trường thông tin về khả năng tiếp cận lớp mạng Network Layer Reachability Information
(NLRI) của bản tin UPDATE. Nếu một tuyến đường bị hỏng ngay lúc bản tin UPDATE
vừa lấy thơng tin về tuyến đường này thì nó sẽ khơng nằm trong trường NLRI của bản tin
đó.
Nhóm tiểu luận 04 - Nhóm mơn học 06
15
Tiểu luận cuối kỳ
Internet và giao thức
Dưới đây là định dạng của bản tin UPDATE:
Hình 2.6 - Định dạng bản tin UPDATE
❖ Unfeasible Routes Length: Có độ dài 2 bytes, chứa độ dài của trường Withdrawn Routes.
Nếu trong bản tin khơng có trường Withdrawn Routes thì trường Unfeasible Routes Length
bằng 0.
❖ Withdrawn Routes: Có độ dài thay đổi, chứa danh sách các tiền tố địa chỉ IP (IP address
prefixes) không cịn hoạt động. Mỗi tiền tố này có cấu trúc như sau:
Hình 2.7 - Cấu trúc tiền tố địa chỉ IP
➢ Length: Có độ dài 1 byte, xác định độ dài của tiền tố
➢ Prefix: Có giá trị thay đổi và chứa tiền tố
❖ Total Path Attributes Length: Có độ dài 2 bytes, xác định kích thước của trường Path
Attributes. Nếu có giá trị 0 thì trường Path Attributes rỗng.
❖ Path Attributes: Có độ dài thay đổi, chứa danh sách các thuộc tính đường dẫn. Ln có
trong tất cả các bản tin UPDATE. Thông tin trong trường này dùng để xác định các thuộc
tính đường dẫn nhằm tìm thơng tin định tuyến nhất định và dùng cho các quyết định hoặc
bộ lọc định tuyến. Mỗi thuộc tính có cấu trúc 3 phần:
<Attribute Type, Attribute Length, Attribute Value>
➢ Attribute Type: Có độ dài 2 bytes, gồm 1 byte cờ thuộc tính Attribute Flags và 1 byte
mã loại thuộc tính Attribute Type Code
▪ Attribute Flags: xác định các loại thuộc tính như Well-known Mandatory, Wellknown Discretionary, Optional Transitive, Optional Non-transitive
Nhóm tiểu luận 04 - Nhóm mơn học 06
16
Tiểu luận cuối kỳ
Internet và giao thức
Attribute Flags gồm 8 bit (từ bit 0 - 7) và các bit này sẽ xác định các loại thuộc tính
khác nhau như sau:
- Bit 0 (có trọng số cao nhất) gọi là bit Optional. Nếu bằng 1 thì thuộc tính là
Optional, nếu bằng 0 thì thuộc tính là Well-known.
- Bit 1 là bit Transitive. Nếu bằng 1 thì thuộc tính là Optional Transitive, bằng 0
thì thuộc tính là Optional Non-transitive.
- Bit 2 là bit Partial. Nếu bằng 0 thì thuộc tính là Optional Transitive Complete,
Optional Non-transitive, Well-known, nếu bằng 1 thì thuộc tính là Optional
Transitive Partial.
- Bit 3 là bit chiều dài mở rộng, xác định kích thước của thuộc tính (1 hoặc 2
bytes). Nếu bằng 0 thì kích thước là 1 byte, bằng 1 thì kích thước là 2 bytes.
- 4 bit tiếp theo (4-7) bằng 0 được dùng cho mục đích mở rộng sau này
▪ Attribute Type Code: xác định loại thuộc tính. Cụ thể một số thuộc tính như sau:
Hình 2.8 - Một số thuộc tính đường dẫn Path Attributes
Nhóm tiểu luận 04 - Nhóm mơn học 06
17
Tiểu luận cuối kỳ
Internet và giao thức
➢ Attribute Length: xác định kích thước thuộc tính
➢ Attribute Value: xác định giá trị thuộc tính
3. Bản tin KEEPALIVE
Bản tin này được sử dụng để đảm bảo rằng kết nối giữa các thiết bị ngang hàng vẫn
tồn tại. Nó được cấu trúc từ tiêu đề của bản tin BGP. Nếu cần thiết lập lại giá trị thời gian
chờ, nó sẽ được gửi đi. Chu kỳ gửi bản tin này bằng 1/3 giá trị thời gian chờ, vì vậy giá trị
thời gian chờ tối thiểu phải là 3. Bản tin KEEPALIVE không được gửi đi nếu một bản tin
UPDATE đang được gửi. Nếu thời gian chờ là 0, KEEPALIVE sẽ không bao giờ được gửi.
4. Bản tin NOTIFICATION
Dùng để thơng báo khi có lỗi xảy ra trong phiên kết nối TCP và khi đó, phiên này sẽ
bị ngắt. Bản tin này có cấu trúc như sau:
Hình 2.9 - Định dạng bản tin NOTIFICATION
❖ Error Code: kích thước 1 byte, chứa các mã của các lỗi có thể xảy ra (6 mã)
❖ Error Sub-code: kích thước 1 byte chứa các phân mã của các lỗi (chỉ 3 mã có phân mã)
❖ Data: Dữ liệu của lỗi xảy ra
II. Thương lượng với các hàng xóm
Trước khi các phần tử mạng sử dụng giao thức BGP có thể tiến hành trao đổi thông
tin, chúng phải thực hiện q trình kết nối để trở thành hàng xóm của nhau. Bước đầu trong
quá trình thiết lập mối quan hệ neighbors hay peer: một BGP speaker sẽ thiết lập TCP
session thông qua cổng 179 các BGP speaker khác. Nếu hoạt động này khơng được thực
thi thì các BGP speakers sẽ không thể trở thành peer của nhau. Sau khi TCP session được
thiết lập xong, BGP speaker sẽ gửi đi một bản tin OPEN tới peer của nó. Sau đó các bản tin
UPDATE, NOTIFICATION, KEEPALIVE cũng sẽ được gửi và nhận qua lại giữa các
peers. Quá trình thiết lập mối quan hệ này được gọi là Finite State Machine - Máy trạng
thái hữu hạn gồm 6 trạng thái có thể xảy ra.
Nhóm tiểu luận 04 - Nhóm mơn học 06
18
Tiểu luận cuối kỳ
Internet và giao thức
1. Trạng thái rỗi
Là trạng thái ban đầu của một BGP speaker khi khởi tạo một BGP session. Khi này
BGP speaker chỉ thực hiện đợi một sự kiến báo hiệu bắt đầu kết nối (start event), do vậy nó
sẽ từ chối tất cả phần tử BGP muốn kết nối đến và không khởi tạo bất kỳ một BGP
connection nào. Sự kiện này có thể được tạo ra bởi các BGP speaker khác hay các system
administrators. Khi sự kiện khởi tạo đó (start event) xảy ra, BGP speaker sẽ kích hoạt tất
cả BGP resource có thể của nó, đồng thời khởi tạo một khoảng thời gian được gọi là
Connect Retry Timer hay bộ định thời kết nối lại và TCP connecting session tới BGP
speaker mà muốn trở thành peer với nó và tiếp tục đợi start event từ các BGP speaker khác.
Khi này, BGP speaker sẽ thay đổi sang trạng thái kết nối. Nếu có lỗi xảy ra trong quá trình
khởi tạo, BGP speaker sẽ ngắt TCP session, trở về trạng thái rỗi và khi này, ta cần một start
event mới để BGP speaker thử kết nối lại và BGP speaker sẽ đợi 60 giây trước khi thử kết
nối lại. Ở mỗi lần thử lại tiếp theo, thời gian chờ sẽ tăng lên gấp đôi.
2. Trạng thái kết nối
Trong trạng thái này, BGP sẽ đợi kết nối TCP được thiết lập. Khi kết nối được thiết
lập thành cơng, BGP speaker sẽ xóa bộ định thời ConnectRetry, gửi đi một bản tin OPEN
tới remote BGP speaker và chuyển sang trạng thái sãn sàng gửi. Nếu kết nối TCP không
thành công, BGP speaker sẽ khởi tạo lại ConnectRetry timer, và tiếp tục đợi một yêu cầu
kết nối khác tử remote BGP speaker, và chuyển sang trạng thái hoạt động. Nếu Timeout,
BGP speaker sẽ khởi tại lại bộ định thời và tiếp tục đợi một yêu cầu kết nối từ remote BGP
speaker đồng thời giữ trạng thái kết nối. Nếu lỗi nào khác xảy ra, BGP speaker sẽ đóng
phiên TCP và chuyển về trạng thái rỗi. Tất cả các start even đều sẽ bị lờ đi trong trạng thái
này.
3. Trạng thái hoạt động
Trong trạng thái này, BGP speaker sẽ cố gắng bắt đầu một TCP session với BGP
speaker mà muốn kết nối với nó. Sau khi kết nối được thiết lập, BGP speaker sẽ xóa bộ
định thời rồi gửi đi một bản tin OPEN tới remote BGP speaker và chuyển sang trạng thái
sẵn sàng gửi. Trong trường hợp Timeout, BGP speaker sẽ đặt lại ConnectRetrry timer, khởi
tạo một phiên kết nối TCP và tiếp tục đợi các yêu cầu kết nối từ remote BGP speaker và
chuyển về trạng thái kết nối. 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ó nhưng IP address của nó khơng phải là địa chỉ mong muốn, BGP
speaker sẽ từ chối yêu cầu kết nối và thiết lập lại ConnectRetry timer, tiếp tục đợi một yêu
cầu kết nối khác từ remote BGP speaker và không thay đổi trạng thái. Nếu lỗi nào khác xảy
ra, BGP speaker sẽ đóng phiên TCP và chuyển về trạng thái rỗi. Tất cả start event sẽ bị lờ
đi ở trạng thái này.
Nhóm tiểu luận 04 - Nhóm mơn học 06
19
Tiểu luận cuối kỳ
Internet và giao thức
4. Trạng thái sẵn sàng gửi
Trong trạng thái này, BGP speaker sẽ chờ để nhận bản tin OPEN từ remote BGP
speaker. Ngay sau khi BGP speaker nhận được bản tin OPEN, tất cả các trường sẽ được
kiểm tra. Nếu có lỗi, nó sẽ gửi một bản tin NOTIFICATION tới remote BGP speaker, ngắt
kết nối TCP, và chuyển về trạng thái rỗi. Nếu khơng có lỗi, BGP speaker sẽ đi bản tin
KEEPALIVE tới remote BGP speaker, thiết lập các bộ định thời keepalive timer và hold
timer để đàm phán với hàng xóm của nó. Nếu hold timer = 0, keepalive timer và hold timer
sẽ không được đặt lại. Sau quá trình thương lượng về hold timer, BGP speaker sẽ xác định
kết nỗi là iBGP hay eBGP.
❖ Là iBGP nếu 2 BGP speaker nằm trong cùng một hệ tự trị.
❖ Là eBGP nếu 2 BGP speaker thuộc về 2 hệ tự trị khác nhau.
Ngay khi xác định được loại BGP đang được sử dụng, BGP speaker sẽ chuyển sang trạng
thái sẵn sàng nhận. Trong trạng thái này, BGP speaker có thể sẽ nhận được bản tin
disconnect. Nếu điều này xảy ra, BGP speaker sẽ chuyển về trạng thái hoạt động. Nếu lỗi
nào khác xảy ra, BGP speaker sẽ đóng phiên TCP và chuyển về trạng thái rỗi. Tất cả các
start event sẽ bị lờ đi trong trạng thái này.
5. Trạng thái sẵn sàng nhận
Trong trạng thái này, BGP speakers sẽ chờ để nhận bản tin KEEPALIVE từ remote
BGP speaker. Khi nhận được bản tin KEEPALIVE, BGP speaker sẽ thiết lập lại hold timer
và chuyển sang trạng thái thiết lập. Khi này mối quan hệ peer giữa hai phần tử mạng đã
được thiết lập. Nếu nhận được bản tin NOTIFICATION thay vì bản tin KEEPALIVE, BGP
speaker sẽ chuyển về trạng thái rỗi. Trong trường hợp timeout trước khi nhận bản tin
KEEPALIVE, BGP speaker sẽ đóng phiên TCP và chuyển về trạng thái rỗi. Nếu BGP
speaker nhận được bản tin disconnect từ peer của nó, BGP speaker cũng chuyển về trạng
thái rỗi. Nếu lỗi nào khác xảy ra, BGP speaker sẽ đóng phiên TCP và chuyển về trạng thái
rỗi. Tất cả các start event sẽ bị lờ đi trong trạng thái này.
6. Trạng thái thiết lập
Trong trạng thái này, q trình đàm phán với hàng xóm đã hồn tất. Khi 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
bản tin UPDATE hay bản tin KEEPALIVE, nó sẽ thiết lập lại hold timer. Nếu timeout trước
khi nhận được các bản tin trên, BGP speaker sẽ gửi một bản tin NOTIFICATION tới peer
của nó, đóng phiên TCP và chuyển về trạng thái rỗi. Nếu xuất hiện event khác khiến cho
BGP speaker tạo ra một bản NOTIFICATION thì BGP speaker sẽ chuyển về trạng thái rỗi.
Tất cả Start event sẽ bị lờ đi trong trạng thái này. (Mẹo: Chỉ cần một lần BGP peer đạt đến
trạng thái thiết lập, chúng sẽ bắt đầu trao đổi thơng tin định tuyến cho nhau)
Nhóm tiểu luận 04 - Nhóm mơn học 06
20
Tiểu luận cuối kỳ
Internet và giao thức
III. Thứ tự ưu tiên khi tìm tuyến đường
❖ Chọn đường dẫn tường minh trong bảng có sẵn (so với đường dẫn mặc định).
❖ Chọn đường dẫn có trọng số cao nhất (weight) (chỉ dành cho router Cisco).
❖ Chọn tuyến đường có độ ưu tiên cục bộ cao nhất (local preference).
❖ Chọn tuyến đường do chính quản trị viên mạng cài đặt trên router (static route, có thuộc
tính origin là INCOMPLETE).
❖ Chọn đường dẫn có AS path ngắn nhất hay đi qua ít AS nhất.
❖ Chọn đường dẫn có nguồn gốc nội mạng (origin = IGP < EGP).
❖ Chọn đường dẫn có độ ưu tiên gần/xa thấp nhất MED (Multi exit discriminator).
❖ Chọn đường dẫn ngoại mạng (external path).
❖ Chọn đường đi có metric IGP đến hop tiếp theo thấp nhất (IGP metric to the next hop).
❖ Chọn đường đi “cũ” nhất trong bảng (oldest one).
❖ Chọn đường đi đến router tiếp theo có BGP ID thấp nhất.
Nhóm tiểu luận 04 - Nhóm mơn học 06
21
Tiểu luận cuối kỳ
Internet và giao thức
Chương 3 - Một số thuộc tính đường dẫn của BGP
I. AS-PATH
❖ Là một thuộc tính Well-known Mandatory.
❖ Là dãy gồm các số AS mà route đã đi qua để tới đích và AS đầu tiên truyền đi route sẽ
thêm số AS của chính nó và truyền sang EBGP peer của AS đó. Sau đó mỗi khi AS nhận
được route này thì sẽ truyền tiếp route tới EBGP peer khác và sẽ gán thêm số AS của nó
vào đầu dãy. Dãy số AS thu được cuối cùng sẽ là tất cả các số AS mà route đã đi qua, số
của AS khởi tạo route sẽ nằm ở cuối dãy.
❖ Thuộc tính AS-PATH được BGP sử dụng nhằm mục đích chống loop trên Internet. Nếu
route được truyền tới chính AS khởi tạo route, khi đó AS sẽ thấy chính nó trong dãy số các
AS từ đó sẽ loại route này giúp mơ hình khơng bị lặp.
❖ BGP router khi quảng bá bảng định tuyến sang một AS khác thì sẽ chèn thêm số AS của
nó. Khi route được tuyền tới một BGP router trong cùng AS thì dãy số AS-PATH sẽ giữ
ngun khơng đổi.
❖ Ngồi ra AS-PATH cũng được sử dụng để xác định đường đi tốt nhất tới đích.
Hình 3.1 - Ví dụ về thuộc tính AS-PATH
Từ ví dụ trên ta có thể thấy route 172.16.10.0/24 được khởi tạo từ AS1 và truyền
qua AS2, AS3, AS4 và trở lại AS1. Nhờ AS-Path lưu các số AS đã được đi qua nên khi
quay lại AS1 thì AS1 đã nhận ra route này đã từng qua nó và khơng nhận route => Khơng
xảy ra loop trong mạng.
❖ Số Private AS:
Nếu khách hàng là một single-homed hoặc multihomed khi đó nhà cung cấp sẽ yêu cầu
khách hàng đó phải sự dụng private AS lấy từ private pool (64512 → 65535). Các số private
AS này sẽ không thể dùng ra ngồi internet do chúng khơng phải duy nhất. Vì thế nên các
số private AS sẽ được lược bỏ khỏi AS-Path khi route được quảng bá ra Internet.
Nhóm tiểu luận 04 - Nhóm mơn học 06
22
Tiểu luận cuối kỳ
Internet và giao thức
Dưới đây là ví dụ về số Private AS:
Hình 3.2 - Ví dụ về AS-PATH với số Private AS
Prefix 172.16.220.0/24 được khởi tạo tại AS 65001 do đó nó sẽ có AS-Path 65001. Khi
AS1 quảng bá prefix này ra internet thì nó sẽ bỏ đi private AS. Khi prefix ra ngồi internet
thì nó sẽ coi như là được khởi tạo tại AS1 và có AS-Path là 1. BGP sẽ chỉ loại bỏ private
AS khi được quảng bá sang EBGP peer và việc này sẽ được cấu hình trên RTB để kết nối
tới RTC. Dưới đây là ví dụ về cách cấu hình:
II. NEXT HOP
1. Giới thiệu
Là một thuộc tính Well-known Mandatory và là địa chỉ IP của hop tiếp theo. Dưới
đây là một ví dụ về thuộc tính này:
Hình 3.3 - Ví dụ về thuộc tính NEXT HOP
Nhóm tiểu luận 04 - Nhóm mơn học 06
23