38
38.1 理解策略路由
38.1.1 策略路由概述
策略路由配置
策略路由(PBR:Policy-Based Routing)提供了一种比基于目的地址进行路由转发更加灵活的数据包路由转发机制。策略路由可以根据IP/IPv6报文源地址、目的地址、端口、报文长度等内容灵活地进行路由选择。
现有用户网络,常常会出现使用到多个ISP(Internet Server Provider,Internet服务提供商)资源的情形,不同ISP申请到的带宽不一;同时,同一用户环境中需要对重点用户资源保证等目的,对这部分用户不能够再依据普通路由表进行转发,需要有选择的进行数据报文的转发控制,因此,策略路由技术即能够保证ISP资源的充分利用,又能够很好的满足这种灵活、多样的应用。 IP/IPv6策略路由只会对接口接收的报文进行策略路由,而对于从该接口转发出去的报文不受策略路由的控制;一个接口应用策略路由后,将对该接口接收到的所有包进行检查,不符合路由图任何策略的数据包将按照普通的路由转发进行处理,符合路由图中某个策略的数据包就按照该策略中定义的操作进行转发。
一般情况下,策略路由的优先级高于普通路由,能够对IP/IPv6报文依据定义的策略转发;即数据报文先按照IP/IPv6策略路由进行转发,如果没有匹配任意一个的策略路由条件,那么再按照普通路由进行转发。用户也可以配置策略路由的优先级比普通路由低,接口上收到的IP/IPv6报文则先进行普通路由的转发,如果无法匹配普通路由,再进行策略路由转发。
用户可以根据实际情况配置设备转发模式,如选择负载均衡或者冗余备份模式,前者设置的多个下一跳会进行负载均衡,还可以设定负载分担的比重;后者是应用多个下一跳处于冗余模式,即前面优先生效,只有前面的下一跳无效时,后面次优的下一跳才会生效。用户可以同时配置多个下一跳信息。
策略路由可以分为两种类型:
一、对接口收到的IP报文进行策略路由。该类型的策略路由只会对从接口接收的报文进行策略路由,而对于从该接口转发出去的报文不受策略路由的控制;
二、对本设备发出的IP报文进行策略路由。该类型策略路由用于控制本机发往其它设备的IP报文,对于外部设备发送给本机的IP报文则不受该策略路由控制。
38.1.2 策略路由基本概念/特性
38.1.2.1策略路由应用过程
应用策略路由,必须先创建路由图,然后在接口上应用该路由图。一个路由图由很多条策略组成,每条策略都有对应的序号(Sequence),序号越小,该条策略的优先级越高。
每条策略又由一条或者多条match语句以及对应的一条或者多条set语句组成。match语句定义了IP/IPv6报文的匹配规则,set语句定义了对符合匹配规则的IP/IPv6报文处理动作。在策略路由转发过程,报文依优先级从高到底依次匹配,只要匹配前面的策略,就执行该策略对应的动作,然后退出策略路由的执行。
IP策略路由使用IP标准或者扩展ACL作为IP报文的匹配规则,IPv6策略路由使用IPv6扩展ACL作为IPv6报文的匹配规则。IPv6策略路由对于同一条策略最多只能配置一个match ipv6 address。
38.1.2.2路由图策略匹配模式
在配置路由图时,可以指定每一条策略的匹配模式为permit或者 deny,其意义如下:
? permit:指定该策略的匹配模式为允许模式,即当报文满足该策略的match规则时,会对
该IP/IPv6报文应用相应的set规则;如报文不满足策略的所有match规则,报文将会使用
该路由图的下一条策略进行匹配。
? deny:指定该策略的匹配模式为拒绝模式,即当报文满足该节点的所有match语句时,不
对该IP/IPv6报文执行策略转发而是执行普通的路由转发。
IP/IPv6报文按照路由图中每一条策略的优先级由高到低依次进行匹配,只要匹配了前面的策略就执行相应的动作并退出策略转发流程;如果IP/IPv6报文不能匹配路由图中的任何策略,那么将会对IP/IPv6报文执行普通的路由转发。
38.1.2.3下一跳规则概念
当前策略路由提供了set {ip | ipv6} next-hop、set {ip | ipv6} default next-hop两条转发规则。后面两条为设置缺省下一跳和出接口。这两条规则的意义如下:
? set {ip | ipv6} next-hop:配置策略路由下一跳IP/IPv6地址,优先级比普通路由高,从接口
上收到的匹配match规则的IP/IPv6报文将优先转发到set {ip | ipv6} next-hop所指定的下一跳,而不管该IP/IPv6报文在路由表中的实际选路结果和策略路由指定的下一跳是否一致。 ? set {ip | ipv6} default next-hop:该命令指定的策略路由的优先级比普通路由的低,但是比
默认路由高。从接口上收到的匹配match规则的IP/IPv6报文,如果该报文在路由表中选路失败或者选到默认路由,那么IP/IPv6报文将转发到该命令指定的下一跳。
上述前两条规则指定的下一跳必须是直连的,否则不会生效;如果下一跳不是直连的,策略路由的效果相当于没有配置该命令。
上述两条命令的优先级顺序为:set {ip | ipv6} next-hop > 网络路由/主机路由 > set {ip | ipv6} default next-hop >缺省路由。这两条命令能够支持同时配置,但只有高优先级的生效。
38.1.2.4策略路由下一跳负载均衡模式
一个路由图Sequence中能够配置多个下一跳,多个下一跳之间能够实现两种负载均衡模式: ? 冗余备份模式,支持优先生效,失效接管的模式,多个下一跳之间同一时刻只有一个下一
跳生效。
? 前面的下一跳R1失效会自动切换到下一个下一跳R2,当R1重新恢复生效时,会再
自动再切换回R1; ? 当存在多个下一跳,如R1/R2/R3等,删除R1再添加R1时,会在后面添加,如R2/R3/R1,
次之的R2生效。
? 负载均衡模式,多个下一跳之间基于流进行负载分担。下一跳为出接口形式,对这个功能不支持。
1、锐捷产品上一个接口最多只能配置一个路由图,在同一个接口上多次配置路由图会相互覆盖,即后配置的生效。
2、策略路由子路由图(route-map sequence)中最多只能配置一个IPV6 ACL。 3、如果配置的子路由图中只有next-hop而没有配置ACL,则等价于所有报文都匹配;如果子路由图中只有ACL而没有next-hop则匹配的报文普通转发;如果子路由图中即没有ACL也没有next-hop,则等价所有报文普通转发。
4、策略路由如果配置了ACL,但是该ACL不存在,等价所有报文都匹配;如果配置了ACL,但是其中没有任何ACE,相当于匹配到了驱动添加的deny any条目,
不会从下一个子路由图的ACL开始匹配;
5、交换机上,ACE的deny选项行为,执行普通转发;并且为了满足策略路由的匹配顺序,deny any any行为是跳到下个IPV6 ACL开始匹配。
6、交换机上,配置了PBR功能,会对发往本机的报文同时生效,如果用户希望发往本机的IP/IPv6报文不使用策略路由,则用户需要在PBR规则中在IP/IPV6 ACL前面手工添加“deny设备IP/IPv6地址”的ACE。
7、工作在冗余备份模式下时,匹配路由子图的策略规则的IP报文转发到该路由子图中第一个解析的下一跳;如果所有的下一跳都未解析,则匹配策略规则的IP报文被丢弃;如果第一个下一跳原先未解析后来解析了,则匹配策略规则IP报文的转发将切换到第一个下一跳。
? 注意
? 说明 PBR与BFD联动功能请参见锐捷《BFD配置》,《配置BFD命令》。
38.1.3 策略路由使用BFD功能
策略路由与BFD联动,可以避免在配置的策略路由不可达的情况下,路由选路不会选择该策略路由作为转发路径。如果存在备份路由转发路径,将可以快速地切换到该备份转发路径。
38.1.4 工作原理
策略路由,首先需要定义一个路由图,用于指定报文转发到哪儿去的策略;路由图是一组语句组成,可以定义为“Permit”和“Deny”行为;
其次,使用set语句控制报文转发行为。报文转发控制是通过在PBR路由图中定义一组set语句实
现;依序使用每一个set语句进行报文转发;每一个语句都不会参考前面或者后面的语句。