Bài viết chuyên đề
MPLS VPN: OVERLAPPING VPN
29/11/2017 11:48:32
Trong các bài viết trước, chúng ta đã cùng khảo sát kỹ thuật MPLS – VPN với các giao thức định tuyến PE – CE từ IGP cho đến BGP. Trong bài viết này, chúng ta sẽ cùng xem xét kỹ thuật tạo các VPN phức tap để đáp ứng các yêu cầu phức tạp hơn của khách hàng. Như với các bài viết trước, để quan sát vấn đề một cách trực quan, chúng ta cùng khảo sát thông qua một ví dụ lab.
Sơ đồ:
Mô tả:
Trên sơ đồ hình 1 là một core MPLS của một ISP, core này đang cung cấp dịch vụ MPLS – VPN cho các khách hàng A và B. Các router CE của khách hàng A là: A, A1, A2; các router CE của khách hàng B là B, B1, B2. Với khách hàng A, site A là site chính, các site A1 và A2 là các site chi nhánh; tương tự, với khách hàng B, site B là site chính, các site B1 và B2 là các site chi nhánh.
Yêu cầu đầu tiên được đặt ra trong việc thuê VPN hiển nhiên là các site của cùng một công ty phải đi đến được nhau: A, A1 và A2 đi đến được các subnet của nhau và B, B1, B2 đi đến được các subnet của nhau.
Bên cạnh đó, hai công ty A và B này lại có nhu cầu trao đổi dữ liệu kinh doanh với nhau nên một yêu cầu khác được đặt ra là hai công ty này có thể truy xuất được vào mạng của nhau. Tuy nhiên, để đảm bảo về vấn đề bảo mật, việc truy xuất này sẽ bị giới hạn. Các server dữ liệu cần trao đổi thông tin sẽ được đặt tại trụ sở chính của hai công ty và vì vậy chỉ có hai site A và B của hai công ty có thể đi đến được nhau, A và B không thể đi đến được các site còn lại của phía bên kia.
Nhà cung cấp dịch vụ sẽ phải cấu hình MPLS – VPN nối giữa các công ty để đáp ứng được yêu cầu nêu trên (hình 2).
Hình 2 thể hiện cấu trúc VPN được thực hiện phải đảm bảo các yêu cầu sau:
- A, A1 và A2 đi đến nhau được.
- B, B1 và B2 đi đến nhau được.
- A và B đi đến nhau được.
- A không đi đến được B1, B2 và B không đi đến được A1 và A2.
Đây là một dạng VPN phức tạp: hai VPN của hai công ty A và B có sự trùng lấp một phần lên nhau, ta gọi cấu trúc này là Overlapping VPN.
Yêu cầu:
- Thiết lập core MPLS.
- Cấu hình MPLS – VPN đáp ứng yêu cầu được nêu ra trong phần “Mô tả”.
Thực hiện:
Thiết lập Core MPLS:
Bước này rất giống với các bài viết trước, được nêu lại để tiện cho việc theo dõi.
Bước 1: Chạy một giao thức định tuyến IGP trong Core, đảm bảo mọi địa chỉ trong Core thấy nhau. Trong bài lab này ta chọn IGP là OSPF.
R1(config)#router ospf 1
R1(config-router)#network 1.1.1.1 0.0.0.0 area 0
R1(config-router)#network 192.168.12.1 0.0.0.0 area 0
R2(config)#router ospf 1
R2(config-router)#network 192.168.12.2 0.0.0.0 area 0
R2(config-router)#network 192.168.23.2 0.0.0.0 area 0
R3(config)#router ospf 1
R3(config-router)#network 3.3.3.3 0.0.0.0 area 0
R3(config-router)#network 192.168.23.3 0.0.0.0 area 0
Bước 2: Bật MPLS trên tất cả các router PE và P.
R1(config)#interface FastEthernet0/1
R1(config-if)#mpls ip
R2(config)#interface FastEthernet0/0
R2(config-if)#mpls ip
R2(config-if)#interface FastEthernet0/1
R2(config-if)#mpls ip
R3(config)#interface FastEthernet0/0
R3(config-if)#mpls ip
Show kiểm tra việc thiết lập quan hệ LDP:
R2#show mpls ldp neighbor
Peer LDP Ident: 1.1.1.1:0; Local LDP Ident 2.2.2.2:0
TCP connection: 1.1.1.1.646 - 2.2.2.2.39046
State: Oper; Msgs sent/rcvd: 132/132; Downstream
Up time: 01:48:13
LDP discovery sources:
FastEthernet0/0, Src IP addr: 192.168.12.1
Addresses bound to peer LDP Ident:
192.168.12.1 1.1.1.1
Peer LDP Ident: 3.3.3.3:0; Local LDP Ident 2.2.2.2:0
TCP connection: 3.3.3.3.58701 - 2.2.2.2.646
State: Oper; Msgs sent/rcvd: 126/126; Downstream
Up time: 01:43:03
LDP discovery sources:
FastEthernet0/1, Src IP addr: 192.168.23.3
Addresses bound to peer LDP Ident:
192.168.23.3 3.3.3.3
Bước 3: Bật BGP trên các PE router.
R1(config)#router bgp 123
R1(config-router)#neighbor 3.3.3.3 remote-as 123
R1(config-router)#neighbor 3.3.3.3 update-source Loopback0
R3(config)#router bgp 123
R3(config-router)#neighbor 1.1.1.1 remote-as 123
R3(config-router)#neighbor 1.1.1.1 update-source Loopback0
Bước 4: Bật tính năng VPNv4 cho BGP.
R1(config)#router bgp 123
R1(config-router)#address-family vpnv4
R1(config-router-af)#neighbor 3.3.3.3 activate
R3(config)#router bgp 123
R3(config-router)#address-family vpnv4
R3(config-router-af)#neighbor 1.1.1.1 activate
Xây dựng Overlapping VPN:
Để có thể thực hiện được VPN phức tạp theo yêu cầu ở trên, chúng ta cần quy hoạch cẩn thận các giá trị RT được sử dụng để đảm bảo phân bố các route đến đúng các VRF thích hợp của các site. Theo như phần mô tả, chúng ta thực hiện tạo các VRF cùng các giá trị RD, RT thích hợp theo như được liệt kê trong các bảng 1 và 2:
Site |
VRF |
RD |
RT (cả Import và Export) |
A |
A |
100:1 |
100:100 300:300 |
A1 |
A1 |
100:2 |
100:100 |
B2 |
A2 |
100:3 |
200:200 |
Site |
VRF |
RD |
RT (cả Import và Export) |
B |
B |
200:1 |
200:200 300:300 |
B1 |
B1 |
200:2 |
200:200 |
A2 |
A2 |
200:3 |
100:100 |
Từ các bảng ta thấy, các site A, A1 và A2 cùng sử dụng chung bộ RT (Import và Export) là 100:100 nên các site này có thể đi đến nhau; các site B, B1, B2 sử dụng chung bộ RT là 200:200 nên chúng có thể đi đến nhau. Ngoài ra, hai site A và B còn được khai báo thêm bộ RT 300:300 nên chúng có thể đi đến nhau, giá trị RT này chỉ xuất hiện trên các VRF của A và B nên chỉ A và B đi đến nhau được, các site của phía B không đi được đến A và các site của phía A không đi được đến B.
Lần này, vì các khách hàng có thể đi đến nhau, nên các subnet sử dụng trên các site của các khách hàng không được phép trùng nhau. Sơ đồ lab sử dụng quy hoạch IP đấu nối cũng như IP cho các subnet của các site như chỉ ra trên hình 1.
Bước 1: Tạo các VRF trên các PE theo như phân bố trên các bảng 1 và 2.
Trên PE R1:
R1(config)#ip vrf A
R1(config-vrf)#rd 100:1
R1(config-vrf)#route-target both 100:100
R1(config-vrf)#route-target both 300:300
R1(config-vrf)#exit
R1(config)#ip vrf A1
R1(config-vrf)#rd 100:2
R1(config-vrf)#route-target both 100:100
R1(config-vrf)#exit
R1(config)#ip vrf B2
R1(config-vrf)#rd 100:3
R1(config-vrf)#route-target both 200:200
R1(config-vrf)#exit
Trên PE R3:
R3(config)#ip vrf B
R3(config-vrf)#rd 200:1
R3(config-vrf)#route-target both 200:200
R3(config-vrf)#route-target both 300:300
R3(config-vrf)#exit
R3(config)#ip vrf B1
R3(config-vrf)#rd 200:2
R3(config-vrf)#route-target both 200:200
R3(config-vrf)#exit
R3(config)#ip vrf A2
R3(config-vrf)#rd 200:3
R3(config-vrf)#route-target both 100:100
R3(config-vrf)#exit
Bước 2: Gán các cổng tương ứng vào các VRF đã tạo và tiến hành đặt địa chỉ IP.
Trên PE R1:
R1(config)#interface s2/1
R1(config-if)#ip vrf forwarding A
R1(config-if)#ip address 192.168.1.254 255.255.255.0
R1(config-if)#exit
R1(config)#interface s2/2
R1(config-if)#ip vrf forwarding A1
R1(config-if)#ip address 192.168.11.254 255.255.255.0
R1(config-if)#exit
R1(config)#interface s2/3
R1(config-if)#ip vrf forwarding B2
R1(config-if)#ip address 192.168.222.254 255.255.255.0
R1(config-if)#exit
Trên PE R3:
R3(config)#interface s2/1
R3(config-if)#ip vrf forwarding B
R3(config-if)#ip address 192.168.2.254 255.255.255.0
R3(config-if)#exit
R3(config)#interface s2/2
R3(config-if)#ip vrf forwarding B1
R3(config-if)#ip address 192.168.22.254 255.255.255.0
R3(config-if)#exit
R3(config)#interface s2/3
R3(config-if)#ip vrf forwarding A2
R3(config-if)#ip address 192.168.111.254 255.255.255.0
R3(config-if)#exit
Bước 4: Thực hiện đặt IP trên các site khách hàng theo như quy hoạch IP được thể hiện trong sơ đồ hình 1. Sau khi đặt xong các IP, ta thực hiện ping kiểm tra các kết nối giữa PE – CE:
Trên PE R1:
R1#ping vrf A 192.168.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 16/36/56 ms
R1#ping vrf A1 192.168.11.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.11.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 16/40/60 ms
R1#ping vrf B2 192.168.222.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.222.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 24/44/68 ms
Trên PE R3:
R3#ping vrf B 192.168.2.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.2.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 16/32/44 ms
R3#ping vrf B1 192.168.22.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.22.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 24/32/44 ms
R3#ping vrf A2 192.168.111.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.111.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 28/47/60 ms
Bước 5: Chạy định tuyến giữa PE – CE. Trong bài lab này, chúng ta chọn giao thức chạy giữa PE và CE của cả hai công ty là EIGRP. Công ty A sử dụng EIGRP 100 và công ty B sử dụng EIGRP 200.
Chạy EIGRP với khách hàng A:
R1(config)#router eigrp 1
R1(config-router)#address-family ipv4 vrf A
R1(config-router-af)#autonomous-system 100
R1(config-router-af)#no auto-summary
R1(config-router-af)#network 192.168.1.0
R1(config-router-af)#exit
R1(config-router)#address-family ipv4 vrf A1
R1(config-router-af)#autonomous-system 100
R1(config-router-af)#no auto-summary
R1(config-router-af)#network 192.168.11.0
R1(config-router-af)#exit
R3(config)#router eigrp 1
R3(config-router)#address-family ipv4 vrf A2
R3(config-router-af)#autonomous-system 100
R3(config-router-af)#no auto-summary
R3(config-router-af)#network 192.168.111.0
R3(config-router-af)#exit
A(config)#router eigrp 100
A(config-router)#no auto-summary
A(config-router)#network 192.168.1.0
A1(config)#router eigrp 100
A1(config-router)#no auto-summary
A1(config-router)#network 192.168.11.0
A2(config)#router eigrp 100
A2(config-router)#no auto-summary
A2(config-router)#network 192.168.111.0
Chạy EIGRP với khách hàng B:
R3(config)#router eigrp 1
R3(config-router)#address-family ipv4 vrf B
R3(config-router-af)#autonomous-system 200
R3(config-router-af)#no auto-summary
R3(config-router-af)#network 192.168.2.0
R3(config-router-af)#exit
R3(config-router)#address-family ipv4 vrf B1
R3(config-router-af)#autonomous-system 200
R3(config-router-af)#no auto-summary
R3(config-router-af)#network 192.168.22.0
R3(config-router-af)#exit
R1(config)#router eigrp 1
R1(config-router)#address-family ipv4 vrf B2
R1(config-router-af)#autonomous-system 200
R1(config-router-af)#no auto-summary
R1(config-router-af)#network 192.168.222.0
R1(config-router-af)#exit
B(config)#router eigrp 200
B(config-router)#no auto-summary
B(config-router)#network 192.168.2.0
B1(config)#router eigrp 200
B1(config-router)#no auto-summary
B1(config-router)#network 192.168.22.0
B2(config)#router eigrp 200
B2(config-router)#no auto-summary
B2(config-router)#network 192.168.222.0
Bước 6: Redistribute các route của các khách hàng vào MP – BGP trên các router PE:
Trên PE R1:
R1(config)#router bgp 123
R1(config-router)#address-family ipv4 vrf A
R1(config-router-af)#redistribute eigrp 100
R1(config-router-af)#exit
R1(config-router)#address-family ipv4 vrf A1
R1(config-router-af)#redistribute eigrp 100
R1(config-router-af)#exit
R1(config-router)#address-family ipv4 vrf B2
R1(config-router-af)#redistribute eigrp 200
R1(config-router-af)#exit
Trên PE R3:
R3(config)#router bgp 123
R3(config-router)#address-family ipv4 vrf B
R3(config-router-af)#redistribute eigrp 200
R3(config-router-af)#exit
R3(config-router)#address-family ipv4 vrf B1
R3(config-router-af)#redistribute eigrp 200
R3(config-router-af)#exit
R3(config-router)#address-family ipv4 vrf A2
R3(config-router-af)#redistribute eigrp 100
R3(config-router-af)#exit
Bước 7: Ta cũng thực hiện redistribute MP – BGP vào các VRF của các khách hàng.
Trên PE R1:
R1(config)#router eigrp 1
R1(config-router)#address-family ipv4 vrf A
R1(config-router-af)#redistribute bgp 123 metric 10000 10 255 1 1500
R1(config-router-af)#exit
R1(config-router)#address-family ipv4 vrf A1
R1(config-router-af)#redistribute bgp 123 metric 10000 10 255 1 1500
R1(config-router-af)#exit
R1(config-router)#address-family ipv4 vrf B2
R1(config-router-af)#redistribute bgp 123 metric 10000 10 255 1 1500
R1(config-router-af)#exit
Trên PE R3:
R3(config)#router eigrp 1
R3(config-router)#address-family ipv4 vrf B
R3(config-router-af)#redistribute bgp 123 metric 10000 10 255 1 1500
R3(config-router-af)#exit
R3(config-router)#address-family ipv4 vrf B1
R3(config-router-af)#redistribute bgp 123 metric 10000 10 255 1 1500
R3(config-router-af)#exit
R3(config-router)#address-family ipv4 vrf A2
R3(config-router-af)#redistribute bgp 123 metric 10000 10 255 1 1500
R3(config-router-af)#exit
Đến đây chúng ta đã hoàn tất việc cấu hình Overlapping VPN. Trong bước tiếp theo, chúng ta sẽ thực hiện kiểm tra xem kết quả cấu hình có đáp ứng được yêu cầu đặt ra hay không.
Bước 8: Kiểm tra kết quả thực hiện.
Ta kiểm tra bảng định tuyến EIGRP trên các site chi nhánh của hai công ty.
Công ty A:
A1#show ip route eigrp
D 192.168.111.0/24 [90/2681856] via 192.168.11.254, 01:02:01, Serial2/0
172.16.0.0/24 is subnetted, 3 subnets
D 172.16.0.0 [90/2809856] via 192.168.11.254, 01:02:31, Serial2/0
D 172.16.2.0 [90/2809856] via 192.168.11.254, 01:02:01, Serial2/0
D 192.168.1.0/24 [90/2681856] via 192.168.11.254, 01:02:31, Serial2/0
A2#show ip route eigrp
172.16.0.0/24 is subnetted, 3 subnets
D 172.16.0.0 [90/2809856] via 192.168.111.254, 01:02:34, Serial2/0
D 172.16.1.0 [90/2809856] via 192.168.111.254, 01:02:34, Serial2/0
D 192.168.11.0/24 [90/2681856] via 192.168.111.254, 01:02:34, Serial2/0
D 192.168.1.0/24 [90/2681856] via 192.168.111.254, 01:02:34, Serial2/0
Công ty B:
B1#show ip route eigrp
172.17.0.0/24 is subnetted, 3 subnets
D 172.17.0.0 [90/2809856] via 192.168.22.254, 01:06:16, Serial2/0
D 172.17.2.0 [90/2809856] via 192.168.22.254, 01:06:16, Serial2/0
D 192.168.2.0/24 [90/2681856] via 192.168.22.254, 01:06:16, Serial2/0
D 192.168.222.0/24 [90/2681856] via 192.168.22.254, 01:06:16, Serial2/0
B2#show ip route eigrp
172.17.0.0/24 is subnetted, 3 subnets
D 172.17.1.0 [90/2809856] via 192.168.222.254, 01:06:23, Serial2/0
D 172.17.0.0 [90/2809856] via 192.168.222.254, 01:06:38, Serial2/0
D 192.168.22.0/24 [90/2681856] via 192.168.222.254, 01:06:23, Serial2/0
D 192.168.2.0/24 [90/2681856] via 192.168.222.254, 01:06:38, Serial2/0
Đối chiếu với quy hoạch IP trên sơ đồ hình 1, ta thấy rằng các router tại các site chi nhánh chỉ thấy được các subnet của các site khác thuộc cùng công ty và vì vậy chỉ đi đến được các địa chỉ thuộc về công ty của mình.
Ta kiểm tra bảng định tuyến của hai site trụ sở chính:
A#show ip route eigrp
D 192.168.111.0/24 [90/2681856] via 192.168.1.254, 01:09:07, Serial2/0
172.17.0.0/24 is subnetted, 1 subnets
D EX 172.17.0.0 [170/2172416] via 192.168.1.254, 01:09:36, Serial2/0
172.16.0.0/24 is subnetted, 3 subnets
D 172.16.1.0 [90/2809856] via 192.168.1.254, 01:09:36, Serial2/0
D 172.16.2.0 [90/2809856] via 192.168.1.254, 01:09:07, Serial2/0
D 192.168.11.0/24 [90/2681856] via 192.168.1.254, 01:09:36, Serial2/0
D EX 192.168.2.0/24 [170/2172416] via 192.168.1.254, 01:09:36, Serial2/0
B#show ip route eigrp
172.17.0.0/24 is subnetted, 3 subnets
D 172.17.1.0 [90/2809856] via 192.168.2.254, 01:09:37, Serial2/0
D 172.17.2.0 [90/2809856] via 192.168.2.254, 01:10:07, Serial2/0
172.16.0.0/24 is subnetted, 1 subnets
D EX 172.16.0.0 [170/2172416] via 192.168.2.254, 01:10:07, Serial2/0
D 192.168.22.0/24 [90/2681856] via 192.168.2.254, 01:09:37, Serial2/0
D EX 192.168.1.0/24 [170/2172416] via 192.168.2.254, 01:10:07, Serial2/0
D 192.168.222.0/24 [90/2681856] via 192.168.2.254, 01:10:07, Serial2/0
Từ kết quả show ta thấy rằng bên cạnh các subnet của cùng công ty, hai router tại hai site chính còn thấy thêm các prefix của nhau, và như thế chúng có thể đi đến nhau.
Ta kiểm tra điều này qua các lệnh ping:
A#ping 172.16.1.1 source 172.16.0.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.1.1, timeout is 2 seconds:
Packet sent with a source address of 172.16.0.1
!!!!! <- A đi được đến A1
Success rate is 100 percent (5/5), round-trip min/avg/max = 52/92/124 ms
A#ping 172.16.2.1 source 172.16.0.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.2.1, timeout is 2 seconds:
Packet sent with a source address of 172.16.0.1
!!!!! <- A đi được đến A2
Success rate is 100 percent (5/5), round-trip min/avg/max = 120/155/188 ms
A#ping 172.17.0.1 source 172.16.0.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.17.0.1, timeout is 2 seconds:
Packet sent with a source address of 172.16.0.1
!!!!! <- A đi được đến B
Success rate is 100 percent (5/5), round-trip min/avg/max = 124/135/164 ms
A#ping 172.17.1.1 source 172.16.0.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.17.1.1, timeout is 2 seconds:
Packet sent with a source address of 172.16.0.1
..... <- A không đi đến được B1
Success rate is 0 percent (0/5)
A#ping 172.17.2.1 source 172.16.0.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.17.2.1, timeout is 2 seconds:
Packet sent with a source address of 172.16.0.1
..... <- A không đi đến được B2
Success rate is 0 percent (0/5)
Ta thực hiện ping kiểm tra tương tự với site B.
Chúng ta đã cùng nhau khảo sát việc cấu hình thiết lập một VPN phức tạp dạng overlapping VPN và thấy được rằng khi sử dụng kỹ thuật MPLS – VPN, các ISP có thể đáp ứng được những yêu cầu khá phức tạp và đa dạng của khách hàng.
TRUNG TÂM WAREN