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

TÌM HIỂU về GIAO THỨC ĐỊNH TUYẾN

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 (1.22 MB, 87 trang )

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP. HỒ CHÍ MINH
KHOA ĐÀO TẠO CHẤT LƯỢNG CAO
NGÀNH CÔNG NGHỆ THÔNG TIN
o0o
TIỂU LUẬN CHUYÊN NGÀNH
TÌM HIỂU VỀ GIAO THỨC ĐỊNH TUYẾN
BORDER GATEWAY PROTOCOL
GVHD : Th.S HUỲNH NGUYÊN CHÍNH
SVTH : DƯƠNG CAO ĐẠI NGHĨA 08110197
SVTH : HOÀNG ĐÌNH ĐỒNG 08110221
LỚP : 08110CL1
Tp. Hồ Chí Minh, tháng 12 năm 2011
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN


























Giáo viên hướng dẫn
Th.S Huỳnh Nguyên Chính
NHẬN XÉT CỦA GIÁO VIÊN PHẢN BIỆN


























Giáo viên phản biện
Th.S Đinh Công Đoan
LỜI CẢM ƠN
Trong thời gian là sinh viên ngành Công nghệ thông tin, khoa Đào tạo Chất
Lượng Cao, Trường Đại Học Sư Phạm Kỹ Thuật thành phố Hồ Chí Minh, chúng
em được các thầy cô giảng dạy tận tình, nhiều kiến thức quý báu và những kinh
nghiệm để có thể làm ra đực sản phẩm như ngày nay.
Để hoàn thành bài tiểu luận này nhóm em chân thành cảm ơn thầy Nguyễn
Đăng Quang, quản ngành Công Nghệ Thông Tin, thầy cô Khoa Công Nghệ Thông
Tin bộ môn Mạng máy tính và thầy cô các bộ môn, đặc biệt là thầy Huỳnh Nguyên
Chính đã tận tình chỉ bảo cho chúng em những kiến thức quý giá, góp phần quan
trọng trong việc hoàn thành bài tiểu luận đúng tiến độ. Qua đó, nhóm đã đạt được
nhiều tiến bộ về kiến thức cũng như những kỹ năng làm việc bổ ích.
Xin chân thành gửi lời cảm ơn sâu sắc đến quý thầy đã nhiệt tình hỗ trợ và
đóng góp ý kiến, giúp nhóm hoàn thành đề tài này
Sinh viên thực hiện
Dương Cao Đại Nghĩa Hoàng Đình Đồng
PHẦN MỞ ĐẦU
I. Tính cấp thiết của đề tài:
Chúng ta đang sống trong thế kỉ 21, kỉ nguyên của khoa học kĩ thuật và công
nghệ hiện đại. Vào thời điểm này, ngành công nghiệp công nghệ thông tin và chiếc
máy vi tính nắm giữ một vai trò không thể thiếu trong mọi lĩnh vực hoạt động của
con người. Một chiếc máy tính để bàn hoạt động độc lập là không đủ, con người
muốn liên kết các máy tính lại với nhau thành mạng máy tính để tận dụng sức mạnh
xử lí, trao đổi thông tin và chia sẻ tài nguyên. Khi mạng máy tính tăng lên cả về quy

mô và số lượng, con người lại muốn liên kết các mạng máy tính này lại với nhau.
Làm thế nào để liên kết các máy tính lại với nhau ? Làm thế nào để thông tin có thể
được trao đổi giữa các mạng máy tính cách nhau hàng trăm cấy số ? Một bài toán
cần được giải để trả lời những câu hỏi trên, đó là bài toán định tuyến.
“Định tuyến” hiểu đơn giản là “tìm đường đi”. Trong truyền thông máy tính
định tuyến nghĩa là chỉ ra đường đi để thông tin có thể di chuyển từ nguồn đến đích
theo cách tốt nhất. Không thể phủ nhận tầm quan trọng của định tuyến trong truyền
thông máy tính. Không có định tuyến, các máy tính không thể trao đổi thông tin với
các mạng khác.
Thiết bị thực hiện chức năng định tuyến trên mạng chủ yếu là các Router. Để có
thể thực hiện chức năng định tuyến, các Router phải trao đổi thông tin về tuyến với
nhau để xây dựng nên các tuyến đường. Tập hợp các qui tắc trao đổi thông tin định
tuyến giữa các thiết bị định tuyến với nhau gọi là giao thức định tuyến.
Đối tượng nghiên cứu của đề tài này là giao thức định tuyến BGP (Border
Gateway Protocol) – 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
Do những hạn chế về mặt thời gian và thiết bị, một số nội dung liên quan không
được đưa vào đề tài như: Sự hoạt động và triển khai BGP trên IPv6. Mặc dù đã hết
sức cố gắng xong đề tài không tránh khỏi những thiếu sót vì vậy rất mong nhận
được ý kiến đóng góp, sự chỉ bảo tận tình của các thầy cô và tất cả các bạn.
II. Mục tiêu nghiên cứu đề tài:
 Tìm hiểu về khái niệm và cách thức hoạt động của BGP
 Tìm hiểu được cách cấu hình định tuyến BGP
