Bài viết chuyên đề
MPLS VPN: OSPF và EIGRP
22/11/2017 10:13:10
Trong bài viết trước, chúng ta đã cùng nhau khảo sát cách thức thực hiện MPLS – VPN với hai kỹ thuật định tuyến PE – CE là Static route và RIP. Trong bài viết này, chúng ta sẽ cùng thực hiện cấu hình MPLS – VPN với giao thức định tuyến PE – CE là OSPF và EIGRP.
Bài lab này sẽ sử dụng lại Core MPLS đã xây dựng ở bài viết trước. Giao thức định tuyến PE – CE trong bài này sẽ là OSPF và EIGRP thay cho Static route và RIP ở bài trước. Để tiện theo dõi, phần cấu hình MPLS Core và tạo VRF cho các khách hàng sẽ được trình bày lại trong bài viết này.
Sơ đồ bài lab:
Mô tả:
Bài lab ở hình 1 mô phỏng một kịch bản có hai khách hàng muốn thuê đường truyền MPLS – VPN của ISP. Các router R1A và R5A là các router đấu nối của khách hàng A, các router R1B và R5B là các router đấu nối của khách hàng B. Các router R2, R3 và R4 đóng vai trò các router MPLS của một core ISP và sẽ thực hiện tạo các đường MPLS – VPN để đấu nối giữa các chi nhánh của các khách hàng A và B.
Khách hàng A sẽ chạy OSPF còn khách hàng B sẽ chạy EIGRP với ISP. Kết quả cuối cùng sau khi thiết lập thành công VPN là các router chi nhánh của mỗi khách hàng sẽ phải thấy được các subnet của nhau trong bảng định tuyến của mình, các subnet của A đi đến nhau được (loopback 0 của R1A đi đến được loopback 0 của R5A), các subnet của B đi đến nhau được (loopback 0 của R1B đi đến được loopback 0 của R5B).
Yêu cầu:
- Tạo MPLS core.
- Thực hiện các MPLS – VPN cho các khách hàng A và B.
- Yêu cầu về định tuyến:
- Khách hàng A chạy OSPF với nhà cung cấp dịch vụ.
- Khách hàng B chạy EIGRP với nhà cung cấp dịch vụ.
Thực hiện:
Tạo MPLS – core:
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.
R2(config)#router ospf 1
R2(config-router)#network 2.2.2.0 0.0.0.255 area 0
R2(config-router)#network 192.168.23.0 0.0.0.255 area 0
R3(config)#router ospf 1
R3(config-router)# network 192.168.23.0 0.0.0.255 area 0
R3(config-router)# network 192.168.34.0 0.0.0.255 area 0
R4(config)#router ospf 1
R4(config-router)#network 4.4.4.0 0.0.0.255 area 0
R4(config-router)#network 192.168.34.0 0.0.0.255 area 0
Bước 2: Bật MPLS trên tất cả các router PE và P.
R2(config)#interface FastEthernet0/1
R2(config-if)# mpls ip
R3(config)#interface FastEthernet0/0
R3(config-if)# mpls ip
R3(config-if)#interface FastEthernet0/1
R3(config-if)# mpls ip
R4(config)#interface FastEthernet0/1
R4(config-if)# mpls ip
Show kiểm tra việc thiết lập quan hệ LDP:
R3#show mpls ldp neighbor
Peer LDP Ident: 2.2.2.2:0; Local LDP Ident 3.3.3.3:0
TCP connection: 2.2.2.2.646 - 3.3.3.3.48539
State: Oper; Msgs sent/rcvd: 26/26; Downstream
Up time: 00:16:44
LDP discovery sources:
FastEthernet0/0, Src IP addr: 192.168.23.2
Addresses bound to peer LDP Ident:
192.168.23.2 2.2.2.2
Peer LDP Ident: 4.4.4.4:0; Local LDP Ident 3.3.3.3:0
TCP connection: 4.4.4.4.48088 - 3.3.3.3.646
State: Oper; Msgs sent/rcvd: 26/27; Downstream
Up time: 00:16:43
LDP discovery sources:
FastEthernet0/1, Src IP addr: 192.168.34.4
Addresses bound to peer LDP Ident:
192.168.34.4 4.4.4.4
Chú ý: Các interface loopback cần phải được quảng bá đi đúng subnet – mask của nó. Điều này nhằm đảm bảo hệ thống chuyển mạch nhãn hoạt động đúng đắn. Muốn vậy, ngay từ đầu đặt địa chỉ cho các loopback với prefix – length /32 hoặc chọn kiểu network – type là point – to – point cho các loopback này.
R2(config)#interface Loopback0
R2(config-if)#ip ospf network point-to-point
R3(config)#interface Loopback0
R3(config-if)#ip ospf network point-to-point
R4(config)#interface Loopback0
R4(config-if)#ip ospf network point-to-point
Bước 3: Bật BGP trên các PE router.
R2(config)#router bgp 234
R2(config-router)#neighbor 4.4.4.4 remote-as 234
R2(config-router)#neighbor 4.4.4.4 update-source Loopback0
R4(config)#router bgp 234
R4(config-router)#neighbor 2.2.2.2 remote-as 234
R4(config-router)#neighbor 2.2.2.2 update-source Loopback0
Bước 4: Bật tính năng VPNv4 cho BGP.
R2(config)#router bgp 234
R2(config-router)#address-family vpnv4
R2(config-router-af)#neighbor 4.4.4.4 activate
R4(config)#router bgp 234
R4(config-router)#address-family vpnv4
R4(config-router-af)#neighbor 2.2.2.2 activate
Khách hàng A (chạy OSPF):
Bước 1: Tạo VRF cho khách hàng A trên các router PE (ở đây là các router R2 và R4):
R2(config)#ip vrf A
R2(config-vrf)# rd 15:15
R2(config-vrf)#route-target export 1:1
R2(config-vrf)#route-target import 5:5
R4(config)#ip vrf A
R4(config-vrf)#rd 15:15
R4(config-vrf)#route-target export 5:5
R4(config-vrf)#route-target import 1:1
Bước 2: Gán các VRF này vào các cổng tương ứng và tiến hành đặt địa chỉ IP:
R2(config)#interface s2/1
R2(config-if)#ip vrf forwarding A
R2(config-if)#ip address 192.168.12.2 255.255.255.0
R4(config)#interface s2/1
R4(config-if)#ip vrf forwarding A
R4(config-if)#ip address 192.168.45.4 255.255.255.0
Bước 3: Thực hiện đặt địa chỉ IP như đã chỉ ra trên sơ đồ cho khách hàng A. Ping kiểm tra giữa PE và CE.
Trên R2:
R2#ping vrf A 192.168.12.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.12.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 32/69/156 ms
R2#
Trên R4:
R4#ping vrf A 192.168.45.5
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.45.5, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 28/46/68 ms
Bước 4: Chạy OSPF trên các router khách hàng.
R1A(config)#router ospf 1
R1A(config-router)#network 0.0.0.0 255.255.255.255 area 0
R5A(config)#router ospf 1
R5A(config-router)#network 0.0.0.0 255.255.255.255 area 0
Bước 5: Trên các router PE chạy giao thức OSPF cho VRF A.
R2(config)#router ospf 11 vrf A
R2(config-router)#network 192.168.12.0 0.0.0.255 area 0
R4(config)#router ospf 11 vrf A
R4(config-router)#network 192.168.45.0 0.0.0.255 area 0
Bước 6: Kiểm tra bảng định tuyến tương ứng với VRF A trên các router PE, ta thấy các route từ khách hàng đã được học:
R2#sh ip route vrf A
C 192.168.12.0/24 is directly connected, Serial2/1
1.0.0.0/32 is subnetted, 1 subnets
O 1.1.1.1 [110/65] via 192.168.12.1, 00:13:26, Serial2/1
R4#show ip route vrf A
C 192.168.45.0/24 is directly connected, Serial2/1
5.0.0.0/32 is subnetted, 1 subnets
O 5.5.5.5 [110/65] via 192.168.45.5, 00:13:03, Serial2/1
Kiểm tra mối quan hệ láng giềng từ các router biên của khách hàng:
R1A#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
192.168.12.2 0 FULL/ - 00:00:38 192.168.12.2 Serial2/0
R5A#show ip ospf neighbor
Neighbor ID Pri State Dead Time Address Interface
192.168.45.4 0 FULL/ - 00:00:36 192.168.45.4 Serial2/0
Bước 7: Trên các router PE, thực hiện redistribute các route OSPF của khách hàng A vào MP – BGP:
Trên R2:
R2(config)#router bgp 234
R2(config-router)#address-family ipv4 vrf A
R2(config-router-af)#redistribute ospf 11 vrf A
Trên R4:
R4(config)#router bgp 234
R4(config-router)#address-family ipv4 vrf A
R4(config-router-af)#redistribute ospf 11 vrf A
Bước 8: Kiểm tra trên các router PE rằng đã nhận được các route OSPF từ đầu kia:
R2#show ip bgp vpnv4 vrf A
BGP table version is 9, local router ID is 2.2.2.2
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
Route Distinguisher: 15:15 (default for vrf A)
*> 1.1.1.1/32 192.168.12.1 65 32768 ?
*>i5.5.5.5/32 4.4.4.4 65 100 0 ?
*> 192.168.12.0 0.0.0.0 0 32768 ?
*>i192.168.45.0 4.4.4.4 0 100 0 ?
R4#show ip bgp vpnv4 vrf A
BGP table version is 9, local router ID is 4.4.4.4
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
Route Distinguisher: 15:15 (default for vrf A)
*>i1.1.1.1/32 2.2.2.2 65 100 0 ?
*> 5.5.5.5/32 192.168.45.5 65 32768 ?
*>i192.168.12.0 2.2.2.2 0 100 0 ?
*> 192.168.45.0 0.0.0.0 0 32768 ?
Bước 9: Trên các router PE, tại VRF A, thực hiện redistribute các route BGP vào OSPF.
R2(config)#router ospf 11 vrf A
R2(config-router)# redistribute bgp 234 subnets
R4(config)#router ospf 11 vrf A
R4(config-router)# redistribute bgp 234 subnets
Bước 10: Lúc này hai đầu khách hàng đã thấy được nhau. Ta thực hiện một số thao tác kiểm tra trên các router khách hàng.
Xem bảng định tuyến:
R1A#show ip route ospf
O IA 192.168.45.0/24 [110/65] via 192.168.12.2, 00:31:17, Serial2/0
5.0.0.0/32 is subnetted, 1 subnets
O IA 5.5.5.5 [110/129] via 192.168.12.2, 00:31:17, Serial2/0
R5A#show ip route ospf
O IA 192.168.12.0/24 [110/65] via 192.168.45.4, 00:31:50, Serial2/0
1.0.0.0/32 is subnetted, 1 subnets
O IA 1.1.1.1 [110/129] via 192.168.45.4, 00:31:50, Serial2/0
Ta để ý rằng các site R1A và R5A thấy các subnet của nhau được hiển thị thành các route O IA trong bảng định tuyến dù rằng ta chỉ cấu hình một Area 0 cho tiến trình OSPF giữa PE và CE. Điều này xảy ra vì kỹ thuật MPLS – VPN sẽ coi MPLS Core như một Super Backbone: hai chi nhánh của khách hàng khi đấu nối vào backbone này sẽ được xem như là hai Area khác nhau đấu vào vùng backbone nên chúng thấy các subnet của nhau thành các route liên vùng (O IA), tương tự như trong kiến trúc OSPF thông thường trong mạng doanh nghiệp khi các Area khác nhau đấu nối vào Area 0 sẽ thấy các subnet của nhau trong bảng định tuyến là O IA.
Ping kiểm tra:
R1A#ping 5.5.5.5
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 5.5.5.5, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 172/234/352 ms
R5A#ping 1.1.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 140/200/224 ms
Khách hàng B (chạy EIGRP):
Bước 1: Tạo VRF cho khách hàng A trên các router PE (ở đây là các router R2 và R4):
R2(config)#ip vrf B
R2(config-vrf)#rd 67:67
R2(config-vrf)#route-target export 6:6
R2(config-vrf)#route-target import 7:7
R4(config)#ip vrf B
R4(config-vrf)#rd 67:67
R4(config-vrf)#route-target export 7:7
R4(config-vrf)#route-target import 6:6
Bước 2: Gán các VRF này vào các cổng tương ứng và tiến hành đặt địa chỉ IP:
R2(config)#interface s2/2
R2(config-if)#ip vrf forwarding B
R2(config-if)#ip address 192.168.12.2 255.255.255.0
R4(config)#interface s2/2
R4(config-if)#ip vrf forwarding B
R4(config-if)#ip address 192.168.45.4 255.255.255.0
Bước 3: Thực hiện đặt địa chỉ IP như đã chỉ ra trên sơ đồ cho khách hàng B. Để ý rằng bài lab này cố tình để địa chỉ hai khách hàng A và B hoàn toàn giống nhau. Ping kiểm tra giữa PE và CE:
Trên R2:
R2#ping vrf B 192.168.12.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.12.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 32/69/156 ms
R2#
Trên R4:
R4#ping vrf B 192.168.45.5
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.45.5, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 28/46/68 ms
Bước 4: Chạy EIGRP trên các router khách hàng.
R1B(config)# router eigrp 100
R1B(config-router)#network 0.0.0.0
R1B(config-router)#no auto-summary
R5B(config)# router eigrp 100
R5B(config-router)#network 0.0.0.0
R5B(config-router)#no auto-summary
Bước 5: Trên các router PE chạy giao thức EIGRP cho VRF B.
R2(config)#router eigrp 1
R2(config-router)#address-family ipv4 vrf B
R2(config-router-af)#network 192.168.12.0
R2(config-router-af)#autonomous-system 100
R2(config-router-af)#no auto-summary
R4(config)#router eigrp 1
R4(config-router)#address-family ipv4 vrf B
R4(config-router-af)#network 192.168.12.0
R4(config-router-af)#autonomous-system 100
R4(config-router-af)#no auto-summary
Chú ý: Trong các tiến trình EIGRP chạy cho VRF B, chúng ta phải khai báo số autonomous system (AS) cho khớp với số AS của các tiến trình EIGRP đang chạy trên các router của khách hàng. Điều này được thực hiện bằng câu lệnh “autonomous-system”.
Bước 6: Kiểm tra bảng định tuyến tương ứng với VRF B trên các router PE, ta thấy các route từ khách hàng đã được học:
R2#show ip route vrf B
C 192.168.12.0/24 is directly connected, Serial2/2
1.0.0.0/24 is subnetted, 1 subnets
D 1.1.1.0 [90/2297856] via 192.168.12.1, 00:11:45, Serial2/2
R4#show ip route vrf B
C 192.168.45.0/24 is directly connected, Serial2/2
5.0.0.0/24 is subnetted, 1 subnets
D 5.5.5.0 [90/2297856] via 192.168.45.5, 00:12:20, Serial2/2
Kiểm tra mối quan hệ láng giềng từ các router biên của khách hàng:
R1B#show ip eigrp neighbors
IP-EIGRP neighbors for process 100
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
0 192.168.12.2 Se2/0 11 00:14:14 200 2700 0 5
R5B#show ip eigrp neighbors
IP-EIGRP neighbors for process 100
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
0 192.168.45.4 Se2/0 11 00:14:41 396 2376 0 3
Bước 7: Trên các router PE, thực hiện redistribute các route EIGRP của khách hàng B vào MP – BGP:
R2(config)#router bgp 234
R2(config-router)#address-family ipv4 vrf B
R2(config-router-af)#redistribute eigrp 100
R4(config)#router bgp 234
R4(config-router)#address-family ipv4 vrf B
R4(config-router-af)#redistribute eigrp 100
Bước 8: Kiểm tra trên các router PE rằng đã nhận được các route EIGRP từ đầu kia:
R2#show ip bgp vpnv4 vrf B
BGP table version is 21, local router ID is 2.2.2.2
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
Route Distinguisher: 67:67 (default for vrf B)
*> 1.1.1.0/24 192.168.12.1 2297856 32768 ?
*>i5.5.5.0/24 4.4.4.4 2297856 100 0 ?
*> 192.168.12.0 0.0.0.0 0 32768 ?
*>i192.168.45.0 4.4.4.4 0 100 0 ?
R4#show ip bgp vpnv4 vrf B
BGP table version is 21, local router ID is 4.4.4.4
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
Route Distinguisher: 67:67 (default for vrf B)
*>i1.1.1.0/24 2.2.2.2 2297856 100 0 ?
*> 5.5.5.0/24 192.168.45.5 2297856 32768 ?
*>i192.168.12.0 2.2.2.2 0 100 0 ?
*> 192.168.45.0 0.0.0.0 0 32768 ?
Bước 9: Trên các router PE, tại VRF B, thực hiện redistribute các route BGP vào EIGRP.
R2(config)#router eigrp 1
R2(config-router)#address-family ipv4 vrf B
R2(config-router-af)#redistribute bgp 234 metric 10000 100 255 1 1500
R4(config)#router eigrp 1
R4(config-router)#address-family ipv4 vrf B
R4(config-router-af)#redistribute bgp 234 metric 10000 100 255 1 1500
Bước 10: Lúc này hai đầu khách hàng đã thấy được nhau. Ta thực hiện một số thao tác kiểm tra trên các router khách hàng.
Xem bảng định tuyến:
R1B#show ip route eigrp
D 192.168.45.0/24 [90/2681856] via 192.168.12.2, 00:25:08, Serial2/0
5.0.0.0/24 is subnetted, 1 subnets
D 5.5.5.0 [90/2809856] via 192.168.12.2, 00:25:08, Serial2/0
R5B#show ip route eigrp
D 192.168.12.0/24 [90/2681856] via 192.168.45.4, 00:25:40, Serial2/0
1.0.0.0/24 is subnetted, 1 subnets
D 1.1.1.0 [90/2809856] via 192.168.45.4, 00:25:40, Serial2/0
Thực hiện ping kiểm tra:
R1B#ping 5.5.5.5
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 5.5.5.5, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 148/228/412 ms
R5B#ping 1.1.1.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 1.1.1.1, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 204/262/340 ms
Đến đây, chúng ta đã hoàn thành yêu cầu đặt ra của bài lab.
Trong các bài viết tiếp theo, chúng ta sẽ cùng tìm hiểu tiếp các khía cạnh khác của MPLS VPN.
TRUNG TÂM WAREN