Bài 6-3: MULTIPROTOCOL LABEL SWITCHING (MPLS)
Tổng quan về MPLS:
Định tuyến IP truyền thống có nhiều giới hạn , từ vấn đề khả năng mở rộng cho đến việc quản lí lưu lượng và tích hợp các mạng lớp 2 đã tồn tại trong mạng của các nhà cung cấp dịch vụ lớn . Nhưng với sự phát triển nhanh chóng của Internet và hầu hết trong các môi trường đều chọn IP là giao thức lớp 3 thì những nhược điểm của IP truyền thống ngày càng bộc lộ rõ . MPLS ra đời để liên kết các ưu điểm của định tuyến lớp 3 connectionless và chuyển tiếp lớp 2 connection-oriented. Trong cấu trúc của MPLS chia thành 2 mặt phẳng riêng biệt:
Mặt phằng điều khiển (control plane): tại đây các giao thức định tuyến lớp 3 thiết lập các đường đi được sử dụng cho việc chuyển tiếp gói tin . Mặt phẳng điều khiển đáp ứng cho việc tạo ra và duy trì thông tin chuyển tiếp nhãn giữa các router chạy MPLS (còn gọi là binding).
Mặt phằng dữ liệu (data plane): sử dụng cơ sở dữ liệu chuyển tiếp nhãn được duy trì bởi các router chạy MPLS để thức hiện việc chuyển tiếp các gói tin dựa trên thông tin nhãn. Mỗi MPLS node chạy một hoặc nhiều giao thức định tuyến IP (hoặc có thể sử dụng định tuyến tĩnh ) để trao đổi thông tin định tuyến với MPLS node khác trong mạng. Mỗi node MPLS (bao gồm cả ATM switch) là một router chạy IP trong mặt phẳng điều khiển. Trong MPLS , bảng định tuyến IP được sử dụng để quyết định việc trao đổi nhãn , tại đó các node MPLS cận kề trao đổi nhãn với nhau theo tứng subnet riêng biệt có trong bảng định tuyến. Việc trao đổi nhãn này đươc thực hiện bằng 2 giao thức là TDP và LDP . TDP (tag distribution protocol) là sản phẩm của Cisco, LDP (label distribution protocol) là phiên bản của TDP nhưng do IETF tạo nên. Tiến trình điều khiển định tuyến IP MPLS sử dụng việc trao đổi nhãn với các node MPLS để xây dựng thành bảng chuyển tiếp nhãn (Label Forwarding Table). Bảng này là cơ sở dữ liệu của mặt phẳng dữ liệu được sử dụng để chuyển tiếp các gói tin có gắn nhãn qua mạng MPLS.
Các thuật ngữ dùng trong MPLS :
LSR : Label Switching Router : là router hoặc switch thực hiện các thủ tục phân phối nhãn và có thể chuyển tiếp các gói tin dựa trên thông tin nhãn . Chức năng cơ bản của thủ tục phân phối nhãn là cho phép một LSR phân phối nhãn của nó đến LSR khác trong mạng MPLS.
Edge – LSR là router thực hiện hoặc là gắn nhãn (push) hoặc là gỡ nhãn ra (hành động này gọi là pop ) ở biên của mạng MPLS.
Những LSR mà có láng giềng không phải là MPLS node thì được xem như là Edge-LSR. Nếu LSR có bất kì interface nào nối qua mạng MPLS đến một ATM –LSR thì nó được gọi là ATM edge-LSR. Edge-LSR sử dụng bảng chuyển tiếp IP truyền thống , cộng thêm thông tin nhãn để gắn nhãn đến các gói tin IP hoặc để gỡ bỏ nhãn từ các gói tin có gắn nhãn trước khi gửi chúng đến các node không chạy MPLS.
ATM –LSR : chạy giao thức MPLS trong mặt phẳng điều khiển để thiết lập các kênh ảo ATM , thực hiện chuyển tiếp các gói tin có gắn nhãn như là các tế bào ATM.
ATM edge-LSR : là router có thể nhận các gói tin có gắn nhãn hoặc không có gắn nhãn, phân đoạn các gói tin đó thành các tế bào và chuyển tiếp các tế bào đến ATM-LSR kế tiếp . Có thể nhận các tế bào ATM từ các ATM-LSR cận kề, tập hợp các tế bào này thành gói tin ban đầu và chuyển tiếp gói tin đi.
LSP: label-switched path : Mỗi gói tin tiến vào mạng MPLS ở ingress LSR và đi ra khỏi mạng MPLS ở egress LSR . Cơ chế này tạo ra LSP , là tập hợp các LSR mà các gói tin có gắn nhãn phải đi qua để đi đến đích . LSP là đường đi một hướng , có nghĩa là có một LSP khác dành cho việc đi ngược lại của lưu lượng.
Mỗi LSR giữ hai bảng mang thông tin có liên quan đến các thành phần chuyển tiếp MPLS. Thứ nhất, là Tag Information Base (TIB) là sản phẩm của Cisco (hay là Label information Base (LIB) là từ ngữ chuẩn của MPLS ) nắm giữ tất cả các nhãn được đăng kí bởi LSR này và ánh xạ các nhãn đó thành các nhãn được nhận bởi các láng giềng. Việc ánh xạ nhãn được phân phối thông qua việc sử dụng các giao thức phân bố nhãn . Bảng thứ hai là Tag Forwarding Information Base (TFIB – là sản phẩm của Cisco) được sử dụng trong suốt quá trịnh chuyển tiếp gói tin và chỉ giữ các nhãn đang được sử dụng bởi các thành phần chuyển tiếp nhãn trong mạng MPLS. Như vậy , các gói tin từ router khách hàng đi vào mạng của nhà cung cấp dịch vụ là các gói không có nhãn. Edge-LSR sẽ áp đặt một nhãn và chuyển tiếp gói tin mới này (gói tin sau khi đã gắn nhãn) đến LSR kế tiếp dọc LSP. Mỗi LSR dọc LSP sẽ chuyển mạch gói tin dựa trên thông tin nhãn. Router kế tiếp cuối cùng trong đường dẫn sẽ tháo nhãn ra thông qua cơ chế được gọi là puniltimate hop popping, gói tin sau khi được tháo nhãn ra được chuyển tiếp đến router của khách hàng dựa trên bảng định tuyến.
Cấu hình
Cấu hình một bài lab về MPLS cơ bản , nêu rõ được quá trình hoạt động gắn nhãn của gói tin khi đi qua một mạng của các nhà cung cấp dịch vụ .
Mô hình mạng: Đây là mô hình tổng quát của mạng service provider
Các router CE1 và CE2 là các router của khách hàng , các router PE1 , P1 , P2 , PE2 là các router chạy trong mạng của nhà cung cấp dịch vụ . PE1, PE2 là các edge-LSR , P1 và P2 là các LSR .Yêu cầu các router chạy MPLS phải sử dụng Cisco IOS Release 12.1 Enterprise plus (các IOS có chữ js) hoặc các phiên bản IOS service provider.
Địa chỉ của các interface :
Thiết bị Interface Địa chỉ
CE1 E0
S0 204.138.83.1/24
128.107.10.1/30
PE1 E0/0
S0/0
Lo0 192.168.1.10/30
128.107.10.2/30
192.168.1.1/32
P1 F0/0
S0/0
Lo0 192.168.1.9/30
192.168.1.14/30
192.168.1.2/32
P2 S0/0
E0/0
Lo0 192.168.1.13/30
192.168.1.18/30
192.168.1.3/32
PE2 E0/0
S0/0
Lo0 192.168.1.17/30
128.107.10.5/30
192.168.1.4/32
CE2 E0
S0 209.100.164.1/24
128.107.10.6/30
Cấu hình toàn bộ:
Router CE1:
CE1#sh run
Building configuration...
Current configuration:
!
version 12.1
!
hostname CE1
!
ip subnet-zero
!
interface Ethernet0
ip address 204.134.83.1 255.255.255.0
no keepalive
!
interface Serial0
ip address 128.107.10.1 255.255.255.252
no fair-queue
!
ip classless
ip route 0.0.0.0 0.0.0.0 128.107.10.2
!
end
Router PE1:
PE1
!
hostname PE1
!
logging queue-limit 100
enable secret 5 $1$D5xF$G/ShevShmI1sTqKoJGytO.
enable password vnpro
!
ip cef
mpls ldp logging neighbor-changes
!
interface Loopback0
ip address 192.168.1.1 255.255.255.255
!
interface Ethernet0/0
ip address 192.168.1.10 255.255.255.252
half-duplex
tag-switching ip
!
interface Serial0/0
ip address 128.107.10.2 255.255.255.252
clockrate 64000
no fair-queue
!
router ospf 1
log-adjacency-changes
network 0.0.0.0 255.255.255.255 area 0
!
router bgp 1
no synchronization
bgp log-neighbor-changes
network 192.168.1.1 mask 255.255.255.255
redistribute static
neighbor 192.168.1.4 remote-as 1
neighbor 192.168.1.4 update-source Loopback0
no auto-summary
!
ip http server
ip classless
ip route 204.134.83.0 255.255.255.0 128.107.10.1
!
end
Router P1 :
P1
!
hostname P1
!
enable password vnpro
!
ip cef
mpls ldp logging neighbor-changes
!
interface Loopback0
ip address 192.168.1.2 255.255.255.255
!
interface FastEthernet0/0
ip address 192.168.1.9 255.255.255.252
duplex auto
speed auto
tag-switching ip
!
interface Serial0/0
ip address 192.168.1.14 255.255.255.252
no ip mroute-cache
tag-switching ip
no fair-queue
!
router ospf 1
log-adjacency-changes
network 192.168.1.2 0.0.0.0 area 0
network 192.168.1.8 0.0.0.3 area 0
network 192.168.1.12 0.0.0.3 area 0
network 0.0.0.0 255.255.255.255 area 0
!
end
Router P2 :
P2
!
version 12.2
!
hostname P2
!
enable password vnpro
!
ip cef
mpls ldp logging neighbor-changes
!
interface Loopback0
ip address 192.168.1.3 255.255.255.255
!
interface Ethernet0/0
ip address 192.168.1.18 255.255.255.252
half-duplex
tag-switching ip
!
interface Serial0/0
ip address 192.168.1.13 255.255.255.252
tag-switching ip
clockrate 64000
no fair-queue
!
router ospf 1
log-adjacency-changes
network 192.168.1.3 0.0.0.0 area 0
network 192.168.1.12 0.0.0.3 area 0
network 192.168.1.16 0.0.0.3 area 0
network 0.0.0.0 255.255.255.255 area 0
!
end
Router PE2 :
PE2
!
version 12.2
!
hostname PE2
!
logging queue-limit 100
enable secret 5 $1$S6aw$fD8Rw3fMw9uoXf2DY68rN1
enable password vnpro
!
ip cef
mpls ldp logging neighbor-changes
!
interface Loopback0
ip address 192.168.1.4 255.255.255.255
!
interface Ethernet0/0
ip address 192.168.1.17 255.255.255.252
half-duplex
tag-switching ip
!
interface Serial0/0
ip address 128.107.10.5 255.255.255.252
clockrate 64000
no fair-queue
!
router ospf 1
log-adjacency-changes
network 0.0.0.0 255.255.255.255 area 0
!
router bgp 1
no synchronization
bgp log-neighbor-changes
network 192.168.1.4 mask 255.255.255.255
redistribute static
neighbor 192.168.1.1 remote-as 1
neighbor 192.168.1.1 update-source Loopback0
no auto-summary
!
ip route 209.100.164.0 255.255.255.0 128.107.10.6
!
end
Router CE2 :
CE2
!
version 12.0
!
hostname CE2
!
enable password vnpro
!
interface Ethernet0
ip address 209.100.164.1 255.255.255.0
no ip directed-broadcast
no keepalive
!
interface Serial0
ip address 128.107.10.6 255.255.255.252
no ip directed-broadcast
no ip mroute-cache
no fair-queue
!
ip classless
ip route 0.0.0.0 0.0.0.0 128.107.10.5
!
end
Cấu hình chi tiết :
Bước 1 : cấu hình địa chỉ cho các router :
CE1(config)#interface s0
CE1(config-if)#ip address 128.107.10.1 255.255.255.252
CE1(config-if)#clock rate 64000
CE1(config-if)#no shutdown
CE1(config-if)#exit
CE1(config)#interface e0
CE1(config-if)#ip address 204.134.83.1 255.255.255.0
CE1(config-if)#no keepalive
CE1(config-if)#no shutdown
PE1(config)#interface s0/0
PE1(config-if)#ip address 128.107.10.2 255.255.255.252
PE1(config-if)#clock rate 64000
PE1(config-if)#no shutdown
PE1(config-if)#exit
PE1(config)#interface e0/0
PE1(config-if)#ip address 192.168.1.10 255.255.255.252
PE1(config-if)#no shutdown
PE1(config)#interface lo0
PE1(config-if)#ip address 192.168.1.1 255.255.255.255
P1(config)#interface s0/0
P1(config-if)#ip address 192.168.1.14 255.255.255.252
P1(config-if)#clock rate 64000
P1(config-if)#no shutdown
P1(config-if)#exit
P1(config)#interface f0/0
P1(config-if)#ip address 192.168.1.9 255.255.255.252
P1(config-if)#clock rate 64000
P1(config-if)#no shutdown
P1(config)#interface lo0
P1(config-if)#ip address 192.168.1.2 255.255.255.255
P2(config)#interface s0/0
P2(config-if)#ip address 192.168.1.13 255.255.255.252
P2(config-if)#clock rate 64000
P2(config-if)#no shutdown
P2(config-if)#exit
P2(config)#interface e0/0
P2(config-if)#ip address 192.168.1.18 255.255.255.252
P2(config-if)#clock rate 64000
P2(config-if)#no shutdown
P2(config)#interface lo0
P2(config-if)#ip address 192.168.1.3 255.255.255.255
PE2(config)#interface s0/0
PE2(config-if)#ip address 128.107.10.5 255.255.255.252
PE2(config-if)#clock rate 64000
PE2(config-if)#no shutdown
PE2(config-if)#exit
PE2(config)#interface e0/0
PE2(config-if)#ip address 192.168.1.17 255.255.255.252
PE2(config-if)#no shutdown
PE2(config)#interface lo0
PE2(config-if)#ip address 192.168.1.4 255.255.255.255
CE2(config)#interface s0
CE2(config-if)#ip address 128.107.10.6 255.255.255.252
CE2(config-if)#clock rate 64000
CE2(config-if)#no shutdown
CE2(config-if)#exit
CE2(config)#interface e0
CE2(config-if)#ip address 209.100.164.1 255.255.255.0
CE2(config-if)#no keepalive
CE2(config-if)#no shutdown
bước 2 : cấu hình định tuyến cho các router .Router CE1 , CE2 chỉ sử dụng định tuyến tĩnh để đi đến mạng của ISP . Router PE1 , PE2 chạy giao thức BGP , router P1 , P2 chạy giao thức OSPF .
CE1(config)#ip route 0.0.0.0 0.0.0.0 128.107.10.2
PE1(config)#router ospf 1
PE1(config-router)#network 0.0.0.0 0.0.0.0 area 0
PE1(config)#router bgp 1
PE1(config-router)#no synchronization
PE1(config-router)#network 192.168.1.1 mask 255.255.255.255
PE1(config-router)#neighbor 192.168.1.4 remote-as 1
PE1(config-router)#neighbor 192.168.1.4 update-source lo0
PE1(config-router)#redistribute static
P1(config)#router ospf 1
P1(config-router)# network 192.168.1.2 0.0.0.0 area 0
P1(config-router)# network 192.168.1.8 0.0.0.3 area 0
P1(config-router)# network 192.168.1.12 0.0.0.3 area 0
P1(config-router)# network 0.0.0.0 255.255.255.255 area 0
P2(config)#router ospf 1
P2(config-router)#network 192.168.1.3 0.0.0.0 area 0
P2(config-router)#network 192.168.1.12 0.0.0.3 area 0
P2(config-router)#network 192.168.1.16 0.0.0.3 area 0
P2(config-router)#network 0.0.0.0 255.255.255.255 area 0
PE2(config)#router ospf 1
PE2(config-router)#network 0.0.0.0 0.0.0.0 area 0
PE2(config)#router bgp 1
PE2(config-router)#no synchronization
PE2(config-router)#network 192.168.1.4 mask 255.255.255.255
PE2(config-router)#neighbor 192.168.1.1 remote-as 1
PE2(config-router)#neighbor 192.168.1.1 update-source lo0
PE2(config-router)#redistribute static
CE2(config)#ip route 0.0.0.0 0.0.0.0 128.107.10.5
Bước 3 : Kiểm tra bảng định tuyến :
Tag-switching hay MPLS sẽ không làm việc nếu trong mạng service provider phần định tuyến không chạy.
CE1#sh ip route
Gateway of last resort is 128.107.10.2 to network 0.0.0.0
C 204.134.83.0/24 is directly connected, Ethernet0
128.107.0.0/30 is subnetted, 1 subnets
C 128.107.10.0 is directly connected, Serial0
S* 0.0.0.0/0 [1/0] via 128.107.10.2
PE1#sh ip route
Gateway of last resort is not set
S 204.134.83.0/24 [1/0] via 128.107.10.1
B 209.100.164.0/24 [200/0] via 128.107.10.6, 00:05:35
O 128.107.10.4 [110/148] via 192.168.1.9, 00:05:37, Ethernet0/0
128.107.0.0/30 is subnetted, 1 subnets
C 128.107.10.0 is directly connected, Serial0/0
192.168.1.0/24 is variably subnetted, 5 subnets, 2 masks
C 192.168.1.8/30 is directly connected, Ethernet0/0
O 192.168.1.12/30 [110/74] via 192.168.1.9, 00:05:37, Ethernet0/0
C 192.168.1.1/32 is directly connected, Loopback0
O 192.168.1.3/32 [110/75] via 192.168.1.9, 00:05:37, Ethernet0/0
O 192.168.1.2/32 [110/11] via 192.168.1.9, 00:05:37, Ethernet0/0
O 192.168.1.4/32 [110/11] via 192.168.1.9, 00:05:37, Ethernet0/0
P1#sh ip route
Gateway of last resort is not set
128.107.0.0/30 is subnetted, 2 subnets
O 128.107.10.0 [110/74] via 192.168.1.10, 00:01:02, FastEthernet0/0
O 128.107.10.4 [110/138] via 192.168.1.13, 00:01:02, Serial0/0
192.168.1.0/24 is variably subnetted, 7 subnets, 2 masks
C 192.168.1.8/30 is directly connected, FastEthernet0/0
C 192.168.1.12/30 is directly connected, Serial0/0
O 192.168.1.1/32 [110/11] via 192.168.1.10, 00:01:02, FastEthernet0/0
O 192.168.1.3/32 [110/65] via 192.168.1.13,
C 192.168.1.2/32 is directly connected, Loopback0
O 192.168.1.4/32 [110/75] via 192.168.1.13, 00:01:03, Serial0/0
O 192.168.1.16/30 [110/74] via 192.168.1.13, 00:01:03, Serial0/0
P2#sh ip route
Gateway of last resort is not set
128.107.0.0/30 is subnetted, 2 subnets
O 128.107.10.0 [110/138] via 192.168.1.14, 00:00:53, Serial0/0
O 128.107.10.4 [110/74] via 192.168.1.17, 00:00:53, Ethernet0/0
192.168.1.0/24 is variably subnetted, 7 subnets, 2 masks
O 192.168.1.8/30 [110/74] via 192.168.1.14, 00:00:53, Serial0/0
C 192.168.1.12/30 is directly connected, Serial0/0
O 192.168.1.1/32 [110/75] via 192.168.1.14, 00:00:53, Serial0/0
C 192.168.1.3/32 is directly connected, Loopback0
O 192.168.1.2/32 [110/65] via 192.168.1.14, 00:00:54, Serial0/0
O 192.168.1.4/32 [110/11] via 192.168.1.17, 00:00:54, Ethernet0/0
C 192.168.1.16/30 is directly connected, Ethernet0/0
PE2#sh ip route
Gateway of last resort is not set
S 209.100.164.0/24 [1/0] via 128.107.10.6
B 204.134.83.0/24 [200/0] via 128.107.10.1, 00:00:38
128.107.0.0/30 is subnetted, 2 subnets
O 128.107.10.0 [110/148] via 192.168.1.18, 00:00:40, Ethernet0/0
C 128.107.10.4 is directly connected, Serial0/0
192.168.1.0/24 is variably subnetted, 7 subnets, 2 masks
O 192.168.1.8/30 [110/84] via 192.168.1.18, 00:00:40, Ethernet0/0
O 192.168.1.12/30 [110/74] via 192.168.1.18, 00:00:40, Ethernet0/0
O 192.168.1.1/32 [110/85] via 192.168.1.18, 00:00:41, Ethernet0/0
O 192.168.1.3/32 [110/11] via 192.168.1.18, 00:00:41, Ethernet0/0
O 192.168.1.2/32 [110/75] via 192.168.1.18, 00:00:41, Ethernet0/0
C 192.168.1.4/32 is directly connected, Loopback0
C 192.168.1.16/30 is directly connected, Ethernet0/0
CE2#sh ip route
Gateway of last resort is 128.107.10.5 to network 0.0.0.0
C 209.100.164.0/24 is directly connected, Ethernet0
128.107.0.0/30 is subnetted, 1 subnets
C 128.107.10.4 is directly connected, Serial0
S* 0.0.0.0/0 [1/0] via 128.107.10.5
Bây giờ ta kiểm tra xem mạng hoạt động như thế nào bằng cách dùng extended ping từ mạng LAN của Router CE1 đến mạng LAN của Router CE2 :
CE1#ping
Protocol [ip]:
Target IP address: 209.100.164.1
Repeat count [5]:
Datagram size [100]:
Timeout in seconds [2]:
Extended commands [n]: y
Source address or interface: 204.134.8. 3.1
Type of service [0]:
Set DF bit in IP header? [no]:
Validate reply data? [no]:
Data pattern [0xABCD]:
Loose, Strict, Record, Timestamp, Verbose[none]:
Sweep range of sizes [n]:
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 209.100.164.1, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
Ping không thành công là do các router P1 và P2 không hề biết đến các mạng LAN của 2 router CE1 và CE2 . Do đó nếu ta thực hiện ping từ CE1 đến CE2 thì gói tin sẽ bị P1 đánh rớt . Để giải quyết vấn đề này, ta sử dụng MPLS trên các router của mạng ISP .
Bước 4:
Cấu hình MPLS trên các router. Như đã phân tích ở trên. Vì các gói từ router CE1 và CE2 không cần phải gắn nhãn nên ta chỉ cấu hình MPLS trên các router của mạng ISP. Cấu hình bằng cách sử dụng tag-switching. Tag-switching phụ thuộc vào tag distribution protocol (TDP) để trao đổi gói tin giữa các tag switching router (TSR). Chỉ có các router của Cisco mới hiểu tag-switching . Để cấu hình tag-switching , Cisco Express Forwarding (CEF) phải được bật lên cũng như tag-switching phải được bật trên các interface tương ứng. Ta cũng có thể cấu hình MPLS thay vì cấu hình tag-switching , MPLS ra đời sau tag-switching, hoạt động và có cấu hình tương tự như tag-switching. Tuy nhiên MPLS phụ thuộc vào Label Distribution protocol (LDP) để trao đổi nhãn với các láng giềng. Khi cấu hình MPLS , các câu lệnh đều giống như tag-switching nhưng chỉ khác ở chỗ thay vì sử dụng lệnh tag-switching ip ta sử dụng câu lệnh mpls ip.
P1(config)#ip cef
P1(config)#tag-switching advertise-tags
P1(config)#tag-switching ip
P1(config)#int f0/0
P1(config-if)#tag-switching ip
P1(config-if)#int s0/0
P1(config-if)#tag-switching ip
P1(config-if)#exit
PE1(config)#ip cef
PE1(config)#tag-switching advertise-tags
PE1(config)#tag-switching ip
PE1(config)#int e0/0
PE1(config-if)#tag-switching ip
PE1(config-if)#exit
P2(config)#ip cef
P2(config)#tag-switching advertise-tags
P2(config)#tag-switching ip
P2(config)#int e0/0
P2(config-if)#tag-switching ip
P2(config-if)#int s0/0
P2(config-if)#tag-switching ip
P2(config-if)#exit
PE2(config)#ip cef
PE2(config)#tag-switching advertise-tags
PE2(config)#tag-switching ip
PE2(config)#int e0/0
PE2(config-if)#tag-switching ip
PE2(config-if)#exit
Bước 5: Để kiểm tra xem tag-switching đã được bật lên chưa , sử dụng câu lệnh show tag-switching interfaces
PE1#sh tag-switching interfaces
Interface IP Tunnel Operational
Ethernet0/0 Yes (tdp) No Yes
P1#sh tag-switching interfaces
Interface IP Tunnel Operational
Serial0/0 Yes (tdp) No Yes
Ethernet0/0 Yes (tdp) No Yes
P2#sh tag-switching interfaces
Interface IP Tunnel Operational
Serial0/0 Yes (tdp) No Yes
Ethernet0/0 Yes (tdp) No Yes
PE2#sh tag-switching interfaces
Interface IP Tunnel Operational
Ethernet0/0 Yes (tdp) No Yes
Bước 6 : Cách tốt nhất để kiểm tra xem MPLS hoạt động hay chưa ta hãy thực hiện extended ping từ mạng LAN của CE1 đến mạng LAN của CE2
CE1#ping
Protocol [ip]:
Target IP address: 209.100.164.1
Repeat count [5]:
Datagram size [100]:
Timeout in seconds [2]:
Extended commands [n]: y
Source address or interface: 204.134.83.1
Type of service [0]:
Set DF bit in IP header? [no]:
Validate reply data? [no]:
Data pattern [0xABCD]:
Loose, Strict, Record, Timestamp, Verbose[none]:
Sweep range of sizes [n]:
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 209.100.164.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 92/93/96 ms
Ping thành công là nhờ vào quá trình chuyển mạch nhãn giữa các router trong mạng service provider . Có thể giải thích quá trình này như sau :
Step 1 : Một host ở mạng 204.134.83.0 muốn gửi dữ liệu đến host ở mạng 209.100.164.0 . Host này biết rằng host đích là ở đầu xa và chuyển frame đến default gateway của nó là CE1 .
Step 2 : CE1 nhận frame , bỏ qua thông tin lớp 2 , kiểm tra thông tin lớp 3 để xem thử có đường đến mạng đích 209.100.164.0 hay không ? Không có route nào trong bảng định tuyến để đến mạng này (xem bảng định tuyến của CE1) nên nó chuyển gói tin đến router PE1 bằng route tĩnh .
Step 3 : Router PE1 nhận gói tin và kiểm tra thông tin lớp 3 , nó biết có một route đến mạng đích mà nó học được từ PE2 thông qua BGP . Địa chỉ next-hop của mạng đầu xa là 192.168.1.4 . Router PE1 gán nhãn vào gói tin và chuyển nó đến P1:
PE1#sh tag-switching forwarding-table
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
16 Untagged 204.134.83.0/24 0 Se0/0 point2point
17 Pop tag 192.168.1.2/32 0 Et0/0 192.168.1.9
18 16 192.168.1.3/32 0 Et0/0 192.168.1.9
19 Pop tag 192.168.1.12/30 0 Et0/0 192.168.1.9
20 17 192.168.1.16/30 0 Et0/0 192.168.1.9
21 20 128.107.10.4/30 0 Et0/0 192.168.1.9
22 21 192.168.1.4/32 0 Et0/0 192.168.1.9
Bằng cách quan sát ngõ ra của bảng trên, ta có thể thấy gói tin được gởi đi như một nhãn, hay trong trường hợp này là gói tin được tag. Vì gói tin cần phải được chuyển đến 192.168.1.4 nên quan sát bảng trên ta thấy, router PE1 gắn nhãn 22 vào gói tin này , quan sát bảng trên ta biết được nhãn ngõ ra là 21, interface ngõ ra là e0/0 có địa chỉ là 192.168.1.9, chính là router P1. Gói tin được chuyển đến P1.
Step 4: Tại router P1, quan sát bảng định tuyến của P1 ta thấy P1 không có route đến mạng đích . Nếu không có gán nhãn, gói tin sẽ bị rớt tại đây như ta đã kiểm tra. Do đó thay vì định tuyến gói tin , nó thực hiện chuyển mạch nhãn.
P1#sh tag-switching forwarding-table
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
16 Pop tag 192.168.1.3/32 0 Se0/0 point2point
17 Pop tag 192.168.1.16/30 0 Se0/0 point2point
18 Pop tag 128.107.10.0/30 1140 Fa0/0 192.168.1.10
19 Pop tag 192.168.1.1/32 1801 Fa0/0 192.168.1.10
20 20 128.107.10.4/30 0 Se0/0 point2point
21 21 192.168.1.4/32 167 Se0/0 point2point
Từ router PE1, gói tin được gán nhãn là 21 , quan sát bảng trên ta thấy, nhãn ngõ ra là 21, interface ngõ ra là s0/0 với next-hop là router P2. Gói tin được P1 chuyển mạch nhãn đến P2.
Step 5: tại router P2 , hành động cũng xảy ra giống như tại router P2.
P2#sh tag-switching forwarding-table
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
16 Pop tag 192.168.1.8/30 0 Se0/0 point2point
17 Pop tag 192.168.1.2/32 0 Se0/0 point2point
18 18 128.107.10.0/30 2160 Se0/0 point2point
19 19 192.168.1.1/32 2978 Se0/0 point2point
20 Pop tag 128.107.10.4/30 1140 Et0/0 192.168.1.17
21 Pop tag 192.168.1.4/32 1447 Et0/0 192.168.1.17
Tại router P2 , gói tin với nhãn 21 , P2 cũng không xử lí thông tin lớp 3, nó thực hiện gỡ bỏ nhãn ra ( hành động này được gọi là pop , đối với tag-switching được gọi là tag pop ) . P2 cũng không thực hiện định tuyến , nó chỉ đơn giản chuyển các gói tin untagged (các gói tin sau khi đã tháo nhãn) đến router PE2 .
Step 6 : router PE2 nhận gói tin và kiểm tra thông tin lớp 3 , PE2 biết mạng đích (quan sát bảng định tuyến của PE2), địa chỉ next- hop của mạng đích là 128.107.10.6. Router PE2 chuyển gói tin đến CE2.
PE2#sh tag-switching forwarding-table
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
16 Untagged 209.100.164.0/24 0 Se0/0 point2point
17 16 192.168.1.8/30 0 Et0/0 192.168.1.18
18 18 128.107.10.0/30 0 Et0/0 192.168.1.18
19 19 192.168.1.1/32 0 Et0/0 192.168.1.18
20 17 192.168.1.2/32 0 Et0/0 192.168.1.18
21 Pop tag 192.168.1.3/32 0 Et0/0 192.168.1.18
22 Pop tag 192.168.1.12/30 0 Et0/0 192.168.1.18
Step 7: Router CE2 nhận gói tin , kiểm tra thông tin lớp 3 . Nó có một interface kết nối trực tiếp với mạng đích và đơn giản chuyển gói tin đến đích. Để kiểm tra xem nhãn được trao đổi như thế nào giữa các neighbor , sử dụng câu lệnh show tag-switching tdp discovery (nếu dùng mpls thì sử dụng câu lệnh show mpls ldp discovery).
PE2#sh tag-switching tdp discovery
Local TDP Identifier:
192.168.1.4:0
Discovery Sources:
Interfaces:
Ethernet0/0 (tdp): xmit/recv
TDP Id: 192.168.1.3:0
Nếu muốn có nhiều thông tin hơn cho việc gán nhãn trong một mạng , sử dụng câu lệnh show tag-switching tdp bindings (hoặc là show mpls ldp bindings ).
PE2#sh tag-switching tdp bindings
tib entry: 128.107.10.0/30, rev 53
local binding: tag: 18
remote binding: tsr: 192.168.1.3:0, tag: 18
tib entry: 128.107.10.4/30, rev 4
local binding: tag: imp-null
remote binding: tsr: 192.168.1.3:0, tag: 20
tib entry: 192.168.1.1/32, rev 67
local binding: tag: 19
remote binding: tsr: 192.168.1.3:0, tag: 19
tib entry: 192.168.1.2/32, rev 56
local binding: tag: 20
remote binding: tsr: 192.168.1.3:0, tag: 17
tib entry: 192.168.1.3/32, rev 57
local binding: tag: 21
remote binding: tsr: 192.168.1.3:0, tag: imp-null
tib entry: 192.168.1.4/32, rev 6
local binding: tag: imp-null
remote binding: tsr: 192.168.1.3:0, tag: 21
tib entry: 192.168.1.8/30, rev 52
local binding: tag: 17
remote binding: tsr: 192.168.1.3:0, tag: 16
tib entry: 192.168.1.12/30, rev 58
local binding: tag: 22
remote binding: tsr: 192.168.1.3:0, tag: imp-null
tib entry: 192.168.1.16/30, rev 65
local binding: tag: imp-null
remote binding: tsr: 192.168.1.3:0, tag: imp-null
tib entry: 209.100.164.0/24, rev 2
local binding: tag: 16
Tổng quan về MPLS:
Định tuyến IP truyền thống có nhiều giới hạn , từ vấn đề khả năng mở rộng cho đến việc quản lí lưu lượng và tích hợp các mạng lớp 2 đã tồn tại trong mạng của các nhà cung cấp dịch vụ lớn . Nhưng với sự phát triển nhanh chóng của Internet và hầu hết trong các môi trường đều chọn IP là giao thức lớp 3 thì những nhược điểm của IP truyền thống ngày càng bộc lộ rõ . MPLS ra đời để liên kết các ưu điểm của định tuyến lớp 3 connectionless và chuyển tiếp lớp 2 connection-oriented. Trong cấu trúc của MPLS chia thành 2 mặt phẳng riêng biệt:
Mặt phằng điều khiển (control plane): tại đây các giao thức định tuyến lớp 3 thiết lập các đường đi được sử dụng cho việc chuyển tiếp gói tin . Mặt phẳng điều khiển đáp ứng cho việc tạo ra và duy trì thông tin chuyển tiếp nhãn giữa các router chạy MPLS (còn gọi là binding).
Mặt phằng dữ liệu (data plane): sử dụng cơ sở dữ liệu chuyển tiếp nhãn được duy trì bởi các router chạy MPLS để thức hiện việc chuyển tiếp các gói tin dựa trên thông tin nhãn. Mỗi MPLS node chạy một hoặc nhiều giao thức định tuyến IP (hoặc có thể sử dụng định tuyến tĩnh ) để trao đổi thông tin định tuyến với MPLS node khác trong mạng. Mỗi node MPLS (bao gồm cả ATM switch) là một router chạy IP trong mặt phẳng điều khiển. Trong MPLS , bảng định tuyến IP được sử dụng để quyết định việc trao đổi nhãn , tại đó các node MPLS cận kề trao đổi nhãn với nhau theo tứng subnet riêng biệt có trong bảng định tuyến. Việc trao đổi nhãn này đươc thực hiện bằng 2 giao thức là TDP và LDP . TDP (tag distribution protocol) là sản phẩm của Cisco, LDP (label distribution protocol) là phiên bản của TDP nhưng do IETF tạo nên. Tiến trình điều khiển định tuyến IP MPLS sử dụng việc trao đổi nhãn với các node MPLS để xây dựng thành bảng chuyển tiếp nhãn (Label Forwarding Table). Bảng này là cơ sở dữ liệu của mặt phẳng dữ liệu được sử dụng để chuyển tiếp các gói tin có gắn nhãn qua mạng MPLS.
Các thuật ngữ dùng trong MPLS :
LSR : Label Switching Router : là router hoặc switch thực hiện các thủ tục phân phối nhãn và có thể chuyển tiếp các gói tin dựa trên thông tin nhãn . Chức năng cơ bản của thủ tục phân phối nhãn là cho phép một LSR phân phối nhãn của nó đến LSR khác trong mạng MPLS.
Edge – LSR là router thực hiện hoặc là gắn nhãn (push) hoặc là gỡ nhãn ra (hành động này gọi là pop ) ở biên của mạng MPLS.
Những LSR mà có láng giềng không phải là MPLS node thì được xem như là Edge-LSR. Nếu LSR có bất kì interface nào nối qua mạng MPLS đến một ATM –LSR thì nó được gọi là ATM edge-LSR. Edge-LSR sử dụng bảng chuyển tiếp IP truyền thống , cộng thêm thông tin nhãn để gắn nhãn đến các gói tin IP hoặc để gỡ bỏ nhãn từ các gói tin có gắn nhãn trước khi gửi chúng đến các node không chạy MPLS.
ATM –LSR : chạy giao thức MPLS trong mặt phẳng điều khiển để thiết lập các kênh ảo ATM , thực hiện chuyển tiếp các gói tin có gắn nhãn như là các tế bào ATM.
ATM edge-LSR : là router có thể nhận các gói tin có gắn nhãn hoặc không có gắn nhãn, phân đoạn các gói tin đó thành các tế bào và chuyển tiếp các tế bào đến ATM-LSR kế tiếp . Có thể nhận các tế bào ATM từ các ATM-LSR cận kề, tập hợp các tế bào này thành gói tin ban đầu và chuyển tiếp gói tin đi.
LSP: label-switched path : Mỗi gói tin tiến vào mạng MPLS ở ingress LSR và đi ra khỏi mạng MPLS ở egress LSR . Cơ chế này tạo ra LSP , là tập hợp các LSR mà các gói tin có gắn nhãn phải đi qua để đi đến đích . LSP là đường đi một hướng , có nghĩa là có một LSP khác dành cho việc đi ngược lại của lưu lượng.
Mỗi LSR giữ hai bảng mang thông tin có liên quan đến các thành phần chuyển tiếp MPLS. Thứ nhất, là Tag Information Base (TIB) là sản phẩm của Cisco (hay là Label information Base (LIB) là từ ngữ chuẩn của MPLS ) nắm giữ tất cả các nhãn được đăng kí bởi LSR này và ánh xạ các nhãn đó thành các nhãn được nhận bởi các láng giềng. Việc ánh xạ nhãn được phân phối thông qua việc sử dụng các giao thức phân bố nhãn . Bảng thứ hai là Tag Forwarding Information Base (TFIB – là sản phẩm của Cisco) được sử dụng trong suốt quá trịnh chuyển tiếp gói tin và chỉ giữ các nhãn đang được sử dụng bởi các thành phần chuyển tiếp nhãn trong mạng MPLS. Như vậy , các gói tin từ router khách hàng đi vào mạng của nhà cung cấp dịch vụ là các gói không có nhãn. Edge-LSR sẽ áp đặt một nhãn và chuyển tiếp gói tin mới này (gói tin sau khi đã gắn nhãn) đến LSR kế tiếp dọc LSP. Mỗi LSR dọc LSP sẽ chuyển mạch gói tin dựa trên thông tin nhãn. Router kế tiếp cuối cùng trong đường dẫn sẽ tháo nhãn ra thông qua cơ chế được gọi là puniltimate hop popping, gói tin sau khi được tháo nhãn ra được chuyển tiếp đến router của khách hàng dựa trên bảng định tuyến.
Cấu hình
Cấu hình một bài lab về MPLS cơ bản , nêu rõ được quá trình hoạt động gắn nhãn của gói tin khi đi qua một mạng của các nhà cung cấp dịch vụ .
Mô hình mạng: Đây là mô hình tổng quát của mạng service provider
Các router CE1 và CE2 là các router của khách hàng , các router PE1 , P1 , P2 , PE2 là các router chạy trong mạng của nhà cung cấp dịch vụ . PE1, PE2 là các edge-LSR , P1 và P2 là các LSR .Yêu cầu các router chạy MPLS phải sử dụng Cisco IOS Release 12.1 Enterprise plus (các IOS có chữ js) hoặc các phiên bản IOS service provider.
Địa chỉ của các interface :
Thiết bị Interface Địa chỉ
CE1 E0
S0 204.138.83.1/24
128.107.10.1/30
PE1 E0/0
S0/0
Lo0 192.168.1.10/30
128.107.10.2/30
192.168.1.1/32
P1 F0/0
S0/0
Lo0 192.168.1.9/30
192.168.1.14/30
192.168.1.2/32
P2 S0/0
E0/0
Lo0 192.168.1.13/30
192.168.1.18/30
192.168.1.3/32
PE2 E0/0
S0/0
Lo0 192.168.1.17/30
128.107.10.5/30
192.168.1.4/32
CE2 E0
S0 209.100.164.1/24
128.107.10.6/30
Cấu hình toàn bộ:
Router CE1:
CE1#sh run
Building configuration...
Current configuration:
!
version 12.1
!
hostname CE1
!
ip subnet-zero
!
interface Ethernet0
ip address 204.134.83.1 255.255.255.0
no keepalive
!
interface Serial0
ip address 128.107.10.1 255.255.255.252
no fair-queue
!
ip classless
ip route 0.0.0.0 0.0.0.0 128.107.10.2
!
end
Router PE1:
PE1
!
hostname PE1
!
logging queue-limit 100
enable secret 5 $1$D5xF$G/ShevShmI1sTqKoJGytO.
enable password vnpro
!
ip cef
mpls ldp logging neighbor-changes
!
interface Loopback0
ip address 192.168.1.1 255.255.255.255
!
interface Ethernet0/0
ip address 192.168.1.10 255.255.255.252
half-duplex
tag-switching ip
!
interface Serial0/0
ip address 128.107.10.2 255.255.255.252
clockrate 64000
no fair-queue
!
router ospf 1
log-adjacency-changes
network 0.0.0.0 255.255.255.255 area 0
!
router bgp 1
no synchronization
bgp log-neighbor-changes
network 192.168.1.1 mask 255.255.255.255
redistribute static
neighbor 192.168.1.4 remote-as 1
neighbor 192.168.1.4 update-source Loopback0
no auto-summary
!
ip http server
ip classless
ip route 204.134.83.0 255.255.255.0 128.107.10.1
!
end
Router P1 :
P1
!
hostname P1
!
enable password vnpro
!
ip cef
mpls ldp logging neighbor-changes
!
interface Loopback0
ip address 192.168.1.2 255.255.255.255
!
interface FastEthernet0/0
ip address 192.168.1.9 255.255.255.252
duplex auto
speed auto
tag-switching ip
!
interface Serial0/0
ip address 192.168.1.14 255.255.255.252
no ip mroute-cache
tag-switching ip
no fair-queue
!
router ospf 1
log-adjacency-changes
network 192.168.1.2 0.0.0.0 area 0
network 192.168.1.8 0.0.0.3 area 0
network 192.168.1.12 0.0.0.3 area 0
network 0.0.0.0 255.255.255.255 area 0
!
end
Router P2 :
P2
!
version 12.2
!
hostname P2
!
enable password vnpro
!
ip cef
mpls ldp logging neighbor-changes
!
interface Loopback0
ip address 192.168.1.3 255.255.255.255
!
interface Ethernet0/0
ip address 192.168.1.18 255.255.255.252
half-duplex
tag-switching ip
!
interface Serial0/0
ip address 192.168.1.13 255.255.255.252
tag-switching ip
clockrate 64000
no fair-queue
!
router ospf 1
log-adjacency-changes
network 192.168.1.3 0.0.0.0 area 0
network 192.168.1.12 0.0.0.3 area 0
network 192.168.1.16 0.0.0.3 area 0
network 0.0.0.0 255.255.255.255 area 0
!
end
Router PE2 :
PE2
!
version 12.2
!
hostname PE2
!
logging queue-limit 100
enable secret 5 $1$S6aw$fD8Rw3fMw9uoXf2DY68rN1
enable password vnpro
!
ip cef
mpls ldp logging neighbor-changes
!
interface Loopback0
ip address 192.168.1.4 255.255.255.255
!
interface Ethernet0/0
ip address 192.168.1.17 255.255.255.252
half-duplex
tag-switching ip
!
interface Serial0/0
ip address 128.107.10.5 255.255.255.252
clockrate 64000
no fair-queue
!
router ospf 1
log-adjacency-changes
network 0.0.0.0 255.255.255.255 area 0
!
router bgp 1
no synchronization
bgp log-neighbor-changes
network 192.168.1.4 mask 255.255.255.255
redistribute static
neighbor 192.168.1.1 remote-as 1
neighbor 192.168.1.1 update-source Loopback0
no auto-summary
!
ip route 209.100.164.0 255.255.255.0 128.107.10.6
!
end
Router CE2 :
CE2
!
version 12.0
!
hostname CE2
!
enable password vnpro
!
interface Ethernet0
ip address 209.100.164.1 255.255.255.0
no ip directed-broadcast
no keepalive
!
interface Serial0
ip address 128.107.10.6 255.255.255.252
no ip directed-broadcast
no ip mroute-cache
no fair-queue
!
ip classless
ip route 0.0.0.0 0.0.0.0 128.107.10.5
!
end
Cấu hình chi tiết :
Bước 1 : cấu hình địa chỉ cho các router :
CE1(config)#interface s0
CE1(config-if)#ip address 128.107.10.1 255.255.255.252
CE1(config-if)#clock rate 64000
CE1(config-if)#no shutdown
CE1(config-if)#exit
CE1(config)#interface e0
CE1(config-if)#ip address 204.134.83.1 255.255.255.0
CE1(config-if)#no keepalive
CE1(config-if)#no shutdown
PE1(config)#interface s0/0
PE1(config-if)#ip address 128.107.10.2 255.255.255.252
PE1(config-if)#clock rate 64000
PE1(config-if)#no shutdown
PE1(config-if)#exit
PE1(config)#interface e0/0
PE1(config-if)#ip address 192.168.1.10 255.255.255.252
PE1(config-if)#no shutdown
PE1(config)#interface lo0
PE1(config-if)#ip address 192.168.1.1 255.255.255.255
P1(config)#interface s0/0
P1(config-if)#ip address 192.168.1.14 255.255.255.252
P1(config-if)#clock rate 64000
P1(config-if)#no shutdown
P1(config-if)#exit
P1(config)#interface f0/0
P1(config-if)#ip address 192.168.1.9 255.255.255.252
P1(config-if)#clock rate 64000
P1(config-if)#no shutdown
P1(config)#interface lo0
P1(config-if)#ip address 192.168.1.2 255.255.255.255
P2(config)#interface s0/0
P2(config-if)#ip address 192.168.1.13 255.255.255.252
P2(config-if)#clock rate 64000
P2(config-if)#no shutdown
P2(config-if)#exit
P2(config)#interface e0/0
P2(config-if)#ip address 192.168.1.18 255.255.255.252
P2(config-if)#clock rate 64000
P2(config-if)#no shutdown
P2(config)#interface lo0
P2(config-if)#ip address 192.168.1.3 255.255.255.255
PE2(config)#interface s0/0
PE2(config-if)#ip address 128.107.10.5 255.255.255.252
PE2(config-if)#clock rate 64000
PE2(config-if)#no shutdown
PE2(config-if)#exit
PE2(config)#interface e0/0
PE2(config-if)#ip address 192.168.1.17 255.255.255.252
PE2(config-if)#no shutdown
PE2(config)#interface lo0
PE2(config-if)#ip address 192.168.1.4 255.255.255.255
CE2(config)#interface s0
CE2(config-if)#ip address 128.107.10.6 255.255.255.252
CE2(config-if)#clock rate 64000
CE2(config-if)#no shutdown
CE2(config-if)#exit
CE2(config)#interface e0
CE2(config-if)#ip address 209.100.164.1 255.255.255.0
CE2(config-if)#no keepalive
CE2(config-if)#no shutdown
bước 2 : cấu hình định tuyến cho các router .Router CE1 , CE2 chỉ sử dụng định tuyến tĩnh để đi đến mạng của ISP . Router PE1 , PE2 chạy giao thức BGP , router P1 , P2 chạy giao thức OSPF .
CE1(config)#ip route 0.0.0.0 0.0.0.0 128.107.10.2
PE1(config)#router ospf 1
PE1(config-router)#network 0.0.0.0 0.0.0.0 area 0
PE1(config)#router bgp 1
PE1(config-router)#no synchronization
PE1(config-router)#network 192.168.1.1 mask 255.255.255.255
PE1(config-router)#neighbor 192.168.1.4 remote-as 1
PE1(config-router)#neighbor 192.168.1.4 update-source lo0
PE1(config-router)#redistribute static
P1(config)#router ospf 1
P1(config-router)# network 192.168.1.2 0.0.0.0 area 0
P1(config-router)# network 192.168.1.8 0.0.0.3 area 0
P1(config-router)# network 192.168.1.12 0.0.0.3 area 0
P1(config-router)# network 0.0.0.0 255.255.255.255 area 0
P2(config)#router ospf 1
P2(config-router)#network 192.168.1.3 0.0.0.0 area 0
P2(config-router)#network 192.168.1.12 0.0.0.3 area 0
P2(config-router)#network 192.168.1.16 0.0.0.3 area 0
P2(config-router)#network 0.0.0.0 255.255.255.255 area 0
PE2(config)#router ospf 1
PE2(config-router)#network 0.0.0.0 0.0.0.0 area 0
PE2(config)#router bgp 1
PE2(config-router)#no synchronization
PE2(config-router)#network 192.168.1.4 mask 255.255.255.255
PE2(config-router)#neighbor 192.168.1.1 remote-as 1
PE2(config-router)#neighbor 192.168.1.1 update-source lo0
PE2(config-router)#redistribute static
CE2(config)#ip route 0.0.0.0 0.0.0.0 128.107.10.5
Bước 3 : Kiểm tra bảng định tuyến :
Tag-switching hay MPLS sẽ không làm việc nếu trong mạng service provider phần định tuyến không chạy.
CE1#sh ip route
Gateway of last resort is 128.107.10.2 to network 0.0.0.0
C 204.134.83.0/24 is directly connected, Ethernet0
128.107.0.0/30 is subnetted, 1 subnets
C 128.107.10.0 is directly connected, Serial0
S* 0.0.0.0/0 [1/0] via 128.107.10.2
PE1#sh ip route
Gateway of last resort is not set
S 204.134.83.0/24 [1/0] via 128.107.10.1
B 209.100.164.0/24 [200/0] via 128.107.10.6, 00:05:35
O 128.107.10.4 [110/148] via 192.168.1.9, 00:05:37, Ethernet0/0
128.107.0.0/30 is subnetted, 1 subnets
C 128.107.10.0 is directly connected, Serial0/0
192.168.1.0/24 is variably subnetted, 5 subnets, 2 masks
C 192.168.1.8/30 is directly connected, Ethernet0/0
O 192.168.1.12/30 [110/74] via 192.168.1.9, 00:05:37, Ethernet0/0
C 192.168.1.1/32 is directly connected, Loopback0
O 192.168.1.3/32 [110/75] via 192.168.1.9, 00:05:37, Ethernet0/0
O 192.168.1.2/32 [110/11] via 192.168.1.9, 00:05:37, Ethernet0/0
O 192.168.1.4/32 [110/11] via 192.168.1.9, 00:05:37, Ethernet0/0
P1#sh ip route
Gateway of last resort is not set
128.107.0.0/30 is subnetted, 2 subnets
O 128.107.10.0 [110/74] via 192.168.1.10, 00:01:02, FastEthernet0/0
O 128.107.10.4 [110/138] via 192.168.1.13, 00:01:02, Serial0/0
192.168.1.0/24 is variably subnetted, 7 subnets, 2 masks
C 192.168.1.8/30 is directly connected, FastEthernet0/0
C 192.168.1.12/30 is directly connected, Serial0/0
O 192.168.1.1/32 [110/11] via 192.168.1.10, 00:01:02, FastEthernet0/0
O 192.168.1.3/32 [110/65] via 192.168.1.13,
C 192.168.1.2/32 is directly connected, Loopback0
O 192.168.1.4/32 [110/75] via 192.168.1.13, 00:01:03, Serial0/0
O 192.168.1.16/30 [110/74] via 192.168.1.13, 00:01:03, Serial0/0
P2#sh ip route
Gateway of last resort is not set
128.107.0.0/30 is subnetted, 2 subnets
O 128.107.10.0 [110/138] via 192.168.1.14, 00:00:53, Serial0/0
O 128.107.10.4 [110/74] via 192.168.1.17, 00:00:53, Ethernet0/0
192.168.1.0/24 is variably subnetted, 7 subnets, 2 masks
O 192.168.1.8/30 [110/74] via 192.168.1.14, 00:00:53, Serial0/0
C 192.168.1.12/30 is directly connected, Serial0/0
O 192.168.1.1/32 [110/75] via 192.168.1.14, 00:00:53, Serial0/0
C 192.168.1.3/32 is directly connected, Loopback0
O 192.168.1.2/32 [110/65] via 192.168.1.14, 00:00:54, Serial0/0
O 192.168.1.4/32 [110/11] via 192.168.1.17, 00:00:54, Ethernet0/0
C 192.168.1.16/30 is directly connected, Ethernet0/0
PE2#sh ip route
Gateway of last resort is not set
S 209.100.164.0/24 [1/0] via 128.107.10.6
B 204.134.83.0/24 [200/0] via 128.107.10.1, 00:00:38
128.107.0.0/30 is subnetted, 2 subnets
O 128.107.10.0 [110/148] via 192.168.1.18, 00:00:40, Ethernet0/0
C 128.107.10.4 is directly connected, Serial0/0
192.168.1.0/24 is variably subnetted, 7 subnets, 2 masks
O 192.168.1.8/30 [110/84] via 192.168.1.18, 00:00:40, Ethernet0/0
O 192.168.1.12/30 [110/74] via 192.168.1.18, 00:00:40, Ethernet0/0
O 192.168.1.1/32 [110/85] via 192.168.1.18, 00:00:41, Ethernet0/0
O 192.168.1.3/32 [110/11] via 192.168.1.18, 00:00:41, Ethernet0/0
O 192.168.1.2/32 [110/75] via 192.168.1.18, 00:00:41, Ethernet0/0
C 192.168.1.4/32 is directly connected, Loopback0
C 192.168.1.16/30 is directly connected, Ethernet0/0
CE2#sh ip route
Gateway of last resort is 128.107.10.5 to network 0.0.0.0
C 209.100.164.0/24 is directly connected, Ethernet0
128.107.0.0/30 is subnetted, 1 subnets
C 128.107.10.4 is directly connected, Serial0
S* 0.0.0.0/0 [1/0] via 128.107.10.5
Bây giờ ta kiểm tra xem mạng hoạt động như thế nào bằng cách dùng extended ping từ mạng LAN của Router CE1 đến mạng LAN của Router CE2 :
CE1#ping
Protocol [ip]:
Target IP address: 209.100.164.1
Repeat count [5]:
Datagram size [100]:
Timeout in seconds [2]:
Extended commands [n]: y
Source address or interface: 204.134.8. 3.1
Type of service [0]:
Set DF bit in IP header? [no]:
Validate reply data? [no]:
Data pattern [0xABCD]:
Loose, Strict, Record, Timestamp, Verbose[none]:
Sweep range of sizes [n]:
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 209.100.164.1, timeout is 2 seconds:
.....
Success rate is 0 percent (0/5)
Ping không thành công là do các router P1 và P2 không hề biết đến các mạng LAN của 2 router CE1 và CE2 . Do đó nếu ta thực hiện ping từ CE1 đến CE2 thì gói tin sẽ bị P1 đánh rớt . Để giải quyết vấn đề này, ta sử dụng MPLS trên các router của mạng ISP .
Bước 4:
Cấu hình MPLS trên các router. Như đã phân tích ở trên. Vì các gói từ router CE1 và CE2 không cần phải gắn nhãn nên ta chỉ cấu hình MPLS trên các router của mạng ISP. Cấu hình bằng cách sử dụng tag-switching. Tag-switching phụ thuộc vào tag distribution protocol (TDP) để trao đổi gói tin giữa các tag switching router (TSR). Chỉ có các router của Cisco mới hiểu tag-switching . Để cấu hình tag-switching , Cisco Express Forwarding (CEF) phải được bật lên cũng như tag-switching phải được bật trên các interface tương ứng. Ta cũng có thể cấu hình MPLS thay vì cấu hình tag-switching , MPLS ra đời sau tag-switching, hoạt động và có cấu hình tương tự như tag-switching. Tuy nhiên MPLS phụ thuộc vào Label Distribution protocol (LDP) để trao đổi nhãn với các láng giềng. Khi cấu hình MPLS , các câu lệnh đều giống như tag-switching nhưng chỉ khác ở chỗ thay vì sử dụng lệnh tag-switching ip ta sử dụng câu lệnh mpls ip.
P1(config)#ip cef
P1(config)#tag-switching advertise-tags
P1(config)#tag-switching ip
P1(config)#int f0/0
P1(config-if)#tag-switching ip
P1(config-if)#int s0/0
P1(config-if)#tag-switching ip
P1(config-if)#exit
PE1(config)#ip cef
PE1(config)#tag-switching advertise-tags
PE1(config)#tag-switching ip
PE1(config)#int e0/0
PE1(config-if)#tag-switching ip
PE1(config-if)#exit
P2(config)#ip cef
P2(config)#tag-switching advertise-tags
P2(config)#tag-switching ip
P2(config)#int e0/0
P2(config-if)#tag-switching ip
P2(config-if)#int s0/0
P2(config-if)#tag-switching ip
P2(config-if)#exit
PE2(config)#ip cef
PE2(config)#tag-switching advertise-tags
PE2(config)#tag-switching ip
PE2(config)#int e0/0
PE2(config-if)#tag-switching ip
PE2(config-if)#exit
Bước 5: Để kiểm tra xem tag-switching đã được bật lên chưa , sử dụng câu lệnh show tag-switching interfaces
PE1#sh tag-switching interfaces
Interface IP Tunnel Operational
Ethernet0/0 Yes (tdp) No Yes
P1#sh tag-switching interfaces
Interface IP Tunnel Operational
Serial0/0 Yes (tdp) No Yes
Ethernet0/0 Yes (tdp) No Yes
P2#sh tag-switching interfaces
Interface IP Tunnel Operational
Serial0/0 Yes (tdp) No Yes
Ethernet0/0 Yes (tdp) No Yes
PE2#sh tag-switching interfaces
Interface IP Tunnel Operational
Ethernet0/0 Yes (tdp) No Yes
Bước 6 : Cách tốt nhất để kiểm tra xem MPLS hoạt động hay chưa ta hãy thực hiện extended ping từ mạng LAN của CE1 đến mạng LAN của CE2
CE1#ping
Protocol [ip]:
Target IP address: 209.100.164.1
Repeat count [5]:
Datagram size [100]:
Timeout in seconds [2]:
Extended commands [n]: y
Source address or interface: 204.134.83.1
Type of service [0]:
Set DF bit in IP header? [no]:
Validate reply data? [no]:
Data pattern [0xABCD]:
Loose, Strict, Record, Timestamp, Verbose[none]:
Sweep range of sizes [n]:
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 209.100.164.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 92/93/96 ms
Ping thành công là nhờ vào quá trình chuyển mạch nhãn giữa các router trong mạng service provider . Có thể giải thích quá trình này như sau :
Step 1 : Một host ở mạng 204.134.83.0 muốn gửi dữ liệu đến host ở mạng 209.100.164.0 . Host này biết rằng host đích là ở đầu xa và chuyển frame đến default gateway của nó là CE1 .
Step 2 : CE1 nhận frame , bỏ qua thông tin lớp 2 , kiểm tra thông tin lớp 3 để xem thử có đường đến mạng đích 209.100.164.0 hay không ? Không có route nào trong bảng định tuyến để đến mạng này (xem bảng định tuyến của CE1) nên nó chuyển gói tin đến router PE1 bằng route tĩnh .
Step 3 : Router PE1 nhận gói tin và kiểm tra thông tin lớp 3 , nó biết có một route đến mạng đích mà nó học được từ PE2 thông qua BGP . Địa chỉ next-hop của mạng đầu xa là 192.168.1.4 . Router PE1 gán nhãn vào gói tin và chuyển nó đến P1:
PE1#sh tag-switching forwarding-table
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
16 Untagged 204.134.83.0/24 0 Se0/0 point2point
17 Pop tag 192.168.1.2/32 0 Et0/0 192.168.1.9
18 16 192.168.1.3/32 0 Et0/0 192.168.1.9
19 Pop tag 192.168.1.12/30 0 Et0/0 192.168.1.9
20 17 192.168.1.16/30 0 Et0/0 192.168.1.9
21 20 128.107.10.4/30 0 Et0/0 192.168.1.9
22 21 192.168.1.4/32 0 Et0/0 192.168.1.9
Bằng cách quan sát ngõ ra của bảng trên, ta có thể thấy gói tin được gởi đi như một nhãn, hay trong trường hợp này là gói tin được tag. Vì gói tin cần phải được chuyển đến 192.168.1.4 nên quan sát bảng trên ta thấy, router PE1 gắn nhãn 22 vào gói tin này , quan sát bảng trên ta biết được nhãn ngõ ra là 21, interface ngõ ra là e0/0 có địa chỉ là 192.168.1.9, chính là router P1. Gói tin được chuyển đến P1.
Step 4: Tại router P1, quan sát bảng định tuyến của P1 ta thấy P1 không có route đến mạng đích . Nếu không có gán nhãn, gói tin sẽ bị rớt tại đây như ta đã kiểm tra. Do đó thay vì định tuyến gói tin , nó thực hiện chuyển mạch nhãn.
P1#sh tag-switching forwarding-table
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
16 Pop tag 192.168.1.3/32 0 Se0/0 point2point
17 Pop tag 192.168.1.16/30 0 Se0/0 point2point
18 Pop tag 128.107.10.0/30 1140 Fa0/0 192.168.1.10
19 Pop tag 192.168.1.1/32 1801 Fa0/0 192.168.1.10
20 20 128.107.10.4/30 0 Se0/0 point2point
21 21 192.168.1.4/32 167 Se0/0 point2point
Từ router PE1, gói tin được gán nhãn là 21 , quan sát bảng trên ta thấy, nhãn ngõ ra là 21, interface ngõ ra là s0/0 với next-hop là router P2. Gói tin được P1 chuyển mạch nhãn đến P2.
Step 5: tại router P2 , hành động cũng xảy ra giống như tại router P2.
P2#sh tag-switching forwarding-table
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
16 Pop tag 192.168.1.8/30 0 Se0/0 point2point
17 Pop tag 192.168.1.2/32 0 Se0/0 point2point
18 18 128.107.10.0/30 2160 Se0/0 point2point
19 19 192.168.1.1/32 2978 Se0/0 point2point
20 Pop tag 128.107.10.4/30 1140 Et0/0 192.168.1.17
21 Pop tag 192.168.1.4/32 1447 Et0/0 192.168.1.17
Tại router P2 , gói tin với nhãn 21 , P2 cũng không xử lí thông tin lớp 3, nó thực hiện gỡ bỏ nhãn ra ( hành động này được gọi là pop , đối với tag-switching được gọi là tag pop ) . P2 cũng không thực hiện định tuyến , nó chỉ đơn giản chuyển các gói tin untagged (các gói tin sau khi đã tháo nhãn) đến router PE2 .
Step 6 : router PE2 nhận gói tin và kiểm tra thông tin lớp 3 , PE2 biết mạng đích (quan sát bảng định tuyến của PE2), địa chỉ next- hop của mạng đích là 128.107.10.6. Router PE2 chuyển gói tin đến CE2.
PE2#sh tag-switching forwarding-table
Local Outgoing Prefix Bytes tag Outgoing Next Hop
tag tag or VC or Tunnel Id switched interface
16 Untagged 209.100.164.0/24 0 Se0/0 point2point
17 16 192.168.1.8/30 0 Et0/0 192.168.1.18
18 18 128.107.10.0/30 0 Et0/0 192.168.1.18
19 19 192.168.1.1/32 0 Et0/0 192.168.1.18
20 17 192.168.1.2/32 0 Et0/0 192.168.1.18
21 Pop tag 192.168.1.3/32 0 Et0/0 192.168.1.18
22 Pop tag 192.168.1.12/30 0 Et0/0 192.168.1.18
Step 7: Router CE2 nhận gói tin , kiểm tra thông tin lớp 3 . Nó có một interface kết nối trực tiếp với mạng đích và đơn giản chuyển gói tin đến đích. Để kiểm tra xem nhãn được trao đổi như thế nào giữa các neighbor , sử dụng câu lệnh show tag-switching tdp discovery (nếu dùng mpls thì sử dụng câu lệnh show mpls ldp discovery).
PE2#sh tag-switching tdp discovery
Local TDP Identifier:
192.168.1.4:0
Discovery Sources:
Interfaces:
Ethernet0/0 (tdp): xmit/recv
TDP Id: 192.168.1.3:0
Nếu muốn có nhiều thông tin hơn cho việc gán nhãn trong một mạng , sử dụng câu lệnh show tag-switching tdp bindings (hoặc là show mpls ldp bindings ).
PE2#sh tag-switching tdp bindings
tib entry: 128.107.10.0/30, rev 53
local binding: tag: 18
remote binding: tsr: 192.168.1.3:0, tag: 18
tib entry: 128.107.10.4/30, rev 4
local binding: tag: imp-null
remote binding: tsr: 192.168.1.3:0, tag: 20
tib entry: 192.168.1.1/32, rev 67
local binding: tag: 19
remote binding: tsr: 192.168.1.3:0, tag: 19
tib entry: 192.168.1.2/32, rev 56
local binding: tag: 20
remote binding: tsr: 192.168.1.3:0, tag: 17
tib entry: 192.168.1.3/32, rev 57
local binding: tag: 21
remote binding: tsr: 192.168.1.3:0, tag: imp-null
tib entry: 192.168.1.4/32, rev 6
local binding: tag: imp-null
remote binding: tsr: 192.168.1.3:0, tag: 21
tib entry: 192.168.1.8/30, rev 52
local binding: tag: 17
remote binding: tsr: 192.168.1.3:0, tag: 16
tib entry: 192.168.1.12/30, rev 58
local binding: tag: 22
remote binding: tsr: 192.168.1.3:0, tag: imp-null
tib entry: 192.168.1.16/30, rev 65
local binding: tag: imp-null
remote binding: tsr: 192.168.1.3:0, tag: imp-null
tib entry: 209.100.164.0/24, rev 2
local binding: tag: 16