Trong đề tài này tập trung chú trọng vào giao thức là Border Gateway Protocol,
phần căn bản về BGP chủ yếu tập trung vào lý thuyết về hoạt động của BGP, sự

khác biệt giữa iBGP và eBGP, mối quan hệ giữa các Router láng giềng, việc lựa
chọn tuyến đường đi Đi sâu vào sẽ đề cập tới việc làm thế nào để cấu hình BGP
cơ bản nhất. Kích hoạt BGP, việc cấu hình các Router láng giềng, giải thích về
injecting route. Làm thế nào xác định cách hoạt động của BGP và xử lý sự cố nếu
chúng hoạt động không đúng. Biết được các lệnh hiển thị và lệnh debug có thể được
sử dụng để xác minh và khắc phục sự cố trong hoạt động của BGP. Phần nâng cao
về BGP, đi sâu hơn vào các khái niệm và hoạt động của BGP, giải quyết vấn đề khả
năng mở rộng trong nội bộ BGP. Tìm hiểu các công nghệ BGP có sẵn để khắc phục
những hạn chế bên trong BGP. Nghiên cứu sâu hơn vào việc tạo ra và thực thi các
điều khoản của BGP.
MỤC LỤC
Trang
Danh mục hình vẽ I
Danh mục bảng biểu II
Danh mục các từ viết tắt III
Chương I: Khái niệm và hoạt động của BGP 01
I.1. Khái niệm 01
I.1.1. Khái niệm Border Gateway Protocol 01
I.1.2. Các khái niệm liên quan 01
I.1.3. Thuật ngữ trong BGP 02
I.2. Hoạt động của BGP 04
I.2.1. Định dạng phần đầu thông điệp 04
I.2.2. Thông điệp OPEN 05
I.2.3. Thông điệp UPDATE 08
I.2.4. Thông điệp KEEPALIVE 13
I.2.5. Thông điệp NOTIFICATION 13
I.2.6. Thương lượng với Neighbor Router 15
I.2.7. Chọn tuyến đường 19
I.2.8. Đồng bộ hoá BGP 24
I.2.9. Tổng hợp các tuyến đường 24

I.3. Khi nào sử dụng và không sử dụng BGP 26
I.3.1. Khi nào dùng BGP 26
I.3.2. Khi nào khôn dùng BGP 26
CHƯƠNG II: Cấu hình và kiểm tra hoạt động của BGP 27
II.1. Cấu hình BGP 27
II.1.1. Cấu hình Minimal BGP 27
II.1.2. Cấu hình iBGP and eBGP 29
II.1.3. Cấu hình eBGP Multihop 32
II.1.4. Thêm Routes vào BGP 34
II.2. Kiểm tra và khắc phục hoạt động của BGP 37
II.2.1. Xem thông tin định tuyến 37
II.2.2. Xem thông tin của Router láng giềng 38
CHƯƠNG III: BGP NÂNG CAO 40
III.1 Khắc phục khả năng mở rộng giới hạn của iBGP 40
III.1.1. Route Reflection 40
III.1.2. Cấu hình Route Reflection cho iBGP 44
III.1.3. Confederations 48
III.1.4. Cấu hình Confederations 51
III.2. Lọc BGP 55
III.2.1. Phân loại danh sách 55
III.2.2. Thêm vào danh sách (Prefix Lists) 58
III.2.3. Bản đồ định tuyến 59
III.3. Các tác động 61
III.4. Các nhóm ngang hàng 64
III.5. Đa kết nối internet trong BGP 67
III.6. Giải quyết vấn đề Next-Hop 68
III.7. Tổng hợp tuyến đường 69
CHƯƠNG IV: MÔ HÌNH THỰC NGHIỆM 71
CHƯƠNG V: KẾT LUẬN 76
TÀI LIỆU THAM KHẢO 77

