路由控制概述
路由控制可以通过路由策略(Route-Policy)实现,路由策略应用灵活而广泛,有以下几种常见方式:
控制路由的发布:通过路由策略对发布的路由进行过滤,只发布满足条件的路由。
控制路由的接收:通过路由策略对接收的路由进行过滤,只接收满足条件的路由。
控制路由的引入:通过路由策略控制从其他路由协议引|入的路由条目,只有满足条件的路由才会被引入。
路由匹配工具
匹配工具:访问控制列表ACL
访问控制列表(Access Control List,ACL)是一个匹配工具,能够对报文及路由进行匹配和区分。
ACL按照规则编号从小到大匹配,默认从5开始,步长为5,一但匹配成功就结束匹配。
ACL应用举例:
ACL只能匹配路由的前缀,无法匹配路由的网络掩码。例如,在下图(最左边)中,如果有一条1.1.2.0/30的路由,它也能匹配成功;1.1.2.8/30也能匹配成功。
匹配工具:IP-Prefix前缀列表
IP前缀列表(IP-Prefix List)是将路由条目的网络地址、掩码长度作为匹配条件的过滤器,可在各路由协议发布和接收路由时使用。
不同于ACL,IP-Prefix List能够同时匹配IP地址前缀长度以及掩码长度,增强了匹配的精确度。
序号一般以10为步长,10、20、30等。
# 精确匹配192.168.1.0 22这条路由
ip ip-perfix test index 10 permit 192.168.1.0 22
# 严格匹配192.168.1.0的前22位,掩码长度可以在24~32范围内(包括24和32)
ip ip-perfix test index 10 permit 192.168.1.0 22 greater-equal 24
# 严格匹配192.168.1.0的前22位,掩码长度可以在22~26范围内(包括22和26)
ip ip-perfix test index 10 permit 192.168.1.0 22 less-equal 26
# 严格匹配192.168.1.0的前22位,掩码长度可以在24~26范围内(包括24和26)
ip ip-perfix test index 10 permit 192.168.1.0 22 greater-equal 24 less-equal 26
IP-Prefix的匹配机制
顺序匹配、唯一匹配(匹配到一条就不再继续往下匹配)、默认拒绝。
IP-Prefix的匹配示例
IP-Prefix一些特殊用法
IP-Prefix和ACL的区别
(1)产生背景
ACL的产生最初目的是为了过滤数据包而诞生的
IP-Prefix的产生是用于精确匹配路由条目
(2)实现功能
ACL既可以用来匹配路由,又可以用来过滤数据包
IP-Prefix只能用来匹配路由,不能用于过滤数据包。
(3)匹配路由精确度
ACL不能进行精确匹配路由,匹配路由时只能匹配路由的网络号,但无法匹配掩码。
地址前缀列表比ACL更灵活,可以精确匹配路由,对于前缀相同而掩码不同的路由可以精确匹配
路由策略工具
策略工具:Filter-Policy(过滤-策略)
Filter-Policy(过滤-策略)是一个很常用的路由信息过滤工具,能够对接收、发布、引入的路由进行过滤,可应用于IS-IS、OSPF、BGP等协议。
在OSPF中的应用
filter-policy import命令对接收的路由设置过滤策略,只有通过过滤策略的路由才被添加到路由表中,没有通过过滤策略的路由不会被添加进路由表,但不影响对外发布出去。
通过filter-policy export命令对引入的路由在发布时进行过滤,只将满足条件的外部路由转换为Type5 LSA(AS-external LSA)并发布出去。
filter-policy import命令实际上是对OSPF计算出来的路由进行过滤,不是对发布和接收的LSA进行过滤。
考点:filter-Policy只能过滤本地始发的5类LSA,有些特殊的3类LSA也能过滤。
在IS-IS中的应用
与OSPF相似,filter-policy import命令只会对本地的路由表产生影响,不会将匹配的路由加入到路由表,不会影响本地设备的LSP的扩散和LSDB的同步。
缺省情况下,设备将把引入的全部外部路由发布给IS-IS邻居。如果只希望将引入的部分外部路由发布给邻居,可以使用filter-policy export命令实现。
配置命令
在OSPF中的应用
按照过滤策略,设置OSPF对接收的路由进行过滤。
[Huawei-ospf-100] filter-policy { acl-number | acl-name acl-name | ip-prefix ip-prefix-name | route-policy route-policy-name [ secondary ] } import
# 示例
filter-policy 匹配规则 import
# 匹配acl 2001
filter-policy 2001 import
# 匹配命名型acl text1
filter-policy acl-name text1 import
# 匹配IP前缀列表 text2
filter-policy ip-prefix text2 import
# 匹配路由策略 text3
filter-policy ip-prefix text3 import
按照过滤策略,设置对引入的路由在向外发布时进行过滤。
[Huawei-ospf-100] filter-policy { acl-number | acl-name acl-name | ip-prefix ip-prefix-name | route policy route-policy-name } export [ protocol [ process-id ] ]
# 示例
filter-policy 匹配规则 export 协议 【进程号】
在IS-IS中的应用
配置IS-IS路由加入IP路由表时的过滤策略。
[Huawei-isis-1] filter-policy { acl-number | acl-name acl-name | ip-prefix ip-prefix-name | route-policy route policy-name } import
# 示例(同ospf)
filter-policy 匹配规则 import
配置IS-IS对已引入的路由在向外发布时进行过滤的过滤策略。
[Huawei-isis-1] filter-policy { acl-number | acl-name acl-name | ip-prefix ip-prefix-name | route-policy route policy-name } export [ protocol [ process-id ] ]
# 示例(同ospf)
filter-policy 匹配规则 export 协议 【进程号】
在BGP中的应用
配置对接收的路由信息进行过滤。
[Huawei-bgp-af-ipv4] filter-policy { acl-number | acl-name acl-name | ip-prefix ip-prefix-name } import
# 示例
filter-policy 匹配规则 import
配置对发布的路由进行过滤,只有通过过滤的路由才被BGP发布。
[Huawei-bgp-af-ipv4] filter-policy { acl-number | acl-name acl-name | ip-prefix ip-prefix name } export [ protocol [ process-id ] ]
# 示例
filter-policy 匹配规则 export 协议 【进程号】
配置向对等体(组)发布或从对等体(组)接收路由时的过滤策略。
[Huawei-bgp-af-ipv4] peer { group-name | ipv4-address } filter-policy { acl-number | acl-name acl-name } { import | export }
策略工具:Route-Policy
Route-Policy是一个策略工具,用于过滤路由信息,以及为过滤后的路由信息设置路由属性。
一个Route-Policy由一个或多个节点(Node)构成,每个节点都可以是一系列条件语句(匹配条件)以及执行语句(执行动作)的集合,这些集合按照编号从小到大的顺序排列。
多个条件语句之间的关系为“与”。
一个条件语句中多个条件的关系为“或”。
不写条件代表匹配任意。
(1)Route-Policy的组成
Route-Policy由一个或多个节点构成,每个节点包括多个if-match和apply子句。
permit或deny:指定Route-Policy节点的匹配模式为允许或拒绝。
node:指定Route-Policy的节点号。整数形式,取值范围是0~65535。
if-match子句:定义该节点的匹配条件。
apply子句:定义针对被匹配路由执行的操作。
(2)Route-Policy的匹配顺序
路由策略使用不同的匹配条件和匹配模式选择路由改变路由属性。
默认动作也是拒绝(未全部匹配成功就拒绝通过)。
由上图可以看出,只有当节点的匹配模式为premit时,才会执行apply。
(3)Route-Policy的基础配置命令
1、创建Route-Policy
# 创建路由策略,并进入Route-Policy视图
[Huawei]route-policy route-policy-name {permit | deny} node node-number
2、(可选)配置if-match子句
3、(可选)配置apply子句
示例
# 双点双向中解决路由环路
route-policy i2o deny node 10
if match tag 400
route-policy i2o premit node 20
apply tog 300
[AR2-ospf-1]import-route isis route-policy i2o