Path Control Using PBR

1. ทำการ Check Pre-Configure ของ R1, R2, R3 และ R4 พร้อมทั้ง Check ความพร้อมต่างๆ 2. ทำการตรวจสอบเส้นทาง path ใน Routing Table ปัจจุบัน 3. ทำการ Configure PBR to provide path control 1. ทำการ Check Pre-Configure ของ R1, R2, R3 และ R4 พร้อมทั้ง Check ความพร้อมต่างๆ 1.1. ที่ Router R1 R1#show running-config

!
hostname R1
!
interface Loopback1
description R1 LAN
ip address 192.168.1.1 255.255.255.0
!
interface Ethernet0/0
description R1 --> R2
ip address 172.16.12.1 255.255.255.248
bandwidth 2000
!
interface Ethernet0/1
description R1 --> R3
ip address 172.16.13.1 255.255.255.248
bandwidth 1000
!
!
router eigrp 1
network 172.16.12.0 0.0.0.7
network 172.16.13.0 0.0.0.7
network 192.168.1.0
!
end

R1#end

R1#show ip interface brief | include up

Ethernet0/0 172.16.12.1 YES manual up up
Ethernet0/1 172.16.13.1 YES manual up up
Loopback1 192.168.1.1 YES manual up up
R1#


R1#show interfaces description | include up

Et0/0 up up R1 --> R2
Et0/1 up up R1 --> R3
Lo1 up up R1 LAN

R1#show ip eigrp neighbors

EIGRP-IPv4 Neighbors for AS(1)
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
1 172.16.13.3 Et0/1 11 00:05:57 5 100 0 9 ---> Router R3
0 172.16.12.2 Et0/0 13 00:06:28 7 100 0 10 ---> Router R2

R1#show ip route eigrp

172.16.0.0/16 is variably subnetted, 6 subnets, 2 masks
D 172.16.23.0/29 [90/1331200] via 172.16.12.2, 00:03:36, Ethernet0/0
D 172.16.34.0/29 [90/2611200] via 172.16.13.3, 00:02:33, Ethernet0/1
D 192.168.2.0/24 [90/1433600] via 172.16.12.2, 00:03:36, Ethernet0/0
D 192.168.3.0/24 [90/1459200] via 172.16.12.2, 00:03:36, Ethernet0/0
192.168.4.0/25 is subnetted, 2 subnets
D 192.168.4.0 [90/2739200] via 172.16.13.3, 00:02:33, Ethernet0/1
D 192.168.4.128 [90/2739200] via 172.16.13.3, 00:02:33, Ethernet0/1
R1# 1.2. ที่ Router R2 R2#show running-config

hostname R2
!
interface Loopback2
description R2 LAN
ip address 192.168.2.1 255.255.255.0
!
interface Ethernet0/0
description R2 --> R1
ip address 172.16.12.2 255.255.255.248
bandwidth 2000
!
interface Ethernet0/1
description R2 --> R3
ip address 172.16.23.2 255.255.255.248
bandwidth 2000
!
!
!
router eigrp 1
network 172.16.12.0 0.0.0.7
network 172.16.23.0 0.0.0.7
network 192.168.2.0
!

R2#end

R2#show ip interface brief | include up

Ethernet0/0 172.16.12.2 YES manual up up
Ethernet0/1 172.16.23.2 YES manual up up
Loopback2 192.168.2.1 YES manual up up

R2#show ip eigrp neighbors

EIGRP-IPv4 Neighbors for AS(1)
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
1 172.16.23.3 Et0/1 10 00:12:46 16 100 0 10 ---> Router R3
0 172.16.12.1 Et0/0 13 00:13:17 821 4926 0 10 ---> Router R1

R2#
R2#show ip route eigrp