DANH MỤC HÌNH VẼ
Trang
Hình 1 03
Hình 2 04
Hình 3 06
Hình 4 08
Hình 5 08
Hình 6 14
Hình 7 16
Hình 8 19
Hình 9 24
Hình 10 25
Hình 11 27
Hình 12 30
Hình 13 33
Hình 14 35
Hình 15 41
Hình 16 43
Hình 17 45
Hình 18 49
Hình 19 52
Hình 20 57
Hình 21 60
Hình 22 62
Hình 23 65
Hình 24 69
DANH MỤC BẢNG BIỂU
Trang
Bảng 1 05
Bảng 2 10 - 11

Bảng 3 14
II
DANH MỤC CÁC TỪ VIẾT TẮT
BGP Border Gateway Protocol
AS Autonomous System
BGPv4 Border Gateway Protocol Version 4
IGP Interior Gateway Protocol
EGP Exterior Gateway Protocol
iBGP internal Border Gateway Protocol
eBGP External Border Gateway Protocol
RID Route Identification
OSPF Open Shortest Path First
IP Internet Protocol
NLRI Network Layer Reachability Information
CIDR Classless Inter-Domain Routing
TCP Transmission Control Protocol
FSM Finite State Machine
RIB Routing Information Base
III
CHƯƠNG I: KHÁI NIỆM VÀ HOẠT ĐỘNG CỦA BGP
I.1: Khái niệm:
I.1.1. Khái niệm Border Gateway Protocol :
Border Gateway Protocol(BGP) là một giao thức định tuyến liên miền được sử
dụng để trao đổi thông tin trên Internet. Internet được tạo nên từ vô số
AS(Autonomous System). BGP được dùng để truyền thông tin định tuyến giữa các
AS khác nhau. Bởi vậy, BGP là một giao thức định tuyến rất mạng và tin cậy, nó
giúp cho người quản trị có thể dễ dàng ứng dụng các chính sách định tuyến.
BGP đã được sáng tạo từ 1 khoảng thời gian khá lâu rồi. BGP được tạo ra vào năm
1989 và được biết đến là BGP version 1. BGPv1 là một giao thức định tuyến phân
lớp( classful) và không cho phép gộp các route(Sum routes). Để cải thiện những hạn

chế của BGPv3, một BGP mới đã được tạo ra và được gọi là BGP version 4.BGPv4
được tạo ra vào năm 1993. Nó giới thiệu sự hữu ích của định tuyến liên miền không
phân lớp (Classless Inter-Domain Routing CIDR) và cho phép gộp, tóm tắt các
route (Sum routes).
BGP sử dụng một giao thức kiểm soát truyền tin cậy để truyền các gói tin và đó
chính là TCP (Transmission Control Protocol). Nó sử dụng port 179 của TCP để
các thiết lập kết nối. Bởi vì TCP là giao thức kiểm soát truyền tin cậy tại Layer 4,
BGP có thể loại bỏ sự bổ sung fragmentation,retransmission,acknowledgment và
sequencing.
Một chú ý nữa về BGP là nó ko quan tâm về việc định tuyến trong AS. Các IGPs
(Interior Gateway Protocols) được dùng trong AS sẽ đảm nhiệm việc đó. BGP chỉ
chú trọng đến định tuyến liên miền( Inter-AS Routing). Một BGp speaker sẽ chia sẻ
thông tin network với các neighbor BGP speaker. Thông tin network đó bao gồm
tất cả các AS khác mà nó có. Thông tin này sẽ được BGP speaker sử dụng để tạo
một biểu đồ, hoặc cây từ tất cả các AS vừa nhận được. Biểu đồ đó sẽ giúp BGP bỏ
sự lặp tuyến (routing loops) và thiết lập các chính sách nhất định cho các AS.
I.1.2. Các khái niệm liên quan:
1
Autonomous system: trước đây được định nghĩa là để chỉ một tập hợp các thiết bị
mạng cùng chung một chính sách quản lý sử dụng một IGP cho định tuyến nội và
một EGP và định tuyến ngoại. Với những thay đổi lớn qua từng năm, định nghĩa về
AS đã được thay đổi. Một AS được xem là một tập các thiết bị cùng chung một
chính sách quản lý mà có một hay nhiều IGPs để điều khiển định tuyến nội và một
EGP cho định tuyến ngoại(định tuyến liên miền). Mặc dù một AS có rất nhiều IGP
hoạt động tại cùng một thời điểm, các AS khác sẽ chỉ thấy AS đó có một sự định
tuyến nội duy nhất. Điều này cho phép sự hoạt động của nhiều IGP autonomous
systems( ví dụ: EIGRP 100, EIGRP 200), nhưng EGP lại không như vậy.
BGP speaker: bất kì một thiết bị nào đang chạy BGP được gọi là BGP speaker.
Peers: khi 2 BGP speaker thiết lập một kết nối TCP, chúng được gọi là peers. Thuật
ngữ peers và neighbor là tương tự nhau.

