路由策略和策略路由配置管理
一、路由策略简介
路由策略主要实现了路由过滤和路由属性设置等功能,它通过改变路由属性(包括可达性)来改变网络流量所
经过的路径。
路由协议在发布、接收和引入路由信息时,根据实际组网需求实施一些策略,以便对路由信息进行过滤和改变
路由信息的属性,如:
1、控制路由的接收和发布
只发布和接收必要、合法的路由信息,以控制路由表的容量,提高网络的安全性。
2、控制路由的引入
在一种路由协议在引入其它路由协议发现的路由信息丰富自己的路由信息时,只引入一部分满足条件的路由信
息。
3、设置特定路由的属性
修改通过路由策略过滤的路由的属性,满足自身需要。
路由策略具有以下价值:
通过控制路由器的路由表规模,节约系统资源;通过控制路由的接收、发布和引入,提高网络安全性;通过修
改路由属性,对网络数据流量进行合理规划,提高网络性能。
二、基本原理
路由策略使用不同的匹配条件和匹配模式选择路由和改变路由属性。在特定的场景中,路由策略的 6 种过滤器
也能单独使用,实现路由过滤。若设备支持 BGP to IGP 功能,还能在 IGP 引入 BGP 路由时,使用 BGP 私有属性作为
匹配条件。
图 1 路由策略原理图
如图 1,一个路由策略中包含 N(N>=1)个节点(Node)。路由进入路由策略后,按节点序号从小到大依次检查
各个节点是否匹配。匹配条件由 If-match 子句定义,涉及路由信息的属性和路由策略的 6 种过滤器。
当路由与该节点的所有 If-match 子句都匹配成功后,进入匹配模式选择,不再匹配其他节点。
匹配模式分 permit 和 deny 两种:
permit:路由将被允许通过,并且执行该节点的 Apply 子句对路由信息的一些属性进行设置。
deny:路由将被拒绝通过。
当路由与该节点的任意一个 If-match 子句匹配失败后,进入下一节点。如果和所有节点都匹配失败,路由信息
将被拒绝通过。
过滤器
路由策略中 If-match 子句中匹配的 6 种过滤器包括访问控制列表 ACL(Access Control List)、地址前缀列表、AS
路径过滤器、团体属性过滤器、扩展团体属性过滤器和 RD 属性过滤器。
这 6 种过滤器具有各自的匹配条件和匹配模式,因此这 6 种过滤器在以下的特定情况中可以单独使用,实现路
由过滤。
1、ACL
ACL 是将报文中的入接口、源或目的地址、协议类型、源或目的端口号作为匹配条件的过滤器,在各路由协议发
布、接收路由时单独使用。在 Route-Policy 的 If-match 子句中只支持基本 ACL。
2、地址前缀列表(IP Prefix List)
地址前缀列表将源地址、目的地址和下一跳的地址前缀作为匹配条件的过滤器,可在各路由协议发布和接收路
由时单独使用。
每个地址前缀列表可以包含多个索引(index),每个索引对应一个节点。路由按索引号从小到大依次检查各个节
点是否匹配,任意一个节点匹配成功,将不再检查其他节点。若所有节点都匹配失败,路由信息将被过滤。
根据匹配的前缀不同,前缀过滤列表可以进行精确匹配,也可以进行在一定掩码长度范围内匹配。
说明:
当 IP 地址为 0.0.0.0 时表示通配地址,表示掩码长度范围内的所有路由都被 Permit 或 Deny。
3、AS 路径过滤器(AS_Path Filter)
AS 路径过滤器是将 BGP 中的 AS_Path 属性作为匹配条件的过滤器,在 BGP 发布、接收路由时单独使用。
AS_Path 属性记录了 BGP 路由所经过的所有 AS 编号。
4、团体属性过滤器(Community Filter)
团体属性过滤器是将 BGP 中的团体属性作为匹配条件的过滤器,在 BGP 发布、接收路由时单独使用。
BGP 的团体属性是用来标识一组具有共同性质的路由。
5、扩展团体属性过滤器(Extcommunity Filter)
扩展团体属性过滤器是将 BGP 中的扩展团体属性作为匹配条件的过滤器,可在 VPN 配置中利用 VPN Target 区分
路由时单独使用。
目前,扩展团体属性过滤器仅应用于对 VPN 中的 VPN Target 属性的匹配。VPN Target 属性在 BGP/MPLS IP VPN
网络中控制 VPN 路由信息在各 Site 之间的发布和接收。
6、RD 属性过滤器(Route Distinguisher Filter)
RD 团体属性过滤器是将 VPN 中的 RD 属性作为匹配条件的过滤器,可在 VPN 配置中利用 RD 属性区分路由时单
独使用。
VPN 实例通过路由标识符 RD 实现地址空间独立,区分使用相同地址空间的前缀。
BGP to IGP 功能
BGP to IGP 功能使 IGP 能够识别 BGP 路由的 Community、Extcommunity、AS-Path 等私有属性。
在 IGP 引入 BGP 路由时,可以应用路由策略。只有当设备支持 BGP to IGP 功能时,路由策略中才可以使用 BGP
私有属性作为匹配条件。如果设备不支持 BGP to IGP 功能,那么 IGP 就不能够识别 BGP 路由的私有属性,将导致匹
配条件失效。
三、配置路由策略
1、配置过滤器
1、配置地址前缀列表
当需要根据路由的目的地址控制路由的发布和接收时,配置地址前缀列表。
如果地址前缀列表不与路由策略中 if-match 语句配合使用,地址前缀列表中至少配置一个节点的匹配模式是
permit,否则所有路由将都被过滤。
具体配置
[Huawei]ip ip-prefix 1 permit 10.1.0.0 16 ?
greater-equal
less-equal
Set the greater-than-or-equal-to value of the mask length#掩码长度可以匹配范围的下限值
Set the less-than-or-equal-to value of the mask length #掩码长度可以匹配范围的上限值
2、配置 AS 属性过滤器
AS 路径过滤器是利用 BGP 路由携带的 AS-Path 列表对路由进行过滤。在不希望接收某些 AS 的路由时,可以利用
AS 路径过滤器对携带这些 AS 号的路由进行过滤。当网络环境比较复杂时,如果利用 ACL 或者地址前缀列表过滤 BGP
路由,则需要定义多个 ACL 或者前缀列表,配置比较繁琐。这时也可以使用 AS 路径过滤器。
具体配置
[Huawei]ip as-path-filter 1 deny ?
TEXT A regular-expression of 1 to 255 characters for matching AS_Path attributes # 用正则表达式来表示
正则表达式的使用见正则表达式章节
3、配置团体属性过滤器
团体属性可以标识具有相同特征的路由,而不用考虑零散路由前缀和繁多的 AS 号。
团体属性过滤器与团体属性配合使用,可以在不便使用地址前缀列表和 AS 属性过滤器时,降低路由管理难度。
例如某公司一国外分部只需要接收国内总部和邻国分部的路由,不需要接收其他国外分部的路由。此时只需为
各国分部分配不同的团体属性,就可以方便的实现路由管理,而不用去考虑每个国家内零散的路由前缀和繁多的 AS
号。
团体属性过滤器有两种类型:基本团体属性过滤器和高级团体属性过滤器。高级团体属性过滤器支持正则表达
式,比基本团体属性过滤器匹配团体属性更灵活。
具体配置
1、基本团体属性过滤
[Huawei]ip community-filter basic 1 permit ?
INTEGER<0-4294967295>
STRING<3-11>
internet
Specify community number
Specify aa<0-65535>:nn<0-65535>
Internet(well-known community attributes)
#缺省情况下所有路由都具有此属性,可以被通告给所有的 BGP 对等体
no-advertise
Do not advertise to any peer (well-known community attributes)
#具有此属性的路由在收到后不能被通告给任何其他的 BGP 对等体
no-export
Do not export to external peers(well-known community attributes)
#具有此属性的路由在收到后不能被发布到本地 AS 之外
no-export-subconfed
Do not send outside a sub-confederation(well-known community attributes)
#具有此属性的路由在收到后不能被发布到本地 AS 之外,也不能发布到联盟中的其他子 AS
2、高级团体属性过滤
[Huawei]ip community-filter advanced 1 permit ?
TEXT A regular-expression of 1 to 255 characters for matching community attributes
#正则表达式
4、配置扩展团体属性过滤器
当 VPN 场景中需要根据 RT 属性进行过滤时,可以使用扩展团体属性过滤器。
[Huawei]ip extcommunity-filter ?
INTEGER<1-199>
INTEGER<200-399>
advanced
basic
Extended community-filter number (basic)
Extended community-filter number (advanced)
Advanced extcommunity-filter
Basic extcommunity-filter
5、配置 RD 属性过滤器
当 VPN 场景中需要根据 RD 属性进行过滤时,可以使用扩展团体属性过滤器。
[Huawei]ip rd-filter 1 ?
deny
permit
Specify a deny rule
Specify a permit rule
2、配置路由策略
Route-Policy 的每个节点由一组 if-match 子句和 apply 子句组成。
if-match:
定义节点匹配规则,即路由信息通过当前路由策略所需满足的条件。
apply:
路由策略动作,即满足 if-match 子句后所执行的一些属性配置动作,对路由的某些属性进行修改。
1、创建 Route-Policy
Route-Policy 中可以包含多个匹配条件和操作动作。
Route-Policy 中至少配置一个节点的匹配模式是 permit,否则所有路由将都被过滤。
具体配置
[Huawei]route-policy 1 permit node ?
INTEGER<0-65535>
Index of the node
2、配置 If-match 子句(可选)
If-match 子句用来定义路由策略的匹配条件,匹配对象是路由策略过滤器和路由信息的一些属性。
在一个路由策略节点中,如果不配置 if-match 子句,则表示路由信息在该节点匹配成功。如果配置一条或多条
if-match 子句,则各个 if-match 子句之间是“与”的关系,即路由信息必须同时满足所有 if-match 子句,才算该节点
匹配成功。
但命令 if-match as-path-filter、if-match community-filter、if-match extcommunity-filter、if-match interface 和 if-match
route-type 除外,这五个命令的各自 if-match 子句间是“或”的关系,与其它命令的 if-match 子句间仍是“与”的关
系。
例如在一个节点中配置多条 if-match as-path-filter 子句,则 if-match as-path-filter 子句间是“或”的关系,与其它
命令的 if-match 子句间仍是“与”的关系。
说明:
if-match 子句匹配未配置的过滤器时,默认该 if-match 子句匹配成功。
对于同一个路由策略节点,命令 if-match acl 和命令 if-match ip-prefix 不能同时配置,后配置的命令会覆盖先配置
的命令。
修改包括多条 if-match 子句相互配合的路由策略时,建议配置路由策略生效时间,否则不完整的策略会造成路由
振荡。
具体配置:
1、创建路策略视图
[Huawei]route-policy test1 permit node 1
[Huawei-route-policy]
下列命令之间是并列关系,请根据实际情况配置路由策略中的 if-match 子句
2、设置匹配规则
[Huawei-route-policy]if-match ?
Specify an ACL#基于 acl 的匹配规则
BGP AS path list#基于 as 路径过滤器
Match BGP community filter#基于团体属性过滤器
Match metric of route#基于路由开销
acl
as-path-filter
community-filter
cost
extcommunity-filter Match BGP/VPN extended community filter
interface
ip
ip-prefix
ipv6
mpls-label
rd-filter
route-type
tag
IPv6 Information
Give the Label#基于 mpls 标签
Route-distinguisher filter#基于 RD 属性
Match route-type of route#基于 is-is 路由类型
Match tag of route#基于路由信息标记
Specify the interface matching the first hop of routes#基于出接口
IP information
Specify an address prefix-list#基于 IP 第前缀列表
-------------------------
[Huawei-route-policy]if-match community-filter 1 ?
INTEGER<1-99>
INTEGER<100-199>
whole-match
Specify Community-filter number(basic)
Specify Community-filter number(advanced)
Do exact matching of communities #要求完全匹配
---------------------------------
[Huawei-route-policy]if-match ip ?
group-address Match group address of route#组播 IP 地址
next-hop
route-source Match advertising source address of route
Match next-hop address of route
--------------------
[Huawei-route-policy]if-match route-type ?
OSPF External Type 1 routes
OSPF External routes (OSPF type 1/2)
OSPF External Type 2 routes
Internal route (including OSPF intra/inter area)
external-type1
external-type1or2
external-type2
internal
is-is-level-1
is-is-level-2
nssa-external-type1
nssa-external-type1or2 OSPF NSSA External Type1 and Type2 routes
nssa-external-type2
IS-IS Level-1 routes
IS-IS Level-2 routes
OSPF NSSA External Type1 routes
OSPF NSSA External Type2 routes
3、配置 Apply 子句(可选)
Apply 子句用来为路由策略指定动作,用来设置匹配成功的路由的属性。
在一个节点中,如果没有配置 apply 子句,则该节点仅起过滤路由的作用。如果配置一个或多个 apply 子句,则
通过节点匹配的路由将执行所有 apply 子句。
具体配置:
1、设置 BGP 路由的 AS_Path 属性动作
[Huawei-route-policy]apply as-path 200 10 10 ?
additive
overwrite
Append to original As Number#在原有的路径前面添加 as 号
Overwrite original As Number#覆盖原有 as 号
2、设置备份出接口
主要用于 IP FR(快速重路由)场景,手动为路由配置一个备份出接口,一般需要与 apply backup-nexthop 命令配
合使用,除了 P2P 链路外都需要设置下一跳。
[Huawei-route-policy]apply backup-interface ?
Ethernet interface
Ethernet
GigabitEthernet GigabitEthernet interface
NULL
Serial
NULL interface
Serial interface
3、设置备份出接口下一跳动作
[Huawei-route-policy]apply backup-nexthop ?
X.X.X.X Specify IP-address
auto
Find backup nexthop address automatic
4、删除指定的 BGP 路由的团体属
当需要删除几个团体属性时,可通过一条 ip community-filter 命令仅配置一个团体属性的方法,将需要删除的团
体属性都分条配置到一个团体属性过滤器,最后应用包含 apply comm-filter delete 命令的路由策略删除该团体属性过
滤器中的所有团体属性。
[Huawei-route-policy]apply comm-filter 2 delete
5、删除全部 BGP 团体属性或改变 BGP 团体属性
[Huawei-route-policy]apply community ?
INTEGER<0-4294967295>
STRING<3-11>
internet
no-advertise
no-export
no-export-subconfed
none
Specify community number
Specify aa<0-65535>:nn<0-65535>
Internet(well-known community attributes) # 改变为 internet 类型,下同
Do not advertise to any peer (well-known community attributes) #改变为 no-advertise 类型
Do not export to external peers(well-known community attributes)
Do not send outside a sub-confederation(well-known community attributes)
No community attribute #删除所有团体属性
6、设置路由的开销值
Huawei-route-policy]apply cost ?
+
-
INTEGER<0-4294967295>
Add metric #原有基础上增加
Subtract metric
Specify metric value #直接设定
7、设置开销类型
[Huawei-route-policy]apply cost-type ?
external
internal
type-1
type-2
IS-IS external metric
IS-IS internal metric/Set BGP MED to IGP metric of nexthop
OSPF External Type 1 routes
OSPF External Type 2 routes
8、设置 EBGP 路由的衰减参数
[Huawei-route-policy]apply dampening ?
INTEGER<1-45> Half-life period for a route, in minutes
9、设置 BGP 路由的扩展团体属性(Route-Target)
[Huawei-route-policy]apply extcommunity rt ?
STRING<3-21>
IP:NN<0-65535>or AS<0-65535>:NN<0-4294967295> orAS<0-65535>.<0-65535>:NN<0-65535>
10、设置 IPv4 路由的下一跳地址
[Huawei-route-policy]apply ip-address next-hop ?
X.X.X.X
peer-address Peer address
Specify IP-address
11、设置 IS-IS 的路由级别
[Huawei-route-policy]apply isis ?
Import into a level-1 area
level-1
level-1-2 Import into level-1 and level-2
level-2
Import into level-2 sub-domain
12、设置 BGP 路由的本地优先级
[Huawei-route-policy]apply local-preference ?
INTEGER<0-4294967295>
Specify a local preference value
13、设置路由 MPLS 标签
[Huawei-route-policy]apply mpls-label
14、设置 BGP 路由的 Origin 属性
[Huawei-route-policy]apply origin ?
egp
igp
incomplete Unknown heritage #未知,优先级最低
Remote EGP #路由信息源为 EGP 优先级中等
Local IGP # 优先级最高
15、设置路由引入到 OSPF 的特定区域
[Huawei-route-policy]apply ospf ?
backbone
stub-area
Import into OSPF backbone area #骨干区域
Import into OSPF NSSA area# stub 区域
16、设置路由协议的优先级
[Huawei-route-policy]apply preference ?
INTEGER<1-255> Give the Preference Value
(Route Preference)
17 设置 BGP 路由的首选值:apply preferred-value preferred-value
[Huawei-route-policy]apply preferred-value ?
INTEGER<0-65535>
Specify BGP Preferred-value(weight) value for routing table
18、设置路由的标记域:apply tag tag
[Huawei-route-policy]apply tag ?
INTEGER<0-4294967295>
Tag value
4、配置路由策略生效时间
为了保障网络的稳定性,修改路由策略时需要控制路由策略的生效时间。
具体配置
1、设置路由策略应用延迟时间(缺省为路由策略变化后,RM 将立即通知协议应用新策略)
[Huawei]route-policy-change notify-delay ?
INTEGER<1-180>
Specify delay time(in second) of route policy change notify
2、配置 BGP 协议立即应用新策略
refresh bgp all ?
export
import
Trigger outbound soft reconfiguration #触发出方向软复位
Trigger inbound soft reconfiguration
#如果配置策略命令后,需要立即看到策略过滤的效果。可以通过执行这个命令,配置 BGP 协议立即应用新策略。
受该定时器影响的相关的策略有访问控制列表、地址前缀列表、AS 路径过滤器、团体属性过滤器、扩展团体属性过
滤器、RD 属性过滤器和 Route-Policy。
四、策略路由配置
通过配置策略路由,可以用于提高网络的安全性能和负载分担。
策略路由 PBR(Policy-Based Routing)是一种依据用户制定的策略进行路由选择的机制。
策略路由与路由策略(Routing Policy)存在以下不同:
策略路由的操作对象是数据包。
在路由表已经产生的情况下,不按照路由表进行转发,而是根据需要,依照某种策略改变数据包转发路径。
路由策略的操作对象是路由信息。
路由策略主要实现了路由过滤和路由属性设置等功能,它通过改变路由属性(包括可达性)来改变网络流量所
经过的路径。
传统的路由转发原理是首先根据报文的目的地址查找路由表,然后进行报文转发。但是目前越来越多的用户希
望能够在传统路由转发的基础上根据自己定义的策略进行报文转发和选路。
策略路由具有如下优点:
可以根据用户实际需求制定策略进行路由选择,增强路由选择的灵活性和可控性。
可以使不同的数据流通过不同的链路进行发送,提高链路的利用效率。
在满足业务服务质量的前提下,选择费用较低的链路传输业务数据,从而降低企业数据服务的成本。
五、配置策略路由
配置策略路由可以将到达接口的转发报文重定向到指定的下一跳地址。
通过配置重定向,设备将符合流分类规则的报文重定向到指定的下一跳地址。
包含重定向动作的流策略只能在全局、接口或 VLAN 的入方向上应用。
华为 AR 系列支持三种策略路由:
1、本地策略路由
本地策略路由是指仅对本地发送的报文有效的策略路由,对转发的报文不起作用。
一条本地策略路由可以配置多个策略点,并且这些策略的具有不同的优先级,本机发送的报文优先匹配优先级
高的策略点。
本地策略路由支持 acl 或报文长度匹配规则。
本地路由策略会根据本地策略路由节点的优先级依次匹配各个节点绑定的匹配规则发送报文,如果没有找到本