简介
本篇我们来简单介绍一下路由策略与策略路由。这两个词看上去很像,但是有着完全不同的内在原理。本文
假设大家已经熟悉各种路由协议的配置方法,如果不是很熟悉,可以参考本站往期的文章进行一下温习,比
如:OSPF、IS-IS、BGP等等。我们主要以下图的拓扑为例,对路由策略和策略路由进行配置讲解。
基本配置要求:
1、R1上创建L0-L3四个环回口,并且引入OSPF。
2、R2上OSPF和ISIS双向路由引入。
3、BGP使用R2作为RR,解决BGP路由黑洞问题。
4、ISIS内部只允许收到R1 L0的环回口的地址。
5、R6上创建一个环回口。
6、R1的所有环回口都能和R6的环回口通信。
7、要求的通信路径如下:
去:R1–>R2–>R4–>R5–>R6
回:R6–>R5–>R4–>R2–>R1
基本配置
首先我们先配置好基本的配置,配置OSPF、IS-IS、BGP。基本配置这里不再演示,以R2为例,下面是R2的
基本配置。
isis 1
is-level level-2
cost-style wide
network-entity 20.0000.0002.0001.00
#
interface GigabitEthernet0/0/0
ip address 10.1.2.2 255.255.255.0
isis enable 1
#
interface GigabitEthernet0/0/1
ip address 10.2.3.2 255.255.255.0
isis enable 1
#
interface GigabitEthernet0/0/2
ip address 10.2.4.2 255.255.255.0
isis enable 1
#
interface LoopBack0
ip address 192.168.4.1 255.255.255.0
#
bgp 100
router-id 2.2.2.2
peer 10.1.2.1 as-number 100
peer 10.2.3.3 as-number 100
peer 10.2.4.4 as-number 100
#
ipv4-family unicast
undo synchronization
peer 10.1.2.1 enable
peer 10.2.3.3 enable
peer 10.2.3.3 reflect-client
peer 10.2.4.4 enable
peer 10.2.4.4 reflect-client
#
ospf 1 router-id 2.2.2.2
import-route isis 1
area 0.0.0.0
network 10.1.2.0 0.0.0.255
network 192.168.4.0 0.0.0.255
#
路由策略
路由策略(Routing-Policy)主要实现了路由过滤和路由属性设置等功能,它通过改变路由属性(包括
可达性)来改变网络流量所经过的路径。路由协议在发布、接收和引入路由信息时,根据实际组网需求实
施一些策略,以便对路由信息进行过滤和改变路由属性。路由策略的作用包括:
● 过滤路由信息的手段。
● 发布路由信息时只发送部分信息。
● 接收路由信息时只接收部分信息。
● 进行路由引入时引入满足特定条件的信息支持等值路由。
● 设置路由协议引入的路由属性。
策略相关的五种过滤器:
● 路由策略(Routing-Policy)
设定匹配条件,属性匹配后进行设置,由if-match和apply字句组成。
● 访问列表(access-list)
用于匹配路由信息的目的网段地址或下一跳地址,过滤不符合条件的路由信息。
● 前缀例表(prefix-list)
匹配对象为路由信息的目的地址或直接作用于路由器对象(gateway)。
● 自治系统路径信息访问列表(aspath-list)
仅用于BGP协议,匹配BGP路由信息的自治系统路径域。
● 团体属性列表(community-list)
仅用于BGP协议,匹配BGP路由信息的自治系统团体域。
路由策略与过滤器的关系:
● 在路由引入(import-route)时使用routing policy。
▲ routing policy由一系列的if-match子句和apply子句组成
▲ 匹配AS-path时使用AS-path list
▲ 匹配Community时使用Community list
▲ 匹配IP address时使用IP Prefix和Access list
● 在路由发布(export)和路由接收(import)时使用地址前缀列表(IP Prefix)和访问控制列表
(Access Control List)
▲ 接收时:IP Prefix、Access list和Gateway(特定路由器)
▲ 发布时:IP Prefix和Access list
路由策略配置演示
如前所示,在我们的拓扑中,有如下两条要求,在前面R2的基本配置中大家应该会注意到,我们只在OSPF
中引入了IS-IS,IS-IS中并没有引入OSPF,主要就是为了接下来进行演示。
● ISIS内部只允许收到R1 L0的环回口的地址。
● 要求的通信路径如下:
去:R1–>R2–>R4–>R5–>R6
回:R6–>R5–>R4–>R2–>R1
1、首先看一下如何满足ISIS内部只允许收到R1 L0的环回口的地址这条要求,首先们创建一条ACL规则
允许R1 L0的网段通过,命令如下:
acl number 2000
rule 0 permit source 192.168.0.0 0.0.0.255
2、接下来我们创建一条路由策略,命名为“import-l0”,策略是如果与ACL 2000匹配,就允许通过。
route-policy import-l0 permit node 10
if-match acl 2000
3、在ISIS中配置引入OSPF路由,并执行前面创建的路由策略。
isis 1
import-route ospf 1 route-policy import-l0
4、配置完成后,在R2上查看OSPF和ISIS的routing table并进行对比,可以看到ISIS只引入了R1 L0的
路由条目,说明路由策略生效了。
策略路由
策略路由PBR(Policy-Based Routing)是一种依据用户制定的策略进行路由选择的机制。名子看起来有
一些深奥,其实说穿了就是改一改Next Hop IP让我们可以对Routing Table的结果作出人工干预,控制
某些Traffic的路由方向。普通的报文转发是依据报文的目的地址查询转发表来实现的,策略路由是一种依
据用户制定的策略进行路由选择的机制,与单纯依照IP报文的目的地址查找路由表进行转发不同,可应用于
安全、负载分担等目的。
策略路由支持基于ACL包过滤、地址长度等信息,为活地指定路由。而ACL报文过滤则可以根据报文的源IP、
目的IP、协议、端口号、优先级、TOS、时间段、VPN等各种丰富的信息将报文分类,然后控制将这些报文
按照不同的路由转发出去。
策略路由的分类:
● 接口策略路由
▲ 接口策略路由只对转发的报文起作用,对本地产生的报文(比如本地的ping报文)不起作用。而本地策
略路由只对本地产生的报文起作用,对转发的报文不起作用。
▲ 接口策略路由配置在接口视图下。
● 本地策略路由
▲ 本地产生的报文的策略路由配置在系统视图下。
▲ 注意:组播策略路由只支持转发的报文,不对路由器本机产生的报文进行策略路由。
策略路由的匹配项:
匹配项就是if-match语句,根据这些匹配项将报文按照某个规则进行分类,分为满足规则和不满足规则两类。
● 只有满足所有的if-match,才算匹配,既各匹配条件是与的关系。
● “匹配退出,不匹配继续”的原则,即只要任意一个节点满足匹配,则不再继续往下匹配,如果不匹配则继
续匹配下一个节点。
策略路由的操作项:
操作项就是apply语句,也就是满足匹配项的报文将怎么处理、从哪个接口转发出去。
转发接口的优先级:
下表中只针对单播报文,不包括组播报文,当配置有优先级高的策略,则优先级低的配置将被忽略。单播策
略路由可以同时配置两个下一跳或者设置两个出接口,报文转发采用负载分担的方式进行。
报文匹配的其它策略
1、如果只添加一个节点而没有任何匹配项和设置操作项,则所有报文都匹配,不再继续往下匹配。但是策略
路由的统计数字不改变。
2、如果添加一个节点,只有匹配项,没有设置操作项,由进行匹配,但不执行相应的操作,不再继续往下
匹配。但是策略路由的统计数字不改变。
3、如果添加一个节点,没有匹配项,有设置操作项,由所有报文都匹配,根据permit/deny执行相关的操
作,不于继续往下匹配。但是策略路由的统计数字改变。
4、如果匹配项中使用的ACL根本不存在,则缺省是不匹配任何报文的。
5、当直接出接口指定为本地的以太网接口、子接口、Virtual-Template接口时,虽然从指定接口转发,但
不能正常通信,因为这几个接口是广播域,不能确定下一跳,因此必须指定为下一跳。
6、当配置deny的节点时,对于单播策略路由来说,节点的apply命令行等于没有配置,数据包将走正常单播
路由表转发,因此没有deny的调试信息以及相应的统计信息。对于组播策略路由来说,有deny的调试信息以
及相应的统计信息。
策略路由配置演示
1、接下来看一下通信路径的那条要求,从要求中要以看了来,我们要将R2和R5的流量人为的都指向R4,不让
其有机会从R3走。首先们在R2上创建一条ACL规则,这里原地址将R1上四个环回口的地址包括在内,目的地址
就是R6上的环回口地址,规则为permit,也就是允许通过。这里就是定义ACL匹配目的源地址。
acl number 3001
rule 5 permit ip source 192.168.0.0 0.0.255.255 destination 114.114.114.0 0.0.0.255
2、然后创建traffic classifier和traffic behavior,traffic classifier命名为”rdt”,这里就是要
定义需要重定向的数据流分类。
traffic classifier rdt operator or
if-match acl 3001
3、创建traffic behavior,这里同样命名为“rdt”,这里就是定义流量行为将R2的流量重定向到R4的
G0/0/0的接口地址。
traffic behavior rdt
redirect ip-nexthop 10.2.4.4
4、绑定流策略。
traffic policy rdt
classifier rdt behavior rdt
5、配置完成后,在R1上通过tracert命令验证流量路径,可以看到流量是从R4通过的。
6、现在R1到R6的路径已经通过R4走了,但是回来的路径还不一定是不是从R4走,也有可能从R3走,所以我
们还要在R5上配置策略路由。配置地方法是一样的,这里就不再重复演示了。
7、配置完成后,从R6上进行验证,确认流量经过R4到达R1。
策略路由与路由策略的区别
● 策略路由与路由策略是两个不同的概念,应用领域不同。
● 策略路由主要是控制报文的转发。
▲ 既可以不按照路由表进行报文的转发,因为一般报文的转发要通过查找转发表,而配上策略路由后就
不用管转发表了,可以随心所欲将报文从转发出去了。
● 路由策略主要控制路由信息的引入、发布、接收。
▲ 引入:控制哪些路由信息引到路由协议中,哪些路由不引入,主要是针对某种路由协议,是否允许其
它路由信息引进来。
▲ 发布:控制哪些发布出去,哪些不发布了去,通过同一种路由协议发布出去。
▲ 接收:控制哪些接收,哪些丢弃。