eBGP: External Border Gateway Protocol là giao thức định tuyến được sử dụng để
trao đổi thông tin định tuyến giữa 2 BGP peers nằm ở hai AS khác nhau.
iBGP: Internal Border Gateway Protocol là giao thức định tuyến được sử dụng để
trao đổi thông tin định tuyến giữa 2 BGP peers nằm trong cùng 1 AS.
Inter-AS Routing: là định tuyến xảy ra giữa 2 AS khác nhau.
Intra-AS Routing: là định tuyến xảy ra trong cùng 1 AS.
I.1.3 Thuật ngữ trong BGP
BGP được biết đến là giao thức định tuyến của Internet. BGP giúp cho sự trao đổi
thông tin định tuyến giữa các AS khác nhau đi khắp toàn cầu.
Hình 1 chỉ ra rất nhiều AS khác nhau, chúng sử dụng BGP để chia sẻ thông tin định
tuyến.Có 2 loại BGP: Internal BGP(iBGP) và External BGP(eBGP).
Tất cả các BGP speaker trong cùng một AS sử dụng iBGP để liên lạc với những
speaker khác.Có một số lưu ý quan trọng về Multiple BGP Speakers trong cùng một
AS:
2
Tất cả các BGP speaker phải là peers của 1 BGP speaker khác.Nghĩa là bạn phải
thiết lập một full mesh(các thiết bị đều có kết nối đến tất cả các thiết bị khác nó)để
iBGP hoạt động ổn định. Nó không có nghĩa là tất cả các thiết bị đều phải kết nối
đến các thiết bị khác- chỉ cần tất cả các BGP Speaker đều phải có Layer 3 hoạt động
bình thường. iBGP sẽ sử dụng TCP để tạo peering sessions giữa các iBGP peers.
Một tính chất khác của iBGP peers là chúng sẽ không quảng bá đường định tuyến
nhận bằng iBGP cho peers khác. Những đường định tuyến nội này sẽ được quảng
bá đi trong AS bằng IGB. BGP không phải là để thay thế IGP nên đừng hiểu nhầm
chỉ vì iBGP hoạt động trong 1 AS. Khi iBGP speaker quảng bá một đường định
tuyến học từ eBGP đến iBGP peers của nó, đáng lẽ phải là tất cả các speakers trong
AS đó nhưng nó không cần làm vậy bởi vì tất cả các iBGP peers đã được thông náo
về đường định tuyến đó bởi iBGP peer của nó. Nếu bất kì một iBGP speaker sử
dụng eBGP, nó sẽ quảng bá đường định tuyến học từ iBGP cho eBGP peers của nó.
External BGP(eBGP) được sử dụng giữa các BGP speaker nằm ở các AS khác
nhau. Giống như iBGP, eBGP peering sesson yêu cầu các BGP speaker tham gia

