3.1. Giới thiệu giao thức BGP-4
Sau đây ta sẽ sơ lược về BGP và phân tích lý do tại sao giao thức này lại được dùng để
vận chuyển các route VPN trong mạng MPLS.
Internet là tập hợp một số lượng lớn các hệ thống tự trị AS (có thể nằm ở nhiều vị trí địa
lý cách xa nhau) bao gồm nhiều router kết nối với nhau, các router này được quản lý bởi
nhà quản trị. Do đó cần phải có một giao thức định tuyến dùng để trao đổi thông tin giữa
các AS mà vẫn đảm bảo được đường đi không có loop trong mạng. BGP ra đời để thực
hiện nhiệm vụ đó. Phiên bản hiện tại của BGP là BGP-4, BGP-4 được giới thiệu vào năm
1995 và được định nghĩa trong RFC 1772.
Cập nhật định tuyến là đặc điểm quan trong khiến BPG-4 thích hợp trong môi trường kết
nối nhiều mạng cực kì lớn. Nó không quan tâm đến việc phải hiểu đầy đủ chi tiết đến
từng subnet trong một tổ chức, thay vì đó, nó thực hiện thu gọn các route đó lại. Cập nhật
định tuyến mang một danh sách các AS và địa chỉ prefix được thu gọn lại, cũng như một
vài thông tin về chính sách định tuyến. Không như các giao thức IGP sử dụng metric để
thực hiện các quyết định định tuyến, thì BGP sử dụng các quy tắc hay các chính sách
định tuyến để thực hiện quyết định này. Do đó, đối với các giao thức IGP, quyết định
định tuyến chỉ có thể áp đặt lên với route nào đó, còn BGP thì có thể áp đặt lên cả đường
đi (path).
3.1.1. Đặc điểm của BGP-4
o BGP-4 là giao thức path vector: BGP mang các đặc điểm của giao thức distance vector
trong đó mỗi node BGP phụ thuộc vào láng giềng downstream để phổ biến các route
trong bảng định tuyến của chúng, tức là node đó phải tự tính toán cho các route và
chuyển kết quả đó đến láng giềng upstream. Tuy nhiên, các giao thức định tuyến distance
vector xác định khoảng cách bằng một đại lượng cụ thể, như hop count dành cho RIP hay
tổng độ trễ trên các interface với băng thông nhỏ nhất cho IGRP và EIGRP. BGP lại sử
dụng khái niệm AS để vận chuyển gói tin đến đích, tức là sử dụng đường đi từ AS này
đến AS kia để vận chuyển gói tin, do đó BGP được gọi là giao thức định tuyến path
vector để phân biệt với các giao thức distance vector.
o Việc trao đổi định tuyến xảy ra theo hai pha: bulk và incremental. Bulk có nghĩa là cập
nhật định tuyến đầy đủ, pha này được thực hiện ngay sau khi phiên BGP được thiết lập,
hai BGP ngang cấp sẽ trao đổi toàn bộ bảng định tuyến cho nhau. Incremental nghĩa là
các cập nhật được gửi đi khi có một sự thay đổi nào đó trong mạng (chẳng hạn như một
route mới được thêm vào hay một route nào đó không còn hợp lệ nữa), cập nhật này chỉ
mang thông tin về sự thay đổi đó.
o Tạo và duy trì kết nối giữa các router ngang cấp, sử dụng TCP port 179.
o Kết nối được duy trì bằng cách trao đổi tuần hoàn bản tin keepalive giữa các router
BGP ngang cấp.
o BGP-4 sử dụng khái niệm attribute (thuộc tính) để lựa chọn đường đi cho gói tin.
o Khả năng sử dụng địa chỉ phân tầng và điều khiển dòng lưu lượng làm tăng khả năng
mở rộng mạng.
o Mang bảng định tuyến riêng, bên cạnh bảng định tuyến IP.
o Có khả năng thực hiện định tuyến dựa trên chính sách được thiết lập và nó được thực
hiện dựa trên chặng-chặng (hop-by-hop), có nghĩa là không có router nào có thể gửi lưu
lượng đi nếu router kế tiếp không cho phép thực hiện điều đó.
3.1.2. Các loại bản tin BGP
Ta thấy BGP-4 là giao thức kết nối có hướng (connection-oriented). Do đó trước khi thiết
lập kết nối với BGP ngang cấp, hai láng giềng phải thực hiện bắt tay 3 bước theo TCP, và
mở kết nối TCP đến port 179. Tất cả bản tin BGP được unicast đến láng giềng qua kết
nối TCP. Mỗi loại bản tin khác nhau đóng vai trò quan trọng trong hoạt động của BGP.
Mỗi loại bản tin bao gồm có mào đầu bản tin trong đó. Mào đầu bản tin có 3 trường. Đó
là trường Marker 16 byte, trường Length 2 byte, và trường Type 1 byte.
Trường Marker được sử dụng hoặc là để xác thực các bản tin BGP ngõ vào hoặc để phát
hiện việc mất đồng bộ của hai BGP ngang cấp.
Trường Length cho biết tổng chiều dài của bản tin BGP trong đó có cả mào đầu. Bản tin
BGP nhỏ nhất là 19 byte (16 + 2 + 1) và bản tin lớn nhất có thể là 4096 byte.
Trường Type có thể có 4 giá trị (từ 1 đến 4). Mỗi giá trị trong trường này tương ứng với
một trong 4 bản tin BGP: bản tin Open, bản tin Keepalive, bản tin Update, và bản tin
Notification.
Vai trò của các bản tin cụ thể như sau:
• Bản tin Open (mang code 1): sau khi phiên TCP được thiết lập, cả hai láng giềng gửi
các bản tin Open. Mỗi láng giềng sử dụng bản tin này để định nghĩa bản thân nó và để chỉ
ra các tham số hoạt động BGP của nó.
• Bản tin Update (mang code 2) : Bản tin này quảng bá các route khả thi, các route không
khả thi hoặc là cả hai. Bản tin này bao gồm các trường quan trọng sau :
1. NLRI: dùng để quảng bá prefix và chiều dài prefix, có chiều dài thay đổi. Được viết
dưới dạng <length, prefix>. Length chỉ ra chiều dài của prefix, Prefix là địa chỉ IP của
NLRI. Giá trị Length bằng 0 nghĩa là Prefix đó đúng với tất cả các địa chỉ IP.
2. Path Attribute: có giá trị thay đổi, chỉ ra các đặc điểm của NLRI được quảng bá. Nó
cung cấp nhiều thông tin cho phép BGP lựa chọn đường đi ngắn nhất, phát hiện loop và
quyết định chính sách định tuyến.
Chú ý rằng, mặc dù có thể có nhiều prefixes trong trường NLRI, nhưng mỗi bản tin
Update chỉ có thể có một route BGP trong đó mà thôi, vì các path attribute chỉ mô tả một
đường đi, nhưng đường đi đó có thể dẫn đến nhiều đích khác nhau (khác với IGP).
• Bản tin Keepalive : khi một router chấp nhận các tham số trong bản tin Open mà láng
giềng gửi đến, nó đáp ứng bằng bản tin Keepalive.
• Bản tin Notification: được gửi đi bất kì khi nào phát hiện được lỗi và luôn luôn đóng kết
nối BGP
3.1.3. Thuộc tính đường đi (path attribute)
Thuộc tính đường đi là một đặc điểm của route BGP được quảng bá. Thuộc tính đó được
mang trong các cập nhật định tuyến mà một router BGP sử dụng nó để chọn đường đi tốt
nhất cho gói tin đến đích. Ngoài ra thuộc tính đường đi còn cho phép BGP thiết lập các
chính sách định tuyến.
Mỗi thuộc tính đường đi sẽ thuộc một trong 4 loại sau:
• Well-known mandatory
• Well-known discretionary
• Optional transitive
• Optional nontransitive
Well-known có nghĩa là thuộc tính đường đi đó phải được tất cả các thao tác BGP nhận
ra. Optional (lựa chọn) có nghĩa là thao tác BGP không cần thiết phải hỗ trợ thuộc tính
đó.
Thuộc tính well-known có thể là mandatory (duy trì), nghĩa là các thuộc tính đó phải có
mặt trong tất cả các bản tin cập nhật của BGP. Hoặc là discretionary, nghĩa là chúng có
thể có hoặc không cần phải được gửi đi trong bản tin Update.
Nếu một thuộc tính lựa chọn (optional attribute) là transitive thì tiến trình BGP sẽ chấp
nhận đường đi mà có thuộc tính đó, ngay cả nếu nó không hỗ trợ.
Nếu một thuộc tính lựa chọn là nontransitive, thì tiến trình BGP không nhận ra được
thuộc tính đó sẽ loại bỏ cập nhật và không quảng bá đường đi đến BGP ngang cấp khác.
Các thuộc tính được sử dụng trong tiến trình quyết định của BGP bao gồm:
• Thuộc tính Next_hop
Next_hop là thuộc tính well-known mandatory, mang code 3. Thuộc tính này cho biết địa
chỉ IP của router kế tiếp trên đường đi được quảng bá đến đích. Địa chỉ này không nhất
thiết là địa chỉ IP của láng giềng. Nó phải tuân theo các quy tắc sau:
o Nếu router quảng bá và router nhận thuộc về AS khác nhau (là phiên EBGP), thì
next_hop sẽ là địa chỉ IP của interface của router quảng bá.
o Nếu router quảng bá và router nhận nằm trong cùng một AS (internal peer), tức là route
được khởi tạo trong AS. Và NLRI của cập nhật thuộc về cùng AS, thì next_hop là địa chỉ
IP của láng giềng đã quảng bá route.
o Nếu router quảng bá và router nhận là internal peer, và NLRI của cập nhật lại thuộc về
AS khác, thì next_hop là địa chỉ IP của external peer, nơi đã quảng bá route.
Đối với trường hợp 3 ta xét ví dụ sau đây: Xem hình 3.1
Trong hình 3.1 ta thấy rằng mạng 192.168.5.0 là mạng có chứa next-hop, nhưng địa chỉ
next-hop không phải nằm trong AS 509. Do đó các router nằm trong AS 509 (trừ router
biên ASBR) sẽ không biết về mạng này. Và nếu mạng đó không có trong bảng định
tuyến, thì địa chỉ next-hop cho mạng 207.135.64.0/19 là unreachable, và gói tin cho đích
đó sẽ bị drop. Mặc dù route đến mạng 207.135.64.0/19 được cập nhật vào trong bảng
BGP của router ngang cấp trong một AS (internal peer) nhưng nó lại không được cập
nhật trong bảng định tuyến IGP vì địa chỉ next-hop không hợp lệ đối với router đó. Giải
pháp là cấu hình trên router biên ASBR thiết lập địa chỉ của nó chính là next-hop bằng
câu lệnh next-hop-self. Lúc đó router ngang cấp IBGP với router biên sẽ hiểu về mạng
được router external quảng bá đến.
• Thuộc tính AS_path
AS_Path là thuộc tính well-known mandatory, mang code 2. AS_Path là một chuỗi thứ tự
AS_number có route đi đến đích. AS khởi tạo route sẽ thêm AS-number của nó vào route
khi gửi route đến router ngang cấp EBGP (external router). Sau đó, mỗi AS nhận route và
chuyển nó đến BGP ngang cấp khác sẽ thêm vào trước (prepend) danh sách đó AS-
number của nó. Danh sách cuối cùng có tất cả AS mà route đã đi qua trong đó AS nơi mà
route xuất phát sẽ ở cuối cùng của danh sách. Loại AS_Path này được gọi là AS
Sequence vì tất cả AS trong danh sách được sắp xếp theo một thứ tự nhất định.
BGP sử dụng thuộc tính AS_Path trong các cập nhật định tuyến để đảm bảo chống loop
trong Internet. Vì khi route được chuyển đi giữa các BGP ngang cấp, nếu đi qua một AS
khác, nó sẽ thêm AS đó vào danh sách, do đó khi một AS nhận được một route, nó thấy
có AS_number của nó trong thuộc tính AS_Path, nó sẽ loại bỏ route đó. Các BGP
speaker không sử dụng thuộc tính AS_Path nếu chúng cùng thuộc về một AS.
Ví dụ: Xem hình 3.2
Trong hình 3.2 là trường hợp ví dụ về thuộc tính AS_Path đối với route 172.1610.0/24.
Route này khởi tạo từ AS1 và chuyển đến AS2, AS3, AS4 và trở về lại AS1. Khi route đó
đi qua mỗi AS, nó sẽ thêm AS_number của AS đó vào trong danh sách, AS 1 sẽ ở cuối
cùng của danh sách. Do đó khi AS 1 nhận được route, nó thấy có số 1 xuất hiện trong
danh sách, và loại bỏ route.
Thông tin AS_path là một trong những thuộc tính mà BGP kiểm tra để xác định route tốt
nhất đến đích. Route nào có đường đi ngắn hơn sẽ được ưu tiên hơn. Nếu hai route có
chiều dài AS_path như nhau thì sẽ sử dụng thêm nhiều thuộc tính khác (phần này nằm
trong tiến trình quyết định của BGP).
• Thuộc tính Community
Community là thuộc tính optional transitive, mang code 8, được thiết kế để áp đặt các
chính sách. Thuộc tính này ban đầu là do Cisco tạo ra, nhưng sau đó được chuẩn hóa
trong RFC 1997.
Thuộc tính Community dùng để nhận diện đích là thành viên của một cộng đồng có nhiều
địa chỉ đích trong đó. Cộng đồng cùng chia sẽ một hay nhiều tính chất chung. Ví dụ, ISP
có thể đăng kí thuộc tính Community nào đó đến tất cả các route của khách hàng. Sau đó
ISP có thể thiết lập các thuộc tính khác dựa trên giá trị Community này cho toàn bộ các
route thay vì phải làm việc đó trên từng route đơn lẻ.
Thuộc tính Community là giá trị gồm 4 octet. Trong RFC chỉ ra rằng hai octet đầu tiên là
Autonomous system, và hai octet cuối cùng là bộ nhận diện (Identifier) được định nghĩa
bởi nhà quản trị. Nó có format là AA : NN.
Ví dụ một route từ AS 625 có Community Identifier là 70. Vậy giá trị thuộc tính
Community là 625:70, nếu được biểu diễn bằng số hexa là 0x02710046, với 625 =
0x0271 và 70 = 0x0046. Trong RFC sử dụng biểu diễn thuộc tính này bằng số Hexa
nhưng trong các Cisco router lại sử dụng số thập phân.
Giá trị community nằm trong dãy từ 0 (0x00000000) đến 65535 (0x0000FFFF) và từ
42490176 (0xFFFF0000) đến 429697295 (0xFFFFFFFF) được dành trước. Có nhiều
Community được định nghĩa :
o Internet: Internet community không có giá trị, mặc định tất cả các route thuộc về
community này và sẽ được quảng bá tự do.
o No_export (4294967041, hoặc 0xFFFFFF01): các route mang giá trị này không được
quảng bá đến EBGP ngang cấp, hoặc nếu có Confederation được cấu hình thì các route
không thể được quảng bá ra ngoài Confederation đó.
o No-advertise (4294967042, hoặc 0xFFFFFF02): các route mang giá trị no-advertise
không được quảng bá cho BGP ngang cấp nào hết (EBGP cũng như IBGP).
o No_export_subconfed (4294967043, hoặc 0xFFFFFF03): Các route mang giá trị này
không thể được quảng bá đến EBGP ngang cấp, kể cả các router trong AS khác thuộc về
cùng một Confederation.
• Thuộc tính Atomic Aggregate
Là một thuôc tính well-known discretionary. Nó được thiết lập giá trị hoặc là True hoặc
là False. Nếu là True, thì thuộc tính này sẽ cảnh báo cho router BGP biết rằng có nhiều
đích đã được nhóm lại trong một cập nhật duy nhất và do đó việc mất thông tin đã xảy ra.
Tức là khi router BGP gửi một route đã được nhóm lại đến cho router láng giềng của nó,
nó phải kèm theo thuộc tính Atomic Aggregate vào route đó. Bất kì router BGP
downstream nào nhận route với attribute Atomic Aggregate không thể có được chi tiết
thông tin NLRI về route (các route trước khi được tóm gọn), và khi quảng bá route đã
được tóm gọn đến router ngang cấp khác, nó cũng gửi kèm theo attribute Atomic
Aggregate.
• Thuộc tính Origin
Origin là thuộc tính well-known mandatory. Nó chỉ ra nguồn của cập nhật định tuyến.
BGP cho phép 3 loại origin sau:
o IGP được khởi tạo nội bộ trong AS
o EGP được học từ router BGP khác AS
o Incomplete học đựơc từ một số cách khác như redistribution…
BGP xem xét các thuộc tính Origin trong tiến trình quyết định để xem route nào tối ưu
hơn route nào. BGP chọn loại origin thấp nhất. IGP thấp hơn EGP, EGP thấp hơn
Incomplete.
• Thuộc tính Local_Preference
Là thuôc tính well-known discretionary. Local-Preference là thuộc tính dùng để so sánh
các route đến cùng một đích route nào có độ ưu tiên cao hơn. Nếu route có thuộc tính
Local_Preference cao hơn sẽ được chọn làm đường đi tối ưu. Cũng như tên thuộc tính
này, nó chỉ chuyển đổi nội bộ giữa các router IBGP ngang cấp, không được quảng bá
sang router EBGP ngang cấp khác.
• Thuộc tính Weight
Tương tự như Local_Preference, nó sẽ ưu tiên sử dụng route có giá trị Weight cao hơn.
Nhưng khác với Local_Preference là thuộc tính Weight chỉ có ý nghĩa nội bộ trong router
mà thôi, nó không trao đổi thuộc tính này với router khác. Thuộc tính Weight ảnh hưởng
đến các route đến từ nhiều nhà cung cấp khác nhau tới một router, một router có nhiều
kết nối tới hai hay nhiều nhà cung cấp.
• Thuộc tính MED (Multiple Exit Discriminatior)
MED là thuộc tính optional nontransitive. MED chỉ cho láng giềng EBGP về đường đi
nào tối ưu hơn để vào trong một AS có nhiều điểm nào. MED có giá trị càng thấp càng
được ưu tiên, do đó nó được xem là metric của BGP.
Không giống như Local_Preference, MED được trao đổi giữa các AS, nhưng MED vào
trong một AS sẽ không đi ra khỏi AS này. Khi có một cập nhật đến một AS với giá trị
MED được thiết lập, giá trị này được sử dụng để quyết định chỉ trong nội bộ AS đó thôi.
Khi BGP chuyển cập nhật cho một AS khác thì giá trị của MED được thiết lập về 0.
Khi một route được khởi tạo bởi một AS, thì giá trị của MED thông thường là tuỳ theo
metric IGP của route. Điều này trở nên hữu dụng khi một khách hàng có nhiều kết nối
đến cùng một nhà cung cấp. Metric IGP chỉ ra chi phí đến một mạng để xác định điểm
truyền.
3.1.4. Tiến trình quyết định trong BGP
BGP dựa trên giá trị của các thuộc tính để quyết định chọn route. Khi gặp nhiều route đến
cùng một đích, thì BGP sẽ chọn route tốt nhất để truyền tải đến đích. Quá trình chọn
route như sau:
• Next-hop không đến được, route sẽ bị loại bỏ.
• Router BGP sẽ ưu tiên đường đi với thuộc tính Weight lớn nhất.
• Nếu Weight bằng nhau, router BGP sẽ ưu tiên route với thuộc tính Local_preference lớn
nhất.
• Nếu route có cùng giá trị Local_preference, router BGP sẽ ưu tiên route với AS_Path
ngắn nhất.
• Nếu chiều dài AS_path là như nhau, router BGP sẽ ưu tiên route có thuộc tính Origin
nhỏ nhất.
• Nếu loại origin là như nhau, router BGP sẽ ưu tiên route với MED thấp nhất.
• Nếu route có cùng giá trị MED, router BGP sẽ ưu tiên route EBGP trước, sau đó là AS
khác trong cùng một Confederation, và cuối cùng là IBGP.
• Nếu tất cả các trường hợp trên là như nhau thì router BGP sẽ ưu tiên route đến từ IGP
láng giềng gần nhất.
• Nếu đường đi trong một AS là như nhau, ID của router BGP sẽ được xem xét. Route
đến từ router có ID thấp nhất sẽ được chọn.
3.2. VPN trong mạng MPLS
MPLS VPN sử dụng mô hình VPN ngang cấp nhưng có kết hợp các đặc điểm tốt nhất
của mô hình overlay VPN (hỗ trợ giải quyết vấn đề trùng không gian địa chỉ khách hàng)
và các đặc điểm tốt nhất của mô hình VPN ngang cấp.
Router biên của mạng nhà cung cấp tham gia vào định tuyến khách hàng, đảm bảo định
tuyến tối ưu giữa các site khách hàng. Router sẽ mang các route riêng cho mỗi khách
hàng, tạo ra sự cách ly hoàn hảo giữa họ.
3.2.1. Khái niệm VPN trong mạng MPLS
VPN MPLS đưa ra khái niệm site. Một VPN là tập hợp gồm nhiều site chia sẽ cùng thông
tin định tuyến chung. Có nghĩa là một site thuộc về nhiều hơn một VPN nếu nó đó nắm
giữ các route từ mỗi VPN riêng. Điều này cung cấp khả năng xây dựng các VPN intranet
và extranet cũng như các mô hình mạng khác. Nếu các site của một VPN thuộc về một
doanh nghiệp (Enterprise), VPN đó được gọi là intranet VPN. Nếu các site của VPN
thuộc về những doanh nghiệp khác nhau thì các site đó gọi là extranet VPN. Do đó, một
VPN trong khối kiến trúc MPLS/VPN có thể được xem như là một nhóm người dùng gần
nhau (closed user group - CUG).
Ưu điểm của mạng MPLS/VPN:
• Định tuyến tối ưu giữa các site khách hàng.
• Cung cấp dễ dàng.
• Cho phép trùng địa chỉ giữa các khách hàng bằng cách sử dụng route distinguisher.
• Với việc sử dụng route target cho phép xây dựng các mô hình VPN phức tạp.
3.2.2. Các thành phần trong mạng MPLS VPN
Có nhiều thành phần mạng được định nghĩa trong cấu trúc MPLS VPN. Các thành phần
này thực hiện những chức năng khác nhau nhưng kết hợp với nhau để cấu thành mạng
MPLS VPN. Bao gồm:
• Provider network (P-network): mạng nhà cung cấp, mạng lõi MPLS/IP được quản trị
bởi nhà cung cấp dịch vụ.
• Provider router (P-router): là router chạy trong mạng lõi của nhà cung cấp, cung cấp
việc vận chuyển dọc mạng backbone và không mang các route của khách hàng.
• Provider edge router (PE-router): Router biên của mạng backbone, nó cung cấp phân
phối các route của khách hàng và thực hiện đáp ứng các dịch vụ cho khách hàng từ phía
nhà cung cấp.
• Autonomous system boundary router (ASBR-router) : router biên trong một AS nào đó,
nó thực hiện vai trò kết nối với một AS khác. AS này có thể có cùng hoặc khác nhà điều
hành.
• Customer network (C-network): đây là phần được khách hàng điều khiển.
• Customer edge router (CE-router): router khách hàng đóng vai trò như là gateway giữa
mạng C và mạng P. Router CE được quản trị bởi khách hàng hoặc có thể được nhà cung
cấp dịch vụ quản lý. Các phần liên tục của mạng C được gọi là site và được nối với mạng
P thông qua router CE.
Hình dưới đây là mô hình cơ bản mạng MPLS VPN:
Hình 3.3: Mô hình mạng MPLS VPN cơ bản
• 3.3.1.b. BGP confederation
MPLS/VPN có thể chia một AS ra thành nhiều AS nhỏ hơn. Mạng bên ngoài nhìn vào
Confederation như là một AS duy nhất. Các router ngang cấp trong các AS liên lạc với
nhau thông qua phiên EBGP. Tuy nhiên, chúng lại trao đổi thông tin định tuyến như là
IBGP ngang cấp.
Nếu tất cả các AS trong BGP Confederation chạy cùng một giao thức định tuyến, thì vẫn
sử dụng các quy tắc iBGP thông thường. Các thuộc tính BGP không bị thay đổi, bao gồm
cả next-hop cho mỗi route được trao đổi giữa các biên mạng AS con, next-hop này không
được thay đổi khi đi qua một AS con trong BGP Confederation. Mỗi nex-hop sẽ được
router PE trong backbone đăng kí một nhãn, quá trình chuyển đổi nhãn xảy ra trên tất cả
các route VPN khách hàng.
Ví dụ : hình vẽ 3.13
AS 100 chia thành hai AS con là AS65002 và AS 65001. Trong mạng ConfedCom,
router PE1 nhận cập nhật cho route 195.12.2.0/24 từ VPN CusNet của khách hàng. Cập
nhật này được đưa vào bản VRF CusNet và được quảng bá bằng cách sử dụng MP-iBGP
đến router ASBR1 với địa chỉ next-hop là 194.17.1.2/32 và nhãn VRF là 11. Route này
sau đó lại được quảng bá dọc biên giữa các AS con đến router ASBR2, với next-hop và
nhãn không thay đổi. Router ASBR2 này lại quảng bá route đến router PE2, router PE2
thêm route vào bảng VRF của nó.
Hình 3.13: Quá trình truyền route trong giải pháp BGP Confederation
Nếu các AS trong BGP Confederation có nhiều tiến trình IGP, mỗi AS con chạy mỗi tiến
trình IGP riêng thì next-hop cho tất cả các route BGP vẫn không thay đổi dọc biên mạng
của các AS con.
3.3.2. Carrier’s Carrier
Từ những ưu điểm của công nghệ MPLS/VPN và cộng với sự phát triển, mở rộng mạng
ra nhiều vùng địa lý khác nhau. Nhiều doanh nghiệp lớn, doanh nghiệp trung bình, nhiều
nhà cung cấp dịch vụ MPLS/VPN nhỏ hơn, và nhiều nhà cung cấp dịch vụ Internet (ISP)
đã nhận thấy rằng khi kết nối vào mạng backbone MPLS/VPN họ có thể tránh được việc
phải xây dựng cơ sở hạ tầng lớp 2 cho mạng của mình. Thay vào đó sử dụng mạng
backbone của nhà cung cấp MPLS/VPN để kết nối các site lại với nhau. Ngoài vấn đề
giảm thiểu được chi phí thì mỗi site có thể kết nối đến toàn bộ các site ngang cấp với nó,
tức là full-mesh. Do đó sẽ cung cấp được định tuyến tối ưu nhất. Điều này có nghĩa là để
cho phép tất cả các khách hàng như vậy truy cập vào mạng MPLS VPN backbone thì
mạng backbone phải có khả năng mang một số lượng cực kì lớn thông tin định tuyến cho
mỗi cá nhân khách hàng. Ví dụ như ISP, nhà cung cấp dịch vụ Internet, hầu như cần phải
trao đổi một phần, nếu không nói là toàn bộ, bảng định tuyến Internet giữa các site của họ
để khách hàng của họ có thể truy cập được Internet.
Việc truy cập đến những khách hàng này gây ra vấn đề khó khăn khi mở rộng, vì mỗi
router PE phải duy trì tất cả thông tin định tuyến local trong một VRF. Thông tin định
tuyến này sau đó được phân phối đến tất cả các router PE có liên quan, lúc đó router CE
hoàn toàn có thể đạt được thông tin định tuyến thích hợp. Để giải quyết vấn đề mở rộng
trong trường hợp trên (tức là vấn đề định tuyến khi nhà cung cấp dịch vụ này lại là khách
hàng của nhà cung cấp dịch vụ khác) một giải pháp mới được mở rộng ra từ MPLS/VPN
chuẩn, gọi là Carrier hỗ trợ Carrier (Carrier supporting Carrier-Carrier’s Carrier).
Carrier’s Carrier là thuật ngữ được sử dụng để mô tả một tình huống khi một nhà cung
cấp dịch vụ cho phép nhà cung cấp dịch vụ khác sử dụng một phần trong mạng backbone
của họ. Nhà cung cấp dịch vụ cung cấp một phần trong mạng backbone cho nhà cung cấp
dịch vụ được gọi là Carrier backbone. Nhà cung cấp dịch vụ mà sử dụng một phần trong
mạng backbone được gọi là Customer Carrier (Carrier khách hàng)
3.3.2.a. Một số thuật ngữ được sử dụng trong Carrier’s Carrier
CSC: là từ viết tắt của Carrier’s Carrier.
CSC router PE: hoạt động giống như router PE trong mạng MPLS/VPN thông thường,
ngoại trừ việc nó cung cấp chuyển tiếp MPLS-to-MPLS hơn là việc chèn nhãn IP-to-
MPLS.
CSC router CE: hoạt động giống như router CE thông thường, ngoại trừ việc nó chạy
giao thức phân phối nhãn với router PE.
Carrier network: đây là Carrier backbone.
Carrier’s carrier network: đây chính là Carrier khách hàng.
Như hình vẽ sau đây :
Hình 3.14: Mô hình mạng cơ bản CSC
3.3.2.b. Các loại route Carrier's Carrier
Để hiểu được giải pháp Carrier's Carrier có thể thực hiện khả năng mở rộng cũng như sự
cách ly mạng Carrier backbone như thế nào, ta cần phải biết được các loại route nào sẽ
được sử dụng dành cho kết nối bên trong (internal) của một VPN nào đó, và loại route
nào thuộc về khách hàng bên ngoài (external) của VPN đó.
Giả sử ISP là khách hàng VPN của mạng backbone MPLS/VPN, tất cả các liên kết bên
trong ISP, các dịch vụ bên trong cung cấp đến cho khách hàng của họ như web, DHCP…,
các interface loopback (interface loopback được dùng để quản lý mạng, BGP peering)
được xếp vào loại internal route. Còn tất cả các route từ internet và từ khách hàng bên
ngoài của ISP được gọi là external route (các route bên ngoài).
3.3.2.c. Ưu điểm của việc triển khai MPLS VPN CSC
Mạng MPLS VPN CSC cung cấp nhiều ưu điểm cho nhà cung cấp dịch vụ, kể cả Carrier
backbone và Carrier khách hàng.
Ưu điểm đối với Carrier backbone
Carrier backbone có thể cung cấp cho nhiều Carrier khách hàng và cho phép họ truy cập
vào mạng backbone. Carrier backbone không cần phải tạo và duy trì mỗi backbone riêng
cho mỗi Carrier khách hàng. Sử dụng một mạng backbone để hỗ trợ nhiều Carrier khách
hàng chỉ đơn giản thông qua hoạt động VPN của Carrier backbone. Carrier backbone chỉ
cần sử dụng một phương pháp cố định để quản lý và duy trì mạng backbone. Điều này có
nghĩa là tiết kiệm được chi phí và hiệu quả hơn so với việc phải duy trì riêng từng
backbone.
Đặc điểm MPLS CSC có khả năng mở rộng, nó có thể thay đổi VPN để đáp ứng nhu cầu
băng thông và kết nối. Nó có thể hỗ trợ đến mười ngàn VPN qua cùng một mạng, và cho
phép nhà cung cấp dịch vụ có thể vừa đáp ứng dịch vụ VPN vừa đáp ứng được dịch vụ
Internet.
MPLS/VPN CSC là một giải pháp linh động. Carrier backbone có thể hỗ trợ nhiều loại
Carrier khách hàng. Carrier backbone có thể chấp nhận các Carrier khách hàng là ISP
hoặc là nhà cung cấp dịch vụ VPN, hoặc cả hai. Nó có thể hỗ trợ Carrier khách hàng yêu
cầu bảo mật và nhiều loại băng thông.
Ưu điểm của Carrier khách hàng
MPLS/VPN CSC giúp cho Carrier khách hàng loại bỏ việc phải cấu hình, hoạt động và
duy trì mạng backbone của riêng họ. Carrier khách hàng sử dụng mạng backbone của
Carrier backbone.
Carrier khách hàng sử dụng dịch vụ VPN của Carrier backbone nhận cùng mức độ bảo
mật như các VPN lớp 2 như Frame Relay, ATM. Carrier khách hàng cũng có thể sử dụng
IPsec trong VPN của họ để bảo mật ở mức cao hơn, việc này hoàn toàn trong suốt đối với
Carrier backbone.
Carrier khách hàng có thể sử dụng bất kì mô hình địa chỉ nào và vẫn được hỗ trợ bởi
Carrier backbone. Không gian địa chỉ khách hàng và thông tin định tuyến của một Carrier
khách hàng độc lập với Carrier khách hàng khác, và độc lập với Carrier backbone.
3.3.2.d. Kết nối Carrier backbone
Xét ví dụ sau:
Hình 3.15 : Ví dụ về mô hình mang CSC
Hình vẽ 3.15 là một ví dụ về MPLS/VPN CSC, nhà cung cấp dịch vụ SP là Carrier khách
hàng của mạng MPLS backbone, nó gắn vào mạng backbone tại hai nơi: Site1 và Site2.
SP có kết nối đến Internet với site1, tại site2 có khách hàng Internet là Gameonline. Vậy
ở đây, SP cung cấp dịch vụ Internet (các loại dịch vụ ISP) trong cùng một VPN đến
khách hàng của nó. Do đó, SP mang một số lượng thông tin định tuyến khá lớn giữa các
site. SP nhận toàn bộ bảng định tuyến Internet từ upstream ISP trong site1. Nó cũng nhận
thông tin định tuyến từ mỗi khách hàng internet mà nó đã cung cấp. Tất cả thông tin định
tuyến này cần được mạng backbone phân phối giữa hai router CE1 và CE2. Vậy mạng
backbone sẽ bao gồm các route của khách hàng đầu cuối và toàn bộ route Internet. Với số
lượng thông tin định tuyến lớn như vậy nên cả hai nhà cung cấp quyết định sử dụng mô
hình CSC. Bởi vì SP có thể quảng bá route bên ngoài (external route) giữa các site của nó
bằng cách sử dụng BGP-4 và phân phối tất cả các route bên trong (internal route) đến
router PE1 bằng cách sử dụng giao thức định tuyến động hay định tuyến tĩnh.
Như vậy việc trao đổi route giữa hai mạng nhà cung cấp sẽ như sau:
Hình 3.16: Quá trình trao đổi route giữa các nhà cung cấp trong CSC
Các route được trao đổi giữa router PE và CE được đặt vào trong bảng VRF tương ứng
với VPN mà nó thuộc về. Vì tất cả các route bên ngoài được trao đổi trực tiếp giữa các
site của SP bằng cách sử dụng BGP-4, nên chỉ các route nào thuộc về bên trong mạng SP
mới được quảng bá từ router CE đến router PE. Điều này đã làm giảm đáng kể số lượng
thông tin định tuyến mà mạng backbone phải mang. Vì route bên ngoài được trao đổi
bằng cách sử dụng BGP-4, nên cần phải có một đường chuyển mạch nhãn đầu cuối đến
đầu cuối MPLS giữa router ingress và egress BGP-4 ngang cấp. Do đó, Carrier khách
hàng phải có khả năng tạo ra đường chuyển mạch nhãn LSP này, tức là router CE của
Carrier khách hàng phải có khả năng phân phối nhãn để có thể thiết lập được LSP dọc
mạng MPLS backbone.
Mỗi ASBR trong site của ISP chạy BGP-4 với tất cả các router ASBR trong các site khác
để thông tin định tuyến của khách hàng của ISP có thể được trao đổi giữa các site với
nhau. Địa chỉ BGP next-hop cho các route bên ngoài này phải được quảng bá đến mạng
MPLS/VPN. Việc này có thể thực hiện được thông qua giao thức định tuyến hoặc định
tuyến tĩnh giữa kết nối PE và CE. Tất cả các route bên trong được phân phối giữa các site
qua mạng backbone, nên địa chỉ BGP next-hop dành cho các route bên ngoài phải có mặt
trong bảng VRF tương ứng dành cho ISP và sẽ được sử dụng để xác nhận tính hợp lệ của
các route bên ngoài khi được học thông qua phiên BGP giữa các site. Địa chỉ next-hop
này (cũng như các route khác trong bảng VRF) được quảng bá thông qua giao thức MP-
BGP và được nhập vào bảng VRF tương ứng trên router PE nhận. Tuy nhiên, mặc dù
router PE ở ngõ vào đã học được thông tin về next-hop cho các route bên ngoài, nhưng
các gói tin sử dụng thông tin định tuyến trên vẫn bị router PE đánh rớt vì router PE không
có một kiến thức nào về thông tin định tuyến cho các route bên ngoài trong bảng VRF (vì
nguyên tắc cơ bản của Carrier's Carrier là giảm thiểu số lượng thông định tuyến không
cần thiết trên các router chạy trong mạng backbone). Để giải quyết vấn đề này, router
CSC PE cần phải có một cơ chế khác để vận chuyển gói tin từ router CSC dựa trên yếu tố
khác thay vì sử dụng địa chỉ IP. Yếu tố đó chính là sử dụng nhãn, nhãn sẽ được đăng kí
cho các gói tin đến từ CSC router CE trước khi quảng bá vào router PE. Do đó, đòi hỏi
trên router CSC CE phải có khả năng phân phối nhãn MPLS. Như ta đã biết, khi tính
năng MPLS được bật lên trên interface VRF, router PE sẽ tự động đăng kí nhãn cho route
nào mà nó học được từ dọc mạng MPLS/VPN. Đó là đối với các router chạy trong mạng
MPLS, trong trường hợp CSC, mỗi site ISP không chạy MPLS nên không có giá trị nhãn
đặc biệt nào được quảng bá từ router CE đến router PE. Thay vào đó, router CE sẽ đăng
kí nhãn implicit-null cho mỗi route internal, và sẽ được quảng bá đến router PE. Các
route external được quảng bá thông qua phiên iBGP giữa các site ISP cũng không có
nhãn tương ứng vì không có giao thức phân phối nhãn nào chạy giữa các ASBR.
Xét hiểu rõ hơn ta hãy xét ví dụ sau đây:
Hình 3.17: Quá trình trao đổi route giữa các nhà cung cấp trong CSC (tiếp theo)
Trong hình vẽ trên cho ta biết router ASBR1 của ISP học prefix 146.22.15.0/24 từ một
trong các khách hàng của họ. Route này được quảng bá đến láng giềng iBGP trong site
ISP ASBR1, và đến các site ISP khác với địa chỉ next-hop BGP là của ASBR1. Router
CE1 ở ISP quảng bá địa chỉ netxt hop BGP cho route, trong trường hợp này, là địa chỉ
của router ASBR1 dọc liên kết đến router PE1 của mạng MPLS sử dụng giao thức định
tuyến được cấu hình trên liên kết đó. Địa chỉ này được router CE1 gắn nhãn implicit-null
trước khi chuyển đến router PE1. Router PE1 trên MPLS sẽ nhập prefix ASBR1 vào
bảng VRF ISP, sau đó router này sẽ đăng kí nhãn cho route và quảng bá nó đến tất cả các
router PE sử dụng MP-iBGP. Router PE2 nhận cập nhật MP-iBGP cho prefix ASBR1 và
nhập route đó vào bảng VRF ISP. Vì router PE2 được cấu hình để đăng kí nhãn cho gói
tin nên nó sẽ đăng kí nhãn mới cho route này. Sau đó router PE quảng bá route này dọc
liên kết PE và CE sử dụng cơ chế giao thức định tuyến chuẩn, có thể là IGP hoặc là BGP.
Router PE cũng quảng bá ánh xạ nhãn sử dụng LDP để đăng kí nhãn thích hợp cho route.
Khi router CE2 nhận cập nhật cho prefix ASBR1, nó quảng bá route đó đến router
ASBR2.
Hình 3.18 cho thấy đường đi của gói tin khi ASBR2 nhận gói tin có đích là
146.22.15.0/24:
Hình 3.18: Quá trình trao đổi route giữa các nhà cung cấp trong CSC (tiếp theo)
ASBR2 nhận gói tin, nó kiểm tra prefix 146.22.15.0/24 trong bảng chuyển tiếp của nó và
tìm route BGP với next-hop chỉ đến router ASBR1. Khi router CE2 nhận gói tin, nó cũng
tìm kiếm địa chỉ đích của mạng 146.22.15.0/24 trong bảng chuyển tiếp của nó và tìm
được next-hop cho route đó là thông qua router PE2 trong mạng MPLS. Và nhãn 33 là
nhãn được đăng kí đến địa chỉ next-hop này. Do đó gói tin được gửi đến router PE2 với
nhãn 33. Khi router PE2 trong mạng MPLS nhận được gói tin có mang nhãn 33, nó biết
rằng nhãn tương ứng với route VPN ASBR1 mà nó học được từ phiên MP-iBGP. Có
nghĩa là nó sẽ chuyển nhãn mang giá trị 33 vào chồng nhãn, chồng nhãn này sẽ được sử
dụng để tìm router PE gửi (trong ví dụ này là router PE1). Router PE2 sẽ chuyển mạch
nhãn gói tin đến router PE1 sử dụng cơ chế chuyển tiếp như MPLS/VPN thông thường.
Router PE1 sử dụng nhãn VPN để chuyển gói tin đến router CE1 ở ISP. Gói tin lúc này là
không có nhãn, router CE sẽ định tuyến gói tin sử dụng bảng chuyển tiếp của nó.
Đó là cơ chế hoạt động của Carrier’s Carrier.
3.3.3. Vấn đề bảo mật trong mạng MPLS/VPN
Bảo mật luôn luôn là một vấn đề quan trọng trong bất kì mạng riêng ảo nào. Trong lĩnh
vực bảo mật, mục tiêu của mô hình mạng MPLS/VPN lớp 3 là đạt được sự bảo mật có
thể so sánh với sự bảo mật trong mô hình mạng overlay VPN như ATM hay Frame Relay
mang lại.
Bảo mật cho VPN phải đảm bảo được sự cách ly về thông tin định tuyến, về không gian
địa chỉ của mỗi VPN. Nghĩa là việc cấp địa chỉ của mỗi VPN là hoàn toàn độc lập nhau.
Thông tin định tuyến từ VPN này không được chảy vào VPN khác và ngược lại. Thứ hai
bảo mật phải đảm bảo được cấu trúc mạng lõi hoàn toàn trong suốt với khách hàng sử
dụng dịch vụ. Thứ ba, bảo mật phải đảm bảo được việc tránh làm giả nhãn như việc làm
giả địa chỉ IP và chống các cuộc tấn công từ chối dịch vụ (Denial-of-service) cũng như
tấn công truy cập dịch vụ (instrusion).
Vậy mạng MPLS/VPN làm thế nào để đảm bảo được điều này?
Trước hết ta biết rằng trong mạng MPLS/VPN cho phép sử dụng cùng không gian giữa
các VPN nhưng vẫn tạo được tính duy nhất là nhờ vào giá trị 64 bit Route Distinguisher.
Do đó, khách hàng sử dụng dịch vụ MPLS/VPN không cần phải thay đổi địa chỉ hiện tại
của mình.
Mỗi router PE duy trì một bảng VRF riêng cho mỗi VPN, và VRF này chỉ phổ biến các
route thuộc về VPN đó. Do đó đảm bảo được sự cách ly thông tin định tuyến giữa các
VPN với nhau.
MPLS là kỹ thuật chuyển mạch nhãn, vì thế sự chuyển gói dữ liệu đi trong mạng không
dựa vào địa chỉ IP trên mào đầu gói tin. Hơn nữa, tất cả các LSP đều kết thúc tại các
router biên PE chứ không phải kết thúc tại các router P trong mạng. Do đó mạng lõi bên
trong hoàn toàn trong suốt đối với khách hàng.
Trong mạng MPLS/VPN, thật khó có thể tấn công trực tiếp vào VPN. Chỉ có thể tấn công
vào mạng lõi MPLS, rồi từ đó tấn công vào VPN. Mạng lõi có thể tấn công theo hai cách:
Bằng cách tấn công trực tiếp vào router PE.
Bằng cách tấn công vào các cơ chế báo hiệu MPLS.
Để muốn tấn công vào mạng, trước hết cần phải biết địa chỉ IP của nó. Nhưng mạng lõi
MPLS hoàn toàn trong suốt so với bên ngoài, do đó kẻ tấn công không thể biết được địa
chỉ IP của bất kì router nào trong mạng lõi. Họ có thể đoán địa chỉ và gửi gói tin đến
những địa chỉ này. Tuy nhiên, trong mạng MPLS, mỗi gói tin đi vào đều được xem như
là thuộc về không gian địa chỉ nào đó của khách hàng. Do đó, thật khó có thể tìm được
các router bên trong ngay cả khi đoán được địa chỉ. Có thể việc trao đổi thông tin định
tuyến giữa router PE và CE sẽ là điểm yếu trong mạng MPLS/VPN nhưng trên router PE
có thể dùng ACL, các phương pháp xác thực của giao thức định tuyến dùng trên kết nối
đó sẽ đảm bảo được vấn đề bảo mật.
Việc làm giả nhãn cũng khó có thể xảy ra tại vì router PE chỉ chấp nhận những gói tin từ
router CE gửi đến là gói tin không có nhãn, nếu gói tin là có nhãn thì nhãn đó là do PE
kiểm soát và quản lý.
Từ những vấn đề nêu trên, ta thấy việc bảo mật trong mạng MPLS/VPN hoàn toàn có thể
so sánh ngang bằng với việc bảo mật trong mạng ATM hay FrameRelay.
+ Nguyễn Thị Băng Tâm
3.2.3. Hoạt động của MPLS VPN
Như đã nói ở trên, MPLS VPN là sự kết hợp các ưu điểm của cả hai mô hình overlay
VPN và peer-to-peer VPN. Do đó việc lựa chọn các yếu tố cần thiết để cấu thành mạng
MPLS cũng trở nên quan trong, các yếu tố đó bao gồm giao thức định tuyến, cách truyền
nhãn qua mạng MPLS trong khi vẫn đảm bảo được tính chất của VPN, v.v…Ta hãy đi
phân tích một số đặc điểm để cấu thành mạng MPLS VPN.
3.2.3.a. Kiến trúc của router biên PE trong mạng MPLS VPN
VPNv4 route là NLRI 96 bit (RD + 32 bit Ipv4 NLRI)
Một bảng VRF sẽ chỉ có một route VPNv4 cho tất cả các địa chỉ prefix 32 bit thuộc về
VRF đó. Khi địa chỉ đích của gói tin thỏa mãn (matched) được route VPNv4 thì có nghĩa
là phần prefix 32 bit trong route VPNv4 thỏa mãn địa chỉ đích đó.
Format của Route Distinguisher:
Route Distinguisher được tạo ra để cho mỗi nhà cung cấp dịch vụ có thể quản trị ‘khoảng
giá trị - numbering space’ của họ, họ có thể thực hiện việc đăng kí RD mà không mâu
thuẫn với việc đăng kí RD của nhà cung cấp dịch vụ khác (nghĩa là RD của mỗi nhà cung
cấp dịch vụ không trùng nhau).
Format của RD bao gồm các trường: trường Type, trường Administrator , và trường
Assigned number.
• Trường Type: 2 byte, xác định chiều dài của hai trường còn lại.
• Trường Administrator: dùng để nhận diện quyền của số được đăng kí (assigned number
authority).
• Trường Assigned number: bao gồm số được đăng kí cho mục đích cụ thể nào đó của
nhà cung cấp dịch vụ.
Tùy vào trường Type mà RD có format khác nhau, cấu trúc của giá trị này có thể là
ASN : nn hoặc IP-address : nn. Với ASN là Autonomous System Number được đăng kí
bởi Internet Assigned Number Authority (IANA), và nn là số được đăng kí bởi nhà cung
cấp dịch vụ đến IANA. Số nn là giá trị mang tính duy nhất trên mỗi VRF, mặc dù trong
môt vài trường hợp nó có thể duy nhất trên mỗi khách hàng VPN. Vậy VPN có thể có RD
với trường Administrator là ASN hay IP-address. Nhưng cách sử dụng ASN được khuyến
khích hơn vì nó được đăng kí bởi IANA, tạo ra được tính duy nhất giữa các nhà cung cấp
dịch vụ. Sử dụng format IP-address : nn chỉ khi mạng MPLS/VPN sử dụng private AS
nhưng địa chỉ VPN-Ipv4 được truyền đi không phải bị giới hạn ở private AS (ví dụ khi
trao đổi VPN route giữa các nhà cung cấp dịch vụ khác nhau).
Format của RD như sau:
Hình 3.4: Khối kiến trúc của router PE
Router PE trong MPLS VPN rất giống như kiến trúc của POP trong router PE dành trước
trong mô hình VPN ngang cấp, chỉ có sự khác biệt là toàn bộ mọi thứ được tập trung vào
một thiết bị vật lý. Mỗi khách hàng đăng kí một bảng định tuyến độc lập nhau (bảng định
tuyến ảo) tương ứng như một router ảo trong mô hình VPN ngang cấp. Định tuyến dọc
mạng của nhà cung cấp được thực hiện bởi tiến trình định tuyến khác sử dụng bảng định
tuyến toàn cục (global), tương đương như intra-POP-P-router trong mô hình VPN ngang
cấp.
3.2.3.b. Truyền thông tin định tuyến dọc mạng nhà cung cấp
Khi bảng định tuyến ảo đảm bảo sự cách ly giữa các khách hàng, dữ liệu từ các bảng định
tuyến này vẫn cần được trao đổi giữa các Router PE để dữ liệu có thể truyền giữa các site
gắn vào các Router PE khác nhau. Do đó chúng ta cần phải có một giao thức định tuyến
sẽ vận chuyển tất cả các route của khách hàng dọc mạng nhà cung cấp trong khi vẫn duy
trì được không gian địa chỉ độc lập giữa khách hàng với nhau.
Một giải pháp được đưa ra là chạy giao thức định tuyến riêng cho mỗi khách hàng. Các
router PE có thể được kết nối thông qua các đường hầm điểm – điểm (và giao thức định
tuyến cho mỗi khách hàng sẽ chạy giữa các router PE) hoặc là router P có thể tham gia
vào quá trình định tuyến của khách hàng. Giải pháp này, mặc dù thực hiện đơn giản
nhưng lại không thích hợp trong môi trường khách hàng, vì nó không có khả năng mở
rộng và phải đối mặt với nhiều vấn đề khi có yêu cầu hỗ trợ VPN trùng lắp (overlapping
VPN):
o Router PE phải chạy một số lượng lớn các giao thức định tuyến .
o Router P phải mang tất cả các route của khách hàng.
o
Sau đó, một giải pháp tốt hơn được đưa ra là chỉ triển khai một giao thức định tuyến có
thể trao đổi tất cả các route của khách hàng dọc mạng nhà cung cấp. Rõ ràng giải pháp
này tốt hơn giải pháp trước nhưng router P vẫn phải tham gia vào định tuyến khách hàng,
do đó nó vẫn không giải quyết được vấn đề mở rộng.
Để hiểu rõ hơn vấn đề mở rộng khi triển khai một giao thức định tuyến trên 1 VPN, ta lấy
ví dụ sau đây: Giả sử mạng backbone của nhà cung cấp dịch vụ sẽ phải cung cấp hơn 100
khách hàng VPN kết nối đến router hai router biên PE sử dụng OSPF là giao thức định
tuyến. Router PE trong mạng backbone sẽ chạy hơn 100 bản copy tiến trình định tuyến
OSPF độc lập nhau với mỗi bản copy gửi các gói tin hello và gói tin refreshment tuần
hoàn qua mạng. Vì có thể chạy hơn một bản copy OSPF qua cùng một link, ta có thể cấu
hình các subinterface trên một VPN trên link giữa PE và CE, kết quả là tạo ra mô hình
mạng phức tạp. Và phải chạy 100 thuật toán SPF cũng như duy trì database topology
riêng rẽ trong các router P.
Giải pháp tối ưu là truyền thông tin định tuyến khách hàng sẽ do một giao thức định
tuyến giữa các router PE điều hành, các router P không tham gia vào việc định tuyến này.
Giải pháp này hiệu quả vì nó có khả năng mở rộng:
• Số lượng giao thức định tuyến giữa các router PE không tăng khi tăng số lượng khách
hàng.
• Router P không mang các route của khách hàng.
Do đó yêu cầu bây giờ là việc lựa chọn giao thức định tuyến nào sẽ chạy giữa các router
PE. Khi tổng số route của khách hàng rất lớn, nên chỉ có một giao thức định tuyến mới có
khả năng đảm bảo được vấn đề này là BGP. BGP được sử dụng trong mạng MPLS/VPN
trên các router PE để vẫn chuyển các route của khách hàng. Giao thức BGP dùng trong
mạng MPLS/VPN được gọi là Multiprotocol BGP (MP-BGP).
Ta có thể tóm tắt các ưu điểm của BGP để chọn nó là giao thức dùng cho việc vận
chuyển các VPN route là:
• VPN route trong mạng có thể tăng lên đáng kể với số lượng lớn. BGP là giao thức định
tuyến có thể hỗ trợ số lượng lớn các route như vậy.
• BGP, EIGRP, ISIS cũng là các giao thức định tuyến mang thông tin định tuyến cho
nhiều lớp địa chỉ khác nhau. Nhưng ISIS và EIGRP không có khả năng mở rộng, không
mang được một số lượng lớn các route như BGP. BGP cũng được thiết kế để trao đổi
thông tin định tuyến giữa các router không kết nối trực tiếp. Đặc điểm này hỗ trợ việc giữ
thông tin định tuyến không cho các router P biết.
3.2.3.c. Bảng định tuyến và chuyển tiếp VPN ( VPN routing forwarding - VRF)
Sự kết hợp giữa bảng định tuyến VPN và bảng chuyển tiếp VPN tạo thành bảng định
tuyến chuyển tiếp VPN (VRF).
Mỗi VPN đều có bảng định tuyến và chuyển tiếp riêng của nó trong router PE, mỗi router
PE duy trì một hoặc nhiều bảng VRF. Mỗi site mà có router PE gắn vào đó sẽ liên kết với
một trong các bảng này. Địa chỉ IP đích của gói tin nào đó chỉ được kiểm tra trong bảng
VRF mà nó thuộc về nếu gói tin đến trực tiếp từ site tương ứng với bảng VRF đó. Một
VRF đơn giản chỉ là một tập hợp các route thích hợp cho một site nào đó (hoặc một tập
hợp gồm nhiều site) kết nối đến router PE. Các route này có thể thuộc về hơn một VPN.
Vậy các bảng VRF được phổ biến như thế nào ?
Ví dụ, giả sử có 3 router PE là PE1, PE2, PE3, và 3 router CE là CE1, CE2, CE3. Giả sử
PE1 học từ CE1 các route hợp lệ ở site CE1. PE2 và PE3 thứ tự gắn vào site CE2 và CE3.
Cả ba site này đều thuộc cùng một VPN V, thì PE1 sẽ sử dụng BGP để phân phối cho
PE2 và PE3 các route mà nó học được từ site CE1. PE2 và PE3 sử dụng các route này để
đưa vào bảng chuyển tiếp dành cho site CE2 và CE3. Các route từ những site không
thuộc vào VPN V sẽ không xuất hiện trong bảng chuyển tiếp này, có nghĩa là các gói tin
từ CE3 và CE2 không thể được gửi đến những site nào không thuộc VPN V.
Nếu một site thuộc vào nhiều VPN, bảng chuyển tiếp tương ứng với site đó có thể có
nhiều route liên quan đến tất cả VPN mà nó thuộc về. PE chỉ duy trì một bảng VRF trên
một site. Các site khác nhau có thể chia sẽ cùng bảng VRF nếu nó sử dụng tập hợp các
route một cách chính xác giống như các route trong bảng VRF đó. Nếu tất cả các site có
thông tin định tuyến giống nhau (điều này thường là các site đó cùng thuộc về tập hợp
VPN) sẽ được phép liên lạc trực tiếp với nhau và nếu kết nối đến cùng một router PE sẽ
được đặt vào cùng một bảng VRF chung.
Giả sử router PE nhận được gói tin từ một site gắn trực tiếp vào nó, gọi site này là siteA
nhưng địa chỉ đích của gói tin không có trong tất cả các entry có trong bảng chuyển tiếp
tương ứng với siteA. Nếu nhà cung cấp dịch vụ không cung cấp truy cập Internet cho
siteA thì gói tin sẽ bị loại bỏ vì không thể phân phối được đến đích, nhưng nếu nhà cung
cấp dịch vụ có cung cấp truy cập Internet cho siteA thì lúc này địa chỉ đích của gói tin sẽ
được tìm kiếm trong bảng định tuyến global. Do đó bất kì router PE nào trong mạng
MPLS/VPN có nhiều bảng định tuyến trên mỗi VRF và một bảng định tuyến global, bảng
định tuyến này được sử dụng để tìm các router khác trong mạng nhà cung cấp dịch vụ,
cũng như tìm các đích thuộc về mạng bên ngoài (ví dụ như Internet).
Tóm lại, VRF là một trường hợp (instance) định tuyến và chuyển tiếp có thể được sử
dụng cho một site VPN hoặc cho nhiều site kết nối đến cùng một router PE miễn là các
site này chia sẽ chính xác các yêu cầu kết nối giống nhau. Do đó cấu trúc của bảng VRF
có thể bao gồm :
• Bảng định tuyến IP.
• Bảng chuyển tiếp.
• Tập hợp các quy tắc và các tham số giao thức định tuyến (gọi là routing protocol
context).
• Danh sách các interface sử dụng trong VRF.
3.2.3.d. Phân phối route VPN thông qua BGP
Với việc triển khai một giao thức định tuyến là BGP để trao đổi tất cả các route của
khách hàng giữa các router PE, một vấn đề được đặt ra là: làm thế nào mà BGP có thể
truyền nhiều prefix xác định thuộc về các khách hàng khác nhau giữa các router PE?
Như ta đã biết BGP, trong format chuẩn của nó, chỉ có thể thực hiện được đối với các
route IPv4. Trong MPLS/VPN, vì mỗi VPN phải có khả năng sử dụng (mặc dù điều này
không cần thiết) các IP prefix giống nhau như các VPN khác (ngay cả khi chúng không
liên lạc với nhau). BPG sử dụng địa chỉ IPv4 chọn một đường đi giữa tất cả các đường có
thể đi đến đích (gồm có network và mask). Do đó, MP-BGP không thể làm việc đúng nếu
khách hàng sử dụng cùng không gian địa chỉ.
Chỉ có một giải pháp để giải quyết vấn đề này là mở rộng ip prefix khách hàng với một
prefix duy nhất sẽ làm cho địa chỉ của khách hàng trở nên duy nhất ngay cả khi có sự
trùng lắp địa chỉ. Hơn nữa ta phải đảm bảo rằng chính sách được sử dụng để quyết định
route nào trong số các route được BGP sử dụng chỉ có thể có ở trong bảng VRF mà nó
phải thuộc về.
Việc truyền route của khách hàng dọc mạng MPLS VPN sẽ được thực hiện như sau:
• Router CE gửi cập nhật định tuyến Ipv4 đến Router PE.
• Router PE sau đó thêm vào Route Distinguisher 64 bit vào cập nhật định tuyến Ipv4 mà
nó đã nhận đó, kết quả là tạo ra địa chỉ VPNv4 96 bit duy nhất.
• Địa chỉ VPNv4 này được truyền đi thông qua phiên MP-IBGP đến các Router PE khác.
• Router PE nhận sẽ loại bỏ Route Distinguisher từ địa chỉ VPNv4 tạo thành địa chỉ Ipv4
như ban đầu mà CE đầu xa đã gửi.
• Địa chỉ Ipv4 này được chuyển tiếp đến router CE khác trong bản cập nhật định tuyến
Ipv4.
3.2.3.e. Route Distinguisher (RD)
Một prefix 64 bit, được gọi là Route Distinguisher, được sử dụng trong MPLS VPN để
biến đổi địa chỉ IP 32 bit (là địa chỉ không duy nhất) thành địa chỉ 96 bit (là địa chỉ mang
tính duy nhất). Địa chỉ 96 bit này sẽ đựơc truyền giữa các router PE và được gọi là địa chỉ
VPNv4 (hay còn gọi là địa chỉ VPN_Ipv4). Route distinguisher bản thân nó không có ý
nghĩa hay giá trị gì cả, nó không có mang thông tin về nguồn gốc của route hoặc về tập
hợp các VPN mà route đó được phân phối tới. Mục đích của RD chỉ là cho phép tạo ra
tính duy nhất cho các route có địa chỉ Ipv4. RD cũng có thể được sử dụng để tạo ra nhiều
route khác nhau trong cùng một hệ thống.
Format của địa chỉ VPNv4 :
VPNv4 route là NLRI 96 bit (RD + 32 bit Ipv4 NLRI)
Một bảng VRF sẽ chỉ có một route VPNv4 cho tất cả các địa chỉ prefix 32 bit thuộc về
VRF đó. Khi địa chỉ đích của gói tin thỏa mãn (matched) được route VPNv4 thì có nghĩa
là phần prefix 32 bit trong route VPNv4 thỏa mãn địa chỉ đích đó.
Format của Route Distinguisher:
Route Distinguisher được tạo ra để cho mỗi nhà cung cấp dịch vụ có thể quản trị ‘khoảng
giá trị - numbering space’ của họ, họ có thể thực hiện việc đăng kí RD mà không mâu
thuẫn với việc đăng kí RD của nhà cung cấp dịch vụ khác (nghĩa là RD của mỗi nhà cung
cấp dịch vụ không trùng nhau).
Format của RD bao gồm các trường: trường Type, trường Administrator , và trường
Assigned number.
• Trường Type: 2 byte, xác định chiều dài của hai trường còn lại.
• Trường Administrator: dùng để nhận diện quyền của số được đăng kí (assigned number
authority).
• Trường Assigned number: bao gồm số được đăng kí cho mục đích cụ thể nào đó của
nhà cung cấp dịch vụ.
Tùy vào trường Type mà RD có format khác nhau, cấu trúc của giá trị này có thể là
ASN : nn hoặc IP-address : nn. Với ASN là Autonomous System Number được đăng kí
bởi Internet Assigned Number Authority (IANA), và nn là số được đăng kí bởi nhà cung
cấp dịch vụ đến IANA. Số nn là giá trị mang tính duy nhất trên mỗi VRF, mặc dù trong
môt vài trường hợp nó có thể duy nhất trên mỗi khách hàng VPN. Vậy VPN có thể có RD
với trường Administrator là ASN hay IP-address. Nhưng cách sử dụng ASN được khuyến
khích hơn vì nó được đăng kí bởi IANA, tạo ra được tính duy nhất giữa các nhà cung cấp
dịch vụ. Sử dụng format IP-address : nn chỉ khi mạng MPLS/VPN sử dụng private AS
nhưng địa chỉ VPN-Ipv4 được truyền đi không phải bị giới hạn ở private AS (ví dụ khi
trao đổi VPN route giữa các nhà cung cấp dịch vụ khác nhau).
Format của RD như sau:
Ví dụ về việc sử dụng RD đã giải quyết được vấn đề trùng địa chỉ Ipv4:
Hình 3.5: Sử dụng RD đã giải quyết được vấn đề trùng địa chỉ giữa các VPN
Trên hình vẽ trên, router PE3 nhận hai cập nhật về mạng 10.2.1.0/24 từ hai router PE là
PE1 và PE2, nhờ vào RD mà các cập nhật này mang tính duy nhất. Cập nhật được nhận
từ router PE1 là cho prefix 100:27:10.2.1.0/24 và cập nhật được nhận từ router PE2 là
cho prefix 100:26:10.2.1.0/24.
3.2.3.f. Route Target (RT)
Mặc dù Route Distinguisher cho phép khách hàng VPN sử dụng cùng chung một không
gian địa chỉ mạng riêng, nhưng nó không giải quyết được vấn đề khi có nhiều khách hàng
trong cùng một VPN sử dụng chung không gian địa chỉ ở site của họ cũng như khi một
site thuộc về nhiều VPN vì mỗi RD chỉ ánh xạ đến một VPN (ánh xạ một-một). Do đó
cần có một phương pháp khác dùng để nhận dạng VPN và xác định một route nào đó
thuộc về VPN nào.
Khái niệm Route Target ra đời để giải quyết vấn đề đó.
Chức năng được thực hiện bởi Route Target tương tự như chức năng được thực hiện bởi
thuộc tính BGP Community. Tuy nhiên, format của thuộc tính BGP Community không
thích hợp, vì nó chỉ có hai byte dành cho khoảng giá trị (numbering space). Do đó cần
phải mở rộng thuộc tính Community để cung cấp khoảng giá trị lớn hơn. Và thuộc tính
này được gọi là BGP Community mở rộng (extended BGP Community).
Thuộc tính BGP Community mở rộng trong các cập nhật định tuyến được sử dụng để
mang Route Target của cập nhật đó, từ đó sẽ xác định được cập nhật thuộc về VPN nào.
Do đó, Route Target chính là thuộc tính được gắn vào VPNv4 route.
Mỗi bảng VRF sẽ được kết hợp với một hay nhiều thuộc tính Route Target. Khi route
VPNv4 được Router PE tạo ra, nó sẽ được kết hợp với một hay nhiều thuộc tính Route
Target. Bất kì route nào mang Route Target T sẽ được phân phối đến mỗi router PE có
bảng chuyển tiếp VRF có Route Target T. Khi PE nhận được một route như vậy nó được
cập nhật vào bảng VRF mà Route Target đó đã nhận diện (vì mỗi VPN chỉ có một bảng
VRF).
MPLS/VPN Route Target được gắn đến route của khách hàng tại thời điểm route đó được
router PE chuyển đổi từ route IPv4 thành route VPNv4 được gọi là RT xuất (export RT).
RT xuất được cấu hình riêng biệt cho mỗi bảng VRF trong router PE và nó sẽ nhận diện
được VPN của site có bảng VRF đó.
Khi route VPNv4 được truyền đến router PE khác, các router đó cần lựa chọn route để
nhập vào bảng VRF. Sự lựa chọn này dựa vào RT nhập (import RT). Mỗi bảng định
tuyến ảo trong router PE có thể có một số RT nhập được cấu hình để nhận diện route đến
là thuộc VPN nào, sau đó sẽ nhập route đó vào bảng định tuyến ảo tương ứng.
Vậy làm cách nào mà router PE có thể xác định thuộc tính Route Target nào kết hợp vào
với route được cho? Có nhiều giải pháp đưa ra để thực hiện điều này. PE có thể được cấu
hình để liên kết tất cả các route đến một site nào đó với một giá trị Route Target. Hoặc
PE có thể được cấu hình để liên kết một số route nào đó đến site ta quan tâm với một giá
trị Route Target. Hoặc router CE, khi nó phân phối các route này đến router PE (sẽ được
phân tích chi tiết ở sau), có thể chỉ ra một hoặc nhiều Route Target cho route đó.
Ví dụ:
Hình 3.6: Sử dụng RT khi một site tham gia vào nhiều hơn một VPN
Router PE1 trong mạng MPLS xuất các route cho VPN Blue với Route Target là 100 : 26
và cho VPN Red với Route Target là 100 : 27. VRF Green trên router PE3 trong mạng
MPLS sẽ nhập các route với Route Target là 100 : 27, có nghĩa là nó chỉ nhập các route
cho site RCE1 của Red. Còn bảng VRF Blue trên router PE2 chỉ nhập các route với
Route Target là 100 : 26 và 100 : 27, tức là nó nhập các route cho site BCE1 và cho site
RCE1.
Trong ví dụ 3.6 cũng cho thấy một site trong một VPN có thể giữ nhiều route, các route
này có thể không có trong site khác cũng thuộc về chung một VPN, bảng VRF ở mỗi site
là khác nhau cho dù chúng có cùng thuộc một VPN đi chăng nữa. Router PE2 nhập các
route với Route Target là 100 : 26 và 100 : 27, nghĩa là site Blue BCE2 có các route
thuộc về site RCE1 và site BCE1. Nhưng trên router PE1 sẽ không nhận được route nào
từ 2 site nói trên vì nó không được cấu hình để nhập các route. Nó chỉ có các route thuộc
về VPN mà nó đang tham gia vào vì router PE2 không quảng bá lại các route có trong
bảng VRF của nó theo quy tắc của BGP.
3.2.3.g. Route origin
Route Target xác định được VRF nào, và do đó xác định được VPN site nào, sẽ nhận
được route Mặc dù Route Target cung cấp cơ chế để nhận diện VRF nhưng nó không
cung cấp tiện ích có thể ngăn được loop định tuyến. Loop này có thể xảy ra nếu route
được học từ một site và lại quảng bá ngược trở lại site đó. Để ngăn chặn điều này, một
khái niệm khác được giới thiệu trong MPLS/VPN đó là Route Origin (RO), RO nhận
diện route xuất phát từ site nào, và từ đó site đó không nên nhận route từ bất kì router PE.
Nhưng nếu mạng backbone MPLS/VPN được thiết kế theo kiểu partitioned site
(multihomed) thì không cần phải sử dụng Route Origin, vì trong trường hợp này, các
route được học từ một phần của site sẽ được quảng bá đến phần khác cũng thuộc về site
đó nhưng trên router PE ở vị trí khác.
Route Origin là một thuộc tính thuộc về thuộc tính Community mở rộng giống như Route
Target. Nó được sử dụng để ngăn chặn loop khi thuộc tính AS_Path không thể sử dụng.
3.2.3.h. Giao thức MP-BGP (Multiprotocol BGP)
• Thuộc tính Community mở rộng (Extended Community)
Ta đã biết thuộc tính BGP Community mở rộng được sử dụng để làm gì trong mạng
MPLS/VPN. Bây giờ ta đi tìm hiểu cấu trúc của nó.
Thuộc tính community mở rộng là một community được định nghĩa mang code 16 và
được mã hóa thành giá trị 8 byte. Có format giống như Route Distinguisher. Hai octet đầu
tiên định nghĩa loại thuộc tính, 6 octet tiếp theo là giá trị của thuộc tính.
Type mang giá trị từ 0 đến 0x7FFF được IANA đăng kí.
Type mang giá trị từ 0x8000 đến 0xFFFF là dành cho vendor.
Route Target community mở rộng có type code là 0x0002 và 0x0102, Route Origin
community mở rộng có type code là 0x0001 và 0x0101.
Cấu trúc của trường giá trị như thế nào là phụ thuộc vào giá trị ở trường type.
Nếu trường Type mang giá trị là 0x00 thì nó có cấu trúc sau: ASN : nn
Nếu trường Type mang giá trị là 0x01 thì nó có cấu trúc là: Ip-add: nn
Multiprotocol BGP (MP-BGP)
MP- BGP là giao thức mở rộng của BGP. Nó được sử dụng để quảng bá các route VPN
khách hàng giữa các router PE, các route được PE học được từ router CE kết nối trực tiếp
vào nó.
MP-BGP chỉ yêu cầu trong mạng backbone của nhà cung cấp dịch vụ. Do đó, tất cả các
phiên MP-BGP đều là internal, vì phiên được thiết lập giữa hai router thuộc về cùng một
AS. Do đó ta có thể gọi giao thức này là MP-iBGP.
MP-BGP được yêu cầu trong kiến trúc MPLS/VPN vì cập nhật BGP cần mang nhiều
thông tin hơn bên cạnh địa chỉ Ipv4 như BGP-4. Và BGP mở rộng cung cấp nhiều khả
năng (capability) thêm vào cần thiết để cho phép BGP mang nhiều thông tin hơn. Khi
phiên BGP được thiết lập giữa hai router BGP, việc trao đổi bản tin Open khởi tạo các
tham số BGP, các tham số đó như là giá trị AS (AS-number) được sử dụng bởi láng
giềng. Bản tin này cũng có thêm nhiều tham số lựa chọn (xem format của bản tin Open
trong phần Bản tin BGP), một trong các tham số lựa chọn đó là Capabilities. Một trong
các Capabilities đó là multiprotocol extensions. Các multiprotocol extensions này cung
cấp cho BGP khả năng mang thêm nhiều thông tin khác ngoài địa chỉ Ipv4 trong các cập
nhật định tuyến.
Multiprotocol extensions sử dụng hai thuộc tính mới là Multiprotocol Reachable NLRI
(MP-REACH_NLRI) và Multiprotocol Unreachable NLRI (MP_UNREACH_NLRI).
MP_REACH_NLRI được sử dụng để mang thông tin về các đích hợp lệ (reachable) với
thông tin về next-hop sử dụng để chuyển tiếp gói tin đến các đích đó.
MP_UNREACH_NLRI được sử dụng để mang thông tin về các đích không hợp lệ
(unreachable).
Cả hai thuộc tính nói trên là đều là thuộc tính optional non-transitive, có nghĩa là nếu
router BGP nào không hỗ trợ multiprotocol capabilities sẽ bỏ qua thông tin được mang
trong các thuộc tính này, và sẽ không chuyển nó đến router BGP khác.
• MP_REACH_NLRI (type code 14):
Thuộc tính MP_REACH_NLRI được sử dụng cho các mục đích sau:
o Để quảng bá route khả thi đến router ngang cấp.
o o Để cho phérouter P quảng bá địa chỉ NLRI như là next-hop.
• Thông tin có trong MP_REACH_NLRI bao gồm:
o o Thông tin về address-family
o o Thông tin next-hop
o o NLRI
• Format bao gồm các trường sau (chỉ nêu ra những trường quan trọng trong
MPLS/VPN):
o o Address Family Identifier (AFI): 2 octet, dùng để nhận diện giao thức lớp mạng được
mang trong cập nhật định tuyến.
o o Subsequent AFI: 1 octet, trường này cung cấp thông tin thêm vào cho NLRI được
mang trong attribute, trong MPLS VPN thì thông tin thêm đó là nhãn.
• Trong trường hợp MPLS/VPN sẽ thiết lập AFI = 1 và sub-AFI = 128.
o o Length of Next-hop Network Address: 1 octet, cho biết chiều dài của địa chỉ mạng
của next-hop.
o o Network Address of Next-hop: trường này có chiều dài thay đổi, bao gồm địa chỉ của
next-horouter P trên đường đi đến đích. Trong trường hợp MPLS/VPN thì đây là router
PE quảng bá route.
o o NLRI: có chiều dài thay đổi cho biết các NLRI cho các route khả thi được quảng bá
trong attribute này. NLRI được định nghĩa trong BGP bao gồm prefix và chiều dài prefix
(prefix length). Prefix đại diện cho địa chỉ đích hợp lệ, đang tồn tại và prefix length đại
diện cho số bit được thiết lập trong subnet mask. Ví dụ, mạng 10.1.1.0 255.255.255.0 có
prefix là 10.1.1.0 và prefix length là 24. Có 24 bit được thiết lập trong subnet mask, do đó
nó sẽ được quảng bá bởi BGP là 10.1.1.0/24. NLRI được biểu diễn dưới dạng <length,
prefix>.
o
• Tuy nhiên, trong MP-BGP thì NLRI được sử dụng để mang thông tin ánh xạ nhãn.
Nhãn được mã hóa trong trường NLRI của attribute Multiprotocol Extensions, và trường
SAFI được sử dụng để thông báo cho biết NLRI có mang nhãn.
NLRI được mã hóa thành một hoặc 3 triple với format sau <nhãn, chiều dài, prefix>:
o Chiều dài : tổng chiều dài của nhãn cộng với prefix (có cả RD).
o Nhãn: 24 bit, mang một hoặc nhiều nhãn trong stack, mặc dù cập nhật BGP chỉ có một
nhãn.
o Prefix: gồm có Route Distinguisher và Ipv4 prefix.
MP_UNREACH_NLRI (type code 15):
• Đây là thuộc tính có thể được sử dụng cho mục đích thu hồi các route không còn khả
thi. Thuộc tính này bao gồm một hay nhiều bộ ba <Address Family Infomation,
Unfeasible Routes Length, Withdrawn Routes>, trong đó mỗi bộ ba được mã hóa theo
những trường sau:
o Trường Address Family Identifier (AFI): trường này mang bộ nhận diện của giao thức
lớp mạng liên kết với NLRI theo sau đó.
o Trường Subsequent Address Family Identifier: trường này cung cấp thông tin phụ thêm
về loại NLRI được mang trong attribute.
o Withdrawn Route: trường này có chiều dài thay đổi, nó được sử dụng để cho biết danh
sách NLRI cho các route bị thu hồi.
• Bản tin cập nhật có MP_UNREACH_NLRI không cần phải mang các thuộc tính khác.
BGP speaker có thể thu hồi các route đã quảng bá trước đó (cũng như ánh xạ route này
với nhãn) bằng cách hoặc là (a) quảng bá một route mới (và nhãn) với cùng NLRI như
route đã được quảng bá trước đó, hoặc (b) ghi NLRI của route đã quảng bá trước đó vào
trường Withdrawn Routes của bản tin Update. Thông tin nhãn được mang trong trường
Withdrawn Routes (thông tin này là một phần của NLRI) sẽ được thiết lập thành
0x800000 (dĩ nhiên lúc này phiên BGP cũng thu hồi tất cả các route đã quảng bá trước
đó).
Router BGP có thể duy trì (và quảng bá đến BGP ngang cấp với nó) nhiều hơn một route
đến cùng một đích, miễn là route đó đều có nhãn của nó. Việc mã hóa đã nêu ở trên cho
phép một bản tin Update mang nhiều route, mỗi route có nhãn của riêng nó. Trong trường
hợp này, nếu một route bị thu hồi, và nhãn được chỉ rõ tại thời điểm bị thu hồi, chỉ có
route tương ứng với nhãn tại thời điểm đó bị thu hồi. Nếu route bị thu hồi, và không có
nhãn nào được chỉ rõ tại thời điểm bị thu hồi, thì chỉ có route không có nhãn tại lúc đó bị
thu hồi, lúc này nhãn của route đó bị loại bỏ.