HUAWEI策略路由PBRTraffic-policy
所谓策略路由,不⽤多说,是优先于路由的,当数据进⼊到设备后,先查策略,再查路由通常应⽤于单⽹关双出⼝/多路径时的数据流⾛向控制。可以说,没有路由也可以实现互通~ 举个栗⼦
现两台路由器直连,都分别下联了⼀台PC,R1-PC 192.168.1.0/24R1-R2 12.0.0.0/24R2-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 可以看到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时,⾛AR1R2请求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成长之路 --- 梅利
因篇幅问题不能全部显示,请点此查看更多更全内容