HUAWEI策略路由PBR

HUAWEI策略路由PBR

Traffic-policy

所谓策略路由,不用多说,是优先于路由的,当数据进入到设备后,先查策略,再查路由

通常应用于单网关双出口/多路径时的数据流走向控制。可以说,没有路由也可以实现互通~

举个栗子

 

 现两台路由器直连,都分别下联了一台PC,

R1-PC 192.168.1.0/24

R1-R2 12.0.0.0/24

R2-PC2 172.16.1.0 /24

使用traffic pollicy 策略路由功能,使得在两台路由设备上没有路由条目也可以实现两台PC互通。

原理

ACL抓取前缀/数据

traffic classifier 匹配数据

traffic behavior 定义行为

traffic policy 绑定数据和行为

接口调用policy

一定要确保两台路由之间的直连可达。12.0.0.0/24

[R1]acl 2000 
[R1-acl-basic-2000]rul per source 192.168.1.0 0.0.0.255    //这里也可以使用扩展来定义不同的流量
[R1]traffic classifier aa   //匹配数据
[R1-classifier-aa]if-match acl 2000      //匹配ACL
[R1]traffic behavior bb   //定义行为
[R1-behavior-bb]redirect ip-nexthop 12.0.0.2  //定义下一跳为12.0.0.2
[R1-traffic  policy cc
[R1-trafficpolicy-cc]classifier aa behavior bb   //policy关联数据和行为
[R1]inter g0/0/1
[R1-GigabitEthernet0/0/1]traffic-policy cc inbound  //一定要在数据的入接口来部署
[R2]acl 2000
[R2-acl-basic-2000]rul per source 172.16.1.0 0.0.0.255
[R2]traffic classifier aa
[R2-classifier-aa]if-match acl 2000
[R2]traffic behavior bb
[R2-behavior-bb]redirect ip-nexthop 12.0.0.1
[R2]traffic  policy cc
[R2-trafficpolicy-cc]classifier aa behavior bb
[R2]inter g0/0/1
[R2-GigabitEthernet0/0/1]traffic-policy cc inbound

(这个逻辑真的是没话说了,对比于cisco的route-map而言,我也是醉了)

 

 查看两台路由的路由表,并没有指向对端的条目

测试

 

 No problem

 通过这个实例可以很清楚的看到,在没有路由条目出去的时候,

可以通过traffic policy 指定它的下一跳来实现路由转发。也充分的证明了,PBR是完全凌驾于路由之上的


上文讲到过,PBR主要用于多出口时针对于不同的流量指定不同的方向,使得带宽能够被充分利用。

 

 如图所示,现要求vlan10去往100.1.1.1的数据走左侧

Vlan20运往100.1.1.1的数据走右侧

R2上做单臂路由,实现两个VLAN通信

基本配置就不说了,(由于我们现在还没有配置NAT,所以在R1,R3上做默认路由指回来)

直接看R2
[gw]acl 3000
[gw-acl-adv-3000]rul permit ip source 192.168.1.0 0.0.0.255 destination 100.1.1.0 0.0.0.255
[gw]acl 3001
[gw-acl-adv-3001]rul per ip sou 192.168.2.0 0.0.0.255 destination 100.1.1.0 0.0.0.255

[gw]traffic classifier vlan10   //定义名字vlan10的匹配
[gw-classifier-vlan10]if-match acl 3000   //匹配ACL
[gw]traffic behavior vlan10     //定义行为动作
[gw-behavior-vlan10]redirect ip-nexthop 12.0.0.1  
[gw]traffic  policy vlan10
[gw-trafficpolicy-vlan10]classifier vlan10 behavior vlan10   //匹配和动作进行关联
[gw-trafficpolicy-vlan10]inter g2/0/0.1  
[gw-GigabitEthernet2/0/0.1]traffic-policy vlan10 inbound  入口方向调用Policy


[gw]traffic classifier vlan20
[gw-classifier-vlan20]if-match acl 3001
[gw]traffic behavior  vlan20
[gw-behavior-vlan20]redirect ip-nexthop 23.0.0.3
[gw-trafficpolicy-vlan20]classifier vlan20 behavior vlan20
[gw-GigabitEthernet2/0/0.2]traffic-policy vlan20 inbound

最后进行测试

开启R1和R3的debugging

<R1>terminal debugging

<R1>debugging ip icmp

 

 可以看到PC1在请求时,数据到达了R1

当然另一侧肯定也是一样的,


效果是实现了,但又有一个问题浮现出来了,

我们在组网时,肯定会设计到冗余设计,

像刚才的操作,PC1去请求100.1.1.1如果R1这边出现故障,能否切换到R3方向呢?

 又该如何操作中?

其实这个点还是很好理解的,

因为pbr优于路由,也就是说有没有路由都会优先PBR,当PBR不生效时,也就不会去走它,从而走路由出去。

嘿嘿,这个很简单对吧,(当然,前提是能够检测到出接口有问题的情况下,)

比如断掉这里

 

做为出接口肯定能够感知,

出接口有问题,到达下一跳也肯定有问题,PBR不生效,怎么办?

没关系有默认路由啊~

 

 而且这两条都不用去设置什么浮动路由,不用去设置谁优先等等.

反正一边有问题肯定默认路由也会跟着消失。


但是如果这样呢?

 

 这个接口出现问题呢?咋办?

还能感知吧?肯定不行了吧,非直连接口,图中我用hub来代替现实中的中继设备

这个时候就要用到一个工具,NQA,(和cisco中的sla基本上一样,执行上行链路检测的) 

而且还要和默认路由相结合 

nqa test-instance admin test   //定义NQA进程 需要用户和测试的名字
 test-type icmp    //使用测试的协议
 destination-address ipv4 12.0.0.1  //测试目标地址
 frequency 1   //执行间隔
 interval seconds 2  //报文间隔
 timeout 1    //超时
 probe-count 1    //探测次数,单次测试中的探测次数,
 start now    //现在开始 
traffic behavior vlan10     //执行动作中track nqa
 redirect ip-nexthop 12.0.0.1 track nqa admin test 
ip route-static 0.0.0.0 0.0.0.0 23.0.0.3
ip route-static 0.0.0.0 0.0.0.0 12.0.0.1 track nqa admin test   //默认路由也要加上NQA,

这样一来,NQA负责监控远端地址,如果出现问题会取消这个pbr,转至默认路由,

而默认路由并不知道是否远端出现问题,所以,也要关联NQA实现两个默认路由之间的切换。

有可能你会说,我直接使用默认路由不就OK啦,干嘛还要用PBR呢?不要忘了,我们前面设置的是强制数据走向。Vlan10走左侧,只有当这一侧出现问题时才会走另外一侧。(如果只做默认路由+ nqa ,这就是浮动路由喽~)


PBR的另一种用法(本地应用)

如果此时是这样的要求,要求GW访问100.1.1.1的流量强制走R3要怎么做呢?

 

 如图所求,

1 PC1请求CLOUD时,走AR1

R2请求CLOUD1 时走AR3

针对于经过本设备的流量

[GW]acl 2000
[GW-acl-basic-2000]rul per source 192.168.1.10 0
[GW-acl-basic-2000]q
[GW]traf c 1
[GW-classifier-1]if-match acl 2000
[GW]traf be 2
[GW-behavior-2]redirect ip-nexthop 12.0.0.1
[GW-behavior-2]q
[GW]traffic pol 3     
[GW-trafficpolicy-3]cla 1 be 2
[GW-trafficpolicy-3]q
[GW]inter g2/0/0
[GW-GigabitEthernet2/0/0]traffic-poli 3 inbound

 针对于本地流量

[GW]acl 2001
[GW-acl-basic-2001]rul 5 per so any    //匹配所有本地
[GW]policy-based-route aa per node 10   //创建PBR
[GW-policy-based-route-aa-10]if-match acl 2001  //匹配ACL
[GW-policy-based-route-aa-10]apply ip-address next-hop 23.0.0.3  //应用动作
[GW-policy-based-route-aa-10]q 
[GW]ip local policy-based-route aa  //应用本地策略 

测试

 

 测试本地

 

注意

针对于AR2而言,本地始发的,和经过此地的数据是两回事

另外,PBR只适合小范围使用,什么意思呢?就是只能在到下一跳设备的距离,另外,这个功能很占用系统CPU,所以,还是慎用

----------------------------------------------

CCIE成长之路 --- 梅利 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值