一、策略路由
1.策略路由的引入
普通的报文转发是依据报文的目的地址查询转发表来实现的。
<Quidway>display ip routing-table
Routing Table: public net
Destination/Mask Protocol Pre Cost Nexthop Interface
0.0.0.0/0 RIP 100 1 200.200.203.2 GE11/1/0
0.0.0.0/32 RIP 100 1 200.200.203.2 GE11/1/0
1.0.0.0/8 STATIC 60 0 11.110.0.1 Ethernet12/2/0
4.4.4.0/24 DIRECT 0 0 4.4.4.4 Ethernet12/2/0.200
4.4.4.4/32 DIRECT 0 0 127.0.0.1 InLoopBack0
5.0.0.0/8 RIP 100 1 200.200.203.2 GE11/1/0
但是遇到如下情况如何解决?
1、根据源IP来控制报文转发。即控制来自PC1的报文通过接S1/0/0转发,来自PC2的报文通过接口E1/2/0转发口?
2、根据报文的长度来控制报文转发。
3、根据报文的其他属性来控制报文转发。
2.策略路由的概念
策略路由是一种依据用户制定的策略进行路由选择的机制,与单纯依照IP报文的目的地址查找路由表进行转发不同,可应用于安全、负载分担等目的。
VRP策略路由支持基于acl包过滤、地址长度等信息,灵活地指定路由。而acl报文过滤则可以根据报文的源ip、目的ip、协议、端口号、优先级、tos、时间段、vpn等各种丰富的信息将报文分类,然后控制将这些报文按照不同的路由转发出去。
3.匹配原则
Route-policy : route_policy_name
permit 10 : if-match acl 3000
if-match packet-length 100 500
apply output-interface Ethernet1/1/0 //有多个匹配项
deny 20 : if-match acl 2000 //只有匹配项
permit 30 : if-match acl 3100
permit 40 :
apply output-interface Ethernet1/1/0 //只有操作项
permit 50 :
apply output-interface Ethernet1/1/0
deny 60 : //匹配项和操作项都没有
permit 70 :
permit 80 : if-match acl 3000
apply output-interface Ethernet1/1/0 serial1/0/0
apply ip-address next-hop 1.1.1.1 //有多个操作项
3.1 匹配项
匹配项就是if-match语句,根据这些匹配项将报文按照某个规则进行分类,分为满足规则和不满足规则两类。
注意:
1、只有满足所有的if-match,才算匹配,即各匹配条件是与的关系。
2、“匹配退出,不匹配继续”的原则。即只要任意一个节点满足匹配,则不再继续往下匹配,如果不匹配则继续匹配下一个节点。
3.2 操作项
操作项就是apply语句,也就是满足匹配项的报文将怎么处理、从哪个接口转发出去。
3.3 转发接口的优先级
以上只针对单播报文,不包括组播报文。
当配置有优先级高的策略,则优先级低的配置将被忽略。
单播策略路由可以同时配置两个下一跳或设置两个出接口,报文转发将采用负载分担的方式进行。
3.4 报文匹配的其他原则
注意事项:
1、如果只添加一个节点而没有任何匹配项和设置操作项,则所有报文都匹配,不再继续往下匹配。但是策略路由的统计数字不改变。
2、如果添加一个节点,只有匹配项,没有设置操作项,则进行匹配,但不执行相应的操作,不再继续往下匹配。但是策略路由的统计数字不改变。
3、如果添加一个节点,没有匹配项,有设置操作项,则所有报文都匹配,根据permit/deny执行相应的操作,不再继续往下匹配。但是策略路由的统计数字改变。
4、如果匹配项中使用的acl根本不存在,则缺省是不匹配任何报文。
5、当直接出接口指定为本地的以太网接口、子接口、Virtual-Template接口时,虽然从指定接口转发,但不能正常通信,因为这几个接口是广播域,不能确定下一跳,因此必须指定为下一跳。
6、当配置deny的节点时,对于单播策略路由来说,节点的apply 命令行等于没配置一样,数据包将走正常单播路由表转发,因此没有deny的调试信息以及相应的统计信息;对于组播策略路由来说,数据包将直接丢弃,不查询组播路由表,有deny的调试信息以及相应的统计信息。
二、路由策略
1.路由策略的作用
- 过滤路由信息的手段
- 发布路由信息时只发送部分信息
- 接收路由信息时只接收部分信息
- 进行路由引入时引入满足特定条件的信息支持等值路由
- 设置路由协议引入的路由属性
2.策略相关的五种过滤器
- 路由策略(routing policy)
设定匹配条件,属性匹配后进行设置,由if-match和apply字句组成
- 访问列表(access-list)
用于匹配路由信息的目的网段地址或下一跳地址,过滤不符合条件的路由信息
- 前缀列表(prefix-list)
匹配对象为路由信息的目的地址或直接作用于路由器对象(gateway)
- 自治系统路径信息访问列表(aspath-list)
仅用于BGP协议,匹配BGP路由信息的自治系统路径域
- 团体属性列表(community-list)
仅用于BGP协议,匹配BGP路由信息的自治系统团体域
3.路由策略与过滤器的关系
在**路由引入(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)和访问控制列表
- 接收时:IP Prefix、Access list和Gateway(特定路由器)
- 发布时:IP Prefix和Access list
4.路由策略的执行规则
5.AS正则表达式
字符 | 符号 | 特殊意义 |
---|---|---|
句号 | . | 匹配任意单字符 |
星号 | * | 匹配模式中0或更多的序列 |
加号 | + | 匹配模式中1或更多的序列 |
问号 | ? | 匹配模式0或1次出现 |
加字符 | ^ | 匹配输入字符串的开始 |
美元符 | $ | 匹配输入字符串的结束 |
下划线 | _ | 匹配逗号、括号、字符串的开始和结束、空格 |
方括号 | [范围] | 表示一个单字符模式的范围 |
连字符 | - | 把一个范围的结束点分开 |
三、策略路由与路由策略的区别
策略路由与路由策略是两个不同的概念,应用领域不同。
- 策略路由主要是控制报文的转发,即可以不按照路由表进行报文的转发(因为一般报文的转发要通过查找转发表,而配上策略路由后就不用管转发表了,可以随心所欲将报文从转发出去了)。
- 路由策略主要控制路由信息的引入(控制哪些路由信息引到路由协议中,哪些路由不引入,主要是针对某种路由协议,是否允许其它路由信息引进来)、发布(控制哪些发布出去,哪些不发布出去,通过同一种路由协议发布出去)、接收(控制哪些接收,哪些丢弃)。