Thursday, January 23, 2025

[Cisco] Policy Based Routing 1

-

Trong bài viết tuần này, chúng ta sẽ cùng nhau trao đổi về kỹ thuật Policy Based Routing  (PBR). PBR là một kỹ thuật đặc biệt cho phép router bẻ đường đi của một gói tin mà  không cần tham chiếu đến bảng định tuyến, cung cấp cho người quản trị một công cụ rất  mạnh trong hoạt động path – control các gói tin trên mạng. 

Như thường lệ, để tìm hiểu về vấn đề đang trao đổi, chúng ta cùng khảo sát một bài lab ví  dụ. 

Sơ đồ

Hình 1 – Sơ đồ bài lab ví dụ.

Mô tả 

  • Sơ đồ gồm 5 router đấu nối với nhau như hình vẽ. Quy hoạch IP sử dụng trên các  router cũng đã được chỉ ra trên hình. 
  • Trên sơ đồ này, chúng ta sẽ thực hiện cấu hình policy – based routing để hiệu  chỉnh đường đi khác với đường đi được chỉ ra bởi giao thức định tuyến cho một  số loại lưu lượng nào đó. Giao thức định tuyến được sử dụng trên sơ đồ lab này là  OSPF, tất cả các link trên các router đều được cho tham gia Area 0.
  • Bạn đọc có thể sử dụng router thật hoặc 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 cơ bản cho sơ đồ lab 

  • Thực hiện đặt địa chỉ IP trên các 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 đảm bảo mọi địa chỉ thấy nhau. Câu hình để các loopback  được quảng bá đi đúng subnet của chúng. 

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.15.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.13.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.2.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/1 
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 s0/0/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 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.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

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 f0/1 
R4(config-if)#no shutdown 
R4(config-if)#ip address 192.168.34.4 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 f0/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 loopback 0 
R5(config-if)#ip address 192.168.5.1 255.255.255.0 
R5(config-if)#ip ospf network point-to-point 
R5(config-if)#exit 

R5(config)#interface loopback 1 
R5(config-if)#ip address 192.168.55.1 255.255.255.0 
R5(config-if)#ip ospf network point-to-point  
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 kết quả cấu hình vừa thực hiện:

R1#show ip route ospf 
O 192.168.24.0/24 [110/2] via 192.168.12.2, 00:17:35, FastEthernet0/0 O 192.168.55.0/24 [110/2] via 192.168.15.5, 00:12:39, FastEthernet0/1 O 192.168.4.0/24 [110/3] via 192.168.12.2, 00:13:59, FastEthernet0/0 O 192.168.5.0/24 [110/2] via 192.168.15.5, 00:12:39, FastEthernet0/1 O 192.168.34.0/24 [110/3] via 192.168.12.2, 00:13:59, FastEthernet0/0 O 192.168.2.0/24 [110/2] via 192.168.12.2, 00:17:45, FastEthernet0/0 O 192.168.3.0/24 [110/4] via 192.168.12.2, 00:13:59, FastEthernet0/0 

R2#show ip route ospf 
O 192.168.13.0/24 [110/65] via 192.168.12.1, 00:17:08, FastEthernet0/0 O 192.168.15.0/24 [110/2] via 192.168.12.1, 00:17:51, FastEthernet0/0 O 192.168.55.0/24 [110/3] via 192.168.12.1, 00:12:47, FastEthernet0/0 O 192.168.4.0/24 [110/2] via 192.168.24.4, 00:14:08, FastEthernet0/1 O 192.168.5.0/24 [110/3] via 192.168.12.1, 00:12:47, FastEthernet0/0 O 192.168.34.0/24 [110/2] via 192.168.24.4, 00:14:08, FastEthernet0/1 O 192.168.1.0/24 [110/2] via 192.168.12.1, 00:17:51, FastEthernet0/0 O 192.168.3.0/24 [110/3] via 192.168.24.4, 00:14:08, FastEthernet0/1 

R3#show ip route ospf 
O 192.168.12.0/24 [110/3] via 192.168.34.4, 00:14:11, FastEthernet0/1 O 192.168.15.0/24 [110/4] via 192.168.34.4, 00:14:11, FastEthernet0/1 O 192.168.24.0/24 [110/2] via 192.168.34.4, 00:14:11, FastEthernet0/1 O 192.168.55.0/24 [110/5] via 192.168.34.4, 00:12:50, FastEthernet0/1 O 192.168.4.0/24 [110/2] via 192.168.34.4, 00:14:11, FastEthernet0/1 
O 192.168.5.0/24 [110/5] via 192.168.34.4, 00:12:50, FastEthernet0/1 O 192.168.1.0/24 [110/4] via 192.168.34.4, 00:14:11, FastEthernet0/1 O 192.168.2.0/24 [110/3] via 192.168.34.4, 00:14:11, FastEthernet0/1 

R4#show ip route ospf  
O 192.168.12.0/24 [110/2] via 192.168.24.2, 00:14:07, FastEthernet0/0 O 192.168.13.0/24 [110/65] via 192.168.34.3, 00:14:07, FastEthernet0/1 O 192.168.15.0/24 [110/3] via 192.168.24.2, 00:14:07, FastEthernet0/0 O 192.168.55.0/24 [110/4] via 192.168.24.2, 00:12:54, FastEthernet0/0 O 192.168.5.0/24 [110/4] via 192.168.24.2, 00:12:54, FastEthernet0/0
O 192.168.1.0/24 [110/3] via 192.168.24.2, 00:14:07, FastEthernet0/0 O 192.168.2.0/24 [110/2] via 192.168.24.2, 00:14:07, FastEthernet0/0 O 192.168.3.0/24 [110/2] via 192.168.34.3, 00:14:07, FastEthernet0/1 