172.16.0.0/16 is variably subnetted, 6 subnets, 2 masks
D 172.16.13.0/29 [90/2611200] via 172.16.23.3, 00:03:06, Ethernet0/1
[90/2611200] via 172.16.12.1, 00:03:06, Ethernet0/0
D 172.16.34.0/29 [90/2611200] via 172.16.23.3, 00:03:06, Ethernet0/1
D 192.168.1.0/24 [90/1433600] via 172.16.12.1, 00:03:35, Ethernet0/0
D 192.168.3.0/24 [90/1433600] via 172.16.23.3, 00:03:35, Ethernet0/1
192.168.4.0/25 is subnetted, 2 subnets
D 192.168.4.0 [90/2739200] via 172.16.23.3, 00:03:06, Ethernet0/1
D 192.168.4.128 [90/2739200] via 172.16.23.3, 00:03:06, Ethernet0/1
R2# 1.3. ที่ Router R3 R3#show running-config

!
hostname R3
!
!
interface Loopback3
description R3 LAN
ip address 192.168.3.1 255.255.255.0
!
interface Ethernet0/0
description R3 --> R1
ip address 172.16.13.3 255.255.255.248
bandwidth 1000
!
interface Ethernet0/1
description R3 --> R2
ip address 172.16.23.3 255.255.255.248
bandwidth 2000
!
interface Ethernet0/2
description R3 --> R4
ip address 172.16.34.3 255.255.255.248
bandwidth 1000
!
!
router eigrp 1
network 172.16.13.0 0.0.0.7
network 172.16.23.0 0.0.0.7
network 172.16.34.0 0.0.0.7
network 192.168.3.0
!
End

R3#show ip interface brief | include up

Ethernet0/0 172.16.13.3 YES manual up up
Ethernet0/1 172.16.23.3 YES manual up up
Ethernet0/2 172.16.34.3 YES manual up up
Loopback3 192.168.3.1 YES manual up up

R3#show ip eigrp neighbors

EIGRP-IPv4 Neighbors for AS(1)
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
2 172.16.34.4 Et0/2 13 00:18:05 2 100 0 3 ---> Router R4
1 172.16.23.2 Et0/1 13 00:18:20 16 100 0 9 ---> Router R2
0 172.16.13.1 Et0/0 13 00:18:20 1282 5000 0 9 ---> Router R1

R3#show ip route eigrp
172.16.0.0/16 is variably subnetted, 7 subnets, 2 masks
D 172.16.12.0/29 [90/1331200] via 172.16.23.2, 00:03:32, Ethernet0/1
D 192.168.1.0/24 [90/1459200] via 172.16.23.2, 00:03:32, Ethernet0/1
D 192.168.2.0/24 [90/1433600] via 172.16.23.2, 00:03:32, Ethernet0/1
192.168.4.0/25 is subnetted, 2 subnets
D 192.168.4.0 [90/2713600] via 172.16.34.4, 00:03:32, Ethernet0/2
D 192.168.4.128 [90/2713600] via 172.16.34.4, 00:03:32, Ethernet0/2
R3# 1.4. ที่ Router R4 R3#show running-config
!
hostname R4
!
interface Loopback4
description R4 LAN A
ip address 192.168.4.1 255.255.255.128
!
interface Loopback5
description R4 LAN B
ip address 192.168.4.129 255.255.255.128
!
interface Ethernet0/0
description R4 --> R3
ip address 172.16.34.4 255.255.255.248
bandwidth 1000
!
router eigrp 1
network 172.16.34.0 0.0.0.7
network 192.168.4.0
!

End

R4#show ip interface brief | include up

Ethernet0/0 172.16.34.4 YES manual up up
Loopback4 192.168.4.1 YES manual up up
Loopback5 192.168.4.129 YES manual up up

R4#show ip eigrp neighbors

EIGRP-IPv4 Neighbors for AS(1)
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
0 172.16.34.3 Et0/0 11 00:22:23 1600 5000 0 11 ---> Router R3
R4#

R4#show ip route eigrp

172.16.0.0/16 is variably subnetted, 5 subnets, 2 masks
D 172.16.12.0/29 [90/2636800] via 172.16.34.3, 00:03:33, Ethernet0/0
D 172.16.13.0/29 [90/2611200] via 172.16.34.3, 00:03:57, Ethernet0/0
D 172.16.23.0/29 [90/2611200] via 172.16.34.3, 00:03:33, Ethernet0/0
D 192.168.1.0/24 [90/2764800] via 172.16.34.3, 00:03:33, Ethernet0/0
D 192.168.2.0/24 [90/2739200] via 172.16.34.3, 00:03:33, Ethernet0/0
D 192.168.3.0/24 [90/2713600] via 172.16.34.3, 00:03:33, Ethernet0/0 2. ทำการตรวจสอบเส้นทาง path หรือเส้นทางใน Routing Table ปัจจุบัน ก่อนที่จะ configure PBR ให้ทำการตรวจสอบ routing table ของ router R1 2.1. บน router R1 ใช้คำสั่ง show ip route แล้วสังเกต next-hop IP address ของ network ทั้งหมดที่ EIGRP เจอ R1#show ip route | begin Gateway

Gateway of last resort is not set

172.16.0.0/16 is variably subnetted, 6 subnets, 2 masks
C 172.16.12.0/29 is directly connected, Ethernet0/0
L 172.16.12.1/32 is directly connected, Ethernet0/0
C 172.16.13.0/29 is directly connected, Ethernet0/1
L 172.16.13.1/32 is directly connected, Ethernet0/1
D 172.16.23.0/29 [90/1331200] via 172.16.12.2, 00:08:54, Ethernet0/0
D 172.16.34.0/29 [90/2611200] via 172.16.13.3, 00:07:51, Ethernet0/1
192.168.1.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.1.0/24 is directly connected, Loopback1
L 192.168.1.1/32 is directly connected, Loopback1
D 192.168.2.0/24 [90/1433600] via 172.16.12.2, 00:08:54, Ethernet0/0
D 192.168.3.0/24 [90/1459200] via 172.16.12.2, 00:08:54, Ethernet0/0
192.168.4.0/25 is subnetted, 2 subnets
D 192.168.4.0 [90/2739200] via 172.16.13.3, 00:07:51, Ethernet0/1
D 192.168.4.128 [90/2739200] via 172.16.13.3, 00:07:51, Ethernet0/1
R1# 2.2. บน router R4 ใช้คำสั่ง traceroute ไปที่ LAN address ของ R1 โดยให้ source ICMP packet จาก LAN A (Interface Loopback4) และ LAN B (Interface Loopback5) ของ router R4 R4#traceroute 192.168.1.1 source 192.168.4.1

Type escape sequence to abort.
Tracing the route to 192.168.1.1
VRF info: (vrf in name/id, vrf out name/id)
1 172.16.34.3 1 msec 4 msec 4 msec --> R3
2 172.16.23.2 6 msec 1 msec 1 msec --> R2
3 172.16.12.1 0 msec 1 msec * --> R1

R4#traceroute 192.168.1.1 source 192.168.4.129
Type escape sequence to abort.
Tracing the route to 192.168.1.1
VRF info: (vrf in name/id, vrf out name/id)
1 172.16.34.3 1 msec 0 msec 5 msec --> R3
2 172.16.23.2 1 msec 1 msec 1 msec --> R2
3 172.16.12.1 1 msec 1 msec * --> R1 สังเกตว่า path หรือเส้นทางจาก source R4 LAN จะเป็น R3 -> R2 -> R1 2.3. บน router R3 ใช้คำสั่ง show ip route โดยเส้นทางที่ดีที่สุด จาก Router R3 ไปยัง LAN 192.168.1.0/24 ของ Router R1 คือผ่านทาง Router R2 โดยออกไปทาง interface Ethernet0/1 ของ Router R3 R3#show ip route | begin Gateway

Gateway of last resort is not set

172.16.0.0/16 is variably subnetted, 7 subnets, 2 masks
D 172.16.12.0/29 [90/1331200] via 172.16.23.2, 00:11:51, Ethernet0/1
C 172.16.13.0/29 is directly connected, Ethernet0/0
L 172.16.13.3/32 is directly connected, Ethernet0/0
C 172.16.23.0/29 is directly connected, Ethernet0/1
L 172.16.23.3/32 is directly connected, Ethernet0/1
C 172.16.34.0/29 is directly connected, Ethernet0/2
L 172.16.34.3/32 is directly connected, Ethernet0/2
D 192.168.1.0/24 [90/1459200] via 172.16.23.2, 00:11:51, Ethernet0/1
D 192.168.2.0/24 [90/1433600] via 172.16.23.2, 00:11:51, Ethernet0/1
192.168.3.0/24 is variably subnetted, 2 subnets, 2 masks
C 192.168.3.0/24 is directly connected, Loopback3
L 192.168.3.1/32 is directly connected, Loopback3
192.168.4.0/25 is subnetted, 2 subnets
D 192.168.4.0 [90/2713600] via 172.16.34.4, 00:11:51, Ethernet0/2
D 192.168.4.128 [90/2713600] via 172.16.34.4, 00:11:51, Ethernet0/2 บน router R3 ใช้คำสั่ง show interfaces ethernet 0/0 และ show interface ethernet 0/1 R3#show interfaces ethernet 0/0 | include BW
MTU 1500 bytes, BW 1000 Kbit/sec, DLY 1000 usec,
R3#show interfaces ethernet 0/1 | include BW
MTU 1500 bytes, BW 2000 Kbit/sec, DLY 1000 usec,
R3# สังเกตว่า bandwidth ระหว่าง R3 และ R1 (ethernet 0/0) มีค่าเป็น 1000 Kbit/sec ส่วน bandwidth ระหว่าง R3 กับ R2 (ethernet 0/1) มีค่าเป็น 2000 Kbit/sec 2.4. ทำการตรวจสอบว่า router R3 มี route ที่สามารถเชื่อมต่อไปยัง R1 ได้โดยผ่าน interface ethernet 0/0 โดยใช้คำสั่ง show ip eigrp topology 192.168.1.0 R3#show ip eigrp topology 192.168.1.0

EIGRP-IPv4 Topology Entry for AS(1)/ID(192.168.3.1) for 192.168.1.0/24
State is Passive, Query origin flag is 1, 1 Successor(s), FD is 1459200
Descriptor Blocks:
172.16.23.2 (Ethernet0/1), from 172.16.23.2, Send flag is 0x0
Composite metric is (1459200/1433600), route is Internal
Vector metric:
Minimum bandwidth is 2000 Kbit
Total delay is 7000 microseconds
Reliability is 255/255
Load is 1/255
Minimum MTU is 1500
Hop count is 2
Originating router is 192.168.1.1
172.16.13.1 (Ethernet0/0), from 172.16.13.1, Send flag is 0x0
Composite metric is (2713600/128256), route is Internal
Vector metric:
Minimum bandwidth is 1000 Kbit
Total delay is 6000 microseconds
Reliability is 255/255
Load is 1/255
Minimum MTU is 1500
Hop count is 1
Originating router is 192.168.1.1 ค่า metric ของ routeที่ไปทาง R1 (172.16.13.1) มีค่ามากกว่าที่ไป R2 (2713600 > 1459200) ทำให้ route ที่ผ่าน R2 เป็น successor route 3. ทำการ Configure PBR to provide path control Configure PBR to provide path control การ configure PBR ประกอบด้วยการ configure route map ด้วยคำสั่ง match และ set จากนั้นทำการ apply route map ให้กับ interface โดยมีขั้นตอนดังนี้ เลือกวิธีการที่ใช้ path control สำหรับ PBR โดยเราจะใช้คำสั่ง route-map ทำการ Implement traffic-matching configuration เพื่อกำหนด traffic ที่จะถูกจัดการ โดยใช้คำสั่ง match ภายใน route map กำหนดการกระทำที่จะเกิดเมื่อ traffic นั้นตรงกันกับสิ่งที่ระบุ ไว้ โดยใช้คำสั่ง set ภายใน route map ทำการ apply route map ให้ตรงกับทิศทางของ traffic ที่เข้ามา โดยใน lab นี้ เราจะ configure บน router R3 ให้มี policy ดังนี้ ทุก traffic ที่มาจาก R4 LAN A จะต้องไปทางเส้นทาง R3->R2->R1 ทุก traffic ที่มาจาก R4 LAN B จะต้องไปทางเส้นทาง R3->R1 3.1. บน router R3 ให้ทำการสร้าง standard access list ชื่อ PBR-ACL เพื่อใช้ในการระบุถึง IP Address ของ R4 LAN B R3#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R3(config)#ip access-list standard PBR-ACL
R3(config-std-nacl)#remark ACL matches R4 LAN B traffic
R3(config-std-nacl)#permit 192.168.4.128 0.0.0.127
R3(config-std-nacl)#exit 3.2. ทำการสร้าง route map ชื่อ R3-to-R1 ให้ match กับ PBR-ACL และหลังจากนั้น set ค่าให้ next-hop interface ไปที่ R1 interface e0/1 (R3->R1) R3(config)#route-map R3-to-R1 permit
R3(config-route-map)#description RM to forward LAN B traffic to R1
R3(config-route-map)#match ip address PBR-ACL
R3(config-route-map)#set ip next-hop 172.16.13.1
R3(config-route-map)#exit 3.3. ทำการ apply route map R3-to-R1 ให้กับ interface บน router R3 ที่รับ traffic จาก R4 โดยใช้คำสั่ง ip policy route-map บน interface e0/2 R3(config)#interface e0/2
R3(config-if)#ip policy route-map R3-to-R1
R3(config-if)#end

R3# 3.4. บน router R3 ใช้คำสั่ง show route-map เพื่อแสดง policy และ packet ที่ match R3#show route-map

route-map R3-to-R1, permit, sequence 10
Match clauses:
ip address (access-lists): PBR-ACL
Set clauses:
ip next-hop 172.16.13.1
Policy routing matches: 0 packets, 0 bytes
R3# ในขั้นตอนนี้จะทำการทดสอบ policy ที่เรา configure ไว้บน R3 โดยให้ enable คำสั่ง debug ip policy บน router R3 เพื่อให้เราสามารถสังเกตการทำงานของ policy ได้ และเพื่อให้ช่วยในการ filter traffic ที่เราต้องการ monitor ให้เราสร้าง standard ACL ให้ match กับ traffic ทั้งหมดที่มาจาก R4 LAN ก่อน 3.5. บน router R3 ให้ทำการสร้าง ACL ที่ระบุ R4 LAN ทั้งหมด R3#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R3(config)#access-list 1 permit 192.168.4.0 0.0.0.255
R3(config)#exit 3.6. ทำการ enable PBR debugging เฉพาะ traffic ที่ match กับ R4 LAN R3#debug ip policy ?

<1-199> Access list
dynamic dynamic PBR
<cr>

R3#debug ip policy 1

Policy routing debugging is on for access list 1
R3# 3.7. ทำการทดสอบ policy จาก R4 โดยใช้คำสั่ง traceroute โดยใช้ R4 LAN A เป็น source address R4#traceroute 192.168.1.1 source 192.168.4.1
Type escape sequence to abort.
Tracing the route to 192.168.1.1
VRF info: (vrf in name/id, vrf out name/id)
1 172.16.34.3 6 msec 0 msec 1 msec --> R3
2 172.16.23.2 0 msec 1 msec 1 msec --> R2
3 172.16.12.1 0 msec 4 msec * --> R1
R4# สังเกตว่า path ของ packet ที่มาจาก source R4 LAN A นั้นยังคงวิ่งผ่าน R3->R2->R1 เช่นเดิม สำหรับ router R3 จะแสดง debugging output ดังนี้ R3#
*Nov 5 07:36:33.369: IP: s=192.168.4.1 (Ethernet0/2), d=192.168.1.1, len 28, policy rejected -- normal forwarding
R3#
*Nov 5 07:36:42.395: IP: s=192.168.4.1 (Ethernet0/2), d=192.168.1.1, len 28, policy rejected -- normal forwarding
*Nov 5 07:36:42.395: IP: s=192.168.4.1 (Ethernet0/2), d=192.168.1.1, len 28, policy rejected -- normal forwarding
*Nov 5 07:36:42.396: IP: s=192.168.4.1 (Ethernet0/2), d=192.168.1.1, len 28, FIB policy rejected(no match) - normal forwarding
R3#
*Nov 5 07:36:51.417: IP: s=192.168.4.1 (Ethernet0/2), d=192.168.1.1, len 28, FIB policy rejected(no match) - normal forwarding
*Nov 5 07:36:51.418: IP: s=192.168.4.1 (Ethernet0/2), d=192.168.1.1, len 28, FIB policy rejected(no match) - normal forwarding
*Nov 5 07:36:51.419: IP: s=192.168.4.1 (Ethernet0/2), d=192.168.1.1, len 28, FIB policy rejected(no match) - normal forwarding 3.8. ทำการทดสอบ policy จาก R4 โดยใช้คำสั่ง traceroute โดยให้ R4 LAN B เป็น source address R4#traceroute 192.168.1.1 source 192.168.4.129

Type escape sequence to abort.
Tracing the route to 192.168.1.1
VRF info: (vrf in name/id, vrf out name/id)
1 172.16.34.3 1 msec 5 msec 5 msec --> R3
2 172.16.13.1 2 msec 2 msec * --> R1 ในตอนนี้ path ของ packet ที่มาจาก source R4 LAN B จะเป็น R3-> R1 ตามที่ได้ทำการ Configure PBR ไว้ R3#
*Nov 5 07:37:57.660: IP: s=192.168.4.129 (Ethernet0/2), d=192.168.1.1, len 28, policy match
*Nov 5 07:37:57.660: IP: route map R3-to-R1, item 10, permit
*Nov 5 07:37:57.660: IP: s=192.168.4.129 (Ethernet0/2), d=192.168.1.1 (Ethernet0/0), len 28, policy routed
*Nov 5 07:37:57.660: IP: Ethernet0/2 to Ethernet0/0 172.16.13.1
R3#
*Nov 5 07:38:06.679: IP: s=192.168.4.129 (Ethernet0/2), d=192.168.1.1, 3.9. บน router R3 ใช้คำสั่ง show route-map เพื่อแสดง policy และจำนวน packet ที่ match R3#show route-map
route-map R3-to-R1, permit, sequence 10
Match clauses:
ip address (access-lists): PBR-ACL
Set clauses:
ip next-hop 172.16.13.1
Nexthop tracking current: 0.0.0.0
172.16.13.1, fib_nh:0,oce:0,status:0

Policy routing matches: 6 packets, 252 bytes
R3# Note : ในตอนนี้จะเห็นว่ามีการ match กับ policy แล้ว เพราะ packet ที่ match กับ ACL นั้นได้ผ่านเข้ามาทาง R3 e0/1 หวังว่าน่าจะได้ความรู้ในส่วนของการตั้งค่า PBR พร้อมทั้งการตรวจสอบการทำงานของ PBR กันไปนะครับ แล้วเจอกันบทความต่อไปครับ ขอบคุณแหล่งที่มา www.cisco.com, www.ine.com, และ เอกสาร LAB Cisco Networking Academy กลับสู่ด้านบน

Path Control Using PBR