Để 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ị t
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG
KHOA VIỄN THÔNG 1
Tháng 12 - 2021
Trang 2Nhóm tiểu luận 04 - Nhóm môn học 06 1
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 toán được đặt ra để giải quyết những yêu cầu trên, đó là bài toá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
Trang 3Nhóm tiểu luận 04 - Nhóm môn học 06 2
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
Trang 4Nhóm tiểu luận 04 - Nhóm môn học 06 3
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
Trang 5Nhóm tiểu luận 04 - Nhóm môn học 06 4
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
Trang 6Nhóm tiểu luận 04 - Nhóm môn học 06 5
3 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
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
Trang 7Nhóm tiểu luận 04 - Nhóm môn học 06 6
9 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
10 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
11 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 route-reflector, các iBGP không cần phải fully-mesh nữa Một network fully-mesh thì không thể mở rộng
12 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
Trang 8Nhóm tiểu luận 04 - Nhóm môn học 06 7
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
Trang 9Nhóm tiểu luận 04 - Nhóm môn học 06 8
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
❖ 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)
Trang 10Nhóm tiểu luận 04 - Nhóm môn học 06 9
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 toà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 Ngoà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, toàn bộ các thông tin routing-update sẽ được gửi Sau đó, BGP sẽ chuyển sang cơ chế dùng trigger-update 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 quá 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
Trang 11Nhóm tiểu luận 04 - Nhóm môn học 06 10
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 ngoà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à hoàn toà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)
Trang 12Nhóm tiểu luận 04 - Nhóm môn học 06 11
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
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ộ
Trang 13Nhóm tiểu luận 04 - Nhóm môn học 06 12
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 đó, quá 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 toà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
Trang 14Nhóm tiểu luận 04 - Nhóm môn học 06 13
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
Trang 15Nhóm tiểu luận 04 - Nhóm môn học 06 14
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
Trang 16Nhóm tiểu luận 04 - Nhóm môn học 06 15
❖ 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
đó
Trang 17Nhóm tiểu luận 04 - Nhóm môn học 06 16
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 Luôn 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ư known Mandatory, known Discretionary, Optional Transitive, Optional Non-transitive
Trang 18Well-Nhóm tiểu luận 04 - Well-Nhóm môn học 06 17
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
Trang 19Nhóm tiểu luận 04 - Nhóm môn học 06 18
➢ 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 quá 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
Trang 20Nhóm tiểu luận 04 - Nhóm môn học 06 19
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
Trang 21Nhóm tiểu luận 04 - Nhóm môn học 06 20
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, quá trình đàm phán với hàng xóm đã hoà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)