Professional Documents
Culture Documents
Mục lục
chuyển mạch IP. MPLS hỗ trợ việc tạo ra các tuyến khác nhau giữa nguồn và đích
MPLS hỗ trợ mọi giao thức lớp hai, triển khai hiệu quả các dịch cụ IP trên một mạng
trên một đường trục Internet. Bằng việc tích hợp MPLS vào kiến trúc mạng, Các ISP
có thể giảm chi phí, tăng lợi nhuận, cung cấp nhiều hiệu quả khác nhau và đạt được
hiệu quả cạnh tranh cao.
Đặc điểm mạng MPLS:
- Không có MPLS API, cũng không có thành phần giao thức phía host.
- MPLS chỉ nằm trên các router.
- MPLS là giao thức độc lập nên có thể hoạt động cùng với giao thức khác IP
như IPX, ATM, Frame Relay,…
- MPLS giúp đơn giản hoá quá trình định tuyến và làm tăng tính linh động của
các tầng trung gian.
Phương thức hoạt động:
Thay thế cơ chế định tuyến lớp ba bằng cơ chế chuyển mạch lớp hai.
MPLS hoạt động trong lõi của mạng IP. Các Router trong lõi phải enable MPLS trên
từng giao tiếp. Nhãn được gắn thêm vào gói IP khi gói đi vào mạng MPLS. Nhãn
được tách ra khi gói ra khỏi mạng MPLS. Nhãn (Label) được chèn vào giữa header
lớp ba và header lớp hai. Sử dụng nhãn trong quá trình gửi gói sau khi đã thiết lập
đường đi. MPLS tập trung vào quá trình hoán đổi nhãn (Label Swapping). Một trong
những thế mạnh của khiến trúc MPLS là tự định nghĩa chồng nhãn (Label Stack).
Công thức để gán nhãn gói tin là:
Network Layer Packet + MPLS Label Stack
Không gian nhãn (Label Space): có hai loại. Một là, các giao tiếp dùng chung giá trị
nhãn (per-platform label space). Hai là, mỗi giao tiếp mang giá trị nhãn riêng, (Per-
interface Label Space).
Bộ định tuyến chuyển nhãn (LSR – Label Switch Router): ra quyết định chặng kế tiếp
dựa trên nội dung của nhãn, các LSP làm việc ít và hoạt động gần giống như Switch.
Con đường chuyển nhãn (LSP – Label Switch Path): xác định đường đi của gói tin
MPLS. Gồm hai loại: Hop by hop signal LSP - xác định đường đi khả thi nhất theo
kiểu best effort và Explicit route signal LSP - xác định đường đi từ nút gốc.
Một số ứng dụng của MPLS
Internet có ba nhóm ứng dụng chính: voice, data, video với các yêu cầu khác nhau.
Voice yêu cầu độ trễ thấp, cho phép thất thoát dữ liệu để tăng hiếu quả. Video cho
phép thất thoát dữ liệu ở mức chấp nhận được, mang tính thời gian thực (realtime).
Data yêu cầu độ bảo mật và chính xác cao. MPLS giúp khai thác tài nguyên mạng đạt
hiệu quả cao.
Một số ứng dụng đang được triển khai là:
MPLS VPN: Nhà cung cấp dịch cụ có thể tạo VPN lớp 3 dọc theo mạng đường trục
cho nhiều khách hàng, chỉ dùng một cơ sở hạ tầng công cộng sẵn có, không cần các
ứng dụng encrytion hoặc end-user.
MPLS Traggic Engineer: Cung cấp khả năng thiết lập một hoặc nhiều đường đi để
điều khiển lưu lượng mạng và các đặc trưng thực thi cho một loại lưu lượng.
MPLS QoS (Quality of service): Dùng QoS các nhà cung cấp dịch vụ có thể cung cấp
nhiều loại dịch vụ với sự đảm bảo tối đa về QoS cho khách hàng.
MPLS Unicast/Multicast IP routing.
…
Điểm vượt trội của MPLS so với mô hình IP over ATM
của các tế bào ATM - chiều dài thích hợp và chuyển với tốc độ cao. Trong mạng đa
Khi hợp nhất với chuyển mạch ATM, chuyển mạch nhãn tận dụng những thuận lợi
ATM, Frame, Replay và IP Internet trên một mặt phẳng đơn trong một đường đi tốc
dịch vụ chuyển mạch nhãn cho phép chuyển mạch BPX/MGX nhằm cung cấp dịch vụ
độ cao. Các mặt phẳng (Platform) công cộng hỗ trợ các dịch vụ này để tiết kiệm chi
phí và đơn giản hóa hoạt động cho nhà cung cấp đa dịch vụ. ISP sử dụng chuyển
MGX8800, Router chuyển mạch đa dịch vụ 8540 và các chuyển mạch Cisco ATM
mạch ATM trong mạng lõi, chuyển mạch nhãn giúp các các dòng Cisco, BPX8600,
giúp quản lí mạng hiệu quả hơn xếp chồng (overlay) lớp IP trên mạng ATM. Chuyển
mạch nhãn tránh những rắc rối gây ra do có nhiều router ngang hàng và hỗ trợ cấu
trúc phân cấp (hierarchical structure) trong một mạng của ISP.
Sự tích hợp:
MPLS giúp cho cơ sở hạ tầng ATM thấy được định tuyến IP và loại bỏ các yêu cầu
MPLS xác nhập tính năng của IP và ATM chứ không xếp chồng lớp IP trên ATM.
ánh xạ giữa các đặc tính IP và ATM. MPLS không cần địa chỉ ATM và kỹ thuật định
tuyến (như PNNI).
Độ tin cậy cao hơn:
Với cơ sở hạ tầng ATM, MPLS có thể kết hợp hiệu quả với nhiều giao thức định
tuyến IP over ATM thiết lập một mạng lưới (mesh) dịch vụ công cộng giữ các router
xung quanh một đám mây ATM. Tuy nhiên có nhiều vấn đề xảy ra do các PCV link
định tuyến. Một link ATM bị hỏng làm hỏng nhiều router-to-router link, gây khó khăn
giữa các router xếp chồng trên mạng ATM. Cấu trúc mạng ATM không thể thấy bộ
cho lượng cập nhật thông tin định tuyến và nhiều tiến trình xử lí kéo theo.
Trực tiếp thực thi các loại dịch vụ:
MPLS sử dụng hàng đợi và bộ đếm của ATM để cung cấp nhiều loại dịch vụ khác
nhau. Nó hỗ trợ quyền ưu tiên IP và loại dịch vụ (class of service – cos) trên chuyển
mạch ATM mà không cần chuyển đổi phức tạp sang các lớp ATM Forum Service.
Hỗ trợ hiệu quả cho Mulicast và RSVP:
Khác với MPLS, xếp lớp IP trên ATM nảy sinh nhiều bất lợi, đặc biệt trong việc hỗ
trợ các dịch vụ IP như IP muticast và RSVP( Resource Reservation Protocol - RSVP).
MPLS hỗ trợ các dịch vụ này, kế thừa thời gian và công việc theo các chuẩn và
khuyến khích tạo nên ánh xạ xấp xỉ của các đặc trưng IP&ATM
Sự đo lường và quản lí VPN:
MPLS có thể tính được các dịch vụ IP VPN và rất dễ quản lí các dịch vụ VPN quan
trọng để cung cấp các mạng IP riêng trong cơ sở hạ tầng của nó. Khi một ISP cung
cấp dịch vụ VPN hỗ trợ nhiều VPN riêng trên một cơ sở hạ tầng đơn.Với một đường
trục MPLS, thông tin VPN chỉ được xử lí tại một điểm ra vào. Các gói mang nhãn
MPLS đi qua một đường trục và đến điểm ra đúng của nó. Kết hợp MPLS với MP-
BGP (Mutiprotocol Broder Gateway Protocol) tạo ra các dịch vụ VNP dựa trên nền
MPLS (MPLS-based VNP) dễ quản lí hơn với sự điều hành chuyển tiếp để quản lí
phía VNP và các thành viên VNP, dịch vụ MPSL-based VNP còn có thể mở rộng để
hỗ trợ hàng trăm nghìn VPN.
Các dịch vụ VPN hướng dẫn cách MPLS hỗ trợ mọi thông tin định tuyến để phân cấp.
Giảm tải trên mạng lõi
Hơn nữa,có thể tách rời các định tuyến Internet khỏi lõi mạng cung cấp dịch vụ.
Giống như dữ liệu VPN, MPSL chỉ cho phép truy suất bảng định tuyến Internet tại
điểm ra vào của mạng. Với MPSL, kĩ thuật lưu lượng truyền ở biên của AS được gắn
nhãn để liên kết với điểm tương ứng. Sự tách rời của định tuyến nội khỏi định tuyến
Internet đầy đủ cũng giúp hạn chế lỗi, ổn định và tăng tính bảo mật
Khả năng điều khiển lưu lượng:
MPLS cung cấp các khả năng điều khiển lưu lượng để sửng dụng hiệu quả tài nguyên
mạng. Kỹ thuật lưu lượng giúp chuyển tải từ các phần quá tải sang các phần còn rỗi
của mạng dựa vào điểm đích, loại lưu lượng, tải, thời gian,…
Các hình thức hoạt động của MPLS
Mạng MPLS dùng các nhãn để chuyển tiếp các gói. Khi một gói đi vào mạng, Node
MPLS ở lối vào đánh dấu một gói đến lớp chuyển tiếp tương đương (FEC –
Forwarding Equivalence Class) cụ thể.
Trong mạng MPLS nhãn điều khiển mọi hoạt động chuyển tiếp. Điều này có nhiều
thuận lợi hơn sự chuyển tiếp thông thường:
- Sự chuyển tiếp MPLS có thể thực hiện bằng các bộ chuyển mạch (switch), có thể
tra cứu (lookup) thay thế nhãn mà không ảnh hưởng đến header lớp mạng. Các bộ
chuyển ATM thực hiệc các chức năng chuyển các tế bào dựa trên giá trị nhãn.
ATM-switch cần được điều khiển bởi một thành phần điều khiển MPLS dựa vào
IP (IP-base MPLS control element) như bộ điều khiển chuyển mạch nhãn (LSC -
Label Switch Controller). Đây là dạng cơ bản của sự kết hợp IP với ATM.
- Khi một gói vào mạng nó được chuyển đến lớp chuyển tiếp tương đương (FEC -
Forwarding Equivalence Class). Router có thể sử dụng thông tin gói, như cổng
vào (ingress) hay giao tiếp (interface). Các gói đi vào mạng được gán các nhãn
khác nhau. Quyết định chuyển tiếp được thực hiện dễ dàng bởi router ngõ vào.
Điều này không có trong sự chuyển tiếp thông thường, vì sự xác định lộ trình của
router khác với thông tin lộ trình trên gói.
- Mạng được quản lý lưu lượng buộc gói đi theo một con đường cụ thể, một con
đường chưa được sử dụng. Con đường đó được chọn trước hoặc ngay khi gói đi
vào mạng tốt hơn sự lựa chọn bởi các thuật toán định tuyến thông thường. Trong
MPLS, một nhãn có thể được dùng để đại diện cho tuyến, không cần kèm trong
gói. Đây là dạng cơ bản của MPLS Traffic Engineering.
- "Lớp dịch vụ (Class of service)" của gói được xác định bởi nút MPLS vào (ingress
MPLS node). Một nút MPLS vào có thể huỷ tuyến hay sửa đổi lịch trình để điều
khiển các gói khác nhau. Các trạm sau có thể định lại ràng buộc dịch vụ bằng cách
thiết lập PBH (per-hop behavior). MPLS cho phép (không yêu cầu) độ ưu tiên một
phần hoặc hoàn toàn của lớp dịch vụ từ nhãn. Trường lợp này nhãn đại diện cho
sự kết hợp của một FEC với độ ưu tiên hoặc lớp dịch vụ. Đây là dạng cơ bản của
MPLS QoS.
Nhãn (Label) trong MPLS
Kiểu khung là thuật ngữ khi chuyển tiếp một gói với nhãn gắn trước tiêu đề lớp ba.
Kiểu khung (Frame mode):
Một nhãn được mã hoá với 20bit, nghĩa là có thể có 220 giá trị khác nhau. Một gói có
nhiều nhãn, gọi là chồng nhãn (label stack). Ở mỗi chặng trong mạng chỉ có một nhãn
bên ngoài được xem xét. Hình 2 mô tả định dạng tiêu đề của MPLS
Trong đó:
để giữ các thông báo cho QoS; khi các gói MPLS xếp hàng có thể dùng các bit
- EXP=Experimental (3 bit): dành cho thực nghiệm. Cisco IOS sử dụng các bit này
ATM Cell header GFC VPI VCI PT CLP HEC Header lớp 3 Dữ liệu
Nhãn
Shim header
Trong đó:
GFC (Generic Flow Control): Điều khiển luồng chung
VPI (Virtual Path Identifier): nhận dạng đường ảo
VCI (Virtual Channel Identifier): nhận dạng kênh ảo
CLP (Cell Loss Priority): Chức năng chỉ thị ưu tiên huỷ bỏ tế bào
PT (Payload Type): Chỉ thị kiểu trường tin
điều khiển MPLS. Nút MPLS có thể thực hiện định tuyến lớp ba hoặc chuyển mạch
Một nút của MPLS có hai mặt phẳng: mặt phẳng chuyển tiếp MPLS và mặt phẳng
lớp hai. Kiến trúc cơ bản của một nút MPLS như sau:
Mặt phẳng điều khiển
nhãn này đến các nhãn được nhận từ láng giềng (MPLS neighbor) của nó. LFIB sử
dụng một tập con các nhãn chứa trong LIB để thực hiện chuyển tiếp gói.
Mặt phẳng điều khiển (Control Plane)
Mặt phẳng điều khiển MPLS chịu trách nhiệm tạo ra và lưu trữ LFIB. Tất cả các nút
MPLS phải chạy một giao thức định tuyến IP để trao đổi thông tin định tuyến đến các
nút MPLS khác trong mạng. Các nút MPLS enable ATM sẽ dùng một bộ điều khiển
nhãn (LSC – Label Switch Controller) như router 7200, 7500 hoặc dùng một mô đun
xử lý tuyến (RMP – Route Processor Module) để tham gia xử lý định tuyến IP.
Các giao thức định tuyến Link-state như OSPF và IS-IS là các giao thức được chọn vì
chúng cung cấp cho mỗi nút MPLS thông tin của toàn mạng. Trong các bộ định tuyến
thông thường, bản định tuyến IP dùng để xây dựng bộ lưu trữ chuyển mạch nhanh
(Fast switching cache) hoặc FIB (dùng bởi CEF - Cisco Express Forwarding). Tuy
nhiên với MPLS, bản định tuyến IP cung cấp thông tin của mạng đích và subnet
prefix. Các giao thức định tuyến link-state gửi thông tin định tuyến (flood) giữa một
tập các router nối trực tiếp (adjacent), thông tin liên kết nhãn chỉ được phân phối giữa
các router nối trực tiếp với nhau bằng cách dùng giao thức phân phối (LDP – Label
Distribution Protocol) hoặc TDP (Cisco ‘s proproetary Tag Distribution protocol).
Các nhãn được trao đổi giữa các nút MPLS kế cận để xây dựng nên LFIB. MPLS
dùng một mẫu chuyển tiếp dựa trên sự hoán đổi nhãn để kết nối với các mô đun điều
khiển khác nhau. Mỗi mô đun điều khiển chịu trách nhiệm đánh dấu và phân phối một
tập các nhãn cũng như lưu trữ các thông tin điều khiển có liên quan khác. Các giao
thức cổng nội (IGP – Interior Gateway Potocols) được dùng để xác nhận khả năng
đến được, sự liên kết, và ánh xạ giữa FEC và địa chỉ trạm kế (next-hop address).
Các mô đun điều khiển MPLS gồm:
Định tuyến Unicast (Unicast Routing)
Định tuyến Multicast (Multicast Routing)
Kỹ thuật lưu lượng (Traffic engineering)
Mạng riêng ảo (VPN – Virtual private Network)
Chất lượng dịch vụ (QoS – Quality of service)
Điều khiển Điều khiển định Điều khiển Điều khiển Chất lượng
định tuyến tuyến MPLS định tuyến Lưu lượng dịch vụ
MPLS IP Multicast IP MPLS/VPN (MPLS TE) (QoS)
Các thành phần mặt phẳng dữ liệu và mặt phẳng điều khiển của MPLS
Cisco Express Forwarding (CEF) là nền tảng cho MPLS và hoạt động trên các router
của Cisco. Do đó, CEF là điều kiện tiên quyết trong thực thi MPLS trên mọi thiết bị
của Cisco ngoại trừ các ATM switch chỉ hỗ trợ chức năng của mặt phẳng chuyển tiếp
dữ liệu. CEF là một cơ chế chuyển mạch thuộc sở hữu của Cisco nhằm làm tăng tính
đơn giản và khả năng chuyển tiếp gói IP. CEF tránh việc viết lại overhead của cache
trong môi trường lõi IP bằng cách sử dụng một cơ sở thông tin chuyển tiếp (FIB –
Forwarding Information Base) để quyết định chuyển mạch. Nó phản ánh toàn bộ nội
dung của bảng định tuyến IP (IP routing table), ánh xạ 1-1 giữa FIB và bảng định
đích trong bảng định tuyến với các trạm kế tiếp (next-hop adjacencies) tương ứng.
tuyến. Khi router sử dụng CEF, nó duy trì tối thiểu 1 FIB, chứa một ánh xạ các mạng
FIB ở trong mặt phẳng dữ liệu, nơi router thực hiện cơ chế chuyển tiếp và xử lý các
gói tin. Trên router còn duy trì hai cấu trúc khác là cơ sở thông tin nhãn (LIB – Label
Information Base) và cơ sở thông tin chuyển tiếp nhãn (LFIB – Label Forwarding
Information Base). Giao thức phân phối sử dụng giữa các láng giềng MPLS có nhiệm
vụ tạo ra các chỉ mục (entry) trong hai bảng này. LIB thuộc mặt phẳng điều khiển và
được giao thức phân phối nhãn sử dụng khi địa chỉ mạng đích trong bảng định tuyến
được ánh xạ với nhãn nhận được từ router xuôi dòng. LFIB thuộc mặt phẳng dữ liệu
và chứa nhãn cục bộ (local label) đến nhãn trạm kế ánh xạ với giao tiếp ngõ ra
(outgoing interface), được dùng để chuyển tiếp các gói được gán nhãn. Như vậy,
thông tin về các mạng đến được do các giao thức định tuyến cung cấp dùng để xây
dựng bảng định tuyến (RIB - Routing Information Base). RIB cung cấp thông tin cho
FIB. LIB được tạo nên dựa vào giao thức phân phối nhãn và từ LIB kết hợp với FIB
tạo ra LFIB.
toán chuyển tiếp thông thường sử dụng nhiều thuật toán như unicast, multicast và các
gói unicast có thiết lập bit ToS. Tuy nhiên, MPLS chỉ dùng một thuật toán chuyển tiếp
dựa trên sự hoán đổi nhãn (Label swapping). Một nút MPLS truy xuất bộ nhớ đơn để
lấy ra các thông tin như quyết định dành ra tài nguyên cần thiết để chuyển tiếp gói.
Khả năng chuyển tiếp và tra cứu tốc độ nhanh giúp chuyển nhãn (label switching) trở
thành công nghệ chuyển mạch có tính thực thi cao. MPLS còn có thể dùng để chuyển
giúp MPLS có thể tương thích tốt với việc chuyển đổi các mạng từ IPv4 lên IPv6.
vận các giao thức lớp ba khác như IPv6, IPX, hoặc Apple Talk. Các thuộc tính này
Phân phối nhãn bằng giao thức phân phối nhãn LDP
Trong một miền MPLS, một nhãn gán tới một địa chỉ (FIB) đích được phân phối tới
các láng giềng ngược dòng sau khi thiết lập session. Việc kết nối giữa mạng cụ thể
với nhãn cục bộ và một nhãn trạm kế (nhận từ router xuôi dòng) được lưu trữ trong
LFIB và LIB. MPLS dùng các phương thức phân phối nhãn như sau:
- Yêu cầu xuôi dòng (Downstream on demand).
- Tự nguyện xuôi dòng (Unsolicited downstream).
Dùng từ khóa [distribute] thể hiện khả năng của chuyển mạch CEF được chia sẻ.
Router(config-if)#ip route-cache cef.
LDP sử dụng địa chỉ IP cao nhất trên một giao tiếp loopback như là một LDP router
ID. Nếu không có địa chỉ loopback thì địa chỉ IP cao nhất trên router sẽ trở thành
LDP router ID. Muốn buộc một giao tiếp trở thành LDP router ID dùng lệnh:
Router(config)#mpls ldp router-id {interface | ip-address} [force]
Giao tiếp loopback được khuyến khích vì chúng luôn hoạt động.
Bước 4: Cho phép Ipv4 MPLS hay chuyển tiếp nhãn trên giao tiếp
Router(config-if)#mpls ip
Xác định chuyển tiếp MPLS được cho phép trên giao tiếp :
Router#show mpls interfaces
láng giềng và các giao tiếp mà tiến trình khám phá LDP đang chạy.
Xem trạng thái của tiến trình khám phá LDP. Hiển thị thông tin khám phá LDP của
Trường xmit/recv thể hiện giao tiếp đang truyền và nhận các gói LDP discovery
Hello.
Xác định trạng thái các phiên làm việc với láng giềng LDP:
Router#show mpls ldp neighbor
Sự chuyển tiếp ở mặt phẳng điều khiển và mặt phẳng dữ liệu
Bước 1: R1 gửi một implicit null hay POP label tới R2. Giá trị 3 đại diện cho nhãn
implicit-null. R1 quảng bá (propagates) implicit-null đến R2, R2 thực hiện chức năng
POP dữ liệu chuyển tiếp từ R4 tới 10.10.10.101/32. Nếu R1 quảng bá một nhãn
explicit-null, LSR R2 ngược dòng không POP nhãn nhưng gán một giá trị nhãn là 0
và gửi một gói được gán nhãn tới R2.
Ví dụ :
R1#show mpls ldp bindings
<output truncated>
LSR1#show ip route
LSR1#show ip cef
Prefix Next Hop Interface
0.0.0.0/0 drop Null0 (default route handler entry)
0.0.0.0/32 receive
LSR2#show run
!
hostname LSR2
!
logging queue-limit 100
!
memory-size iomem 10
ip subnet-zero
!
!
!
ip cef
mpls ldp logging neighbor-changes
tag-switching tdp router-id Loopback0
!
interface Loopback0
ip address 10.10.10.102 255.255.255.255
!
interface Serial0/0
ip address 10.10.10.2 255.255.255.252
mpls label protocol ldp
tag-switching ip
!
interface Serial0/1
ip address 10.10.10.5 255.255.255.252
mpls label protocol ldp
tag-switching ip
!
router ospf 100
log-adjacency-changes
network 10.10.10.0 0.0.0.255 area 0
!
end
LSR2#show ip route
…..
Gateway of last resort is not set
LSR2#show ip cef
Prefix Next Hop Interface
0.0.0.0/0 drop Null0 (default route handler entry)
0.0.0.0/32 receive
10.10.10.0/30 attached Serial0/0
10.10.10.0/32 receive
10.10.10.2/32 receive
10.10.10.3/32 receive
10.10.10.4/30 attached Serial0/1
10.10.10.4/32 receive
10.10.10.5/32 receive
10.10.10.7/32 receive
10.10.10.8/30 10.10.10.6 Serial0/1
10.10.10.101/32 10.10.10.1 Serial0/0
10.10.10.102/32 receive
10.10.10.103/32 10.10.10.6 Serial0/1
10.10.10.104/32 10.10.10.6 Serial0/1
224.0.0.0/4 drop
224.0.0.0/24 receive
255.255.255.255/32 receive
LSR3#show run
Building configuration...
!
ip subnet-zero
!
!
!
ip cef
mpls label protocol ldp
mpls ldp logging neighbor-changes
!
interface Loopback0
ip address 10.10.10.103 255.255.255.255
!
interface Serial0/0
ip address 10.10.10.9 255.255.255.252
tag-switching ip
clockrate 72000
no fair-queue
!
interface Serial0/1
ip address 10.10.10.6 255.255.255.252
tag-switching ip
clockrate 72000
!
router ospf 100
log-adjacency-changes
network 10.10.10.0 0.0.0.255 area 0
!
end
LSR3#show ip route
….
Gateway of last resort is not set
LSR3#show ip cef
Prefix Next Hop Interface
version 12.2
service timestamps debug datetime msec
service timestamps log datetime msec
no service password-encryption
!
hostname LSR4
!
logging queue-limit 100
!
memory-size iomem 10
ip subnet-zero
!
ip cef
mpls label protocol ldp
mpls ldp logging neighbor-changes
!
interface Loopback0
ip address 10.10.10.104 255.255.255.255
!
interface Serial0/1
ip address 10.10.10.10 255.255.255.252
tag-switching ip
!
router ospf 100
log-adjacency-changes
network 10.10.10.0 0.0.0.255 area 0
!
end
LSR4#show ip route
LSR4#show ip cef
Prefix Next Hop Interface
0.0.0.0/0 drop Null0 (default route handler entry)
0.0.0.0/32 receive
mạng dựa trên bộ định tuyến truyền thống (traditional router-based network), các site
nhau thông qua mạng của nhà cung cấp dịch vụ (SP – service provider). Trong các
khác nhau của cùng khách hàng được kết nối với nhau bằng các kết nối point-to-point
chuyên dụng (lease line, Frame Relay,…). Chi phí thực hiện phụ thuộc vào số lượng
site khách hàng. Các site kết nối dạng full mesh sẽ làm gia tăng chi phí theo cấp số
mũ. Frame Relay và ATM là những công nghệ đi đầu thích hợp thực thi VPN. Các
mạng này bao gồm các thiết bị khác nhau thuộc về khách hàng hoặc nhà cung cấp
dịch vụ, đó là các thành phần của giải pháp VPN.
Nhìn chung, VPN gồm các vùng sau:
- Mạng khách hàng (Customer network) – gồm các router tại các site khách
hàng khác nhau. Các router kết nối các site cá nhân với mạng của nhà cung
cấp được gọi là các router biên phía khách hàng (CE – customer edge).
- Mạng nhà cung cấp (Provider network) – được dùng để cung cấp các kết nối
point-to-point qua hạ tầng mạng của nhà cung cấp dịch vụ. Các thiết bị của
nhà cung cấp dịch vụ mà nối trực tiếp vối CE router được gọi là router biên
phía nhà cung cấp (PE – Provifer edge). Mạng của nhà cung cấp còn có các
thiết bị dùng để chuyển tiếp dữ liệu trong mạng trục (SP backbone) được gọi
là các rouer nhà cung cấp (P - Provider). Dựa trên sự tham gia của nhà cung
cấp dịch vụ trong việc định tuyến cho khách hàng, VPN có thể chia thành hai
loại mô hình: Overlay và Peer-to-peer.
không thể tham gia vào việc định tuyến khách hàng. Các nhà cung cấp dịch vụ chỉ vận
Khi Frame Relay và ATM cung cấp cho khách hàng các mạng riêng, nhà cung cấp
chuyển dữ liệu qua các kết nối point-to-point ảo. Như vậy nhà cung cấp chỉ cung cấp
cho khách hàng kết nối ảo tại lớp 2; Đó là mô hình Overlay. Nếu mạch ảo là cố định,
sẵn sàng cho khách hàng sử dụng mọi lúc thì được gọi là mạch ảo cố định (PVC –
permanent virtual circuit). Nếu mạch ảo được thiết lập theo yêu cầu (on-demand) thì
được gọi là mạch ảo chuyển đổi (SVC – switch virtual circuit). Hạn chế chính của mô
hình Overlay là các mạch ảo của các site khách hàng kết nối dạng full mesh (ngoại trừ
triển khai dạng hub-and-spoke hay partial hub-and-spoke). Nếu có N site khách hàng
thì tổng số lượng mạch ảo cần thiết cho việc tối ưu định tuyến là N(N-1)/2.
Ban đầu Overlay VPN được thực thi bởi SP để cung cấp các kết nối lớp 1 (physical
layer) hay mạch chuyển vận lớp 2 (dữ liệu dạng frame hoặc cell) giữa các site khách
hàng bằng cách sử dụng các thiết bị Frame Relay hay ATM switch làm PE. Do đó nhà
cung cấp dịch vụ không thể nhận biết được việc định tuyến ở phía khách hàng. Sau
đó, Overlay VPN thực thi các dịch vụ qua IP (lớp 3) với các giao thức định đường
hầm như L2TP, GRE, và IPSec. Tuy nhiên, dù trong trường hợp nào thì mạng của nhà
cung cấp vẫn trong suốt đối với khách hàng, và các giao thức định tuyến chạy trực
tiếp giữa các router của khách hàng.
Mô hình ngang cấp (peer-to-peer) được phát triển để khắc phục nhược điểm của mô
hình Overlay và cung cấp cho khách hàng cơ chế vận chuyển tối ưu qua SP backbone.
Do đó nhà cung cấp dịch vụ có thể tham gia vào việc định tuyến của khách hàng.
Trong mô hình peer-to-peer, thông tin định tuyến được trao đổi giữa các router khách
hàng và các router của nhà cung cấp dịch vụ, dữ liệu của khách hàng được vận chuyển
qua mạng lõi của nhà cung cấp. Thông tin định tuyến của khách hàng được mang giữa
các router trong mạng của nhà cung cấp (P và PE), và mạng khách hàng (các CE
router). Mô hình này không yêu cầu tạo ra mạch ảo. Quan sát hình trên ta thấy, các
CE router trao đổi tuyến với các router PE trong SP domain. Thông tin định tuyến của
khách hàng được quảng bá qua SP backbone giữa các PE và P và xác định được
đường đi tối ưu từ một site khách hàng đến một site khác. Việc phát hiện các thông tin
định tuyến riêng của khác hàng đạt được bằng cách thực hiện lọc gói tại các router kết
nối với mạng khách hàng. Địa chỉ IP của khách hàng do nhà cung cấp kiểm soát. Tiến
trình này xem như là thực thi các PE peer-topeer chia sẻ (shared PE peer-to-peer).
Hình sau mô tả những việc triển khai mô hình peer-to-peer.
khách hàng, lưu lượng khách hàng được tách riêng trên cùng router PE nhằm cung
cấp peer-to-peer VPN. Tuy nhiên, thay vì triển khai các router PE khác nhau cho từng
phần của một MPLS VPN được trình bày trong hình sau:
cấp khả năng kết nối vào mạng của nhà cung cấp cho nhiều khách hàng. Các thành
Mạng của nhà cung cấp – miền thuộc điều khiển của nhà cung cấp gồm các router
biên (edge) và lõi (core) để kết nối các site thuộc vào các khách hàng trong một hạ
tầng mạng chia sẻ. Các router PE – là các router trong mạng của nhà cung cấp giao
tiếp với router biên của khách hàng. Các router P – router trong lõi của mạng, giao
tiếp với các router lõi khác hoặc router biên của nhà cung cấp. Trong hình trên, mạng
của nhà cung cấp gồm các router PE1, PE2, P1, P2, P3, và P4. PE1 và PE2 là router
biên của nhà cung cấp trong miền MPLS VPN cho khách hàng A và B. Router P1, P2,
P3 và P4 là các router nhà cung cấp (provider router).
Mô hình định tuyến MPLS VPN
MPLS VPN giống như mô hình mạng ngang cấp với router dành riêng. Từ một router
CE, chỉ cập nhật IPv4, dữ liệu được chuyển tiếp đến router PE. CE không cần bất kỳ
một cấu hình riêng biệt nào cho phép nó tham gia vào miền MPLS VPN. Yêu cầu duy
nhất trên CE là một giao thức định tuyến (hay tuyến tĩnh(static)/tuyến ngầm định
(default)) cho phép nó trao đổi thông tin định tuyến IPv4 với các router PE. Trong mô
hình MPLS VPN, router PE thực hiện rất nhiều chức năng. Trước tiên nó phải phân
tách lưu lượng khách hàng nếu có nhiều hơn một khách hàng kết nối tới nó. Vì thế,
mỗi khách hàng được gắn với một bảng định tuyến độc lập. Định tuyến qua SP
backbone thực hiện bằng một tiến trình định tuyến trong bảng định tuyến toàn cục.
biết đến các tuyến VPN. Các router CE trong mạng khách hàng không nhận biết được
Router P cung cấp chuyển mạch nhãn giữa các router biên của nhà cung cấp và không
các router P và do đó cấu trúc mạng nội bộ của mạng SP trong suốt đối với khách
hàng. Hình sau mô tả chức năng của router PE.
VRF chứa một bảng định tuyến IP tương ứng với bảng định tuyến IP toàn cục, một
bảng CEF, liệt kê các giao tiếp tham gia vào VRF, và một tập hợp các nguyên tắc xác
định giao thức định tuyến trao đổi với các router CE (routing protocol contexts). VRF
còn chứa các định danh VPN (VPN identifier) như thông tin thành viên VPN (RD và
RT). Hình sau cho thấy chức năng của VRF trên một touter PE thực hiện tách tuyến
khách hàng.
Cisco IOS hỗ trợ các giao thức định tuyến khác nhau như những tiến trình định tuyến
riêng biệt (OSPF, EIGRP,…) trên router. Tuy nhiên, một số giao thức như RIP và
BGP, IOS chỉ hỗ trợ một instance của giao thức định tuyến. Do đó, thực thi định
tuyến VRF bằng các giao thức này phải tách riêng hoàn toàn các VRF với nhau. Bối
cảnh định tuyến (routing context) được thiết kế để hỗ trợ các bản sao của cùng giao
thức định tuyến VPN PE-CE. Các bối cảnh định tuyến này có thể được thực thi như
các tiến trình riêng biệt (OSPF), hay như nhiều instance của cùng một giao thức định
tuyến (BGP, RIP, …). Nếu nhiều instance của cùng một giao thức định tuyến được sử
dụng thì mỗi instance có một tập các tham số của riêng nó.
Hiện tại, Cisco IOS hỗ trợ RIPv2, EIGRP, BGPv4 (nhiều instance), và OSPFv2
(nhiều tiến trình) được dùng cho VRF để trao đổi thông tin định tuyến giữa CE và PE.
Chú ý: các giao tiếp VRF có thể là luận lý (logical) hoặc vật lý (physical) nhưng mỗi
giao tiếp chỉ được gán với một VRF.
Route Distinguisher, Route Targets, MP-BGP, và Address Families
nhiên, thông tin này cần được mang theo giữa các router PE để cho phép truyền dữ
Trong mô hình MPLS VPN, router PE phân biệt các khách hàng bằng VRF. Tuy
thực thi các tiến trình cho phép các mạng khách hàng kết nối vào có không gian địa
liệu giữa các site khách hàng qua MPLS VPN backbone. Router PE phải có khả năng
chỉ trùng lắp (overlapping address spaces). Router PE học các tuyến này từ các mạng
khách hàng và quảng bá thông tin này bằng mạng trục chia sẻ của nhà cung cấp
(shared provider backbone). Điều này thực hiện bằng việc kết hợp với RD (route
distinguisher) trong bảng định tuyến ảo (virtual routing table) trên một router PE. RD
là một định danh 64-bit duy nhất, thêm vào trước 32-bit địa chỉ tuyến được học từ
router CE tạo thành địa chỉ 96-bit duy nhất có thể được chuyển vận giữa các router PE
trong miền MPLS. Do đó chỉ duy nhất một RD được cấu hình cho 1 VRF trên router
PE. Địa chỉ 96-bit cuối cùng (tổng hợp của 32-bit địa chỉ khách hàng và 64-bit RD)
được gọi là một địa chỉ VPNv4.
Địa chỉ VPNv4 trao đổi giữa các router PE trong mạng nhà cung cấp. RD có thể có
hai định dạng: dạng địa chỉ IP hoặc chỉ số AS. Hình bên dưới cho thấy hai khách hàng
có địa chỉ mạng giống nhau, 172.16.10.0/24, được phân biệt nhờ vào các giá trị RD
khác nhau, 1:100 và 1:101, ưu tiên quảng bá địa chỉ VPNv4 trên router PE.
Giao thức dùng để trao đổi các tuyến VPNv4 giữa các PE là multiprotocol BGP (MP-
BGP). IGP yêu cầu duy trì iBGP (internal BGP) khi thực thi MPLS VPN. Do đó, PE
phải chạy một IGP cung cấp thông tin NLRI cho iBGP nếu cả hai PE cùng trong một
AS. Hiện tại, Cisco hỗ trợ cả OSPFv2 và ISIS trong mạng nhà cung cấp như là IGP.
MP-BGP cũng chịu trách nhiệm chỉ định nhãn VPN. Khả năng mở rộng là lý do chính
chọn BGP làm giao thức mang thông tin định tuyến khách hàng. Hơn nữa, BGP cho
phép sử dụng địa chỉ VPNv4 trong môi trường MPLS VPN với dãy địa chỉ trùng lắp
cho nhiều khách hàng.
Một phiên làm việc MP-BGP giữa các PE trong một BGP AS được gọi là MP-iBGP
session và kèm theo các nguyên tắc thực thi của iBGP liên quan đến thuộc tính của
BGP (BGP attributes). Nếu VPN mở rộng ra khỏi phạm vi một AS, các VPNv4 sẽ
trao đổi giữa các AS tại biên bằng MP-eBGP session.
Route targets (RT) là những định danh dùng trong MPLS VPN domain khi triển khai
MPLS VPN nhằm xác định thành viên VPN của các tuyến được học từ các site cụ thể.
RT được thực thi bởi các BGP community mở rộng sử dụng 16 bit cao của BGP
ecxtended community (64 bit) mã hóa với một gía trị tương ứng với thành viên VPN
của site cụ thể. Khi một tuyến VPN học từ một CE chèn vào VPNv4 BGP, một danh
sách các thuộc tính community mở rộng cho VPN router target được kết hợp với nó.
Export RT dùng để xác định thành viên VPN và được kết lớp với mỗi VRF. Export
RT được nối thêm vào địa chỉ khách hàng khi chuyển thành địa chỉ VPNv4 bởi PE và
quảng bá trong các cập nhật MP-BGP. Import RT kết hợp với mỗi VRF và xác định
các tuyến VPNv4 được thêm vào VRF cho khách hàng cụ thể. Định dạng của RT
giống như giá trị RD. Sự tương tác của RT và giá trị RD trong MPLS VPN domain
khi cập nhật được chuyển thành cập nhật MP-BGP như hình sau.
Khi thực thi các cấu trúc mạng VPN phức tạp (như: extranet VPN, Internet access
trò nồng cốt. Một địa chỉ mạng có thể được kết hợp với một hoặc nhiều export RT khi
VPNs, network management VPN,…) sử dụng công nghệ MPLS VPN thì RT giữ vai
quảng bá qua mạng MPLS VPN. Như vậy, RT có thể kết hợp với nhiều site thành
viên của nhiều VPN.
Các tiến trình xảy ra trong suốt quá trình quảng bá tuyến ở hình trên như sau:
Mạng 172.16.10.0/24 được nhận từ CE1-A, tham gia vào VRF CustomerA trên PE1-
AS1. PE1 kết hợp một giá trị RD 1:100 và một giá trị export RT 1:100 khi cấu hình
cho VRF trên router PE1-AS1. Các tuyến học từ CE1-A được phân phối vào tiến trình
MP-BGP trên PE1-AS1 với prefix 172.16.10.0/24 và thêm vào đầu giá trị RD 1:100
và nối thêm export RT 1:100 để gửi đi địa chỉ VPNv4 khi tham gia cập nhật MP-
iBGP giữa các PE. Nhãn VPN (3 byte) được gán cho mỗi địa chỉ học từ các tiến trình
của CE kết nối trong một VRF từ tiến trình MP-BGP của PE. MP-BGP chạy trong
miền MPLS của nhà cung cấp dịch vụ nên mang theo địa chỉ VPNv4 (Ipv4 + RD) và
BGP RT.
Lưu ý: RT là cấu hình bắt buộc trong một MPLS VPN cho mọi VRF trên một router,
giá trị RT có thể được dùng để thực thi trên cấu trúc mạng VPN phức tạp, trong đó
một site có thể tham gia vào nhiều VPN. Giá trị RT còn có thể dùng để chọn tuyến
nhập vào VRF khi các tuyến VPNv4 được học trong các cập nhật MP-iBGP. Nhãn
VPN chỉ được hiểu bởi egress PE (mặt phẳng dữ liệu) kết nối trực tiếp với CE quảng
bá mạng đó. Các trạm kế (next hop) phải được học từ IGP khi thực thi MPLS VPN
chứ không phải quảng cáo từ tiến trình BGP. Trong hình trên nhãn VPN được mô tả
bằng trường V1 và V2.
Cập nhật MP-BGP được nhận bởi PE2 và tuyến được lưu trữ trong bảng VRF tương
ứng cho Customer A dựa trên nhãn VPN. Các tuyến MP-BGP nhận được được phân
phối vào các tiến trình định tuyến VRF PE-CE, và tuyến được quảng bá tới CE2-A.
Các thuộc tính commynity BGP mở rộng khác như SoO (site of origin) có thể dùng
chủ yếu trong quảng bá cập nhật MP-iBGP. Thuộc tính SoO được dùng để xác định
site cụ thể từ tuyến học được của PE và ứng dụng trong việc chống vòng lặp tuyến
(routing loop) vì nó xác định được nguồn của site nên có thể ngăn việc quảng cáo lại
mạng cho site đã gửi quảng cáo đó. SoO xác định duy nhất một site từ một tuyến mà
PE học được. SoO cho phép lọc lưu lượng dựa trên site mà lưu lượng đó xuất phát.
Khả năng lọc của SoO giúp quản trị lưu lượng MPLS VPN và chống vòng lặp tuyến
xảy ra trong cấu trúc mạng hỗn hợp và phức tạp, các site khách hàng trong đó có thể
xử lý các kết nối qua MPLS VPN backbone như các kết nối cửa sau (backdoor link)
giữa các site.
Khi thực thi một MPLS VPN, mọi VPN site thuộc vào một khách hàng có thể liên lạc
với mọi site trong cùng miền của khách hàng đó được gọi là VPN đơn giản hay
intranet VPN. RT có thể được sử dụng để thực hiện cấu trúc VPN phức tạp, các site
của một khách hàng có thể truy cập đến site của các khách hàng khác. Dạng thực thi
này được gọi là extranet VPN. Các biến thể của extranet VPN như network
management VPN, central services VPN và Internet access VPN có thể được triển
khai.
Address family là một khái niệm quan trọng trong hoạt động của MP-BGP cho phép
chuyển vận các tuyến VPNv4 với các thuộc tính community mở rộng. Theo RFC
2283 “Multiprotocol Extensions for BGP-4”, BGPv4 chỉ có khả năng mang thông tin
định tuyến thuộc vào IPv4. BGP-4 có thể mang thông tin của nhiều giao thức lớp
mạng. BGP-4 hỗ trợ định tuyến cho nhiều giao thức lớp mạng, BGP-4 phải đăng ký
(account) một giao thức lớp mạng cụ thể liên quan đế một trạm kế (next hop) như
NLRI (network layer reachability information). Hai thuộc tính mới được thêm vào của
BGP là MP_REACH_NLRI (Multiprotocol Reachable NLRI ) và
mang một tập các đích đến được (reachable destination) với thông tin trạm kế được
MP_UNREACH_NLRI (Multiprotocol Unreachable NLRI). MP_REACH_NLRI
dùng để chuyển tiếp cho các đích đến này. MP_UNEACH_NLRI mang một tập các
đích không đến được. Cả hai thuộc tính này là optional và nontransitive. Vì thế, một
BGP speaker không hỗ trợ tính năng đa giao thức này 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 các BGP speaker khác.
Một address family là một giao thức lớp mạng được định nghĩa. Một định danh họ địa
chỉ (AFI – address family identifier) mang một định danh của giao thức lớp mạng kết
hợp với địa chỉ mạng trong thuộc tính đa giao thức của BGP. AFI cho các giao thức
lớp mạng được xác định trong RFC 1700, ‘Assigned Numbers’.
PE thực chất là một LER biên (Edge LSR) và thực hiện tất cả chức năng của một
Edge LSR. PE yêu cầu LDP cho việc gán và phân phối nhãn cũng như chuyển tiếp
các gói được gắn nhãn. Cộng thêm các chức năng của một Edge LSR, PE thực thi một
giao thức định tuyến (hay định tuyến tĩnh) với các EC trong một bảng định tuyến ảo
(virtual routing table) và yêu cầu MP-BGP quảng bá các mạng học được từ CE như
các VPNv4 trong MP-iBGP đến các PE khác bằng nhãn VPN.
Router P cần chạy một IGP (OSPF hoặc ISIS) khi MPLS cho phép chuyển tiếp các
gói được gán nhãn (mặt phẳng dữ liệu – data plane) giữa các PE. IGP quảng bá các
NLRI đến các P và PE để thực thi một MP—iBGP session giữa các PE (mặt phẳng
điều khiển – control plane). LDP chạy trên các router P để gán và phân phối nhãn.
Các router CE được kết nối với các PE, và một IGP, BGP, hay tuyến tĩnh (static
route) được yêu cầu trên các CE cùng với các PE để thu thập và quảng cáo thông tin
NLRI. Trong MPLS VPN backbone gồm các router P và PE, một IGP kết hợp với
LDP được sử dụng giữa các PE và P. LDP dùng để phân phối nhãn trong một MPLS
domain. IGP dùng để trao đổi thông tin NLRI, ánh xạ (map) các NLRI này vào MP-
BGP. MP-BGP được duy trì giữa các PE trong một miền MPLS VPN và trao đổi cập
nhật MP-BGP.
Các gói từ CE đến PE luôn được quảng bá như các gói Ipv4. Hoạt động của mặt
phẳng điều khiển MPLS VPN như hình sau:
Sau đây là các bước hoạt động của mặt phẳng điều khiển MPLS VPN (minh họa bằng
hình trên): Cập nhật Ipv4 cho mạng 172.16.10.0 được nhận bởi egress PE (mặt phẳng
dữ liệu). PE1-AS1 nhận và vận chuyển tuyến Ipv4, 172.16.10.0/24, đến một tuyến
VPNv4 gắn với RD 1:100, SoO, và RT 1:100 dựa trên cấu hình VRF trên PE1-AS1.
Nó định vị một nhãn VPNv4 V1 tới cập nhật 172.16.10.0/24 và viết lại thuộc tính
trạm kế cho địa chỉ 10.10.10.101 của loopback0 trên PE1-AS1. Sự quảng bá nhãn cho
10.10.10.101/32 từ PE1-AS1 tới PE2-AS2 nhanh chóng được thay thế ngay khi mạng
MPLS VPN của nhà cung cấp được thiết lập và thực hiện quảng bá VPNv4 trong
mạng. Các bước sau thực hiện tiến trình quảng bá nhãn cho 10.10.10.101/32:
2a: Router PE2-AS1 yêu cầu một nhãn cho 10.10.10.101/32 sử dụng LDP ánh
xạ nhãn yêu cầu từ láng giềng xuôi dòng (downstream neighbor) của nó, P1-
AS1. PE1-AS1 xác định một nhãn implicit-null cho 10.10.10.101/32, chỉnh
sửa mục trong LFIB liên quan đến 10.10.10.101/32, và gửi đến P1-AS1 bằng
LDP reply.
2b: P1-AS1 sử dụng nhãn implicit-null nhận được từ PE1-AS1 làm giá trị
nhãn xuất (outbound label) của nó, xác định một nhãn (L1) cho
10.10.10.101/32, và sửa mục trong LFIB cho 10.10.10.101/32. Sau đó P1-AS1
gửi giá trị nhãn này đến P2-AS1 bằng LDP reply.
2c: P2-AS1 dùng nhãn L1 làm giá trị nhãn xuất, xác định nhãn L2 cho
10.10.10.101/32, và sửa mục trong LFIB cho 10.10.10.101/32. Sau đó P2-AS1
gửi giá trị nhãn này đến PE2-AS1 bằng LDP reply. PE1-AS1 có cấu hình VRF
để nhận các tuyến với RT 1:100 nên chuyển cập nhật VPNv4 thành Ipv4 và
chèn tuyến trong VRF cho Customer A. Sau đó nó quảng bá tuyến này tới
CE2-A.
Hoạt động của mặt phẳng dữ liệu MPLS VPN
Việc chuyển tiếp trong mạng MPLS VPN đòi hỏi phải dùng chồng nhãn (label stack).
Nhãn trên (top lable) được gán và hoán đổi (swap) để chuyển tiếp gói dữ liệu đi trong
lõi MPLS. Nhãn thứ hai (nhãn VPN) được kết hợp với VRF ở router PE để chuyển
tiếp gói đến các CE. Hình sau mô tả các bước trong chuyển tiếp dữ liệu khách hàng
của mặt phẳng dữ liệu từ một site khách hàng CE2-A tới CE1-A trong hạ tầng mạng
của SP.
Khi dữ liệu được chuyển tiếp tới một mạng cụ thể dọc theo mạng VPN qua lõi MPLS,
chỉ có nhãn trên (top lable) trong chồng nhãn bị hoán đổi (swap) khi gói đi qua
backbone. Nhãn VPN vẫn giữ nguyên và được bóc ra khi đến router PE ngõ ra
(egress)/xuôi dòng(downstream). Mạng gắn với một giao tiếp ngõ ra thuộc vào một
VRF cụ thể trên router phụ thuộc vào giá trị của nhãn VPN.
Sau đây là những bước trong vịêc chuyển tiếp của mặt phẳng dữ liệu minh họa cho
hình trên: CE2-A tạo ra một gói dữ liệu với địa chỉ nguồn 172.16.20.1 và đích là
172.16.10.1. PE2-AS1 nhận gói dữ liệu, thêm vào nhãn VPN V1 và nhãn LDP L2 rồi
chuyển tiếp gói đến P2-AS1. P2-AS1 nhận gói dữ liệu và chuyển đổi (swap) nhãn
LDP L2 thành L1. P1-AS1 nhận gói dữ liệu và bóc (pop) nhãn trên (top label) ra vì nó
nhận một ánh xạ nhãn implicit-null cho 10.10.10.101/32 từ PE1-AS1. Kết quả, gói
được gán nhãn (nhãn VPN là V1) được chuyển tiếp đến PE1-AS1. PE1-AS1 bóc nhãn
VPN V1 ra và chuyển tiếp gói dữ liệu đến CE1-A nơi có địa chỉ mạng 172.16.10.0
được định vị.
Cấu hình MPLS VPN cơ bản
Mô tả
RD chỉ thay đổi khi xóa VRF đi. RD là duy nhất cho một VRF cụ thể. Không có hai
VRF trên một router mà cùng giá trị RD. Nếu thiết lập cùng RD cho nhiều VRF trên
một router sẽ có thông điệp cảnh báo sau:
% Cannot set RD, check if it's unique
Cấu hình chính sách nhập và xuất cho các community mở rộng của MP-BGP. Chính
sách này dùng để lọc tuyến cho RT cụ thể.
Router(config-vrf)#route-target {import | export | both}
route-target-ext-community
Cấu hình định tuyến BGP trên PE. Cho phép BGP và xác định AS trên router PE1-
AS1 và PE2-AS1.
Router(config)#router bgp as-number
Cấu hình láng giềng cho MP-iBGP:
Router(config-router)#neighbor {ip-address | peer-group-name} remote-as
as-number
Cấu hình họ địa chỉ VPNv4 (VPNv4 address family):
Cấu hình trong tiến trình của BGP, cho phép địa chỉ VPNv4 hoạt động tên các láng
giềng. Kích hoạt các láng giềng iBGP chuyển vận địa chỉ VPNv4 qua mạng trục của
nhà cung cấp dịch vụ.
Router(config-router)#address-family vpnv4
Router(config-router-af)#neighbor {ip-address | peer-group-name | ipv6-
address} activate
Router(config-router-af)#neighbor {ip-address | peer-group-name | ipv6-
address} send-community extended
vụ mang và giữ nguyên metric EIGRP khi đi qua MP-iBGP domain. Các community
nhật MP-BGP (MP-BGP update). Các thuộc tính BGP extended community giữ nhiệm
này xác định các đặc tính bản chất liên quan đến EIGRP như chỉ số AS hay EIGRP
cost như băng thông (bandwidth), độ trễ (delay), tải (load), độ tin cậy (reliability), và
MTU. Bảng sau mô tả sáu loại extended BGP community được định nghĩa để mang
theo các tuyến EIGRP qua MPLS backbone bằng MP-BGP.
Hình sau mô tả chi tiết các thuộc tính extended BGP community gắn với các tuyến
192.168.20.0 và 192.168.99.0.
Trình tự thực hiện khi CE2-A gửi 172.16.20.0 và 209.165.201.0 tới CE1-A:
(1) CE2-A redistribute mạng OSPF 209.165.127.0/27 (D EX) và 172.16.20.0/24
(D) cho PE2-AS1.
(2) Bảng định tuyến VRF Cust_A trên PE2-AS1 nhận 172.16.20.0/24 với EIGRP
metric 2195456 và 209.165.127.0/27 với EIGRP metric 3097600.
(3) EIGRP metric cho 172.16.20.0 và 209.165.127.0 được sao chép vào extended
BGP attribute như BGP MED, các communitie này chứa thông tin EIGRP như
AS, MTU, route type, …kèm theo các tuyến EIGRP được redistribute vào
MP-BGP. Sau đó các tuyến 172.16.20.0 và 209.165.127.0 được quảng bá tới
PE1-AS1 bằng MP-iBGP session.
(4) PE1-AS1 nhận các tuyến BGP VPNv4 172.16.20.0/24 và 209.165.127.0/27 từ
PE2-AS1. EIGRP metric của các tuyến này không bị thay đổi khi đi qua MP-
BGP backbone.
(5) PE2-AS1 kiểm tra các thuộc tính nhận được trong tuyến và nếu route type là
internal (nếu bit MSB trong BGP extended community được thiết lập bằng
0x8800) và AS nguồn trùng khớp với AS trên router nhận thì tuyến đó được
quảng bá như một tuyến nội EIGRP (EIGRP internal route). Nếu route type là
external (bit MSB được thiết lập bằng 0x8800) thì tuyến đó được quảng bá tới
CE là một tuyến ngoại EIGRP (external EIGRP route).
PE1-AS1 sử dụng thông tin thuộc tính extended community để cấu trúc lại cập
nhật tuyến EIGRP gốc khi redistribute từ MP-BGP vào EIGRP. Dạng này chỉ
được thực hiện EIGRP AS của PE2-AS1 và PE1-AS1 bằng nhau. Các PE hoạt
động như là các EIGRP query boundary. Trong trường hợp này, AS 101 trùng
khớp với AS của PE1-AS1 nên 172.16.20.0/24 được quảng bá là EIGRP
internal route và 209.165.127.0/27 được quảng bá là một external route tới
CE1-A.
(6) CE1-A nhận 172.16.20.0 và 209.165.127.0.
Quảng bá tuyến khi EIGRP AS khác nhau trên các router PE:
Nếu hai EIGRP AS khác nhau, các nguyên tắc redistribute bình thường được áp dụng.
Nghĩa là, các external EIGRP route được tạo ra khi các tuyến của khách hàng được
redistribute vào EIGRP từ các cập nhật MP-BGP. Hình sau mô tả một mạng MPLS
đối với giao thức định tuyến ở CE nên không có EIGRP adjacency hay cập nhật
VPN sử dụng các EIGRP AS khác nhau trên các PE. Vì MPLS backbone là trong suốt
Trình tự thực hiện từ bước (1) tới (4) giống như phần “Quảng bá tuyến khi EIGRP AS
giống nhau trên mọi PE” ngoại trừ các mạng 192.168.99.0 và 192.168.20.0 và metric:
(1) PE2-AS1 kiểm tra các thuộc tính nhận được trong tuyến và nếu route type là
internal và AS nguồn không trùng khớp hay nếu route type là external, tuyến
đó được quảng bá tới CE thành một external EIGRP route. Tuyến sẽ không sử
dụng thông tin extended community vì không xuất phát cùng AS. Route type
cho 192.168.20.0 là internal và AS nguồn là 202 không trùng khớp với cấu
hình trên PE1-AS1 (201). Do đó, PE1-AS1 quảng bá thành một external route
sau cho thấy một MPLS VPN cung cấp các dịch vụ MPLS VPN cho các site của
Customer A và Customer B.
và cùng thuộc EIGRP AS 101. EIGRP AS 101 được cấu hình cho VRF
- Mạng của Customer A – Customer A có CE1-A và CE2-A trong cùng VPN-A
Thực hiện
Các bước cấu hình định tuyến EIGRP PE-CE như sau:
(1) Cho phép tiến trình định tuyến EIGRP toàn cục.
Cho phép tiến trình định tuyến EIGRP toàn cục (global EIGRP routing
process) trên các router PE, PE1-AS1 và PE2-AS1.
(2) Định ngữ cảnh (context) và các thông số (parameter) cho định tuyến VRF
EIGRP.
Định ngữ cảnh định tuyến cho VRF CustomerA và CustomerB trong
tiến trình EIGRP ở bước 1.
-
ip cef
mpls ldp logging neighbor-changes
!
interface Loopback0
ip address 10.10.10.200 255.255.255.255
!
interface Serial0/0
description Connected to PE1-AS1
ip address 10.10.10.2 255.255.255.252
tag-switching ip
!
interface Serial0/1
description Connected to PE2-AS1
ip address 10.10.10.6 255.255.255.252
tag-switching ip
!
router ospf 1
log-adjacency-changes
network 10.0.0.0 0.255.255.255 area 0
!
ip http server
ip classless
!
end
Router PE1-AS1
!
hostname PE1-AS1
!
ip subnet-zero
!
ip vrf CustomerA
rd 1:100
route-target export 1:100
route-target import 1:100
!
ip vrf CustomerB
rd 1:200
route-target export 1:200
route-target import 1:200
!
ip cef
mpls ldp logging neighbor-changes
!
interface Loopback0
ip address 10.10.10.101 255.255.255.255
!
interface Serial0/0
description Connected to P1-AS1
ip address 10.10.10.1 255.255.255.252
tag-switching ip
clockrate 64000
no fair-queue
!
interface Serial1/1
description Connected to CE1-A
ip vrf forwarding CustomerA
ip address 172.16.1.1 255.255.255.252
clockrate 64000
!
interface Serial1/3
description Connected to CE1-B
ip vrf forwarding CustomerB
ip address 192.168.1.1 255.255.255.252
tag-switching ip
!
router eigrp 1
auto-summary
!
address-family ipv4 vrf CustomerB
redistribute bgp 1 metric 1000 100 255 1 1500
network 192.168.1.0
no auto-summary
autonomous-system 201
exit-address-family
!
address-family ipv4 vrf CustomerA
redistribute bgp 1 metric 1000 100 255 1 1500
network 172.16.0.0
no auto-summary
autonomous-system 101
exit-address-family
!
router ospf 1
router-id 10.10.10.101
log-adjacency-changes
network 10.0.0.0 0.255.255.255 area 0
!
router bgp 1
no synchronization
bgp log-neighbor-changes
neighbor 10.10.10.102 remote-as 1
neighbor 10.10.10.102 update-source Loopback0
no auto-summary
!
address-family vpnv4
neighbor 10.10.10.102 activate
neighbor 10.10.10.102 send-community extended
no auto-summary
exit-address-family
!
address-family ipv4 vrf CustomerB
redistribute eigrp 201
no auto-summary
no synchronization
exit-address-family
!
address-family ipv4 vrf CustomerA
redistribute eigrp 101
no auto-summary
no synchronization
exit-address-family
!
ip http server
ip classless
!
end
Router PE2-AS1
!
hostname PE2-AS1
!
ip subnet-zero
!
ip vrf CustomerA
rd 1:100
route-target export 1:100
route-target import 1:100
!
ip vrf CustomerB
rd 1:200
route-target export 1:200
route-target import 1:200
!
ip cef
mpls ldp logging neighbor-changes
!
interface Loopback0
ip address 10.10.10.102 255.255.255.255
!
interface Ethernet0/0
no ip address
shutdown
half-duplex
!
interface Serial0/0
no ip address
shutdown
no fair-queue
!
interface Serial0/1
description Connected to P1-AS1
ip address 10.10.10.5 255.255.255.252
tag-switching ip
clockrate 64000
!
interface Serial1/2
description Connected to CE2-A
ip vrf forwarding CustomerA
ip address 172.16.2.1 255.255.255.252
!
interface Serial1/4
description Connected to CE2-B
ip vrf forwarding CustomerB
ip address 192.168.2.1 255.255.255.252
clockrate 64000
!
router eigrp 1
auto-summary
!
address-family ipv4 vrf CustomerB
redistribute bgp 1 metric 1000 100 255 1 1500
network 192.168.2.0
no auto-summary
autonomous-system 202
exit-address-family
!
address-family ipv4 vrf CustomerA
redistribute bgp 1 metric 1000 100 255 1 1500
network 172.16.0.0
no auto-summary
autonomous-system 101
exit-address-family
!
router ospf 1
router-id 10.10.10.102
log-adjacency-changes
network 10.0.0.0 0.255.255.255 area 0
!
router bgp 1
no synchronization
bgp log-neighbor-changes
neighbor 10.10.10.101 remote-as 1
neighbor 10.10.10.101 update-source Loopback0
no auto-summary
!
address-family vpnv4
neighbor 10.10.10.101 activate
neighbor 10.10.10.101 send-community extended
no auto-summary
exit-address-family
!
address-family ipv4 vrf CustomerB
redistribute eigrp 202
no auto-summary
no synchronization
exit-address-family
!
address-family ipv4 vrf CustomerA
redistribute eigrp 101
no auto-summary
no synchronization
exit-address-family
!
ip http server
ip classless
!
end
Router CE1-A
!
hostname CE1-A
!
ip subnet-zero
!
interface Ethernet0/0
description VPN-A Site 1 network
ip address 172.16.10.1 255.255.255.0
half-duplex
no keepalive
!
interface Serial0/0
description Connected to PE1-AS1
ip address 172.16.1.2 255.255.255.252
no fair-queue
!
router eigrp 101
network 172.16.0.0
no auto-summary
!
ip http server
ip classless
!
end
Router CE2-A
!
hostname CE2-A
!
interface Ethernet0/0
!
hostname CE2-B
!
ip subnet-zero
!
interface Ethernet0/0
description VPN-B Site 2 network
ip address 192.168.20.1 255.255.255.0
no ip directed-broadcast
no keepalive
!
interface Serial0/0
description Connected to PE2-AS1
ip address 192.168.2.2 255.255.255.252
no ip directed-broadcast
no ip mroute-cache
no fair-queue
!
router eigrp 202
network 192.168.2.0
network 192.168.20.0
no auto-summary
!
ip classless
!
end
Kiểm tra
Các bước kiểm tra định tuyến EIGRP PE-CE như sau:
(1) Kiểm tra quan hệ láng giềng (neighbor) EIGRP trên các router PE.
PE1-AS1#show ip eigrp vrf CustomerA neighbors
IP-EIGRP neighbors for process 201
H Address Interface Hold Uptime SRTT RTO Q Seq Type
(sec) (ms) Cnt Num
0 192.168.1.2 Se1/3 12 05:27:05 214 1284 0 2
PE2-AS1#show ip eigrp vrf CustomerA neighbors
IP-EIGRP neighbors for process 202
H Address Interface Hold Uptime SRTT RTO Q Seq Type
(sec) (ms) Cnt Num
0 192.168.2.2 Se1/4 11 05:19:21 903 5000 0 2
(2) Kiểm tra các thuộc tính BGP mở rộng gắn với tuyến 192.168.20.0
PE2-AS1#show ip bgp vpnv4 vrf CustomerB 192.168.20.1
BGP routing table entry for 1:200:192.168.20.0/24, version 9
Paths: (1 available, best #1, table CustomerB)
Advertised to non peer-group peers:
10.10.10.101
Local
Thứ tự thực hiện khi tuyến EIGRP được gửi lại vào backbone như sau:
(1) 172.16.20.0/24 được quảng bá là internal route tới PE2-AS1.
(2) PE2-AS1 quảng bá 172.16.20.0/24 tới CE4-A qua EIGRP và gửi
172.16.20.0/24 bằng MP-iBGP session tới PE1-AS1.
(3) CE4-A quảng bá 172.16.20.0/24 là một EIGRP internal route tới CE3-A
(4) CE3-A quảng bá 172.16.20.0/24 là một EIGRP internal route tới PE1-AS1
PE1-AS1 phải ra quyết định chọn đường đi:
- Nếu cập nhật BGP cho 172.16.20.0/24 tới trước, nó sẽ redistribute vào EIGRP
và gửi tới CE3-A. Vì composite metric tốt hơn nên nó chọn đường này vì
MPLS VPN không thêm vào giới hạn độ trễ (delay) và băng thông
(bandwidth). Nghĩa là PE1-AS1 sẽ không bao giờ nhận được một cập nhật thứ
hai và chỉ có một đường để đi.
- Nếu tuyến EIGRP tới trước, nó sẽ redistribute vào BGP và gửi lại cho PE2-
AS1. PE2-AS1 vẫn chọn đường được cập nhật từ EIGRP.
Hơn nữa, Bảng định tuyến sẽ chọn đường có chỉ số AD (administrative distance) thấp
hơn (EIGRP là 90 hoặc 170; iBGP là 200).
Backbone gửi lại tuyến vào Multihomed Site
Trường hợp truyến 172.16.50.0/24 xuất phát từ multihomed site được gửi ngược lại
qua kết nối với PE.
Tình trạng này không xảy ra nếu mạng giữ nguyên AD mặc định vì PE ưu tiên cho
các tuyến học từ EIGRP hơn.
Đếm ra vô cực (Count to Infinity)
Hình trên cho thấy PE1-AS1 và/hoặc PE2-AS1 có hai đường đi cho 172.16.50.0/24:
một học từ MP-iBGP và một học trực tiếp bằng EIGRP. Nếu 172.16.50.0/24 gặp sự
cố (down), trình tự xử lý xảy ra như sau:
(1) CE3-A và CE4-A gửi ra các thông điệp truy vấn (query message).
(2) Giả sử PE1-AS1 có hai đường đi như trên, khi nhận 1 query message nó sẽ trả
lời với một đường đi liên quan và vẫn còn hoạt động qua MP-iBGP.
(3) CE3-A sẽ nhận được một đường đi tới 172.16.50.0/24 qua PE1-AS1.
(4) PE1-AS1 nhận được một thông điệp hủy tuyến (withdrawal message) từ PE2-
AS1.
(5) PE1-AS1 sẽ hủy tuyến mà nó quảng bá tới CE3-A, router này quảng bá thông
tin đến cho CE4-A, và CE4-A quảng bá lại cho PE3-AS1.
(6) Query message bắt nguồn từ PE1-AS1 để tìm mạng 172.16.50.0/24. Khi query
message đến được PE2-AS1, PE2-AS1 vừa quảng bá một cập nhật tuyến mới
đến được cho mạng 172.16.50.0/24 qua MP-iBGP tới PE1-AS1, PE1-AS1 sẽ
tạo lại một cập nhật EIGRP để trả lời cho các query trước đó.
(7) Tiến trình lặp của các thông điệp reachable/unreachable tiếp tục đến khi qua
một lượng tối đa các hop.
Hiện tượng này được gọi là “count to infinity”.
Định tuyến kém tối ưu (Suboptimal Routing)
Hiện tượng này xảy ra do AD của EIGRP tốt hơn của iBGP. Một bảng định tuyến
luôn luôn ưu tiên cho các tuyến học được từ IGP vì có AD nhỏ hơn iBGP. Hình bên
dưới cho thấy các gói dữ liệu từ CE1-A tới CE2-A sẽ được chuyển tiếp bởi PE1-AS1
tới cho CE3-A tạo nên định tuyến kém tối ưu.
Lặp tuyến và định tuyến kém tối ưu có thể tránh được bằng cách sử dụng:
- BGP cost community có thể dùng để ép BGP so sánh các tuyến xuất phát từ
EIGRP và các tuyến MP-iBGP dựa trên EIGRP metric.
- EIGRP Site of Origin (SoO) trên các router PE và CE có thể dùng để chống
lặp tuyến.
BGP Cost Community
BGP cost community (BGP CC) là một thuộc tính community mở rộng mới của BGP.
BGP CC là một thuộc tính non-transitive extended community, nó chỉ qua iBGP và
các confederation peer nhưng không đến được external BGP peer.
BGP CC cho phép PE so sánh các tuyến đến từ các giao thức khác nhau sử dụng giá
trị AD khác nhau dựa trên metric của chúng. Các tuyến BGP mang thuộc tính BGP
cost community sẽ dùng EIGRP AD thay vì iBGP AD để so sánh mà không cần cấu
hình tĩnh giá trị AD.
Các tuyến được redistribute từ EIGRP vào MP-BGP, chúng sẽ được đánh dấu (tag)
với thuộc tính BGP cost community để mang composite EIGRP metric thêm vào các
thuộc tính EIGRP riêng. Thuộc tính BGP CC được mô tả trong hình sau:
Giá trị Điểm chèn (POI – point of insertion) để chắc rằng tuyến BGP được chọn sử
dụng BGP CC. Điều này cho phép so sánh các tuyến iBGP với các tuyến EIGRP.
BGP CC có thể phân biệt giữa các tuyến EIGRP internal và external bằng trường ID:
internal có ID là 128, external có ID là 129. Tuyến có BGP CC ID nhỏ nhất sẽ được
chọn. Tuyến internal EIGRP có ID thấp hơn tuyến external. Sự lựa chọn tuyến thường
dựa trên giá trị trong trường Cost của BGP CC vì nó mang composite EIGRP metric.
Trình tự xảy ra với PE1-AS1 để chọn đường đi tốt nhất dựa trên EIGRP metric và
không dựa trên AD giữa EIGRP và iBGP (hình trên):
(1) CE2-A xuất phát tuyến 172.16.20.0/24 tới PE2-AS1.
(2) PE2-AS1 chuyển tiếp tuyến tới CE4-A qua EIGRP và tới PE1-AS1 qua MP-
iBGP.
(3) PE1-AS1 nhận hai cập nhật cho 172.16.20.0/24, một qua EIGRP từ CE3-A và
một qua MP-iBGP từ PE2-AS1. PE1-AS1 sẽ dùng tuyến học từ MP-iBGP nhờ
vào thuộc tính BGP CC.
(4) Các gói từ CE1-A tới CE2-A sẽ được chuyển tiếp bởi PE1-AS1 tới PE2-AS1
vì bảng định tuyến của VRF A chứa tuyến MP-iBGP, tuyến này mang
composite EIGRP metric nhỏ hơn.
EIGRP SoO
EIGRP SoO được thêm vào để gắn với các các tuyến internal và external EIGRP.
Thuộc tính này được trao đổi tự động giữa các giao thức định tuyến (SoO-cho phép
EIGRP và MP-BGP) để chống lặp tuyến trong môi trường multihome nơi có sử dụng
redistribute hai chiều. Tất cả các router CE, hay ít nhất tại các multihomed site, phải
hỗ trợ đặc tính này để cho phép quảng bá qua VPN. EIGRP SoO được dùng trên PE
và CE để chống lặp tuyến hiệu quả nhất. Các tuyến backdoor được cấu hình với
EIGRP SoO để hội tụ nhanh nhất cho việc mất tuyến.
Multihomed Site và EIGRP SoO
Các tuyến được đẩy vào một multihomed site và bị tag với một giá trị EIGRP SoO
1:101. Router PE nhận được sẽ kiểm tra mọi cập nhật giá trị SoO được cấu hình trên
giao tiếp nhận cập nhật đó. Nếu giá trị bằng nhau, cập nhật đó sẽ bị hủy, giúp chống
lặp tuyến và tối ưu việc định tuyến.
EIGRP từ CE3-A bị lọc đi vì có cùng giá trị SoO với giao tiếp nhận nó.
một qua MP-iBGP từ PE2-AS1. PE1-AS1 sẽ sử dụng tuyến học từ BGP; tuyến
Cấu hình
Router P1-AS1
P1-AS1#show run
Building configuration...
tag-switching ip
clockrate 64000
!
interface Serial0/1
description Connected to PE2-AS1
ip address 10.10.10.6 255.255.255.252
tag-switching ip
!
router ospf 1
log-adjacency-changes
network 10.0.0.0 0.255.255.255 area 0
!
ip http server
ip classless
!
end
Router PE1-AS1
PE1-AS1#show run
Building configuration...
interface Serial1/2
description Connected to CE2-A
ip vrf forwarding CustomerA
ip address 172.16.2.1 255.255.255.252
!
interface Serial1/4
description Connected to CE4-A
ip vrf forwarding CustomerA
ip vrf sitemap SOO-VPNA
ip address 172.16.4.1 255.255.255.252
!
!
router eigrp 1
auto-summary
!
address-family ipv4 vrf CustomerA
redistribute bgp 1 metric 1000 100 255 1 1500
network 172.16.0.0
no auto-summary
autonomous-system 101
exit-address-family
!
router ospf 1
router-id 10.10.10.102
log-adjacency-changes
network 10.0.0.0 0.255.255.255 area 0
!
router bgp 1
no synchronization
bgp log-neighbor-changes
neighbor 10.10.10.101 remote-as 1
neighbor 10.10.10.101 update-source Loopback0
no auto-summary
!
address-family vpnv4
neighbor 10.10.10.101 activate
neighbor 10.10.10.101 send-community both
no auto-summary
exit-address-family
!
address-family ipv4 vrf CustomerA
redistribute eigrp 101
no auto-summary
no synchronization
exit-address-family
!
ip http server
ip classless
!
Router CE2-A
!
hostname CE2-A
!
!
memory-size iomem 10
ip subnet-zero
!
interface Ethernet0/0
description VPN-A Site 2 network
ip address 172.16.20.1 255.255.255.0
no keepalive
half-duplex
!
interface Serial0/0
description Connected to PE2-AS1
ip address 172.16.2.2 255.255.255.252
clockrate 64000
!
router eigrp 101
network 172.16.0.0
no auto-summary
no eigrp log-neighbor-changes
!
ip classless
ip http server
!
call rsvp-sync
!
end
Router CE3-A
CE3-A#show run
Building configuration...
!
mpls ldp logging neighbor-changes
!
interface Ethernet0/0
description VPN-A Site 3 network
ip address 172.16.30.1 255.255.255.0
half-duplex
no keepalive
!
interface Serial0/0
description Connected to PE1-AS1
ip address 172.16.3.2 255.255.255.252
no ip mroute-cache
no fair-queue
!
interface Serial0/1
description Connected to CE4-A
bandwidth 1000
ip vrf sitemap SOO-VPNA
ip address 172.16.5.1 255.255.255.252
clockrate 64000
!
router eigrp 101
network 172.16.0.0
no auto-summary
!
no ip http server
ip classless
!
route-map SOO-VPNA permit 10
set extcommunity soo 1:10
!
!
call rsvp-sync
!
end
Router CE4-A
CE4-A#show running-config
Building configuration...
OSPF PE-CE được phát triển hỗ trợ các ISP cung cấp các dịch vụ MPLS VPN cho
khách hàng khi khách hàng triển khai OSPF định tuyến bên trong site của họ, khi đó
OSPF được sử dụng như giao thức định tuyến giữa các site khách hàng (inter-site
routing protocol) trong một môi trường MPLS VPN.
Customer A thực hiện mô hình OSPF truyền thống, trong đó các non-backbone area
(Area 1 và Area 2) thuộc Site 1 và Site 2 và được kết nối vào backbone area (Area 0)
Trong một môi trường MPLS VPN, các mạng của khách hàng được kết nối vào một
backbone của nhà cung cấp. Trong hình trên, các area của Customer A (Area 1 và 2)
kết nối vào mạng MPLS VPN của nhà cung cấp. Area 1 và Area 2 có router CE1-A
và CE2-A chạy giao thức định tuyến OSPF. MP-iBGP được sử dụng giữa PE1 và PE2
để quảng bá các tuyến giữa Site 1 (Area 1) và Site 2 (Area 2). Thực hiện phân phối
(redistribute) OSPF-BGP tại các router PE, PE1 và PE2. Quá trình thực hiện như sau:
(1) Mạng 172.16.10.0/24 được CE1-A quảng bá tới PE1 bằng LSA (link-state
advertisement) Type 1 và Type 2.
(2) Tại PE1, tuyến 172.16.10.0/24 được redistribute vào BGP. Sau đó tuyến này
được quảng bá như là một tuyến VPNv4 tới PE2.
(3) Tại PE2 địa chỉ BGP VPNv4 172.16.10.0/24 được redistribute vào OSPF.
(4) Sau đó tuyến 172.16.10.0/24 được quảng bá như một tuyến OSPF với LSA
Type 5.
Do đó, loại tuyến OSPF (LSA Type) không được duy trì khi tuyến OSPF được
redistribute vào BGP. Trong môi trường MPLS VPN, các nguyên tắc dịnh tuyến
OSPF truyền thống vẫn được sử dụng. Tuy nhiên, một số đặc tính sau đây của tuyến
OSPF external bị thay đổi khi khách hàng chuyển từ định tuyến OSPF truyền thống
sang mô hình MPLS VPN:
- Các tuyến internal, không quan tâm đến cost của chúng, luôn được ưu tiên
hơn tuyến external.
Các tuyến external không được tóm tắt (summary).
Các tuyến external được flood ra mọi OSPF area.
-
-
- Các tuyến External có thể dùng một loại metric khác, không thể so sánh
với OSPF cost.
- Các tuyến External LSA Type 5 không được thêm vào một stub area hay
not-so-stubby area (NSSA).
đó hơi khác với cấu trúc OSPF truyền thống - một backbone Area 0 và nhiều non-
Khi thực thi OSPF với MPLS VPN, khách hàng có thể có nhiều site trong Area 0. Do
superbackbone có chức năng như một OSPF Area 0. Do đó, không yêu cầu
- Các non-backbne area, Area 1 và Area 2, kết nối trực tiếp vào MPLS VPN
một Area 0 như miền OSPF truyền thống. Area 0 chỉ được yêu cầu khi router
PE kết nối vào hai non-backbone area khác nhau cùng thuộc vào một OSPF
domain trên một PE router.
- Các router PE, PE1 và PE2, kết nối các OSPF area trong miền khách hàng vào
superbackbone, giữ vai trò là ABR (OSPF Area Border Router) cho các thiết
bị trong miền OSPF của khách hàng. Các router CE, CE1 và CE2, không nhận
biết được bất kỳ miền OSPF nào khác trong MPLS VPN superbackbone.
- MPLS VPN superbackbone sử dụng MP-iBGP giữa các PE. Thông tin OSPF
được mang đi trong MPLS VPN backbone bằng các BGP extended
community. Các extended community này được thiết lập và sử dụng bởi các
router PE.
- Không có các lân cận OSPF (OSPF adjacencies) hay sự flooding trong MPLS
VPN superbackbone cho các site khách hàng kết nối vào superbackbone, trừ
khi sử dụng OSPF sham-link.
Các BGP Extended Community cho định tuyến OSPF PE-CE
Trong MPLS VPN superbackbone, các thuộc tính mở rộng của BGP (BGP extended
attribute) sau được mang theo:
- OSPF Route Type – quảng bá thông tin loại tuyến OSPF qua MP-iBGP
backbone. Hình bên dưới cho thấy thuộc tính community mở rộng OSPF route
type và chi tiết OSPF route type cho mạng 172.16.20.0, 192.168.99.0 và
192.168.199.0.
- OSPF router ID – xác định router ID của PE trong VRF instance của OSPF có
liên quan. Địa chỉ này không tham gia vào không gian địa chỉ của nhà cung
cấp và là duy nhất trong mạng OSPF.
OSPF domain ID – xác định miền của một địa chỉ mạng OSPF cụ thể trong
MPLS VPN backbone. Mặc định, giá trị này bằng với giá trị của OSPF
-
metric-type E2 trong bảng VRF. Mọi tuyến giữa các miền OSPF được nhận
biết là LSA Type 5.
Hình sau mô tả một mạng MPLS cung cấp dịch vụ MPLS VPN cho CustomerA. Các
router CE1-A và CE2-A ở các mạng 172.16.10.0/24 và 172.16.20.0/24 tại site khách
hàng thuộc vào Area 1 và Area 2 trong khi kết nối PE-CE ở cả hai site thuộc vào Area
0. OSPF process ID trên cả hai router PE là 101. CE2-A là một ASBR giữa miền
OSPF và hai miền RIPv2 và EIGRP (AS 101).
LSA Type 5 (O E2). CE2-A cũng gửi 172.16.20.0/24 với LSA Type 3 (O IA)
tới PE2-AS1.
(2) Bảng định tuyến VRF CustomerA trên PE2-AS1 nhận được tuyến
172.16.20.0/24 như là một tuyến liên vùng (O IA- OSPF Inter-Area route) với
OSPF metric (cost) 74, 209.165.201.0/27 là tuyến ngoài miền loại 1 (O E1)
metric 84 và tuyến 209.165.202.128/27 với metric 20.
(3) OSPF cost cho 172.16.20.0/24, 209.165.201.0/27, và 209.165.202.128/27
được sao chép vào các thuộc tính mở rộng của BGP (extended BGP attributes)
như BGP MED khi OSPF được redistribute vào MP-BGP. Các tuyến
172.16.20.0, 209.165.201.0/27, và 209.165.202.128/27 được quảng bá tới
PE1-AS1 qua MP-iBGP session.
(4) PE1-AS1 nhận các tuyến BGP VPNv4 172.16.20.0/24, 209.165.201.0/27 và
209.165.202.128/27 từ PE2-AS1 và thêm vào bảng BGP. OSPF metric cho
các tuyến vẫn được giữ nguyên khi quảng bá quá MP-BGP backbone.
(5) Router PE nhận, PE1-AS1 redistribute các tuyến MP-BGP vào OSPF, kiểm tra
domain ID, và nếu domain ID của tuyến trùng khớp domain ID trên router
nhận, PE1-AS1, nó dùng LSA gốc và thuộc tính MED để phát sinh một LSA
Type 3. Ở đây, domain ID trùng khớp với domain ID của PE1-AS1 nên PE1-
AS1 cấu trúc lại cập nhật gốc và cập nhật metric dựa trên giao tiếp ngõ ra và
quảng bá 172.126.20.0/24 là một tuyến liên vùng (O IA) tới CE1-A.
209.165.201.0/27 và 209.165.202.128/27 được quảng bá là tuyến liên miền (O
E1 và O E2) tới CE1-A.
Thứ tự thực hiện khi CE2-A gửi 192.168.20.0, 192.168.99.0 và 192.168.199.0 tới
CE1-A:
(1) CE2-A redistribute mạng RIPv2 192.168.99.0 vào OSPF và quảng bá nó với
một LSA type 5 (O E1) tới PE2-AS1. Mạng EIGRP 192.168.199.0/24 được
redistribute và quảng bá với OSPF LSA Type 5 (O E2). CE2-A cũng gửi
192.168.20.0/24 tới PE2-AS1.
(2) Bảng định tuyến VRF CustomerA trên PE2-AS1 thấy các tuyến nhận được:
192.168.20.0 với metric 74, 192.168.99.0/24 (O E2) có metric 84 và
192.168.199.0/24 có metric 20.
(3) PE2-AS1 redistribute các tuyến OSPF 192.168.20.0, 192.168.99.0,
192.168.199.0 vào MP-BGP, sao chép OSPF cost cho các tuyến này vào thuộc
tính MED (multi-exit discriminator), và thiết lập community mở rộng của
BGP là RT (route type) để chỉ định loại LSA từ nguồn của tuyến, cũng như
thuộc tính OSPF domain ID để chỉ định chỉ số tiến trình (process number) của
tiến trình OSPF nguồn (source OSPF process). OSPF RT mang thông tin vùng
gốc (original area), loại LSA và metric-type của LSA loại 5.
(4) PE1-AS1 nhận các tuyến BGP VPNv4 192.168.20.0, 192.168.99.0, và
192.168.199.0 với cùng thông tin metric từ PE2-AS1. Thêm thông tin nhận
được vào bảng BGP.
(5) PE2-AS1 kiểm tra thuộc tính nhận được trong tuyến, và vì domain ID của
tuyến không trùng khớp với domain ID trên router nhận nên tuyến được
chuyển đổi thành tuyến ngoài (LSA Type 5). Trong trường hợp này, domain
ID trùng khớp với domain ID trên PE1-AS1 nên PE1-AS1 sẽ tái cấu trúc lại
cập nhật gốc và cập nhật metric dựa trên các giao tiếp ngõ ra và quảng bá lại
cho CE1-A.
(6) CE1-A nhận các tuyến quảng bá tới.
Ảnh hưởng của việc cấu hình OSPF Domain ID trên router PE
Cấu hình OSPF domain ID làm thay đổi hành vi (behavior) của tuyến cho các kết nối
VPN với nhiều OSPF domain. Cấu hình domain ID giúp kiểm soát việc chuyển đổi
LSA (cho LSA Type 3 và Type 5) giữa các OSPF domain và đường backdoor.
Domain ID ngầm định là 0.0.0.0. Mỗi bảng định tuyến VPN trên một router PE tương
ứng với một OSPF routing instance được cấu hình với cùng OSPF domain ID. Vì thế,
Domain ID được dùng để các định các tuyến có nguồn gốc từ OSPF domain hay từ
các giao thức định tuyến bên ngoài dựa trên LSA. Trong hình trên, thật khó xác định
tuyến nào thuộc OSPF domian, tuyến nào thuộc miền định tuyến bên ngoài. Trong
Việc quảng bá tuyến ở đây không thiết lập OSPF Down Bit:
(1) CE1-A gửi một LSA Type 1 hoặc LSA Type 2 tới router biên của nhà cung
cấp (PE1).
(2) PE1 nhận tuyến OSPF nội vùng (intra-areaa) từ CE1-A và redistribute vào
MP-BGP.
(3) PE2 nhận được và redistribute tuyến MP-BGP vào OSPF Area 2 như là một
tuyến liên vùng (inter-area summary route) LSA Type 3.
(4) Tuyến tóm tắt được quảng bá qua vùng OSPF và được nhận bởi PE3, trong
cùng Area 2.
(5) PE3 chọn tuyến OSPF, vì AD (administrative distance) của OSPF tốt hơn của
MP-iBGP. PE3 redistribute tuyến OSPF ngược vào MP-BGP nên xảy ra
routing loop.
Có thể ngăn routing loop bằng cách sử dụng OSPF Down Bit, một phần của trường
option trong OSPF header.
Quá trình quảng bá tuyến khi OSPF Down Bit được thiết lập:
(1) CE1-A gửi LSA Type 1 hoặc Type 2 tới PE1.
(2) PE1 nhận tuyến OSPF nội vùng (intra-area OSPF route) từ CE1-A và
redistribute vào MP-BGP.
(3) PE2 nhận được và redistribute tuyến MP-BGP đó vào OSPF Area 2 với LSA
Type 3 và thiết lập OSPF Down Bit.
(4) Tuyến này được quảng bá qua OSPF area và PE3 nhận được.
(5) Khi PE3 nhận LSA Type 3 với Down Bit được thiết lập thì PE3 không
redistribute lại vào MP-BGP.
OSPF Route Tag hay VPN Route Tag
Down Bit giúp ngăn lặp tuyến giữa MP-BGP và OSPF, nhưng không hiệu quả với các
tuyến ngoài (external route), như khi redistribute giữa nhiều OSPF domain hay xen
external route vào một vùng được kết nối dual-homed tới mạng của nhà cung cấp. PE
redistribute một tuyến OSPF từ các miền OSPF khác nhau vào một miền OSPF thành
các external route. Down Bit không được thiết lập vì LSA Type 5 không hỗ trợ Down
Bit. Tuyến được redistribute được quảng bá qua OSPF domain.
Một router không chạy MPLS (non-MPLS router) có thể redistribute tuyến OSPF vào
miền OSPF khác. Tuyến OSPF đó được quảng bá qua miền OSPF khác mà không có
Down Bit. Một router PE nhận được tuyến OSPF. Khi không có Down Bit, tuyến đó
lại được redistribute vào MP-BGP backbone và gây ra routing loop. Điều này được
thể hiện trong hình sau với các tuyến ngoài được quảng bá vào các VPN site.
Chú ý:
Các phiên bản Cisco IOS trước 12.3(4)T, 12.0(27)S và 12.2(25)S có giới hạn 32 tiến
trình riêng biệt tạo ra cho mỗi VRF để các PE có thể xác định đúng các tuyến OSPF
thuộc vào tiến trình nào. Trong môi trường MPLS VPN, một tiến trình được sử dụng
bởi MP-iBGP, một cho giao thức định tuyến IGP (ví dụ: OSPF), một tiến trình cho
các tuyến nối trực tiếp (connected route) và một tuyến cho tuyến tĩnh (static route).
Do đó, chỉ còn lại 28 tiến trình có thể được tạo cho các VRF sử dụng định tuyến
OSPF PE-CE.
LAB 5-1 – Cấu hình định tuyến OSPF PE-CE
OSPF process ID giống nhau ở Customer A và khác nhau ở Customer B
Mô tả:
Mục tiêu của bài này là hiểu được cách OSPF process ID tham gia quyết định loại
tuyến thấy được ở phía router biên của khách hàng chạy OSPF như thế nào.
- Mạng Customer A – Customer A có CE2-A và CE2-A trong cùng VPN-A và
cùng OSPF domain. PE1-AS1 và PE2-AS1 có OSPF process ID 101 được cấu
hình cho VRF CustomerA trên PE1-AS1 và PE2-AS1.
- Mạng Customer B – Customer B có CE1-B và CE2-B trong VPN-B. PE1-AS1
và PE2-AS1 có OSPF process ID là 201 và 202 cho hai CustomerB VRF.
Thực hiện:
Trước khi cấu hình, chắc chắn rằng mạng nhà cung cấp cung cấp các dịch vụ MPLS
VPN cho các Site CustomerA và B. Cấu hình địa chỉ IP và xác định các VRF trên các
router PE.
Ví dụ: Cấu hình VRF và các thuộc tính của nó trên router PE1-AS1 định tuyến OSPF
PE-CE cho VRF CustomerA:
PE1-AS1(config)#ip vrf CustomerA
PE1-AS1(config-vrf)# rd 1:100
PE1-AS1(config-vrf)# route-target both 1:100
PE1-AS1(config)#interface Serial1/0
PE1-AS1(config-if)# description connected to CE1-A
PE1-AS1(config-if)# ip vrf forwarding CustomerA
PE1-AS1(config-if)# ip address 172.16.1.1 255.255.255.252
Các bước cấu hình OSPF PE-CE trên các router PE:
(1) Cho phép dịnh tuyến trên VRF OSPF
Cho phép định tuyến trên VRF OSPF cho CustomerA trên PE1-AS1 và PE2-
AS1:
PE1-AS1(config)#router ospf 101 vrf CustomerA
PE1-AS1(config-router)# router-id 172.16.101.1
PE1-AS1(config-router)# network 172.16.0.0 0.0.255.255 area 0
PE2-AS1(config)#router ospf 101 vrf CustomerA
PE2-AS1(config-router)# router-id 172.16.102.1
PE2-AS1(conig-router)# network 172.16.0.0 0.0.255.255 area 0
(2) Redistribute các tuyến OSPF vào BGP
Các tuyến OSPF nhận được từ các router CE được redistribute vào MP-iBGP.
Chỉ redistribute những tuyến nội (internal routes).
PE1-AS1(config)#router bgp 1
PE1-AS1(config-router)#address-family ipv4 vrf CustomerA
PE1-AS1(config-router-af)#redistribute ospf 101 vrf CustomerA match
internal external 1 external 2
PE2-AS1(config)#router bgp 1
PE2-AS1(config-router)#address-family ipv4 vrf CustomerA
PE2-AS1(config-router-af)#redistribute ospf 101 vrf CustmerA match internal
external 1 external 2
(3) Redistribute MP-iBGP vào OSPF
Thực hiện redistribute các tuyến BGP VPNv4 vào lại OSPF trên các router
PE.
PE1-AS1(config)#router ospf 100 vrf CustomerA
PE1-AS1(config-router)# redistribute bgp 1 subnets
PE2-AS1(config)#router ospf 100 vrf CustomerA
PE2-AS1(config-router)# redistribute bgp 1 subnets
Cấu hình tương tự với định tuyến VRF OSPF cho CustomerB
Cấu hình
Router P1-AS1
!
hostname P1-AS1
!
ip subnet-zero
!
ip cef
mpls ldp logging neighbor-changes
!
interface Loopback0
ip address 10.10.10.200 255.255.255.255
!
interface Serial0/0
interface Serial0/1
exit-address-family
!
address-family ipv4 vrf CustomerA
redistribute ospf 101 match internal external 1 external 2
no auto-summary
no synchronization
exit-address-family
!
ip http server
ip classless
!
end
Router CE1-A
!
hostname CE1-A
!
ip subnet-zero
!
interface Ethernet0/0
description VPN-A Site 1 network
ip address 172.16.10.1 255.255.255.0
half-duplex
no keepalive
!
interface Serial0/0
description Connected to PE1-AS1
ip address 172.16.1.2 255.255.255.252
no fair-queue
!
router ospf 101
log-adjacency-changes
network 172.16.1.0 0.0.0.255 area 0
network 172.16.10.0 0.0.0.255 area 1
!
ip classless
!
end
Router CE2-A
!
hostname CE2-A
!
ip subnet-zero
!
interface Loopback0
description RIPv2 network
ip address 209.165.201.1 255.255.255.224
!
interface Loopback1
router rip
version 2
redistribute ospf 202 metric 1 match internal external 1 external 2
network 192.168.99.0
no auto-summary
!
ip classless
!
end
Kiểm tra:
Các bước kiểm tra định tuyến OSPF PE-CE như sau:
(1) Kiểm tra quan hệ neighbor và adjacency giữa các router PE và các router biên
CE:
PE1-AS1#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
10.10.10.200 0 FULL/ - 00:00:37 10.10.10.2 Serial0/0
192.168.10.1 0 FULL/ - 00:00:35 192.168.1.2 Serial1/3
172.16.10.1 0 FULL/ - 00:00:30 172.16.1.2 Serial1/1
PE2-AS1#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
10.10.10.200 0 FULL/ - 00:00:31 10.10.10.6 Serial0/1
192.168.199.1 0 FULL/ - 00:00:38 192.168.2.2 Serial1/2
209.165.202.129 0 FULL/ - 00:00:35 172.16.2.2 Serial1/0
(2) Kiểm tra việc quảng bá tuyến cho CustomerA
Bảng định tuyến VRF cho CustomerA nhận được các tuyến do CE2-A quảng
bá tới.
PE2-AS1#show ip route vrf CustomerA ospf 101
172.16.0.0/16 is variably subnetted, 6 subnets, 3 masks
O IA 172.16.20.0/24 [110/791] via 172.16.2.2, 00:44:34, Serial1/0
209.165.201.0/27 is subnetted, 1 subnets
O E1 209.165.201.0 [110/801] via 172.16.2.2, 00:44:34, Serial1/0
209.165.202.0/27 is subnetted, 1 subnets
O E2 209.165.202.128 [110/20] via 172.16.2.2, 00:44:34, Serial1/0
Các tuyến OSPF này được redistribute vào MP-iBGP và các metric của tuyến
OSPF được sao chép vào các thuộc tính mở rộng của BGP như các BGP
MED. Sau đó các tuyến này được quảng bá tới PE1-AS1 bằng MP-iBGP
session.
PE2-AS1#show ip bgp vpn vrf CustomerA
BGP table version is 33, local router ID is 10.10.10.102
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Customer A có 4 Site trong VPN-A. Các site đều thuộc Area 0. Site 3 và Site 4 được
kết nối với nhau bằng một được backdoor link băng thông thấp (512 kbps). Backdoor
link này cung cấp kết nối giữa Site 3 và Site 4 khi kết nối đến backbone của nhà cung
cấp bị sự cố (down hoặc disconnected). Các site này cũng kết nối tới BGP-based
MPLS VPN backbone của nhà cung cấp. Kiểu tích hợp này có thể xem là một dạng
định tuyến kém tối ưu (suboptimal routing) như hình sau:
Trình tự thực hiện khi CE4-A quảng bá 172.16.40.0/24 tới cho CE3-A:
(1) CE4-A gửi một LSA Type 1 cho 172.16.40.0/24 tới PE2-AS1 và CE3-A.
(2) PE2-AS1 nhận 172.16.40.0/4 là một intra-area route, và redistribute vào MP-
BGP.
(3) PE1-AS1 redistribute 172.16.40.0/24 vào OSPF và quảng bá 172.16.40.0/4 là
một intra-area route tới CE3-A.
(4) CE3-A nhận được hai inter-area route 172.16.40.0/24 từ PE1-AS1 và một
intra-area route từ CE4-A. Vì intra-area route được ưu tiên hơn nên được thêm
vào cơ sở dữ liệu OSPF (OSPF database).
Trình tự này cùng xảy ra với 172.16.30.0/24 khi nó được CE2-A quảng bá đi. Do đó,
các gói dữ liệu xuất phát từ 172.16.30.0 (Site 3) tới 172.16.40.0 (Site 4) sẽ qua
backdoor link. Tương tự cho các luồng lưu lượng bắt nguồn từ 172.16.10.0 (Site 1) tới
172.16.20.0 (Site 2) vì bất kỳ tuyến liên quan nào từ MPLS VPN backbone sẽ là các
inter-area route và intra-area route thì được ưu tiên hơn. Vì thế, việc chuyển tiếp lưu
lượng dạng này được gọi là suboptimal vì backdoor link có băng thông thấp và được
dùng để dự phòng (backup). Bên dưới cho thấy đường chuyển tiếp lưu lượng trong
mạng MPLS VPN sử dụng backdoor link (không sham link).
Có thể tránh trường hợp này bằng cách sử dụng một sham-link. Một sham-link là một
kết nối luận lý (logical link) thuộc về nội vùng (intra-area) nhưng không được mang
Chúng sẽ thiết lập một OSPF adjacency đi qua và floot các intra-area LSA qua kết nối
theo bởi BGP-based superbackbone. Hai router PE sẽ là endpoint của sham-link.
này. Sham-link được xem là một mạch ảo theo yêu cầu (DC – demand circuit) của
OSPF nhằm giảm luồng lưu lượng qua sham-link. Điều này giúp tránh việc các LSA
được floot định kỳ qua sham-link. Hình sau mô tả một sham-link:
CE4-A gửi 172.16.40.0/24 vớ LSA Type 1 tới CE3-A, sau đó LSA này được quảng
bá tới PE1-AS1. PE1-AS1 nhận được OSPF-LSA Type 1 từ CE4-A qua CE3-A và từ
PE2-AS1 qua OSPF sham-link. OSPF sham-link được đối xử như một kết nối nội
vùng (intra-area link) giữa PE1-AS1 và PE2-AS1. Cost của sham-link có thể được
cấu hình sao cho thấp hơn cost của backup link giữa CE3-A và CE4-A. Do đó PE2-
AS1 redistribute tuyến 172.16.40.0/24 vào MP-BGP vì tuyến OSPF này không được
nhận qua một sham-link từ PE1-AS1. PE1-AS1 cũng không redistribute tuyến này
vào MP-iBGP vì nó không được nhận từ PE2-AS1 qua OSPF sham-link. PE1-AS1 cài
đặt tuyến OSPF nhận được từ sham-link vào bảng định tuyến VRF của nó. LSA cho
tuyến 172.16.40.0/24 được quảng bá đến Site 4 để cho phép Site 3 chọn đường đi tốt
nhất. Khi đó, các gói nhận được từ Site 4 sẽ được định tuyến qua MPLS VPN
backbone và sử dụng kết nối băng thông cao. Như vậy, CE3-A tại Site 3 cũng chọn
sham-link là đường đi tốt nhất đến 172.16.40.0/24. Vì thế luồng lưu lượng giữa giữa
Site 3 và Site 4 được định tuyến tối ưu qua sham-link giữa PE1-AS1 và PE2-AS1.
Sơ đồ cấu hình cho OSPF Sham-Link
Thực hiện
Cấu hình địa chỉ ip và định nghĩa các VRF trên các PE.
Cấu hình OSPF Sham-link theo các bước sau:
(1) Tạo các đầu cuối (endpoint) của sham-link
Tạo các giao tiếp loopback trên mỗi router PE và gắn kết nó vào VRF
CustomerA của VPN. Địa chỉ loopback là một địa chỉ trong không gian địa chỉ
của VPN, không được là không gian địa chỉ của nhà cung cấp dịch vụ MPLS
VPN vì sham-link là một kết nối của khách hàng (CustomerA).
Tạo endpoint thực hiện trên PE1-AS1 và PE2-AS1 như sau:
PE1-AS1(config)#interface Loopback101
PE1-AS1(config-if)# description sham-link Endpoint on PE1-AS1
PE1-AS1(config-if)# ip vrf forwarding Cust_A
PE1-AS1(config-if)# ip address 172.16.101.1 255.255.255.255
PE2-AS1(config)#interface Loopback101
PE2-AS1(config-if)# description sham-link Endpoint on PE2-AS1
PE2-AS1(config-if)# ip vrf forwarding Cust_A
PE2-AS1(config-if)# ip address 172.16.102.1 255.255.255.255
(2) Redistribute endpoint vào MP-BGP
PE1-AS1(config)#router bgp 1
PE1-AS1(config-router)#address-family ipv4 vrf Cust_A
PE1-AS1(config-router-af)# redistribute connected
PE2-AS1(config)#router bgp 1
PE2-AS1(config-router)#address-family ipv4 vrf Cust_A
!
ip vrf CustomerA
rd 1:100
route-target export 1:100
route-target import 1:100
!
ip cef
mpls ldp logging neighbor-changes
!
interface Loopback0
ip address 10.10.10.101 255.255.255.255
!
interface Loopback101
description Sham-link Endpoint on PE1-AS1
ip vrf forwarding CustomerA
ip address 172.16.101.1 255.255.255.255
!
interface Serial0/0
description Connected to P1-AS1
ip address 10.10.10.1 255.255.255.252
tag-switching ip
!
interface Serial1/1
description Connected to CE1-A
ip vrf forwarding CustomerA
ip address 172.16.1.1 255.255.255.252
clockrate 64000
!
interface Serial1/3
description Connected to CE3-A
ip vrf forwarding CustomerA
ip address 172.16.3.1 255.255.255.252
!
router ospf 101 vrf CustomerA
router-id 172.16.101.1
log-adjacency-changes
area 0 sham-link 172.16.101.1 172.16.102.1
redistribute bgp 1 subnets
network 172.16.1.0 0.0.0.255 area 0
network 172.16.3.0 0.0.0.255 area 0
!
router ospf 1
router-id 10.10.10.101
log-adjacency-changes
network 10.0.0.0 0.255.255.255 area 0
!
router bgp 1
no synchronization
bgp log-neighbor-changes
neighbor 10.10.10.102 remote-as 1
clockrate 64000
!
interface Serial1/2
description Connected to CE4-A
ip vrf forwarding CustomerA
ip address 172.16.4.1 255.255.255.252
clockrate 64000
!
router ospf 101 vrf CustomerA
router-id 172.16.102.1
log-adjacency-changes
area 0 sham-link 172.16.102.1 172.16.101.1
redistribute bgp 1 subnets
network 172.16.2.0 0.0.0.255 area 0
network 172.16.4.0 0.0.0.255 area 0
!
router ospf 1
router-id 10.10.10.102
log-adjacency-changes
network 10.0.0.0 0.255.255.255 area 0
!
router bgp 1
no synchronization
bgp log-neighbor-changes
neighbor 10.10.10.101 remote-as 1
neighbor 10.10.10.101 update-source Loopback0
no auto-summary
!
address-family vpnv4
neighbor 10.10.10.101 activate
neighbor 10.10.10.101 send-community both
no auto-summary
exit-address-family
!
address-family ipv4 vrf CustomerA
redistribute connected
redistribute ospf 101 match internal external 1 external 2
no auto-summary
no synchronization
exit-address-family
!
ip classless
!
end
Router CE1-A
!
hostname CE1-A
!
mpls ldp logging neighbor-changes
!
interface Ethernet0/0
description VPN-A Site 1 network
ip address 172.16.10.1 255.255.255.0
half-duplex
no keepalive
!
interface Serial0/0
description Connected to PE1-AS1
ip address 172.16.1.2 255.255.255.252
no fair-queue
!
router ospf 101
log-adjacency-changes
network 172.16.0.0 0.0.255.255 area 0
!
ip http server
ip classless
!
end
Router CE2-A
!
hostname CE2-A
!
interface Ethernet0/0
description VPN-A CustomerA Site 2 network
ip address 172.16.20.1 255.255.255.0
half-duplex
no keepalive
!
interface Serial0/0
description Connected to PE2-AS1
ip address 172.16.2.2 255.255.255.252
!
router ospf 101
log-adjacency-changes
network 172.16.0.0 0.0.255.255 area 0
!
ip classless
!
end
Router CE3-A
!
hostname CE3-A
!
interface FastEthernet0/0
description VPN-A CustomerA Site 3 network
ip address 172.16.30.1 255.255.255.0
duplex auto
speed auto
no keepalive
!
interface Serial0/0
description Connected to PE1-AS1
ip address 172.16.3.2 255.255.255.252
clockrate 64000
no fair-queue
!
interface Serial0/1
description Sham-link, connected to CE4-A
bandwidth 512
ip address 172.16.5.1 255.255.255.252
!
router ospf 101
log-adjacency-changes
network 172.16.0.0 0.0.255.255 area 0
!
ip classless
!
end
Router CE4-A
!
hostname CE4-A
!
interface Ethernet0/0
description VPN-A CustomerA Site 4 network
ip address 172.16.40.1 255.255.255.0
half-duplex
no keepalive
!
interface Serial0/0
description Connected to PE2-AS1
ip address 172.16.4.2 255.255.255.252
no fair-queue
!
interface Serial0/1
description Sham-link, connected to CE3-A
bandwidth 512
ip address 172.16.5.2 255.255.255.252
clockrate 64000
!
router ospf 101
log-adjacency-changes
network 172.16.0.0 0.0.255.255 area 0
!
ip classless
!
end
Kiểm tra hoạt động của Sham-link
PE1-AS1#show ip route vrf CustomerA
Routing Table: CustomerA
Codes: C - connected, S - static, R - RIP, M - mobile, B - BGP
D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
E1 - OSPF external type 1, E2 - OSPF external type 2
i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
* - candidate default, U - per-user static route, o - ODR
P - periodic downloaded static route
Vì các liên kết này có cùng chi phí (cost = 15), theo chuyển tiếp đích thông thường,
tất cả các gói đến từ R1 và R7 được ra ở cùng giao tiếp của R2 để tới R5, vì chi phí
(cost) của đường phía trên thấp hơn ở dưới. Tất cả các liên kết trong hình có băng
thông 150 Mbps, R1 gửi 90 Mbps và R7 gửi 100 Mbps. Lúc này nảy sinh vấn đề: R2
cố gắng chuyển 190 Mbps qua đường (pipe) 150 Mbps. Nghĩa là R2 phải huỷ 40
Mbps cho phù hợp với đường truyền. Việc chuyển tiếp hướng đích (destination base
forwarding) không thể giải quyết vấn đề này. Chỉ có thể huỷ bỏ liên kết hoặc chuyển
chi phí liên kết để con đường ngắn lẫn đường dài đều có cùng chi phí nhằm giảm nhẹ
vấn đề. Nhưng chỉ áp dụng được trên mạng nhỏ.
Trong mạng ATM:
Xây dựng hai PVC từ R2 đến R6 và thiết lập cho chúng cùng chi phí. Vì R2 có hai
con đường đến R6 nên sẽ sử dụng cả hai con đường để mang một lượng dữ liệu hợp
lý. Cơ chế chia tải có thể thay đổi đa dạng nhưng thông thường cân bằng tải trên
nguồn và đích của CEF (CEF 's per-source-destination load blancing) sử dụng cả hai
con đường theo cách cân bằng thô (roughly). Xây dựng hai con đường có cùng chi phí
là giải pháp mềm dẻo hơn thay đổi chi phí liên kết. Trong mạng ATM các thiết bị
khác nối đến mạng không ảnh hưởng đến bất kỳ sự thay đổi nào của metric. Điều này
cho thấy khả năng điều khiển lưu lượng của ATM tốt hơn của IP.
Giải quyết bài toán con cá bằng MPLS TE:
- Trong ATM, công nghệ lõi không thể thấy các router trên biên của mạng;
MPLS thấy được nhờ các giao thức định tuyến IP quảng cáo (advertise) thông
tin của nó.
Kỹ thuật lưu lượng với MPLS
MPLS TE kết hợp khả năng điều khiển lưu lượng của ATM với sự mềm dẻo của IP và
sự khác nhau của các lớp dịch vụ. MPLS cho phép xây dựng các con đường chuyển
nhãn (LSP - Label Switch Path) trong mạng để giảm lưu lượng chuyển tiếp. MPLS
TE (có thể gọi là đường hầm điều khiển lưu lượng - TE Tunnel) dùng một đường hầm
TE điều khiển lưu lượng trên đường đến một đích cụ thể. Phương pháp này mềm dẻo
hơn kỹ thuật lưu lượng chuyển tiếp chỉ dựa trên địa chỉ đích. MPLS tránh được
flooding O(N2) và O(N3). MPLS TE sử dụng cơ chế gọi là định tuyến động
(autoroute) để xây dựng bảng định tuyến bằng MPLS TE LSP mà không cần mạng
lưới đầy đủ các tuyến láng giềng (neighbor). MPLS TE dự trữ băng thông khi xây
dựng LSP. Ở đây giới thiệu khái niệm tài nguyên tiêu thụ (consumable resource). Khi
LSP được thêm vào mạng chúng có thể tìm ra con đường có băng thông được lưu trữ
sẵn. MPLS bắt buộc có sự dự trữ của mặt phẳng điều khiển, nghĩa là nếu một LSR dự
trữ 10Mb và gửi đến nó 100Mb trên LSP đó, mạng sẽ thử phân chia 100 Mb đó trừ
khi lưu lượng ở nguồn đã bị kỹ thuật QoS ràng buộc.
Khi nghiên cứu về kỹ thuật lưu lượng ta quan tâm đến ba vấn đề chính:
(1) Sự phân phối thông tin (Information distribution): Cách các bộ định tuyến
nhận diện ra mạng và các tài nguyên nào đã sẵn sàng.
(2) Tính toán và thiết lập tuyến – (Path calculation and setup): Cách các bộ định
tuyến quyết định tạo các đường hầm TE, và cách xây dựng và duy trì các
đường hầm TE này một cách chính xác.
(3) Chuyển tiếp lưu lượng vào một đường hầm – (Forwarding traffic down a
tunnel): Sau khi đường hầm được xây dựng thì sử dụng nó như thế nào?
Cấu hình MPLS TE
Để có thể khởi động kỹ thuật lưu lượng MPLS, mạng cần có các điều kiện sau:
Cài đặt hệ điều hành Cisco (Cisco IOS) có hỗ trợ Kỹ thuật lưu lượng MPLS. Trong
mạng cho phép CEF (Cisco Express Forwarding). Một giao thức định tuyến trạng thái
Protocol). Kỹ thuật lưu lượng được phép trên toàn bộ router. Một giao diện loopback
liên kết (OSPF hoặc IS-IS) cũng như giao thức cổng nội IGP (Interior Gateway
Các lệnh cấu hình quan trọng cho một giao tiếp đường hầm MPLS cơ sở:
Lệnh Mô tả
Các đường hầm MPLS TE được đặc trưng là một giao tiếp
đường hầm trong phần mềm Cisco IOS. Nó không khác gì
interface Tunnel0
theo một hướng duy nhất và không tiếp nhận bất cứ liên kết
láng giềng nào nên sẽ lãng phí địa chỉ nếu gắn địa chỉ IP cho
giao tiếp đó.
tunel mode mpls Lệnh này thông báo cho phần mềm Cisco IOS biết giao tiếp
không nhất thiết phải luôn luôn như thế. Khi các đường hầm MPLS TE dành riêng
băng thông liên kết, lượng băng thông được định phần (allocated bandwidth) thay đổi
nhưng băng thông có sẵn tối đa (maximum available bandwidth) không thay đổi. Cần
cấu hình cho cả hai: trên giao tiếp (per-interface) và băng thông đường hầm (tunnel
bandwidth). Vì hai mục đích. Một là, cấu hình per-interface cho biết trong mạng có
bao nhiêu băng thông có sẵn trên một giao tiếp. Hai là, cấu hình per-tunnel ở đầu
đường hầm cho biết nó cần bao nhiêu băng thông để sử dụng.
Độ ưu tiên đường hầm (Tunnel Priortity)
MPLS TE cung cấp cơ chế ưu tiên cho một số đường hầm làm việc trước những
đường hầm khác. Mỗi đường hầm có một độ ưu tiên, các đường hầm ít quan trọng
hơn bị đẩy ra khỏi đường đi và được tính toán lại đường đi, và tài nguyên của nó
nhường lại cho đường hầm quan trọng hơn.
Các mức độ ưu tiên (Priority Level):
Một đường hầm có thể được thiết lập độ ưu tiên với giá trị trong khoảng từ 0 đến 7.
Giá trị ưu tiên càng lớn thì sự quan trọng của đường hầm càng thấp! Ví dụ, đường
hầm có độ ưu tiên 3 thì quan trọng hơn đường hầm ưu tiên 5. Độ ưu tiên 0 là quan
trọng nhất. Để tránh nhầm lẫn người ta thường dùng thuật ngữ “tốt hơn” (better) và
“tệ hơn” (worse) hơn thuật ngữ “cao hơn” (higher) và “thấp hơn” (lower). Cũng có
thể dùng thuật ngữ “quan trọng hơn” (more important) và “ít quan trọng hơn” (less
important).
Những cơ sở của sự chiếm quyền(Preemption Basics):
Những đường hầm quan trọng hơn có quyền đẩy những đường hầm khác ra khỏi
đường đi khi muốn dành riêng băng thông. Điều này được gọi là sự chiếm trước
đường hầm (tunnel preemption).
Độ ưu tiên thiết lập và độ ưu tiên lưu giữ (Setup and Holding Priority):
Mỗi đường hầm có hai độ ưu tiên – Độ ưu tiên thiết lập (Setup priority) và độ ưu tiên
lưu giữ (Hold priority). Cả hai độ ưu tiên được xác định chi tiết trong RFC 3209. Khi
một đường hầm được thiết lập lần đầu tiên ta quan tâm đến độ ưu tiên thiết lập của nó
lúc quyết định công nhận đường hầm đó. Khi có đường hầm khác đến cạnh tranh băng
thông trên liên kết với đường hầm đầu tiên này, độ ưu tiên thiết lập của đường hầm
mới được so sánh với độ ưu tiên lưu giữ của đường hầm đầu tiên. Độ ưu tiên thiết lập
có thể khác với độ ưu tiên lưu giữ cho một vài ứng dụng thực tế. Ví dụ, một đường
hầm có độ ưu tiên lưu giữ bằng 0, và độ ưu tiên thiết lập là 7. Đường hầm này có thể
bị bất kỳ một đường hầm khác đẩy ra khỏi đường đi của nó để chiếm tài nguyên vì
đường hầm có độ ưu tiên thiết lập thấp nhất (7). Nhưng ngay lúc nó được thiết lập thì
không đường hầm nào khác có thể chiếm trước đường đi của nó do có độ ưu tiên lưu
giữ cao nhất (0).
Chú ý: cùng một đường hầm thì độ ưu tiên thiết lập không được tốt hơn độ ưu tiên lưu
giữ. Vì nếu hai đường hầm (giả sử là Tunnel1 và Tunnel2) đang tranh chấp cùng tài
nguyên, và cả hai đều có độ ưu tiên thiết lập bằng 1 và độ ưu tiên lưu giữ bằng 7, điều
gì xảy ra? Tunnel1 đến đầu tiên và giữ băng thông với độ ưu tiên lưu giữ bằng 7.
Tunnel2 đến thứ hai và dùng độ ưu tiên thiết lập của nó (1) đẩy Tunnel1 ra để chiếm
đường liên kết (link). Sau đó Tunnel2 giữ đường liên kết với độ ưu tiên lưu giữ bằng
7. Tunnel1 đến và sử dụng độ ưu tiên thiết lập (1) đẩy Tunnel2 đi và chiếm đường liên
kết. Tunnel2 giữ liên kết với độ ưu tiên lưu giữ bằng 7. Tunnel2 đến và dùng độ ưu
tiên thiết lập của nó (1) đẩy Tunnel1 ra để chiếm đường liên kết . Sau đó Tunnel2 giữ
đường liên kết với độ ưu tiên lưu giữ bằng 7. Cứ thế và lặp lại.
Các phiên bản Cisco IOS đều không cho phép cấu hình độ ưu tiên thiết lập thấp hơn
độ ưu tiên lưu giữ trên cùng một đường hầm nên trong thực tế không xảy ra hiện
tượng trên. Tuy nhiên, trong thực tế hiếm khi độ ưu tiên thiết lập và độ ưu tiên lưu giữ
khác nhau.
Cấu hình độ ưu tiên cho đường hầm
Việc cấu hình thì đơn giản. Cấu trúc lệnh :
tunnel mpls traffic-eng priority setup [holding]
Nếu không chỉ định một độ ưu tiên lưu giữ thì ngầm định bằng với giá trị của độ ưu
tiên thiết lập. Độ ưu tiên ngầm định là 7 (cho cả hai độ ưu tiên thiết lập và lưu giữ)
Các cờ thuộc tính (Attribute Flags)
Một đặc tính khác của MPLS TE là các cờ thuộc tính. Một cờ thuộc tính là một ảnh
bipmap 32-bit trên một kết nối có thể chứa 32 thuộc tính riêng biệt trên một kết nối.
Lệnh trên kết nối như sau:
lượng băng thông có sẵn (available bandwith) giảm xuống; khi các đường hầm được
điều khiển xuống qua một giao tiếp cụ thể, lượng băng thông có sẵn tăng lên.
Khi nào router quảng bá những thay đổi băng thông này?
Câu trả lời đầu tiên là “Khi nào có thay đổi xảy ra”. Nhưng nó có thể tạo nên sự tràn
ngập rất lớn (tremendous amuont of flooding). Trong các mạng MPLS TE lớn có
hàng nghìn đường hầm; việc tái làm tràn ngập (reflooding) khi có một đường hầm
thay đổi giống như thêm hàng nghìn kết nối vào IGP. Việc tái làm tràn những thay đối
TE không tệ như làm tràn một lượng kết nối IGP tương đương khi bạn không chạy
SPF một cách đầy đủ ngay khi có thông tin trạng thái liên kết TE mới nhưng có thể
vẫn có rất nhiều thông tin đang làm tràn trên mạng.
Có khả năng một lượng rất lớn thông tin làm tràn ngập chiếm hết băng thông trên
mạng và các tài nguyên quan trọng trong CPU của router. Mặc khác, bạn muốn chắc
rằng thông tin hình trạng mạng (topology information) được các bộ định tuyến quảng
cáo nhằm mục đích cập nhật. Nếu tất cả băng thông trên một kết nối cụ thể được dành
riêng, và điều này không quảng bá sự tạm ngưng của mạng, lúc đó mạng ra khỏi sự
đồng bộ đang có nên có thể làm cho thiết lập không thành công (setup failures) và
thông tin thay đổi. Có ba nguyên tắc của ngưỡng làm tràn (flooding threshold):
những bất lợi khác (suboptimalities). Vì thế bạn phải chú ý khi nào làm tràn những
Thời Sự thay đổi Băng thông Băng thông Làm Ngưỡng, chiều?
điểm băng thông còn lại (%) được chấp nhận tràn ?
(%) (%)
1 10 90 10 N ---
2 1 89 11 N ---
3 2 87 13 N ---
5 35 50 50 Y Cả 30% và 45%,
ngược dòng
6 -8 58 42 N ---
10 2 3 97 Y 96%, 97%
(3) Làn tràn những thay đổi không quan trọng một cách định kỳ, nhưng thường xuyên
hơn khoảng thời gian làm tươi IGP.
Thời gian định kỳ ngầm định là 180 giây (3 phút). Nhưng có thể thay đổi bằng cách
cấu hình sử dụng lệnh toàn cục sau:
lsr1(config)#mpls traffic-eng link-management timers periodic-flooding 0-3600
second interval
Những thông tin này được làm tràn nếu băng thông có sẵn thay đổi và nó chưa được
làm tràn. Công việc ngầm định là kiểm tra quản trị kết nối TE (TE link manager) mỗi
3 phút, nếu băng thông dành riêng có thay đổi trên bất kỳ kết nối nào thì làm tràn
những thông tin mới về kết nối đó. Thông tin kỹ thuật lưu lượng MPLS không cần
làm tràn định kỳ (3 phút) nếu không có sự thay đổi. Chỉ khi có những thay đổi trong
vòng 3 phút thì được làm tràn. Chỉ làm tràn định kỳ những thông tin chưa được làm
tràn (như một thay đổi băng thông không vượt qua ngưỡng làm tràn). Cài đặt mpls
traffic-eng link-management timers periodic-flooding bằng 0 làm vô hiệu việc làm
tràn định kỳ. Nghĩa là thông tin băng thông được làm tràn chỉ theo nguyên tắc 1 và 3.
Nếu một thay đổi chưa được làm tràn thì xem như gây ra một lỗi, phải làm tràn ngay:
RSVP gửi một lỗi khi một thiết lập đường đi không thành công do thiếu băng thông.
có trên một kết nối cụ thể, băng thông kết nối có sẵn được thay đổi tại thời điểm làm
Nếu một router nhận một yêu cầu dành riêng băng thông nhiều hơn băng thông hiện
tràn thông tin gần nhất vì thế rotuer nhận được sự tiếp nhận dành riêng để bộ định
tuyến gửi sự dành riêng chứa những thông tin trong cơ sở dữ liệu cấu trúc mạng
(topology database) của nó và thực hiện tái làm tràn (reflood).
Tính toán và thiết lập tuyến
Thuật toán CSPF (Constrained Shortest Path First)
Hoạt động của CSPF:
Có hai điểm khác biệt đáng quan tâm giữa SPF bình thường do các giao thức định
tuyến thực hiện và CSPF của MPLS TE. Thứ nhất, tiến trình thiết lập tuyến không
được thiết kế để tìm ra đường đi tốt nhất đến mọi bộ định tuyến mà chỉ đến điểm cuối
đường hầm (tunnel endpoint). Thứ hai, thay vì chỉ quan tâm đến một loại chi phí trên
kết nối giữa hai láng giềng còn phải quan tâm đến:
- Băng thông (bandwidth).
- Các thuộc tính kết nối (link attributes)
- Trọng số quản trị (Administrative weight)
- Bốn thuộc tính được thể hiện trong danh sách PATH/TENT: {link, cost, next
hop, available bandwidth}
Các bước thực hiện thuật toán CSPF như sau:
Bước 1: Một nút tự đưa thông tin của chính mình vào danh sách PATH với cost = 0,
next hop là chính nó và thiết lập băng thông = N/A.
Bước 2: Xem xét nút vừa vào danh sách PATH, và gọi nó là nút PATH. Kiểm tra
danh sách các nút láng giềng của nó. Thêm mỗi láng giềng vào danh sách TENT với
một next hop của nút PATH, trừ khi nút láng giềng đã có có danh sách TENT hoặc
PATH với chi phí thấp hơn. Không thêm đường đi này vào TENT trừ khi nó được cấu
hình ràng buộc cho đường hầm – băng thông (bandwidth) và quan hệ (affinity). Nếu
nút vừa được thêm vào danh sách TENT đã có trong danh sách, nhưng với một chi phí
cao hơn hoặc thấp hơn băng thông tối thiểu, thay thế đường đi có chi phí cao hơn
bằng đường hiện tại.
Bước 3: Tìm láng giềng trong danh sách TENT với chi phí thấp hơn, thêm láng giềng
đó vào danh sách PATH, và lặp lại bước 2. Nếu TENT rỗng hoặc trên PATH còn lại
nút ở cuối đường hầm thì dừng.
Ví dụ: Minh họa thuật toán CSPF
Quan sát hình trên ta thấy, Router A muốn tạo một đường hầm TE đến router D với
đường đi tốt nhất từ router A đến Router D là A->B->C->D, với tổng chi phí bằng 12.
băng thông 60 Mbps. Mỗi kết nối liệt kê metric và băng thông sẵn có của nó. Dễ thấy,
Nhưng không thỏa băng thông có sẵn bằng 60 Mbps. CSPF cần tính lại đường đi ngắn
nhất với băng thông có sẵn 60 Mbps.
Bước 1: Đặt “chính nó” vào PATH với giá trị đường đi = 0, nexthop = self, bandwidth
= N/A.
PATH TENT
{A,0,self,N/A} (empty)
PATH TENT
{A,0,self,N/A} {B,5,B,100}
{C,10,C,100}
Bước 3: Chuyển B từ PATH sang TENT, và đặt láng giềng của B vào TENT.
PATH TENT
{A,0,self,N/A} {C,10,C,100}
{B,5,B,100} {D,13,B,90}
Bước 4: Đặt láng giềng của B vào TENT, và chuyển C từ TENT sang PATH.
PATH TENT
{A,0,self,N/A} {D,13,B,90}
{B,5,B,100}
Bước 5: Lấy D khỏi TENT. Lúc này, đườc đi tốt nhất đến D nằm trong PATH.
Trường hợp này TENT rỗng; D trở thành nút cuối cùng được xem xét trong SPF. Nếu
tìm được đường đi tốt nhất đến D mà vẫn còn nút trong TENT, thì vẫn dừng thuật
toán ở đây.
PATH TENT
{A,0,self,N/A}
{B,5,B,100}
{C,10,C,100}
{D,13,B,90}
Trong thực tế việc tính toán phức tạp hơn nhiều. CSPF phải lưu giữ mọi nút trên
đường đi, không chỉ là nút kế tiếp. Cũng như, không chỉ quan tâm đến băng thông mà
còn xem xét đến các thuộc tính kết nối và các phương pháp quyết định (tiebreakers).
Các phương pháp quyết định trong CSPF (Tiebreakers in CSPF)
SPF thông thường (dùng trong OSPF, IS-IS) có thể sử dụng nhiều đường đi đến đích
có cùng chi phí. Điều này thỉnh thoảng được gọi là ECMP – Equal-Cost MultiPath, và
nó rất hữu dụng trong giao thức định tuyến nội (IGP – Interior Gateway Protocol).
Tuy nhiên trong CSPF, không được tính mọi đường đi tốt nhất đến mọi đích có thể.
Bạn phải tìm một đường đi đến một đích. Bạn sẽ làm gì khi đặt một nút vào TENT và
nút đó đã có trong TENT với cùng chi phí? Bạn cần tìm ra một cách để phân biệt các
đường đi với nhau. Đây là các phương pháp quyết định đường đi có cùng chi phí:
- Chọn đường đi có băng thông có sẵn tối thiểu rộng nhất.
- Nếu chưa được, chọn đường đi có hop count thấp nhất (số lượng router trong
đường đi).
- Nếu vẫn chưa thõa, chọn đường đi ngẫu nhiên.
Ghi chú:
Mọi thứ không thực sự là “ngẫu nhiên”. Khi xem xét xa hơn trong quá trình quyết
định, bạn chọn đường đi trên cùng (top path) trong PATH. Không “ngẫu nhiên” khi
mọi đường đi có thể có một cơ hội được lựa chọn, nhưng chọn ngẫu nhiên với đường
đi cuối cùng (ends up on the top) của PATH có cấu trúc độc lập và được thực thi độc
lập. Các phương pháp này đưa ra cho một nút trong TENT. Tại một thời điểm nào đó,
một nút chỉ nên được liệt kê một lần trong TENT. Đây là sự khác biệt với IGP SPF –
có thể chọn nhiều đường cho một nút và chia tải giữa chúng. Giả sử, trong mạng hình
bên dưới bạn muốn tạo một đường hầm từ RtrA tới RtrZ với băng thông 10 Mbps.
Mỗi đường đi trong mạng này phù hợp với mô tả đó. Khi đó bạn chọn đường nào?
Có 5 đường có thể đi từ A đến Z, gọi là P1 đến P5 (từ trên xuống dưới). Bảng 3 liệt kê
các thuộc tính đường đi.
Tên đường Các router trên đường đi Chi phí Băng thông tối thiểu
P1 RtrA→RtrL1→RtrR1→RtrZ 21 100
P2 RtrA→RtrL2→RtrR2→RtrZ 19 81
P3 RtrA→RtrL3→RtrM3→RtrR3→RtrZ 19 90
P4 RtrA→RtrL4→RtrR4→RtrZ 19 90
P5 RtrA→RtrL5→RtrR5→RtrZ 19 90
nếu nó không có đủ băng thông yêu cầu. Nếu các affinity bits của một đường hầm
không phù hợp với chuỗi thuộc tính được cấu hình trên một kết nối, kết nối đó không
được lựa chọn để sử dụng cho một đường hầm MPLS TE cụ thể. Trọng lượng quản trị
được sử dụng bởi IGP khi nó làm ngập lụt thông tin điều khiển lưu lượng (traffic
enfineering information). Ngầm định chỉ trọng lượng quản trị được dùng để tính toán
đường đi của đường hầm. Tuy nhiên, nếu chỉ thay đổi trọng lượng quản trị cho một
kết nối cụ thể thì khó có thể tạo nên sự mềm dẻo cần thiết. IGP metric thường được
xuất phát từ băng thông. Trong OSPF, metric ngầm định của kết nối là băng thông
tham chiếu ngầm định (có thể được thay đổi bằng lệnh auto-cost reference-bandwidth)
tham chiếu/ băng thông kết nối (reference-bandwidth/link bandwidth). Băng thông
là 10 8, nghĩa là bất kỳ một kết nối nào 100 Mbps hoặc hơn có chi phí là 1. Ta cũng có
thể thiết lập trên một kết nối riêng (individual link) với lệnh ip ospf cost cost. Trong
IS-IS, chi phí kết nối ngầm định là 10. Có thể thay đổi chi phí này bằng lệnh isis
metric. OSPF và IS-IS thường dùng metric để mã hóa vài số đo của băng thông kết
nối. Điều này chỉ tốt cho các mạng chỉ truyền dữ liệu. Cơ chế kiểm soát nghẽn mạng
của TCP, khi liên kết với hàng đợi DiffServ, có thể giúp cải tiến băng thông.
Nhưng với thoại thì sao? Thoại (voice) đòi hỏi ít hơn về băng thông và độ trễ lớn
hơn. Nhưng không có cách thông báo độ trễ trên một kết nối? Hay nó ở đâu? Có thể
vận dụng metric của kết nối IGP để đại diện cho độ trễ hơn là băng thông. Nhưng điều
này có thể làm giảm khả năng định tuyến luồng dữ liệu một cách chính xác làm ảnh
hưởng nghiêm trọng tới mạng.
Xem xét cấu trúc mạng trong hình sau:
Ba đường đi giữa RtrA và RtrZ là: P1 là một đường vệ tinh OC3 với 150 Mbps băng
thông có sẵn và độ trễ cao. P2 là đường viễn thông OC3 với độ trễ thấp. Tuy nhiên,
đường viễn thông OC3 không có băng thông có sẵn – tất cả băng thông được dành
riêng. P3 là một đường viễn thông DS3 với 45 Mbps băng thông có sẵn và độ trễ thấp.
Vì độ trễ thấp (low-delay), đường đi băng thông lớn (high-bandwidth path) đầy, ta có
thể lừa các độ ưu tiên và điều khiển lưu lượng để đường viễn thông OC3 không bị
đầy, nhưng không được đề cập trong ví dụ này. Nó dẫn đến hai câu hỏi đơn giản: ta
chọn đường đi băng thông cao, độ trễ cao hay đường đi băng thông ít, độ trễ thấp? Trả
lời: “Tùy trường hợp”. Dữ liệu thì vẫn ổn với những đường đi độ trễ cao, thoại thì yêu
cầu băng thông ít hơn.
MPLS TE cho ta khả năng quan tâm đến cả băng thông và độ trễ của kết nối, vì thế ta
có thể xem xét riêng biệt chi phí của các đường hầm thoại và dữ liệu. Để thực hiện
điều này, phải thực hiện các bước sau:
Bước 1: Cấu hình độ trễ của kết nối bằng lệnh mpls traffic-eng administrative-weight
0-4294967295
Bước 2: thay đổi tiến trình quyết định đường hầm (tunnel-decision) trên các đường
hầm dữ liệu để dùng IGP metric hơn là dùng TE metric, vì tính đến chi phí kết nối.
Bạn có thể thực hiện điều này bằng lệnh toàn cục mpls traffic-eng path-selection
metric igp, hay lệnh trên đường hầm tunnel mpls traffic-eng path-selection metric igp.
Không có đơn vị nào cố hữu được kết hợp với cấu hình của trọng lượng quản trị. Nếu
bạn cấu hình mpls traffic-eng administrative-weight 10, giá trị 10 có thể được giải
thích theo nhiều cách. 10 có phải là độ trì hoãn chuyển tải tính bằng micro giây? Phần
trăm giây? Mili giây? Giây? Tuy nhiên nên tính độ trễ theo mili giây (ms) vì:
TE metric là một lượng 32 bit, nghĩa là có thể tính độ trễ trong khoảng 0 –
4.294.967.295 ms (tương đương 7 tuần, một độ trễ lớn chưa từng thấy). Ứng dụng
VoIP tính độ trễ bằng ms nên thật sự không cần xem xét độ trễ kết nối bằng bất cứ
một đơn vị nào khác. Thật khó đánh giá cụ thể độ trễ đầu cuối (end-to-end latency)
trên một mạch (circuit) cụ thể một cách chi tiết với một đơn vị khác ms.
Có ba cách đánh giá độ trễ. Xét theo tính phức tạp tăng dần như sau:
- Ping từ một router này tới một router khác.
- Chỉ định độ trễ mong muốn dựa trên khoảng cách định tuyến (router-miles).
- Dùng SAA để chỉ định độ trễ.
CSPF Knobs
Có 3 mảng lớn về tính toán tuyến cần quan tâm là:
- Cấu hình tùy chọn đường đi ở đầu đường hầm
- Bộ định thời CSPF biến thiên (Various CSPF timers)
- Các lệnh hiển thị CSPF thay đổi (Various CSPF show commands)
Cấu hình tùy chọn đường đi (path-option)
Ví dụ : lặp lại cấu hình đường hầm cơ bản interface Tunnel0
ip unnumbered Loopback0
tunnel mode mpls traffic-eng
tunnel destination destination-ip
tunnel mpls traffic-eng path-option 10 dynamic
path-option chỉ định một hoặc nhiều đường đi có thể tạo đường hầm. Hoàn tất cú pháp
lệnh như sau :
tunnel mpls traffic-eng path-option preference [dynamic | explicit [identifier
identifier | name name]] {lockdown}
Cú pháp lệnh của tunnel mpls traffic-eng path-option như sau:
Lệnh Mô tả
tunnel mpls Xác định một tùy chọn đường đi (path-option) cho đường hầm,
traffic-eng path- tham biến là một giá trị từ 1 đến 1000.
option
preference
dynamic Cho router biết nó tính toán đường đi tốt nhất phù hợp với cấu
hình các ràng buộc của đường hầm, như băng thông và các affinity
bits.
explicit Cho phép chỉ định một đường đi tường minh (explicit path) đi qua
mạng mà đường hầm được thiết lập. Đường tường minh này phải
thõa các ràng buộc cấu hình, và tunnel headend sẽ kiểm tra đường
tường minh để chắc rằng các ràng buộc được thõa mãn trước khi
truyền tín hiệu trên đường đi.
identifier Khi các đường tường minh được tạo ra, được định danh hoặc chỉ
identifier | name định. Tùy chọn này chỉ định tùy chọn đường đi nào cần quan tâm.
name
Lệnh cấu hình thường dùng là tunnel mpls traffic-eng path-option 10 dynamic.
Tạo một đường đi tường minh (Explicit Path)
Sử dụng tùy chọn nhiều đường đi (Multiple path option)
Tính lại đường hầm (tunnel reoptimization)
Điều gì xảy ra nếu trong lúc một đường hầm đang hoạt động, một đường đi khác tốt
hơn xuất hiện.
Lockdown
Có thể có một vài đường hầm không cần reoptimize. Có thể thực hiện điều này trong
phần cơ sở của đường hầm sử dụng tùy chọn lockdown trong các lệnh tùy chọn đường
đi:
tunnel mpls traffic-eng path-option preference {dynamic | explicit name name |
identifier id>} {lockdown}
Ví dụ: mỗi kết nối bắt đầu với 100 Mbps băng thông có sẵn
Tại thời điểm hai đường hầm được thiết lập, kết nối bên dưới giữa RtrC và RtrD bị
down. Một lúc sau hoạt động trở lại. Một đường hầm 60 Mbps từ RtrA đến RtrE qua
kết nối trên C → D và một đường hầm RtrB đến RtrE đi trên cùng kết nối như hình
sau:
Khi reoptimize xảy ra trên các đường hầm này, giả sử xem xét trên đường hầm B →
E, kết quả là đường hầm B → E được reoptimize.
Nhưng nếu không muốn đường hầm B → E reoptimize thì cấu hình đường hầm đó
với tunnel mpls traffic-eng path-option … lockdown, nó sẽ không reoptimize và
chuyển sang kết nối khác. Tuy nhiên, nó sẽ đổ về 1 kết nối C → D nếu kết nối C → D
phía trên bị đứt.
Giao thức dành riêng tài nguyên (RSVP- Resource Reservation Protocol)
Sau khi một đường đi được tính toán theo CSPF, đường đi đó được báo hiệu qua
mạng nhằm:
- Thiết lập một chuỗi các nhãn theo từng chặn (hop-by-hop chain of labels) đại
diện cho đường đi.
- Để sử dụng bất kỳ tài nguyên nào có thể dùng được (băng thông) trên đường
đi.
Việc báo hiệu hoàn thành bằng RSVP, cùng với RSVP mở rộng cho MPLS TE. RSVP
được xác định RFC 2205, có một số mở rộng trong RFC 2210. MPLS TE mở rộng
thêm RSVP được xác định trong RFC 3209.
Tổng quan về RSVP
RSVP là một cơ chế báo hiệu dùng để dành riêng tài nguyên trên một mạng. RSVP
không phải là một giao thức định tuyến. Việc quyết định tuyến do IGP (gồm cả các
mở rộng TE) và CSPF.
Trong MPLS TE, RSVP dự trữ băng thông tại mặt phẳng điều khiển (control-); không
Công việc của RSVP là báo hiệu và duy trì tài nguyên dành riêng qua một mạng.
cho các mục đích khác (như VoIP hay DLSW+reservations), RSVP có thể được dùng
có chính sách lưu lượng trên mặt phẳng chuyển tiếp (forwarding-plane). Khi sử dụng
để dành riêng không gian hàng đợi công bằng có trọng số (WFQ – Weighted Fair
Queuing) hay xây dựng các ATM SVC.
Ba chức năng cơ bản của RSVP có :
- Thiết lập và duy trì đường đi (Path setup and maintenance).
- Hủy đường đi (Path teardown).
- Báo lỗi (Error signalling).
RSVP là một soft-state protocol. Nghĩa là cần tái báo hiệu trên mạng để làm tươi định
kỳ cho nó. Với RSVP, một yêu cầu bị hủy nếu nó được chỉ định xóa khỏi mạng bằng
RSVP hay hết thời gian dành riêng (reservation times out).
Chín loại thông điệp RSVP khác nhau được định nghĩa như sau:
Loại thông điệp Mô tả
Path Dùng để thiết lập và duy trì sự dành riêng
Resv Gửi hồi đáp cho các thông điệp Path để thiết lập và duy trì sự dành
riêng
PathTear Tương tự các thông điệp Path, nhưng được dùng để hủy sự dành
riêng ra khỏi mạng.
ResvTear Tương tự như các thông điệp Resv, nhưng dùng để hủy sự dành
riêng ra khỏi mạng.
PathErr Được gửi bởi phía nhận thông thiệp Path báo rằng phát hiện ra một
lỗi trong thông điệp đó.
ResvErr Được gửi bởi phía nhận thông thiệp Resv báo rằng phát hiện ra một
lỗi trong thông điệp đó.
ResvConf Tùy chọn gửi lại cho phía gửi thông điệp Resv để báo rằng tài
nguyên dành riêng đưa ra đã được thiết lập.
ResvTearConf Một thông điệp riêng của Cisco tương tự như ResvConf. Báo rằng
sự dành riêng đã bị hủy khỏi mạng.
Hello Một sự mở rộng được xác định trong RFC 3209 cho phép kết nối
cục bộ (link-local) được duy trì giữa hai láng giềng RSVP kết nối
trực tiếp.
Thiết lập đường đi (Path Setup)
Sau khi đầu đường hầm (tunnel headend) hoàn thành CSPF cho một đường hầm cụ
thể, nó gửi một thông điệp Path đến nút kế tiếp (next-hop) dọc theo đường đi đã tính
toán đến đích. LSR gửi thông điệp Path được gọi là LSR ngược dòng (upstream
router), và LSR nhận thông điệp được gọi là LSR xuôi dòng (down-stream router) hay
trạm trước đó ( phop – previous hop).
Sau khi LSR xuôi dòng nhận một thông điệp Path, nó kiểm tra định dạng của thông
điệp, sau đó kiểm tra lượng băng thông mà thông điệp yêu cầu. Tiến trình này được
gọi là điều khiển nhấp nhận (admission control).
Nếu việc kiểm tra này thành công và thông điệp Path được phép dành riêng băng
thông như nó yêu cầu, LSR xuôi dòng tạo một thông điệp Path mới và gửi đến nút kế
trong đối tượng tuyến tường minh (ERO – Explicit Route Object). Thông điệp Path
tiếp tục được chuyền đi đến khi nào chúng đến được nút cuối cùng trong ERO – đuôi
đường hầm MPLS TE (tunnel tail).
Đuôi đường hầm thực hiện điều khiển chấp nhận trên thông điệp Path giống như các
LSR xuôi dòng khác. Khi nó nhận ra rằng nó là đích đến của thông điệp Path nó trả
lời lại bằng thông điệp Resv. Resv đóng vai trò như là một ACK báo về cho LSR
ngược dòng. Resv chứa một thông báo rằng thõa mãn sự dành riêng đến cuối đường
hầm và thông tin nhãn đến (incoming label) cho LSR ngược dòng sử dụng để gửi các
gói dọc theo TE LSP đến đích. Sự trao đổi các thông điệp RSVP Path và Resv trong
suốt quá trình thiết lập LSP như sau:
Giả sử rằng R1 thực hiện CSPF xong và biết rằng nó muốn dành riêng băng thông dọc
theo đường R1 → R2 → R3 → R5 → R6 → R7:
(1) R1 gửi một thông điệp Path đến R2. R2 nhận thông điệp Path , kiểm tra cú
pháp thông điệp và kiểm ra bằng bộ quản lý kết nối TE (TE Link Manager) để
chắc rằng băng thông mà R1 yêu cầu hiện đang có sẵn. Nếu xảy ra lỗi R2 gửi
thông điệp Error lại cho R1. Giả sử mọi thứ đều tốt thì chuyển sang bước 2.
(2) R2 gửi thông điệp Path đến R3. R3 thực hiện kiểm tra giống R2.
(3) R3 gửi thông điệp Path đến R4. R4 thực hiện kiểm tra giống R3.
(4) R4 gửi thông điệp Path đến R5. R5 thực hiện kiểm tra giống R4.
(5) R5 gửi thông điệp Path đến R6. R6 thực hiện kiểm tra giống R5.
(6) R7, đuôi của đường hầm, gửi một thông điệp Resv đến R6. Resv chỉ định nhãn
R7 muốn thấy trên gói đến; vì R7 là đuôi nên nó gửi implicit-null.
(7) R6 gửi một thông điệp Resv cho R5 và chỉ định nó muốn thấy nhãn đến là 42
cho đường hầm này. Nghĩa là khi R6 nhận nhãn 42, nó thực hiện hủy nhãn (vì
implicit-null) và gửi thông điệp về cho R7.
(8) R5 gửi thông điệp Resv cho R3, báo hiệu nhãn 10921. Khi R5 nhận một gói
với nhãn 10921, nó đổi (swap) nhãn đó thành nhãn 42 và gửi gói đến R6.
(9) R3 gửi một thông điệp Resv cho R2, báo hiệu nhãn 21.
(10) R2 gửi một thông điệp Resv cho R1, báo hiệu nhãn 18.
Lúc này, R1 nhận một thông điệp Resv cho đường hầm đến R7 và nó biết nhãn ra
(outgoing label) nào được sử dụng. Giao tiếp đường hầm trên R1 trở thành up/up
(trước thời điểm này là up/down).
Duy trì đường đi (Path Maintenance)
Thoạt nhìn, việc duy trì đường đi giống như thiết lập đường đi. Mỗi 30 giây đầu
đường hầm gửi một thông điệp Path đến láng giềng xuôi dòng của nó. Nếu một LSR
gửi đi một dãy 4 thông điệp Path và không thấy Resv, nó nghĩ rằng sự dành riêng bị
mất và gửi một thông điệp ngược dòng (message upstream) báo rằng sự dành riêng bị
mất.
Các thông điệp Path và Resv được gửi độc lập và bất đồng bộ giữa các láng giềng với
nhau. Mỗi 30 giây, R1 gửi thông điệp Path cho một sự dành riêng của nó tới R2. Và
mỗi 30 s, R2 gửi một thông điệp Resv đến R1 với cùng sự dành riêng đó. Tuy nhiên
hai thông điệp này không liên hệ nhau. Thông điệp Resv được dùng để làm tươi
(refresh) một sự dành riêng dang tồn tại chứ không phải trả lời cho thông điệp Path.
Hủy đường đi (Path Teardown)
Nếu một nút (thường là đầu đường hầm) quyết định một sự dành riêng không còn cần
thiết trong mạng, nó gửi một thông điệp PathTear dọc theo đường thông điệp Path đã
đi và một ResvTear dọc theo đường của Resv.
Thông điệp ResvTear được gửi để hồi đáp cho PathTear báo hiệu đuôi đường hầm.
PathTear và ResvTear cũng được gửi để trả lời một điều kiện lỗi trong mạng.
Không giống thông điệp làm tươi, PathTear không cần đi đến hết downstream trước
khi nhận được kết quả. Trong hình trên, nếu R1 gửi PathTear đến R2, ngay lập tức R2
trả lời bằng một ResvTear, sau đó gửi PathTear xuôi dòng của nó.
Báo lỗi
Thỉnh thoảng, tín hiệu RSVP có thể bị lỗi. Các lỗi này được báo hiệu bằng thông điệp
PathErr hay ResvErr. Thông điệp lỗi được gửi ngược dòng về phía nguồn của lỗi; một
PathErr được gửi ngược dòng từ một nút xuôi dòng và một ResvErr được gửi xuôi
dòng từ một nút ngược dòng.
Các gói RSVP
Định dạng gói RSVP khá đơn giản. Mỗi thông điệp RSVP gồm có một tiêu đề chung
(common header), theo sau là một hoặc nhiều đối tượng. Số lượng đối tượng phụ
thuộc vào thông điệp đang cố hoàn thành.
RSVP common header
và With Frame Relay Label Range. Các số được gán là 1, 2, và 3. Nếu chỉ có C-Type
LABEL_REQUEST có 3 C-Types: Without Label Range, With ATM Label Range,
= 1 thì không đủ để xác định duy nhất nội dung một thông điệp; Bạn cần phải xem xét
cả lớp và chỉ số C-Type.
Một thông điệp RSVP chứa một hoặc nhiều đối tượng. Số đối tượng trong thông điệp
phụ thuộc vào định nghĩa của thông điệp.
Các lớp và C-Types được dùng trong RSVP-TE của Cisco:
Lớp đối tượng C-Type Giá trị C_type
SESSION LSP Tunnel IPv4 4
TIME_VALUES Refresh Period 1
ERROR_SPEC IPv4 Error Spec 1
SCOPE List of IPv4 Source Addresses 1
STYLE Flags and Option Vector 1
FLOWSPEC Intserv Flowspec 2
FILTER_SPEC LSP Tunnel IPv4 7
SENDER_TEMPLATE LSP Tunnel IPv4 7
SENDER_TSPEC Intserv Sender Tspec 2
ADSPEC Intserv Adspec 2
RESV_CONFIRM IPv4 RevConfirm 1
RSVP_LABEL Label 1
LABEL_REQUEST Without Label Range 1
EXPLICIT_ROUTE Explicit Route 1
RECORD_ROUTE Record Route 1
HELLO Request 1
HELLO Acknowledgment 2
SESSION_ATTRIBUTE LSP Tunnel 7
Lớp SESSION
Đối tượng SESSION được xác định trong RFC 2205. RFC 3209 định nghĩa C-Type 7
(LSP_TUNNEL_IPV4), có 4 trường được mô tả trong bảng 4-25.
RFC 2205 định nghĩa đối tượng TIME_VALUES như là chu kỳ làm tươi (refresh
period) (tính bằng mili giây - ms để gửi thông điệp Path hay Resv.
Lớp ERROR_SPEC
RFC 2205 định nghĩa đối tượng ERROR_SPEC và cũng xác định các mã lỗi từ 00
đến 23. RFC 3209 định nghĩa mã lỗi 24, đặc tả lỗi cho MPLS TE. Trong MPLS TE,
rất dễ gặp mã lỗi 00 ( Sự xác nhận (Confirmation) — gửi trong phúc đáp cho một
thông điệp chứa đối tượng CONFIRMATION) hay mã lỗi 24.
Khi mã lỗi (error code) là 00, giá trị lỗi (error value) cũng là 00.
Khi mã lỗi là 24 thì có thể có 10 giá trị. Cũng có một mã lỗi 25 nhưng chỉ thấy khi sử
dụng tái định tuyến nhanh (Fast Reroute).
Thông thường trường Flags bằng 0 khi sử dụng MPLS TE.
Lớp SCOPE
RFC 2205 xác định lớp SCOPE. Lớp SCOPE thực hiện kiểu dành riêng wildcard
(wildcard reservation style)
Lớp STYLE
Lớp FLOWSPEC được xác định trong RFC 2210. Cisco IOS Software yêu cầu dịch
vụ tải được điều khiển (Controlled-Load) khi dành riêng cho một đường hầm TE.
Định dạng FLOWSPEC phức tạp và có nhiều thứ trong đó mà RSVP cho MPLS TE
không sử dụng.
FLOWSPEC được dùng trong các thông điệp Resv - Resv, ResvTear, ResvErr,
ResvConf, ResvTearConf. MPLS TE sử dụng phần tốc độ trong bình của
FLOWSPEC để chỉ định băng thông mong muốn, tính bằng byte (không phải bit). Vì
thế nếu bạn cấu hình với tunnel mpls traffic-eng 100000 để yêu cầu 100 Mbps băng
thông, nó phát tín hiệu 12,500,000 bytes trong một giây (100 Mb = 100,000 Kb =
100,000,000 bits = 12,500,000 bytes).
Lớp FILTER_SPEC
Lớp FILTER_SPEC được xác định trong RFC 2205. RFC 3209 thêm vào C-Type 7,
LSP Tunnel IPv4. Trường IPv4 Tunnel Sender Address cho biết router ID của đầu
đường hầm TE (TE tunnel headend), và trường LSP ID cho biết tunnel's LSP ID. LSP
ID khi các đặc tính của đường hầm (tunnel's properties) thay đổi (băng thông, đường
đi thay đổi). FILTER_SPEC chỉ dùng trong các thông điệp liên quan Resv (ResvTear,
ResvErr, ...).
Lớp SENDER_TEMPLATE
Lớp SENDER_TEMPLATE được xác định trong RFC 2205, và RFC 3209 xác định
C-Type 7, LSP Tunnel IPv4. Có cùng định dạng và mục đích như lớp FILTER_SPEC
nhưng khác hướng.
Lớp SENDER_TSPEC
Thường chỉ thấy lớp SENDER_TSPEC trong thông điệp Path. Giống như
FLOWSPEC, MPLS TE chỉ quan tâm tới phần tốc độ trung bình (average rate
section).
Lớp ADSPEC
Xác định trong RFC 2210. Giống SENDER_TSPEC, ADSPEC chỉ dùng trong các
thông điệp Path.
Lớp RESV_CONFIRM
RESV_CONFIRM được xác định trong RFC 2205. Nó gửi tín hiệu yêu cầu một chấp
nhận (confirmation); nó xuất hiện trong các thông điệp Resv và ResvTear. Lớp
RESV_CONFIRM thỉnh thoảng xem như CONFIRM.
Lớp RSVP_LABEL
Lớp RSVP_LABEL (thỉnh thoảng được gọi là LABEL) được xác định trong RFC
3209. kích thước 32-bit, mọi đối tượng RSVP phải là bội số của 4 byte, nhưng trong
chế độ khung (frame mode), nó mang nhãn 20-bit dùng cho một đường hầm cụ thể
(particular tunnel). Lớp RSVP_LABEL chỉ có trong thông điệp Resv.
Lớp LABEL_REQUEST
Đối tượng LABEL_REQUEST yêu cầu một nhãn. Một đối tượng RSVP_LABEL trả
lời cho nó. Đối tượng LABEL_REQUEST chỉ có trong thông điệp Path. Nó chứa,
trong 16 bit cao, Layer 3 Protocol Identifier (L3PID) được mang trong nhãn. Cisco
IOS luôn báo hiệu 0x800 (IP); sự tồn tại của L3PID mang tính lịch sử. Sự tồn tại của
đối tượng LABEL_REQUEST đủ để báo cho nút xuôi dòng (downstream node) là nó
tiếp nhận nhãn đưa ra.
Lớp EXPLICIT_ROUTE
Đối tượng EXPLICIT_ROUTE đường đi cho đường hầm MPLS TE, thường được gọi
là ERO, và được xác định trong RFC 3209. ERO chỉ có trong thông điệp Path.
ERO là một tập các đối tượng con (8-byte). Đối tượng con IPv4 Prefix hiện tại chỉ
được hỗ trợ bởi Cisco IOS.
Các trường trong ERO:
Trường Nội dung
L(Loose) Một bit để xác định là một trạm ràng buộc chặt (strict) hay lỏng
(loose)
Type Loại đối tượng. IPv4 loại 1. Còn có loại khác như: IPv6, AS
Length Chiều dài đối tương (tính bằng byte)
IPv4 Address Địa chỉ IP kế tiếp trong ERO
Prefix Chiều dài prefix của địa chỉ IP
Length
Reserved Dành riêng (chưa dùng)
Lớp RECORD_ROUTE
Đối tượng RECORD_ROUTE được mô tả trong RFC 3209. Có hai đối tượng con
RECORD_ROUTE khác nhau; một để lưu địa chỉ IP ở mỗi trạm (hop) , và một để lưu
nhãn (label) được dùng ở mỗi trạm.
Các trường trong đối tượng RECORD_ROUTE:
được mã hóa giống nhau. Source Instance và Destination Instance để lưu trạng thái
Lớp HELLO có hai C-Types: Hello Request (Type 1) và Hello ACK (Type 2). Cả hai
láng giềng RSVP (RSVP neighbor state); xem thông điệp HELLO như là báo hiệu tồn
tại mức RSVP (RSVP-level keepalives).
Lớp SESSION_ATTRIBUTE
Băng thông được chỉ định trước khi bất kỳ băng thông nào được được dành riêng từ
mạng. Nếu R1 truyền tính hiệu yêu cầu 35 Mb đến mạng, nó đi trên đường R1 → R2
→ R5. Còn lại băng thông có sẵn trên R1 → R2 10 Mb và trên R2 → R5 65 Mb. Điều
gì xảy ra nếu R1 muốn tăng kích thước băng thông dành riêng của nó lên 80 Mb?
Băng thông này phải đi từ đường dưới vì không có cách nào lấy được băng thông
dành riêng 80 Mb trên đường R1 → R2 → R5. Còn lại băng thông có sẵn 20 Mb trên
mỗi kết nối của đường dưới. Trong một khoảng thời gian ngắn, R1 dành riêng băng
thông qua cả hai đường và vì thế dành riêng tổng cộng là 115 Mb (35 Mb đường trên
và 80 Mb qua đường dưới). Tuy nhiên, sự dành riêng 35 Mb sớm được giải phóng sau
khi sự dành riêng 80 Mb được tạo ra. Nguyên tắc của make-before-break làm cho đầu
đường hầm (tunnel headend) không giải phóng sự dành riêng cũ đến khi có sự dành
riêng mới thay thế giúp giảm tối thiểu việc mất dữ liệu.
Kiểu dành riêng chia sẻ tường minh (Shared Explicit Reservation Style)
2 Gửi một yêu cầu dành riêng cho Kiểm tra sự dành riêng và thấy rằng
{SA=1.1.1.1, LSP ID=2, EA=5.5.5.5, sự dành riêng này giống với sự dành
TID=8, XTID=0} dọc đường đi riêng đã có ngoại trừ LSP ID. Cho
R1→R3→R4→R2→R5, yêu cầu phép sự dành riêng mới đụng độ với
băng thông 80 Mb. Gọi là Res2. băng thông dành riêng đã có và định
phần cho đường hầm này là 80 – 35
= 45 Mbps nhiều hơn băng thông
trên kết nối R2 → R5. R2 → R5
dụng.
Theo cách này cả Res1 và Res2 được phép cùng tồn tại đến khi Res1 bị xóa khỏi
mạng. Sau khi Res2 được chia xẻ băng thông với Res1, thì Res1 sẽ không cố gắng sử
dụng băng thông cùng thời điểm với Res2.
Cơ chế làm tươi
RSVP là một giao thức soft-state, sự dành riêng được làm tươi định kỳ. Sự dành riêng
được gửi bằng thông điệp Path và Resv. Việc làm tươi để kiểm tra xem sự dành riêng
đang tồn tại với five-tuple có phù lợp với yêu cầu trong thông điệp Path hay Resv
không.
Hai điểm chính cần nắm khi nói đến cơ chế làm tươi là bộ định thời làm tươi được
kích hoạt và thông điệp Path và Resv được gửi độc lập giữa hai bộ định tuyến. Các
thông điệp Path và Resv được gửi mỗi 30 giây. Tuy nhiên không thật sự là mỗi 30s;
chúng gửi trên một bộ định thời 30s nhưng kích hoạt 50 %. Vì thế sự dành riêng đưa
ra có thông điệp Path gửi để làm tươi mỗi 15 đến 45 giây. Tương tự với thông điệp
Resv. Việc tính toán làm tươi được xác định trong RFC 2205. Thông thường một láng
đối tượng TIME_VALUES trong thông điệp Path và Resv. Mỗi bộ định tuyến cũng
giềng gửi khoảng thời gian làm tươi R (Refresh interval) tới láng giềng của nó trong
biết được bao nhiêu thông điệp sẽ được bỏ qua trước khi tuyên bố sự dành riêng mất
đi (gọi là K). Các láng giềng tính toán thời gian giữ (holdtime) thông điệp này bằng
công thức:
L >= (K + 0,5) * 1,5 * R
Hiện tại, R = 30s và K = 3. Suy ra L ít nhất là 157,5 s. Nghĩa là bộ định tuyến có thể
đợi 157,5 s trước khi tearing down một láng giềng. Hình dưới cho thấy thông điệp
Path và Resv được gửi một cách độc lập và định thời làm tươi của thông điệp Path là
00:00 và 00:45, và của thông điệp Resv là 00:15 và 00:30.
Các thông điệp được gửi khi nào? Đến đâu? Và cho ai?
Các loại thông điệp RSVP:
Địa
Thông điệp
chỉ Cảnh báo
đích
Chức năng Hướng
router
Path Gửi tín hiệu yêu cầu tài Xuôi dòng Đuôi (tail) Có
nguyên lên mạng.
Resv Trả lời thông điệp Path thành Ngược dòng Trạm kế Không
công. (next hop)
Gửi về đầu đường hầm khi có
lỗi ở thông điệp Path.
PathErr Ngược dòng Trạm kế Không
Path.
PathTear Gửi về đuôi đường hầm để Xuôi dòng Đuôi Có
hủy một sự dành riêng đang
tồn tại.
ResvTear Gửi về đầu đường hầm để hủy Ngược dòng Trạm kế Không
một sự dành riêng dang tồn
tại.
ResvConf Gửi phúc đáp cho Resv hay Xuôi dòng Đuôi Có
thông điệp.
ResvTear yêu cầu xác nhận
ResvTearConf Gửi hồi đáp cho một Xuôi dòng Trạm kế Không
ResvTear bao gồm một thông
điệp Confirm.
Hello Gửi tới một láng giềng RSVP Ngược dòng Trạm kế Không
trên một kết nối trực tiếp. / Xuôi dòng
Chú ý:
RFC 2113 giới thiệu một tùy chọn IP được gọi là tùy chọn cảnh báo router (RA –
Router Alert). Hiện tại RA được sử dụng trong cả IGMP và RSVP. Nó cho phép bộ
định tuyến kiểm tra các gói được truyền và cho bộ định tuyến tùy chọn sửa đổi gói đó
trước khi chuyển tiếp đi. Mọi thông điệp có thiết lập tùy chọn RA được gửi theo
hướng xuôi dòng. Mọi thông điệp có thiết lập tùy chọn RA có địa chỉ IP đích là đuôi
đường hầm. Mọi thông điệp có thiết lập tùy chọn RA hay đặt trạm kế (xuôi dòng hoặc
ngược dòng) địa chỉ giao tiếp là địa chỉ đích trên gói.
Thực hiện như thế cho phép bộ định tuyến phát hiện ra các bộ định tuyến không hỗ
trợ RSVP (non-RSVP), vì không thể xây dựng một đường hầm TE qua một bộ định
maxsize Số lượng tối đa các thông điệp được vào hàng đợi để truyền 500
period Khoảng thời gian mà một loạt thông điệp được truyền 1
Chuyển tiếp lưu lượng xuống đường hầm
Phần này ta sẽ khảo sát ba phương pháp chuyển tiếp lưu lượng mpls xuống đường
hầm. Một là dùng các tuyến tĩnh (static routes). Hai là dùng định tuyến dựa trên chính
sách (policy base routing). Ba là định tuyến tự động (Autoroute).
Sử dụng định tuyến tĩnh (static route)
Cách đơn giản nhất để định tuyến một luồng lưu lượng xuống một giao tiếp đường
hầm là sử dụng định tuyến tĩnh (static route). Nó hoạt động giống như định tuyến IP
bình thường.
Ví dụ:
ip route 10.0.0.0 255.0.0.0 Tunnel0
ip route 10.0.0.0 255.0.0.0 POS0/0
Sử dụng định tuyến tĩnh đệ quy :
ip route 192.168.1.1 255.255.255.255 Tunnel0
ip route 10.0.0.0 255.0.0.0 192.168.1.1
(với: 192.168.1.1 : địa chỉ cuối đường hầm)
Định tuyến dựa trên chính sách (policy base routing)
PBR (Policy Base Routing) được phép sử dụng ánh xạ tuyến theo chính sách áp dụng
cho giao tiếp ngõ vào. Với PBR bạn có thể gửi loại lưu lượng cụ thể xuống một giao
tiếp đường hầm mà không cần sửa đổi bảng định tuyến của bộ định tuyến.
Ví dụ:
Có hai loại lưu lượng gửi đến Dst – thoại và dữ liệu. Nếu chỉ muốn lưu lượng thoại
qua Tunnel0, bạn có thể thực hiện bằng PBR. Thực hiện cấu hình trên bộ định tuyến
A như sau :
interface Ethernet0/0
ip policy route-map foo
route-map foo
match ip address 101
set interface Tunnel0
access-list 101 permit ip any host 5.5.5.5
Ở đây ta quan tâm đến bảng định tuyến của bộ định tuyến A sau khi sử dụng định
tuyến tĩnh, định tuyến dựa trên chính sách và định tuyến tự động trong mạng. Các kết
nối đều có chi phí là 10.
Bảng định tuyến ban đầu của A:
Trạm đích Trạm kế Chi phí
A Chính nó 0
B B 10
C C 10
D C 20
E B 20
F B 30
G B 30
H B 40
I B 40
Định tuyến tĩnh: Ta cấu hình cho lưu lượng đến G
ip route router G's RID 255.255.255.255 Tunnel0
Bảng định tuyến của A như sau:
Trạm đích Trạm kế Chi phí
A Chính nó 0
B B 10
C C 10
D C 20
E B 20
F B 30
G Tunnel0 30
H B 40
I B 40
Định tuyến dựa trên chính sách
Không làm thay đổi bảng định tuyến vì quyết định chuyển tiếp gói dựa trên chính
sách được cấu hình và giao tiếp, không dựa trên bảng định tuyến.