前面我们学习了ACL、 IP-Prefix List匹配工具来匹配路由,然后学习了Filter-Policy、Route-Policy对匹配到的路由进行过滤或者修改路由属性等以实现需求,这些是对路由进行的过滤一般涉及控制平面。但是在某些场景中我们希望一些特定用户、特定业务的流量走指定的转发路径,而其余用户或业务的流量则依旧根据路由表进行转发。这就需要另外一个工具-策略路由了。
一、基础概念
PBR(Policy-Based Routing,策略路由):
-
PBR使得网络设备不仅能够基于报文的目的IP地址进行数据转发,更能基于其他元素进行数据转发,例如源IP地址、源MAC地址、目的MAC地址、源端口号、目的端口号、VLAN-ID等等。 -
用户还可以使用ACL匹配特定的报文,然后针对该ACL进行PBR部署。 -
若设备部署了PBR,则被匹配的报文优先根据PBR的策略进行转发,即PBR策略的优先级高于传统路由表。
之前我也经常搞混路由策略和策略路由,路由策略是对于路由和路由属性的操作,策略路由直接针对转发层面操作。
简单地说传统路由转发依据路由表和转发表等进行转发,但是通过策略路由可以在数据转发层面直接依据策略路由转发,优先级高于路由表。
二、策略路由基本概念
-
PBR与Route-Policy类似,由多个节点组成,每个节点由匹配条件(条件语句)和执行动作(执行语句)组成。 -
每个节点内可包含多个条件语句。节点内的多个条件语句之间的关系为"与",即匹配所有条件语句才会执行本节点内的动作。 -
节点之间的关系为"或",PBR根据节点编号从小到大顺序执行,匹配当前节点将不会继续向下匹配。
PBR命令语法:
PBR的节点匹配模式:
-
permit表示对满足匹配条件的报文进行策略路由 -
deny表示对满足匹配条件的报文不进行策略路由
大致匹配模式按照节点顺序匹配,满足节点条件就执行对应动作,匹配成功则退出,不满足则继续匹配。如果策略路由没有匹配到任何规则,报文将不会通过策略路由进行特殊处理,而是按照常规的路由表项进行转发。
PBR的分类:接口PBR和本地PBR。
接口PBR:接口PBR只对转发的报文起作用,对本地始发的报文无效。
接口PBR调用在接口下,对接口的入方向报文生效。缺省情况下,设备按照路由表的下一跳进行报文转发,如果配置了接口PBR,则设备按照接口PBR指定的下一跳进行转发。
本地PBR: 本地PBR对本地始发的流量生效,如:本地始发的ICMP报文。
本地PBR在系统视图调用。
三、PBR与路由策略的区别
名称 | 操作对象 | 描述 |
---|---|---|
路由策略(Route-Policy) | 路由信息 | 路由策略是一套用于对路由信息进行过滤、属性设置等操作的方法,通过对路由的操作或控制,来影响数据报文的转发路径 |
PBR | 数据报文 | PBR直接对数据报文进行操作,通过多种手段匹配感兴趣的报文,然后执行丢弃或强制转发路径等操作 |
四、常见应用场景
用于流量镜像分析。
出口流量的负载分担。
五、配置
# 创建PBR
[Huawei] policy-based-route policy-name { deny | permit } node node-id
# 设置IP报文的匹配条件,缺省情况下,策略路由中未配置匹配条件,可以设置使用ACL匹配IP地址,也可以设置匹配报文长度。
[Huawei-policy-based-route-PBR-10] if-match acl acl-number
[Huawei-policy-based-route-PBR-10] if-match packet-length min-length max-length
# 指定PBR中报文的出接口,缺省情况下,策略路由中未配置报文出接口。配置成功后,将匹配策略点的报文从指定出接口发送出去。报文的出接口不能为以太接口等广播型接口。
[Huawei-policy-based-route-PBR-10] apply output-interface interface-type interface-number
# 设置PBR中报文的下一跳
[Huawei-policy-based-route-PBR-10] apply ip-address next-hop ip-address1 [ ip-address2 ]
# 全局PBR调用
[Huawei] ip local policy-based-route Policy-name
# 接口PBR调用
[Huawei-GigabitEthernet0/0/0] ip policy-based-route Policy-name
# ACL引用
当ACL的rule配置为permit时,设备会对匹配该规则的报文执行本地策略路由的动作:
- 本地策略路由中策略点为permit时对满足匹配条件的报文进行策略路由;
- 本地策略路由中策略点为deny时对满足匹配条件的报文不进行策略路由,即根据目的地址查找路由表转发报文。
当ACL配置了rule,如果报文未匹配上任何规则,则根据目的地址查找路由表转发报文。
当ACL的rule配置为deny或ACL未配置规则时,应用该ACL的本地策略路由不生效,即根据目的地址查找路由表转发报文。
总结:PBR(Policy-Based Routing,策略路由)使得网络设备不仅能够基于报文的目的IP地址进行数据转发,更能基于其他元素进行数据转发,例如源IP地址、源MAC地址、目的MAC地址、源端口号、目的端口号、VLAN-ID等等。一般可以通过ACL进行匹配,常用于负载均衡和引流,策略路由优先级高于路由表。
如果对文章感兴趣欢迎微信搜索公众号:不喜欢热闹的孩子
本文由 mdnice 多平台发布