phải có layer 3 hoạt động bình thường(có thể truyền tin đến peers). TCP được sử
dụng bởi eBGP để tạo một peering session.
Sau khi tạo ra các peer, BGP speaker sử dụng thông tin peering để tạo một biểu đồ
loop-tree của các AS liên quan.Nó còn được gọi là BGP tree.
Hình 1 Multiple AS.
3
Khi BGP speaker đã tạo peers và tạo ra BGP tree, chúng sẽ trao đổi thông tin định
tuyến. BGP speaker trước tiên sẽ trao đổi bảng định tuyến BGP. Từ đó trở đi, peers
sẽ trao đổi thông tin update của bảng định tuyến BGP của chúng và gói tin
KEEPALIVE để giữ kết nối.
Ghi chú:bảng định tuyến BGP không phải là Bảng định tuyến IP.Hơn nữa bảng
định tuyến BGP giống như là một topology database, nó chứa entries mà không bao
giờ có trong bảng định tuyến IP. Khi dùng câu lệnh “show ip route bgp” sẽ
hiển thị đường định tuyến học qua BGP mà được cho vào bảng định tuyến IP.
I.2. Hoạt động của BGP
I.2.1. Định dạng phần đầu thông điệp:
Một message có tối thiểu là 19 octets hay tối đa là 4096 octets.
Cấu trúc cơ bản của message trong BGP là:
16-byte Marker.
2-byte Length.
1-byte Type.
Hình 2
Marker: trường Marker dài 16 bytes. Nó được sử dụng để phát hiện sự mất đồng bộ
hóa giữa các BGP peers và dùng để xác thực các message về sau.Giá trị nằm trong
4
trường Marker tùy thuộc vào loại message. Nếu là một Open message thì sẽ không
có thông tin xác thực.
Length: dài 2 bytes, nó chứa chiều dài của message kể cả trường Marker. Giá trị
trong trường này nhỏ nhất là 19 và không được lớn hơn 4096.
Type: dài 1 bytes. Chứa mã qui định loại của message. Có 4 loại message:

Loại giá trị Loại thông điệp
1 Thông điệp OPEN
2 Thông điệp UPDATE
3 Thông điệp NOTIFICATION
4 Thông điệp KEEPALIVE
Bảng 1.
I.2.2. Thông điệp OPEN :
OPEN message là loại message được gửi đầu tiên sau khi TCP session được thành
lập.Khi OPEN message được chấp nhận, một KEEPALIVE message được gửi trả
về để xác thực là OPEN message đã được chấp nhận. Sau khi KEEPALIVE đã được
gửi, chúng sẽ gửi tiếp UPDATE message, NOTIFICATION message, cuối cùng
KEEPALIVE message sẽ được trao đổi giữa các BGP peers.
Cấu trúc của OPEN message:
5
Hình 3
Version: dài 1 byte và nó cho biết version của BGP để neighbor sử dụng version
cho phù hợp. BGP speakers sẽ chọn version cao nhất mà 2 speaker có thể chạy
được. Nếu BGP speaker nhận không thể chạy theo số version trong trường này qui
định thì gói tin báo lỗi sẽ được gửi trả về cho người nhận và TCP session sẽ bị hủy.
TCP session sẽ được thiết lập lại và số version sẽ thấp hơn số version lúc trước.
Điều này sẽ lặp đi lặp lại cho đến khi chúng tìm được một version cả 2 cùng hỗ trợ
được.
My Autonomous System: dài 2 bytes và chứa số AS của BGP speaker gửi gói
OPEN đi.Trường này sẽ giúp cho BGP speaker nhận gói OPEN biết được AS của
neighbor của nó và nó còn được dùng trong tạo BGP tree của BGP speaker.
HoldTime: dài 2 bytes và giúp cho BGP speaker nhận biết được giá trị đề xuất cho
holdtime của BGP speaker gửi. BGP speaker nhận sẽ so sánh giá trị nhỏ nhất giữa
holdtime của nó và holdtime nhận được. Điều này sẽ quyết định số giây mà BGP
speaker sẽ đợi để nhận KEEPALIVE hoặc UPDATE message. Nếu một trong
những message đó không được nhận trong khoảng thời gian qui định, neighbor đó