R5#show ip route ospf 
O 192.168.12.0/24 [110/2] via 192.168.15.1, 00:12:59, FastEthernet0/0 O 192.168.13.0/24 [110/65] via 192.168.15.1, 00:12:59, FastEthernet0/0 O 192.168.24.0/24 [110/3] via 192.168.15.1, 00:12:59, FastEthernet0/0 O 192.168.4.0/24 [110/4] via 192.168.15.1, 00:12:59, FastEthernet0/0 O 192.168.34.0/24 [110/4] via 192.168.15.1, 00:12:59, FastEthernet0/0 O 192.168.1.0/24 [110/2] via 192.168.15.1, 00:12:59, FastEthernet0/0 O 192.168.2.0/24 [110/3] via 192.168.15.1, 00:12:59, FastEthernet0/0 O 192.168.3.0/24 [110/5] via 192.168.15.1, 00:12:59, FastEthernet0/0

Kết quả show cho thấy tất cả các subnet trên sơ đồ đều đã hiển thị trong bảng định tuyến  của các router. 

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 F0/1 sẽ được chuyển đi tiếp trên  cổng S0/0/0 của R1. 
  • Mọi gói tin khác khi đi đến R1 trên cổng F0/1 sẽ được chuyển tiếp theo kết quả  định tuyến đã thực hiện. 

Cấu hình 

Với yêu cầu đặt ra, ta cần phải kiểm tra các gói tin đi vào cổng F0/1 của R1 và chuyển  mọi gói xuất phát từ mạng 192.168.5.0/24 đi ra khỏi R1 theo cổng S0/0/0.  

Ta thấy rằng nếu chỉ dựa vào hoạt động định tuyến thông thường ta sẽ không thể thực  hiện được yêu cầu này vì các kỹ thuật định tuyến căn cứ vào đích đến của gói tin để chỉ  ra đường đi thích hợp, trong khi yêu cầu đặt ra là căn cứ vào subnet xuất phát của gói tin  để chọn đường đi thích hợp. 

Để đáp ứng yêu cầu đặt ra, ta sử dụng kỹ thuật policy – based routing tham chiếu đến một  route – map trên cổng F0/1 để kiểm soát đường đi của gói tin. 

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 f0/1 
R1(config-if)#ip policy route-map PBR 
R1(config-if)#exit

Kiểm tra 

Để kiểm tra, ta xét các gói tin đi từ mạng 192.168.5.0/24 đến mạng 192.168.4.0/24. Ta  thấy rằng nếu căn cứ theo bảng định tuyến trên R1, các gói này sẽ phải được chuyển đi  tiếp ra khỏi cổng F0/0 của R1:

R1#show ip route 192.168.4.0 
Routing entry for 192.168.4.0/24 
 Known via "ospf 1", distance 110, metric 3, type intra area
 Last update from 192.168.12.2 on FastEthernet0/0, 00:34:09 ago
 Routing Descriptor Blocks: 
 * 192.168.12.2, from 192.168.4.1, 00:34:09 ago, via FastEthernet0/0  Route metric is 3, traffic share count is 1

Sau khi áp dụng PBR trên R1, những gói tin xuất phát từ mạng 192.168.5.0/24 đi đến  192.168.4.0/24 đã đi theo lộ trình khác với đường đi được chỉ ra bởi giao thức định  tuyến:

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 36 msec 72 msec 24 msec 
 2 192.168.13.3 100 msec 88 msec 120 msec 
 3 192.168.34.4 140 msec * 116 msec

Ta có thể kiểm tra hoạt động của PBR bằng cách sử dụng lệnh “debug ip policy” trên  R1:

R1#debug ip policy  
Policy routing debugging is on

Ta thực hiện ping kiểm tra từ loopback 0 của R5 đến loopback 0 của R4:

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 = 84/96/108 ms

Kết quả debug trên R1:

Kết quả debug cho thấy hoạt động chuyển gói theo PBR đã diễn ra khi gói tin xuất phát  từ mạng 192.168.5.0/24 và các gói tin được chuyển tiếp theo next – hop 192.168.13.3  (cổng ra S0/0/0). 

Ta tiếp tục thử với lưu lượng khác mà không xuất phát từ mạng 192.168.5.0/24:

R5#ping 192.168.4.1 source 192.168.55.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.55.1  
!!!!! 
Success rate is 100 percent (5/5), round-trip min/avg/max = 96/110/124 ms

Kết quả debug trên R1:

Ta thấy các gói tin không được chuyển đi theo PBR mà được chuyển tiếp bình thường theo kết quả định tuyến.
Kết quả traceroute với source 192.168.55.1 từ R5 chỉ rõ điều này:

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 92 msec 60 msec 64 msec
2 192.168.12.2 56 msec 76 msec 60 msec
3 192.168.24.4 116 msec * 96 msec

Chúng ta đã sử dụng policy – based routing để thực hiện chuyển hướng đường đi của gói  tin theo một kết quả khác với kết quả của hoạt động định tuyến; hơn nữa, việc chuyển  hướng này lại căn cứ vào địa chỉ source IP của gói tin chứ không căn cứ vào đích đến của  gói tin như hoạt động định tuyến thông thường.  

PBR là một công cụ rất mạnh của Cisco IOS cho phép ta thực hiện path – control một  cách rất linh hoạt. Chúng ta sẽ cùng trở lại đề tài này trong các bài viết tiếp theo. 

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!

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories