目录
简介
PBR(Policy-Based Routing,策略路由)
策略路由可理解为控制路由,因为PBR策略的优先级高于传统路由表的转发,所以它主要用于影响数据包转发的技术。
作用
@主要用于实现一些特定业务的流量走指定的转发路径,而其余用户或业务的流量依旧根据路由表进行转发的场景。
1、传统的路由转发原理是根据报文的目的地址查找路由表,然后进行报文转发。
2、但是目前越来越多的用户希望能够在传统路由转发的基础上根据自己定义的策略进行报文转发和选路。
为此策略路由的出现能够很好的解决这些用户的需求。
分类
策略路由分为本地策略路由、接口策略路由和智能策略路由SPR(Smart Policy Routing)。
本地策略路由
本地策略路由仅对本机下发的报文进行处理,对转发的报文不起作用。
本地策略路由示例
需求:在RouterA上配置本地策略路由,实现:
- 长度为64~1400字节的报文设置192.168.1.2作为下一跳地址。
- 长度为1401~1500字节的报文设置192.168.2.2作为下一跳地址。
RouterB
1、配置IP地址
2、配置静态路由
[RouterB]ip route-static 1.1.1.1 32 192.168.1.1
[RouterB]ip route-static 1.1.1.1 32 192.168.2.1
RouterA
1、配置IP地址
2、配置静态路由
[RouterA]ip route-static 2.2.2.2 32 192.168.1.2
[RouterA]ip route-static 2.2.2.2 32 192.168.2.2
3、配置本地策略路由
(1)直接配置策略路由条件
# 创建策略路由,if-match匹配数据包的大小,next-hop修改数据包的下一跳
policy-based-route Local permit node 10
if-match packet-length 64 1400
apply ip-address next-hop 192.168.1.2
policy-based-route Local permit node 20
if-match packet-length 1401 1500
apply ip-address next-hop 192.168.2.2
(2)将策略路由应用在本地
[RouterA]ip local policy-based-route Local
4、测试配置的结果
(1)先清除接口的统计信息
<RouterA>reset counters interface g0/0/0
Info: Reset successfully.
<RouterA>reset counters interface g0/0/1
Info: Reset successfully.
(2)使用ping -s [数据大小]的方式,在RouterA上模拟设备发包
<RouterA>ping -s 100 2.2.2.2
(3)查看两个接口的统计信息
<RouterA>dis int g0/0/0
Input: 5 packets, 710 bytes
Unicast: 5, Multicast: 0
<RouterA>dis int g0/0/1
Input: 0 packets, 0 bytes
Unicast: 0, Multicast: 0
(4)同样的操作,使用1452大小的数据包测试
<RouterA>ping -s 1452 2.2.2.2
(5)再次查看,G0/0/0口没有变动,而g0/0/1的Unicast单播数量增多,满足策略。
<RouterA>dis int g0/0/0
Input: 5 packets, 710 bytes
Unicast: 5, Multicast: 0
<RouterA>dis int g0/0/1
Input: 0 packets, 0 bytes
Unicast: 5, Multicast: 0
接口策略路由(Policy-based-route)
在某些设备上,不仅可以将Policy-based-route策略路由绑定在本地,也可以绑定在接口上。
但其缺点也存在,就是只能绑定策略路由,不能进行控制其绑定在接口的方向。
ENSP中,自带的Router路由设备,其它AR设备中没有该命令。
interface g0/0/0
ip policy-based-route 策略路由名称
案例配置介绍,简单介绍下配置与命令。
需求:配置策略路由,实现G0/0/1接口下的192.168.10.0网段访问2.2.2.2/32网络时,下一跳为192.168.1.2。
1、创建ACL
acl number 3000
rule 5 permit ip source 192.168.10.0 0.0.0.255 destination 2.2.2.2 0
2、将ACL绑定在策略路由中,并修改其下一跳信息
# 对于匹配到的路由修改其下一跳
policy-based-route 策略名称 permit node 10
if-match acl 3000
apply ip-address next-hop 192.168.1.2
#对于无法匹配到ACL的流量,正常放行
policy-based-route 策略名称 permit node 20
(2)将策略路由应用在本地的g0/0/1接口
int g0/0/1
ip policy-based-route 策略名称
接口策略路由(MQC)
接口策略路由只对转发的报文起作用,对本地下发的报文(比如本地的Ping报文)不起作用。
接口策略路由通过在流行为中配置重定向实现,只对接口入方向的报文生效。
策略路由示例
需求:基于上面的本地路由策略拓扑基础,在RouterA上连接一台PC客户端,实现PC1网段访问2.2.2.2的时候优先走192.168.2.2。
注:RouterA上不配置任何去往2.2.2.2的路由,只通过策略路由实现路由的跳转操作。
环境搭建
RouterA
#配置相应接口的IP地址即可。
#需要配置任何路由,只需要通过接口策略路由,实现访问2.2.2.2网络。
RouterB
#配置两条访问192.168.10.0/24网段的路由
[RouterB]ip route-static 192.168.10.0 24 192.168.1.1
[RouterB]ip route-static 192.168.10.0 24 192.168.2.1
配置MQC
RouterA
acl number 3001 //定义ACL匹配目的源地址是192.168.10.0/24,目的地址是2.2.2.2/32
rule 5 permit ip source 192.168.10.0 0.0.0.255 destination 2.2.2.2 0
#
traffic classifier PC1 //定义需要重定向的数据流分类
if-match acl 3001
#
traffic behavior PC1 //定义流行为为重定向到RouterB的GE1/0/0的接口地址
redirect ip-nexthop 192.168.2.2
#
traffic policy PC1 //绑定流策略
classifier PC1 behavior PC1
#
interface GigabitEthernet g0/0/2
traffic-policy PC1 inbound //从192.168.10.0/24到2.2.2.2/32的流量重定向到RouterB上
#
检验配置是否正确
1、查看RouterA的路由表,保证没有去往2.2.2.2的路由
2、在PC1上ping2.2.2.2
PC>ping 2.2.2.2
Ping 2.2.2.2: 32 data bytes, Press Ctrl_C to break
From 2.2.2.2: bytes=32 seq=1 ttl=254 time=31 ms
From 2.2.2.2: bytes=32 seq=2 ttl=254 time=16 ms
MQC
MQC(Modular QoS Command-Line Interface),模块化QoS命令行。
指通过将具有某类共同特征的数据流划分为一类,并为同一类数据流提供相同的服务,也可以对不同类的数据流提供不同的服务。
主要作用是对流量进行控制,对于路由的控制MQC也能有所操作,但路由的控制主要使用路由策略工具。
核心三要素
1、traffic-classifer 流分类(流量分类)
2、traffic-behavoir 流行为(流量的行为)
3、traffic-policy 流策略(流量的执行策略)
配置逻辑
1、通过路由匹配工具将流量归类到一个Traffic类中,创建的类可以被多次调用。
通俗理解:Traffic类就是用来抓取流量。
2、创建Traffic Behavior动作,同样可以被多次调用。
通俗理解:对抓取的流量进行自定义的操作,比如修改下一跳、修改其QOS标签之类的。
3、流策略,可以对Traffic类与Traffic动作进行自由的组合,实现对不同流量的控制。