sẽ được coi là dead. Mỗi lần nhận message, holdtime sẽ reset về 0. Không giống
6
như tham số BGP version, kết nối sẽ phải reset để tìm được thông số chung, tìm
holdtime chung không cần reset kết nối.
BGP speaker có thể set holdtime là 0. Nếu điều đó xảy ra sẽ không có KEEPALIVE
message được gửi. Như vậy kết nối luôn luôn đảm bảo. Holdtime bằng 0 cũng gây
ra trở ngại khi kết nối của 1 peers có vấn đề. Bởi vì KEEPALIVE message không
được trao đổi , peers kia sẽ không biết sự mất kết nối xảy ra. Nếu giá trị của
holdtime không bằng 0 thì nó phải lớn hơn hoặc bằng 3.
BGP Identifier: dài 4 bytes và chứa BGP identifier của BGP speaker gửi. BGP
identifier tương tự như router ID(RID) trong OSPF. Nó gán chỉ số ID cho từng BGP
speaker riêng biệt. Giống như OSPF RID, BGP identifier sẽ là giá trị IP cao nhất
của interface Loopback. Nếu router không có Loopback, nó sẽ chọn địa chỉ IP cao
nhất của interface vật lý trên router. BGP identifier sẽ được chọn khi BGP khởi
động trên router. Nói cách khác, khi BGP identifier đã được chọn, bạn không thể
thay đổi được trừ khi bạn cài đặt lại BGP. Tốt nhất là bạn nên set IP cho interface
Loopback để chọn BGP identifier mong muốn.
Optional Parameters Length: dài 1 byte và nó qui định kích thước của trường
Optional Parameter. Giá trị 0 của trường này biểu thị cho không có Optional
parameter nào được chọn.
Optional Parameters: chứa 1 danh sách các optional parameters sẽ được sử dụng
trong thỏa hiệp BGP neighbor Mỗi optional parameter có cấu trúc<parameter type,
parameter length, parameter value>
Parameter Type: dài 1 byte và dùng để định dạng parameter.
Parameter Length: dài 1 byte và chứa giá trị kích cỡ của Parameter Value.
Parameter Value: có độ dài nhất định, được biểu diễn dựa trên giá trị của Parameter
Type.
7
Hình 4
I.2.3. Thông đi ệp UPDATE:

Sau khi BGP speakers đã trở thành peers, chúng sẽ trao đổi UPDATE message.
UPDATE message chứa thông tin định tuyến cho BGP, chúng sẽ được dùng để tạo
ra môi trường định tuyến Loop-tree. UPDATE message không chỉ chứa các route để
sử dụng, nó còn chứa các route không còn hoạt động nữa(Unfeasible Route). Một
UPDATE message chỉ chứa 1 route để sử dụng nhưng nó có thể chứa hàng tá các
route đã không hoạt động nữa để router xóa khỏi sơ đồ. Những route không còn
hoạt động được quảng bá trong UPDATE message nằm trong trường Network
Layer Reachability Information (NLRI). Nếu nhưng một route chết ngay lúc
UPDATE message vừa lấy thông tin route thì nó sẽ không nằm trong trường NLRI
của message đó.
Cấu trúc của UPDATE message:
Hình 5
8
 Trường Unfeasible Route Length: dài 2 bytes và chứa kích thước của trường
Withdrawn Routes(những Unfeasible Routes). Giá trị 0 tức là không có trường
Withdraw Routes trong UPDATE message.
 Trường Withdraw Routes: Chứa một danh sách tiền tố địa chỉ IP đã
chết(không còn hoạt động). Những tiền tố này có 2 thuộc tính:
Length: dài 1 byte, chứa chiều dài, đơn vị là bit của IP prefix-list. Nếu nó có giá trị
là 0, nghĩa là tất cả các IP prefix-list.
Prefix: chứa IP Prefix-list.
 Trường Total Path Attributes Length(TPAL): dài 2 bytes, chứa chiều dài của
trường Path Attributes. Giá trị 0 tức là không có thông tin NLRI trong UPDATE
message này.
 Trường Path Attributes: có kích thước thay đổi và chứa các chuỗi thuộc tính
của 1 đường đi. Trường này luôn có trong tất cả các UPDATE message. Nếu nó
rỗng thì TPAL là 0. Thông tin của nó dùng để tìm thông tin định tuyến nhất định và
dùng cho định tuyến hoặc filter. Cấu trúc của chúng chia làm 3 phần: <attribute
type, attribute length, attribute value>.
Trường Attribute Type dài 2 bytes và chứa trong nó các byte Attribute Flags và

