Trong bài viết tuần này, chúng ta sẽ cùng tìm hiểu cách thức để thực hiện dự phòng cho hoạt động Policy Based Routing. Như thường lệ, chúng ta sẽ cùng tìm hiểu vấn đề quan tâm thông qua một bài lab ví dụ.
Sơ đồ
Hình 1 – Sơ đồ bài lab ví dụ.
Mô tả
- Sơ đồ gồm các router được đấu nối với nhau như hình 1.
- Trên sơ đồ này, chúng ta chạy định tuyến OSPF area 0 và thực hiện cấu hình PBR trên router R1 để thực hiện chính sách về đường đi cho một số loại lưu lượng đến từ R5.
- Chúng ta sẽ cùng thực hiện một giải pháp dự phòng đường đi cho kỹ thuật PBR trong bài lab này.
- Bạn đọc có thể sử dụng router thật hoặc chạy giả lập trên GNS – 3 để thực hiện bài lab này.
Thực hiện
Bước 1: Cấu hình ban đầu
- Thực hiện đặt địa chỉ IP trên cổng của các router theo quy hoạch IP được chỉ ra trên hình 1.
- Chạy định tuyến OSPF Area 0 trên toàn bộ sơ đồ, đảm bảo mọi địa chỉ trên sơ đồ thấy được nhau.
- Cấu hình đảm bảo các subnet loopback được quảng bá đi đúng prefix – length của chúng.
- Đảm bảo R3 đi đến loopback 0 của R4 theo đường link serial nối giữa R3 và R4. Sử dụng static route để thực hiện yêu cầu này.
Cấu hình
Trên R1:
R1(config)#interface f0/0
R1(config-if)#no shutdown
R1(config-if)#ip address 192.168.12.1 255.255.255.0
R1(config-if)#exit
R1(config)#interface f0/1
R1(config-if)#no shutdown
R1(config-if)#ip address 192.168.13.1 255.255.255.0
R1(config-if)#exit
R1(config)#interface s0/0/0
R1(config-if)#no shutdown
R1(config-if)#ip address 192.168.15.1 255.255.255.0
R1(config-if)#exit
R1(config)#interface loopback 0
R1(config-if)#ip address 192.168.1.1 255.255.255.0
R1(config-if)#ip ospf network point-to-point
R1(config-if)#exit
R1(config)#router ospf 1
R1(config-router)#network 192.168.1.1 0.0.0.0 area 0
R1(config-router)#network 192.168.12.1 0.0.0.0 area 0
R1(config-router)#network 192.168.13.1 0.0.0.0 area 0
R1(config-router)#network 192.168.15.1 0.0.0.0 area 0
R1(config-router)#exit
Trên R2:
R2(config)#interface f0/0
R2(config-if)#no shutdown
R2(config-if)#ip address 192.168.12.2 255.255.255.0
R2(config-if)#exit
R2(config)#interface f0/1
R2(config-if)#no shutdown
R2(config-if)#ip address 192.168.24.2 255.255.255.0
R2(config-if)#exit
R2(config)#interface loopback 0
R2(config-if)#ip address 192.168.2.1 255.255.255.0
R2(config-if)#ip ospf network point-to-point
R2(config-if)#exit
R2(config)#router ospf 1
R2(config-router)#network 192.168.2.1 0.0.0.0 area 0
R2(config-router)#network 192.168.12.2 0.0.0.0 area 0
R2(config-router)#network 192.168.24.2 0.0.0.0 area 0
R2(config-router)#exit
Trên R3:
R3(config)#interface f0/0
R3(config-if)#no shutdown
R3(config-if)#ip address 192.168.13.3 255.255.255.0
R3(config-if)#exit
R3(config)#interface s0/0/0
R3(config-if)#no shutdown
R3(config-if)#ip address 192.168.34.3 255.255.255.0
R3(config-if)#exit
R3(config)#interface loopback 0
R3(config-if)#ip address 192.168.3.1 255.255.255.0
R3(config-if)#ip ospf network point-to-point
R3(config-if)#exit
R3(config)#router ospf 1
R3(config-router)#network 192.168.3.1 0.0.0.0 area 0
R3(config-router)#network 192.168.13.3 0.0.0.0 area 0
R3(config-router)#network 192.168.34.3 0.0.0.0 area 0
R3(config-router)#exit
R3(config)#ip route 192.168.4.0 255.255.255.0 s0/0/0
Trên R4:
R4(config)#interface f0/0
R4(config-if)#no shutdown
R4(config-if)#ip address 192.168.24.4 255.255.255.0
R4(config-if)#exit
R4(config)#interface s0/0/0
R4(config-if)#no shutdown
R4(config-if)#ip address 192.168.34.3 255.255.255.0
R4(config-if)#exit
R4(config)#interface loopback 0
R4(config-if)#ip address 192.168.4.1 255.255.255.0
R4(config-if)#ip ospf network point-to-point
R4(config-if)#exit
R4(config)#router ospf 1
R4(config-router)#network 192.168.4.1 0.0.0.0 area 0
R4(config-router)#network 192.168.24.4 0.0.0.0 area 0
R4(config-router)#network 192.168.34.4 0.0.0.0 area 0
R4(config-router)#exit
Trên R5:
R5(config)#interface s0/0/0
R5(config-if)#no shutdown
R5(config-if)#ip address 192.168.15.5 255.255.255.0
R5(config-if)#exit
R5(config)#interface f0/0
R5(config-if)#no shutdown
R5(config-if)#ip address 192.168.5.1 255.255.255.0
R5(config-if)#exit
R5(config)#interface f0/1
R5(config-if)#no shutdown
R5(config-if)#ip address 192.168.55.1 255.255.255.0
R5(config-if)#exit
R5(config)#router ospf 1
R5(config-router)#network 192.168.5.1 0.0.0.0 area 0
R5(config-router)#network 192.168.55.1 0.0.0.0 area 0
R5(config-router)#network 192.168.15.5 0.0.0.0 area 0
R5(config-router)#exit
Kiểm tra
Ta kiểm tra rằng các subnet đều đã xuất hiện trong bảng định tuyến của các router:
R1#show ip route ospf
O 192.168.24.0/24 [110/2] via 192.168.12.2, 00:01:43, FastEthernet0/0
O 192.168.55.0/24 [110/65] via 192.168.15.5, 00:01:43, Serial0/0/0
O 192.168.4.0/24 [110/3] via 192.168.12.2, 00:01:43, FastEthernet0/0
O 192.168.5.0/24 [110/65] via 192.168.15.5, 00:01:43, Serial0/0/0
O 192.168.34.0/24 [110/65] via 192.168.13.3, 00:01:43, FastEthernet0/1
O 192.168.2.0/24 [110/2] via 192.168.12.2, 00:01:43, FastEthernet0/0
O 192.168.3.0/24 [110/2] via 192.168.13.3, 00:01:43, FastEthernet0/1
R2#show ip route ospf
O 192.168.13.0/24 [110/2] via 192.168.12.1, 00:01:51, FastEthernet0/0
O 192.168.15.0/24 [110/65] via 192.168.12.1, 00:01:51, FastEthernet0/0
O 192.168.55.0/24 [110/66] via 192.168.12.1, 00:01:51, FastEthernet0/0
O 192.168.4.0/24 [110/2] via 192.168.24.4, 00:01:51, FastEthernet0/1
O 192.168.5.0/24 [110/66] via 192.168.12.1, 00:01:51, FastEthernet0/0
O 192.168.34.0/24 [110/66] via 192.168.12.1, 00:01:51, FastEthernet0/0
O 192.168.1.0/24 [110/2] via 192.168.12.1, 00:01:51, FastEthernet0/0
O 192.168.3.0/24 [110/3] via 192.168.12.1, 00:01:51, FastEthernet0/0
R3#show ip route ospf
O 192.168.12.0/24 [110/2] via 192.168.13.1, 00:01:57, FastEthernet0/0
O 192.168.15.0/24 [110/65] via 192.168.13.1, 00:01:57, FastEthernet0/0
O 192.168.24.0/24 [110/3] via 192.168.13.1, 00:01:57, FastEthernet0/0
O 192.168.55.0/24 [110/66] via 192.168.13.1, 00:01:57, FastEthernet0/0
O 192.168.5.0/24 [110/66] via 192.168.13.1, 00:01:57, FastEthernet0/0
O 192.168.1.0/24 [110/2] via 192.168.13.1, 00:01:57, FastEthernet0/0
O 192.168.2.0/24 [110/3] via 192.168.13.1, 00:01:57, FastEthernet0/0
R3#show ip route 192.168.4.0
Routing entry for 192.168.4.0/24
Known via "static", distance 1, metric 0 (connected)
Routing Descriptor Blocks:
* directly connected, via Serial0/0/0
Route metric is 0, traffic share count is 1
R4#show ip route ospf
O 192.168.12.0/24 [110/2] via 192.168.24.2, 00:02:13, FastEthernet0/0
O 192.168.13.0/24 [110/3] via 192.168.24.2, 00:02:13, FastEthernet0/0
O 192.168.15.0/24 [110/66] via 192.168.24.2, 00:02:13, FastEthernet0/0
O 192.168.55.0/24 [110/67] via 192.168.24.2, 00:02:13, FastEthernet0/0
O 192.168.5.0/24 [110/67] via 192.168.24.2, 00:02:13, FastEthernet0/0
O 192.168.1.0/24 [110/3] via 192.168.24.2, 00:02:13, FastEthernet0/0
O 192.168.2.0/24 [110/2] via 192.168.24.2, 00:02:13, FastEthernet0/0
O 192.168.3.0/24 [110/4] via 192.168.24.2, 00:02:13, FastEthernet0/0
R5#show ip route ospf
O 192.168.12.0/24 [110/65] via 192.168.15.1, 00:02:17, Serial0/0/0
O 192.168.13.0/24 [110/65] via 192.168.15.1, 00:02:17, Serial0/0/0
O 192.168.24.0/24 [110/66] via 192.168.15.1, 00:02:17, Serial0/0/0
O 192.168.4.0/24 [110/67] via 192.168.15.1, 00:02:17, Serial0/0/0
O 192.168.34.0/24 [110/129] via 192.168.15.1, 00:02:17, Serial0/0/0
O 192.168.1.0/24 [110/65] via 192.168.15.1, 00:02:17, Serial0/0/0
O 192.168.2.0/24 [110/66] via 192.168.15.1, 00:02:17, Serial0/0/0
O 192.168.3.0/24 [110/66] via 192.168.15.1, 00:02:17, Serial0/0/0
Bước 2: Cấu hình Policy Based Routing
- Thực hiện cấu hình PBR trên R1 đảm bảo mọi gói tin đến từ subnet 192.168.5.0/24 của R5 khi đi đến R1 trên cổng S0/0/0 sẽ được chuyển đi tiếp trên cổng F0/1 của R1.
- Mọi gói tin khác khi đi đến R1 trên cổng S0/0/0 sẽ được chuyển tiếp theo kết quả định tuyến đã thực hiện.
Cấu hình
Ta thực hiện yêu cầu này tương tự như đã làm với các bài lab ví dụ trong các bài viết trước.
Trên R1:
R1(config)#access-list 5 permit 192.168.5.0 0.0.0.255
R1(config)#route-map PBR permit 10
R1(config-route-map)#match ip address 5
R1(config-route-map)#set ip next-hop 192.168.13.3
R1(config-route-map)#exit
R1(config)#interface s0/0/0
R1(config-if)#ip policy route-map PBR
R1(config-if)#exit
Kiểm tra
Ta thực hiện kiểm tra kết quả của hoạt động PBR vừa thực hiện bằng cách bật debug trên R1:
R1#debug ip policy
Policy routing debugging is on
Lưu lượng đến từ mạng 192.168.5.0/24 của R5 sẽ được R1 thực hiện PBR chuyển tiếp qua cổng F0/1:
R5#traceroute 192.168.4.1 source 192.168.5.1
Type escape sequence to abort.
Tracing the route to 192.168.4.1
1 192.168.15.1 32 msec 60 msec 44 msec
2 192.168.13.3 40 msec 76 msec 44 msec
3 192.168.34.3 96 msec * 80 msec
R1#
*Mar 1 00:42:14.027: IP: s=192.168.5.1 (Serial0/0/0), d=192.168.4.1, len 28, FIB policy match
*Mar 1 00:42:14.027: IP: s=192.168.5.1 (Serial0/0/0), d=192.168.4.1, g=192.168.13.3, len 28, FIB policy routed
Các lưu lượng khác được forward bình thường theo đường đi trong bảng định tuyến:
R5#traceroute 192.168.4.1 source 192.168.55.1
Type escape sequence to abort.
Tracing the route to 192.168.4.1
1 192.168.15.1 44 msec 60 msec 44 msec
2 192.168.12.2 76 msec 88 msec 96 msec
3 192.168.24.4 88 msec * 132 msec
R1#
*Mar 1 00:44:29.059: IP: s=192.168.55.1 (Serial0/0/0), d=192.168.4.1, len 28, FIB policy rejected(no match) - normal forwarding
Bước 3: Cấu hình dự phòng với PBR
Hiệu chỉnh cấu hình PBR đã thực hiện ở bước 2 đảm bảo nếu R1 không còn kết nối được với R3 qua VLAN 13, lưu lượng xuất phát từ mạng 192.168.5.0/24 sẽ được vận chuyển bình thường theo kết quả chỉ đường trong bảng định tuyến. ∙ Sử dụng IP SLA và track object để hoàn thành yêu cầu này.
Cấu hình
Trên R1:
R1(config)#ip sla monitor 1
R1(config-sla-monitor)#type echo protocol ipIcmpEcho 192.168.13.3 R1(config-sla-monitor-echo)#frequency 5
R1(config-sla-monitor-echo)#timeout 2000
R1(config-sla-monitor-echo)#exit
R1(config)#ip sla monitor schedule 1 start-time now life forever
R1(config)#track 1 rtr 1
R1(config-track)#exit
R1(config)#route-map PBR permit 10
R1(config-route-map)#no set ip next-hop 192.168.13.3
R1(config-route-map)#set ip next-hop verify-availability 192.168.13.3 1 track 1 R1(config-route-map)#exit
Ghi chú
Vì R1 được đấu nối đến R3 thông qua một VLAN Ethernet với hệ thống switch trung gian ở giữa, không phải là kết nối trực tiếp giữa R1 và R3 nên nếu như một trong hai đầu của đấu nối R1 – R3 down thì đầu kia sẽ không thể phát hiện được. Do đó, giả sử cổng F0/0 nối vào VLAN 13 của R3 bị down, R1 không phát hiện được điều này thì khi có lưu lượng sử dụng PBR, lưu lượng này sẽ vẫn được R1 chuyển hướng qua VLAN 13 để đi đến R3 khiến dữ liệu sẽ bị mất trên đường đi.
Để khắc phục vấn đề này, chúng ta sử dụng lệnh “set ip next-hop” trong route – map của PBR tham chiếu đến một IP SLA probe thông qua một track object; IP SLA probe này sẽ thực hiện ping liên tục đến R3 để kiểm tra xem R3 còn đi đến được không. Nếu kết quả ping thành công, track object trả kết quả UP, tiếp tục thực hiện PBR; nếu kết quả ping không thành công, track object trả kết quả DOWN, ngừng thực hiện PBR, các gói tin được đi theo kết quả định tuyến.
Kiểm tra Ta kiểm tra vấn đề chuyển hướng trước khi thực hiện các hiệu chỉnh đã làm ở trên. Trước hết, shutdown cổng F0/0 nối đến VLAN 13 của R3:
R3(config)#interface f0/0
R3(config-if)#shutdown
*Mar 1 00:49:49.879: %LINK-5-CHANGED: Interface FastEthernet0/0, changed state to administratively down
*Mar 1 00:49:50.879: %LINEPROTO-5-UPDOWN: Line protocol on Interface FastEthernet0/0, changed state to down
R1 hoàn toàn không phát hiện được đầu xa R3 đã bị down, kết nối trên R1 vẫn giữ “up/up”:
Các lưu lượng xuất phát từ mạng 192.168.5.0/24 của R5 vì thế vẫn được thực hiện PBR chuyển hướng qua VLAN 13 và bị mất trên đường đi:
R5#ping 192.168.4.1 source 192.168.5.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.4.1, timeout is 2 seconds:
Packet sent with a source address of 192.168.5.1
.....
Success rate is 0 percent (0/5)
R1#
*Mar 1 00:50:52.235: IP: s=192.168.5.1 (Serial0/0/0), d=192.168.4.1, len 100,
FIB policy match
*Mar 1 00:50:52.239: IP: s=192.168.5.1 (Serial0/0/0), d=192.168.4.1,
g=192.168.13.3, len 100, FIB policy routed
Tiếp theo, chúng ta thực hiện kiểm tra vấn đề chuyển hướng sau khi đã thực hiện giải pháp IP SLA ở trên.
Khi đã shutdown cổng F0/0 của R3, ping đến địa chỉ 192.168.13.3 không còn thành công, kết quả track trả về DOWN:
R1#show ip sla monitor statistics
Round trip time (RTT) Index 1
Latest RTT: NoConnection/Busy/Timeout
Latest operation start time: *01:08:49.967 UTC Fri Mar 1 2002
Latest operation return code: Timeout
Number of successes: 0
Number of failures: 201
Operation time to live: Forever
R1#show track
Track 1
Response Time Reporter 1 state
State is Down
1 change, last change 00:16:42
Latest operation return code: Timeout
Tracked by:
ROUTE-MAP 0
R1#show route-map
route-map PBR, permit, sequence 10
Match clauses:
ip address (access-lists): 5
Set clauses:
ip next-hop verify-availability 192.168.13.3 1 track 1 [down] Policy routing matches: 38 packets, 2656 bytes
Các lưu lượng đến từ mạng 192.168.5.0/24 lần này sẽ không được thực hiện PBR và đi theo chỉ đường trong bảng định tuyến và đi đến nơi thành công:
R5#ping 192.168.4.1 source 192.168.5.1
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.4.1, timeout is 2 seconds: Packet sent with a source address of 192.168.5.1
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 92/152/188 ms
R1#
*Mar 1 00:53:37.747: IP: s=192.168.5.1 (Serial0/0/0), d=192.168.4.1, len 100, FIB policy match
*Mar 1 00:53:37.751: IP: s=192.168.5.1 (Serial0/0/0), d=192.168.4.1, len 100, FIB policy rejected - normal forwarding
Đến đây, chúng ta đã hoàn thành cấu hình và kiểm tra cho vấn đề dự phòng tự động với Policy Based Routing.
Cảm ơn các bạn!
Hẹn gặp lại các bạn trong các bài viết tiếp theo!