Attribute Type Code.
Attribute Flag: chứa các trạng thái qui định thuộc tính đường đi:
Well-known mandatory: thuộc tính phải được nhận bởi tất cả các thiết bị
chạy BGP và chứa trong UPDATE message. Nếu thuộc tính này không có trong
UPDATE message, TCP session sẽ bị hủy ngay lập tức.
Well-known discretionary: thuộc tính phải được nhận ra bởi tất cả thiết bị
chạy BGP nhưng không cần thiết phải có trong UPDATE message.
Optional Transitive:cho phép các thuộc tính không bắt buộc và không được
nhận ra bởi thiết bị chạy BGP, được chuyển đến BGP speaker’s peers.
9
Optional non-transitive: Nếu một thuộc tính không bắt buộc, không được
nhận ra bởi 1 thiết bị chạy BGP và transitive flag chưa được set, thuộc tính này sẽ
không được gửi đến BGP speaker’s peers.
Các thuộc tính đường đi được qui định dựa vào các bit trong Attribute flag như sau:
Bit có trọng số cao đầu tiên(bit 0) là optional bit. Nếu bit là 1 thì thuộc tính đường
đi đó là optional. Nếu bit này là 0 thì thuộc tính đường đi sẽ là well-known.
Bit có trọng số cao thứ 2 (bit 1) là transitive bit. Nó định nghĩa thuộc tính optional
là transitive hay không. Nếu bit này bằng 1 thì thuộc tính đó là optional transitive,
nếu bit này bằng 0 thì thuộc tính đó là optional non-transitive. Nếu thuộc tính là
well-known thì bit này luôn bằng 1.
Bit có trọng số cao thứ 3(bit 2) là partial bit. Nó qui định trạng thái của optional
transitive là partial hay complete. Thuộc tính optional transitive hoàn chỉnh sẽ có
bit này bằng 0, và thuộc tính optional transitive phân đoạn sẽ có bit này bằng 1. Tất
cả well-known và optional non-transitive sẽ có bit này bằng 0.
Bit có trọng số cao thứ 4 (bit 3) là biến chiều dài mở rộng. Nó qui định kích thước
của thuộc tính là 1 hay 2 bytes. Nếu kích thước là 1 thì bit này bằng 0. Nếu kích
thước là 2 thì bit này bằng 1.
Bốn bit trọng số thấp (bit 4-7) không được sử dụng. Chúng bằng 0 hoặc không có.
Trường Attribute Type Code: nó qui định loại của thuộc tính đường đi.
Có một số loại cơ bản sau:

MÃ LOẠI TÊN THUỘC TÍNH LOẠI
1 1 ORIGIN Well-known mandatory
2 AS_PATH Well-known mandatory
3 NEXT_HOP Well-known mandatory
4 MULTI_EXIT_DISC Optional non-transitive
5 LOCAL_PREF Well-known discretionary
6 ATOMIC_AGGREGATE Well-known discretionary
7 AGGREGATOR Optional transitive
8 COMMUNITY Optional transitive
9 ORIGINATOR_ID Optional non-transitive
10
10 CLUSTER_LIST Optional non-transitive
11 DPA Destination point attribute for BGP
12 Advertiser BGP/IDRP route server
13 RCID_PATH/CLUSTER_ID BGP/IDRP route server
14 Multiprotocol Reachable NLRI Optional non-transitive
15 Multiprotocol Unreachable NLRI Optional non-transitive
16 Extended Communities N/A
… … …
256 Reserved for development N/A
Bảng 2
ORIGIN: la một well-known mandatory attribute. AS tổng hợp thông tin định tuyến
và tạo ra ORIGIN. Nó có trong tất cả các UPDATE message để quảng bá thông tin
định tuyến.
AS-PATH: là một well-known madatory chứa danh sách tất cả các AS mà thông tin
định tuyến đã đi qua. AS-PATH là một danh sách các AS path segments. Mỗi AS
path segment được biểu diễn bởi <path segment type, path segment length, path
segment value>.Khi BGP speaker quảng bá một route học được cho một BGP
speaker khác trong AS của nó, BGP speaker sẽ không thay đổi giá trị AS-PATH,
còn nếu nó quảng bá cho một speaker khác AS, nó sẽ thay đổi AS-PATH theo cách

sau:
Với path segment thứ nhất của AS-SEQUENCE, BGP speaker sẽ thêm số AS của
nó vào cuối của chuỗi.
Với path segment thứ nhất của AS-SET, BGP speaker sẽ thêm một path segment
mới với AS-SEQUENCE có số AS của nó trong đó.
Khi BGP speaker tạo ra 1 route nó sẽ cho thuộc tính AS-PATH là rỗng khi truyền
cho BGP speaker trong cùng AS, đó là iBGP peers. BGP speaker thêm số AS của
nó trong AS-PATH khi quảng bá cho một speaker bên ngoài AS của nó, đó là eBGP
peers.
NEXT_HOP:là một well-known mandatory,nó chỉ ra địa chỉ IP của router biên cần
đi qua để tới đích. Sau đây là những rules của NEXT_HOP:
11
Trong eBGP, next hop là địa chỉ IP của neighbor ngoài AS đã quảng bá route cho
router gửi.
Trong iBGP:
Internal Route(inside AS) sử dụng next hop để ghi địa chỉ IP của neighbor trong
cùng AS đã quảng bá route cho router đó. Bởi vì iBGP peers sẽ không quảng bá lại
những route đó đến những peers khác, next hop sẽ là iBGP peers quảng bá route
trong AS. Bởi vì chúng ta có kết nối full mesh nên tất cả các speaker sẽ đồng thời
đổ về next hop đó để lấy route.
External routes sử dụng cùng 1 địa chỉ next hop mà đã được quảng bá vào AS nhờ
eBGP.Những địa chỉ next hop đó sẽ không thể thay đổi được trong AS.
Trong một multi-access network, nex hop sẽ là địa chỉ IP của interface quảng bá
route cho router gửi, trong cùng multi-access media, giống như IGP vậy.
MULTI_EXIT_DISC:là một thuộc tính optional non-transitive.Nếu có entry hoặc
exit point cùng đến 1 đích trong AS, nó sẽ được dùng để quyết định đường nào sẽ
được chọn. Entry hoặc exit point có metric nhỏ nhất sẽ được sử dụng.
LOCAL_PREF:là thuộc tính well-known discretionary. Thuộc tính này được sử
dụng bởi BGP speaker để thiết lập độ ưu tiên của 1 route, nó là thuộc tính quan
trọng quyết định đường nào sẽ được chọn. BGP speaker luôn quảng bá gói tin có

thuộc tính này cho iBGP peers của nó.
ATOMIC_AGGREGATE: là thuộc tính well-known discretionary. Khi BGP speaker
nhận được một route trùng khớp từ peers của nó, nó sẽ set thuộc tính
ATOMIC_AGGREGATE. Thuộc tính đó được set nếu BGP speaker summarized
route đó về subnetmask ngắn hơn.
AGGREGATOR:là thuộc tính optional transitive. Khi BGP speaker summarized
routes, thuộc tính này sẽ được gán chỉ số AS và BGP identifier.
COMMUNITY: là thuộc tính optional transitive. Thuộc tính này qui định
communities mà route thuộc về. Chúng sẽ được nói rõ ở BGP nâng cao.
12
ORGINATOR_ID: là thuộc tính optional non-transitive. Một BGP speaker làm
nhiệm vụ route reflector sẽ tạo ra thuộc tính này. BGP identifier làm nhiệm vụ route
reflector sẽ được gán vào thuộc tính này. Thuộc tính này chỉ dùng trong local AS.
CLUSTER_LIST: là thuộc tính optional non-transitive. 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.
 Trường Network Layer Reachability:
Khi BGPv4 ra đời, hỗ trợ Classless interdomain routing(CIDR). BGPv4 có thể
quảng bá các route không dùng classful. Nó nhờ vào trường này(NLRI).
NLRI có chiều dài thay đổi, nó chứa prefix địa chỉ IP của 1 route.Cấu trúc như sau:
Length: qui định chiều dài của prefix địa chỉ IP. Nó gần như tương tự subnet mask.
Nếu giá trị bằng 0, nó chỉ ra tất cả các địa chỉ IP.
Prefix: chiều dài thay đổi, chứa địa chỉ IP.
I.2.4. Thông đi ệp KEEPALIVE:
Nó được sử dụng để đảm bảo kết nối vẫn tồn tại giữa các peers. KEEPALIVE
message được gửi khi cần restart giá trị hold timer. Chu kì gửi KEEPALIVE có giá
trị bằng 1/3 giá trị holdtime. Vậy nên giá trị holdtime nhỏ nhất phải là 3.
KEEPALIVE sẽ không được gửi nếu có 1 UPDATE message đang được gửi đi, còn
nếu holtime =0 thì KEEPALIVE không bao giờ được gửi nữa.
I.2.5. Thông đi ệp NOTIFICATION:

Khi có lỗi xảy ra trong BGP session, BGP speaker sẽ tạo ra một NOTIFICATION
Message, cùng lúc đó session cũng bị hủy. Message này chứa mã lỗi(error code) và
mã phân lỗi (error sub-code) giúp người quản trị dễ dàng troubleshoot.
Định dạng thông điệp NOTIFICATION
13
Hình 6
Trường Error Code: kích thước 1 byte và có 6 mã lỗi có thể xảy ra.Trường Error
Sub-code kích thước 1 byte chứa mã phân lỗi. Chỉ có 3 lỗi có phân lỗi.Bên dưới là
các lỗi có thể xảy ra:
14

×