• 产品与解决方案
  • 行业解决方案
  • 服务
  • 支持
  • 合作伙伴
  • 关于我们

07-三层技术-IP路由配置指导

目录

13-路由策略配置

本章节下载 13-路由策略配置  (391.41 KB)

13-路由策略配置


1 路由策略

1.1  路由策略简介

路由策略是为了改变网络流量所经过的途径而修改路由信息的技术,主要通过改变路由属性(包括可达性)来实现。路由策略可以用来控制路由的发布、控制路由的接收、管理引入的路由和设置路由的属性。

1.1.1  路由策略的实现

路由策略的实现步骤如下:

(1)     首先要定义将要实施路由策略的路由信息的特征,即定义一组匹配规则。可以灵活使用过滤器来定义各种匹配规则。

(2)     然后再将匹配规则应用于路由的发布、接收和引入等过程的路由策略中。

1.1.2  过滤器

过滤器可以看作是路由策略过滤路由的工具,单独配置的过滤器没有任何过滤效果,只有在路由协议的相关命令中应用这些过滤器,才能够达到预期的过滤效果。

1. 访问控制列表

ACL(Access Control List,访问控制列表)可以指定IP地址和子网范围,用于匹配路由信息的目的网段地址或下一跳地址。

有关ACL的详细介绍,请参见“ACL和QoS配置指导”中的“ACL”。

2. 地址前缀列表

地址前缀列表的作用类似于ACL,但比它更为灵活,且更易于用户理解。使用地址前缀列表过滤路由信息时,其匹配对象为路由信息的目的地址。

一个地址前缀列表由前缀列表名标识。每个前缀列表可以包含多个表项,每个表项可以独立指定一个网络前缀形式的匹配范围,并用一个索引号来标识,索引号指明了在地址前缀列表中进行匹配检查的顺序。

每个表项之间是“或”的关系,在匹配的过程中,路由器按升序依次检查由索引号标识的各个表项,只要有某一表项满足条件,就意味着通过该地址前缀列表的过滤(不再对下一个表项进行匹配)。

3. AS路径访问列表(as-path)

as-path仅用于BGP路由的过滤。BGP路由的AS_PATH属性记录了从本地到目的地址所要经过的所有AS号。as-path就是针对AS_PATH属性指定的匹配条件。

有关as-path的详细介绍,请参见“三层技术-IP路由配置指导”中的“BGP”。

4. 团体属性列表(community-list)

community-list仅用于BGP路由的过滤。BGP路由中包含团体(COMMUNITY)属性,该属性用来标识路由所属的团体。根据需要,一条路由可以携带一个或多个团体属性值(每个团体属性值用一个四字节的整数表示)。接收到该路由的路由器可以通过比较团体属性值对路由作出适当的处理(比如决定是否发布该路由、在什么范围发布等),而不需要匹配复杂的过滤规则(如ACL),从而简化路由策略的应用和降低维护管理的难度。community-list就是针对团体属性指定的匹配条件。

有关团体属性的详细介绍,请参见“三层技术-IP路由配置指导”中的“BGP”。

5. Large团体属性列表(large-community-list)

large-community-list仅用于BGP路由的过滤。BGP路由中包含Large团体(large-community)属性,格式为12字节数Global Administration:LocalData1:LocalData2,可以完整地表示2字节或者4字节的AS号,且包含两个4字节的LocalData属性标识。该属性是对团体属性的扩展,可以和团体属性一起使用,使管理员可以更加灵活地应用策略、控制路由的发布和接收。Large团体属性列表就是针对Large团体属性指定的匹配条件。

有关Large团体属性的详细介绍,请参见“三层技术-IP路由配置指导”中的“BGP”。

6. 扩展团体属性列表(extcommunity-list)

extcommunity-list仅用于BGP路由的过滤。BGP路由中包含扩展团体属性,和四字节的团体属性相比,八字节的扩展团体属性可以提供更多的属性。设备支持的扩展团体属性有Route Target(也称为VPN Target)属性、链路带宽属性、Color属性和SoO(Site of Origin,源站点)属性。扩展团体属性列表就是针对这些属性指定的匹配条件。

有关Route Target属性的详细介绍,请参见“MPLS配置指导”中的“MPLS L3VPN”。有关Color属性的详细介绍,请参见“Segment Routing配置指导”中的“SR-MPLS TE Policy”。有关链路带宽属性和SoO属性的详细介绍,请参见“三层技术-IP路由配置指导”中的“BGP”。

7. RD属性列表(rd-list)

RD属性列表是针对RD属性信息的匹配条件,仅用于VPN路由的过滤。RD(Route Distinguisher,路由标识符)的作用是将其添加到一个IPv4地址前缀前,使之成为全局唯一的VPN-IPv4地址前缀。每个RD属性列表可以包含多个表项,每一个表项会指定一个RD号的范围,并用一个表项编号来标识,表项编号指明了在RD属性列表中进行匹配检查的顺序。

有关RD的详细介绍,请参见“MPLS配置指导”中的“MPLS L3VPN”。

8. 路由策略

路由策略是一种比较复杂的过滤器,它不仅可以匹配路由信息的某些属性,还可以在条件满足时改变路由信息的属性。路由策略可以使用前面几种过滤器定义自己的匹配规则。

一个路由策略可以由多个节点构成,每个节点是匹配检查的一个单元。在匹配过程中,系统按节点序号升序依次检查各个节点。不同节点间是“或”的关系,如果通过了其中一个节点,就意味着通过该路由策略,不再对其他节点进行匹配(配置了continue子句的情况除外)。

每个节点对路由信息的处理方式由匹配模式决定。匹配模式分为permitdeny两种。

·     permit:指定节点的匹配模式为允许模式。当路由信息通过该节点的过滤后,将执行该节点的apply子句,不进入下一个节点的匹配(配置了continue子句的情况除外);如果路由信息没有通过该节点过滤,将进入下一个节点继续匹配。路由信息只有通过permit节点的匹配,才能通过路由策略的过滤。

·     deny:指定节点的匹配模式为拒绝模式(此模式下apply子句和continue子句不会被执行)。当路由信息通过该节点的过滤后,将被拒绝通过该节点,不进入下一个节点的匹配;如果路由信息没有通过该节点的过滤,将进入下一个节点继续匹配。

每个节点可以由一组if-matchapplycontinue子句组成。

·     if-match子句:定义匹配规则,匹配对象是路由信息的一些属性。同一节点中不同类型的if-match子句是“与”的关系,相同类型的if-match子句是“或”的关系,只有满足节点内所有类型if-match子句指定的匹配条件,才能通过该节点的匹配。

·     apply子句:指定动作,也就是在通过节点的匹配后,对路由信息的一些属性进行设置。

·     continue子句:用来配置下一个执行节点。当路由成功匹配当前路由策略节点(必须是permit节点)时,可以指定路由继续匹配同一路由策略内的下一个节点,这样可以组合路由策略各个节点的if-match子句和apply子句,增强路由策略的灵活性。配置了continue子句后,路由即使未通过下一个执行节点的匹配,也会通过该路由策略的过滤。如果需要拒绝该路由通过,则需要在下一个执行节点之后添加一个没有子句的deny节点。

if-matchapplycontinue子句可以根据应用进行设置,都是可选的。

·     如果只过滤路由,不设置路由的属性,则不需要使用apply子句。

·     如果某个permit节点未配置任何if-match子句,则该节点匹配所有的路由。

·     通常在多个deny节点后设置一个不含if-match子句和apply子句的permit节点,用于允许其它的路由通过。

1.2  路由策略配置任务简介

路由策略配置任务如下:

(1)     (可选)配置过滤器

¡     配置IPv4地址前缀列表

¡     配置IPv6地址前缀列表

¡     配置AS路径过滤列表

¡     配置团体属性列表

¡     配置Large团体属性列表

¡     配置扩展团体属性列表

¡     配置RD属性列表

(2)     配置路由策略

a.     创建路由策略

b.     配置if-match子句

c.     配置apply子句

d.     配置continue子句

1.3  配置IPv4地址前缀列表

1. 配置限制和指导

如果所有表项都是deny模式,则任何路由都不能通过该过滤列表。要允许其它所有IPv4路由通过,需要在多条deny模式的表项后定义一条permit 0.0.0.0 0 less-equal 32表项。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     配置IPv4地址前缀列表。

ip prefix-list prefix-list-name [ index index-number ] { deny | permit } ip-address mask-length [ greater-equal min-mask-length ] [ less-equal max-mask-length ]

1.4  配置IPv6地址前缀列表

1. 配置限制和指导

如果所有表项都是deny模式,则任何路由都不能通过该过滤列表。要允许其它所有IPv6路由通过,需要在多条deny模式的表项后定义一条permit :: 0 less-equal 128表项。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     配置IPv6地址前缀列表。

ipv6 prefix-list prefix-list-name [ index index-number ] { deny | permit } ipv6-address { inverse inverse-prefix-length | prefix-length [ greater-equal min-prefix-length ] [ less-equal max-prefix-length ] }

1.5  配置AS路径过滤列表

1. 功能简介

AS路径是BGP的路由属性之一,记录了某条路由从本地到目的地址所要经过的所有AS号。AS_PATH属性在BGP路由表中的显示格式如图所示:

图1-1 AS_PATH的显示格式

 

从图中可以得知AS_PATH可以看作是一个由数字0~9、“()”、“[]”、“{}”和空格组成的字符串,各部分表示的含义如下:

·     AS_CONFED_SEQUENCE:联盟内子AS号按照一定的顺序排列。离本地AS最近的相邻AS号排在前面,其他AS号按顺序依次排列。

·     AS_CONFED_SET:联盟内经过的子AS号的简单罗列,没有顺序要求。

·     AS_SEQUENCE:AS号按照一定的顺序排列。离本地AS最近的相邻AS号排在前面,其他AS号按顺序依次排列。

·     AS_SET:AS号只是经过的AS的简单罗列,没有顺序要求。

需要注意的是,BGP路由的AS_PATH属性不一定完整包含上述四个部分,请以实际情况为准。

AS路径过滤列表根据正则表达式来匹配BGP路由中的AS_PATH属性,从而达到过滤路由信息的目的。

表1-1 正则表达式在AS路径过滤列表中的应用举例

特殊字符

含义

举例

^

匹配以指定字符开始的行

匹配AS_PATH为空的路由(本地路由):

ip as-path { as-path-number| as-path-name } { deny | permit } ^$

$

匹配以指定字符结束的行

匹配从AS100始发的路由:

ip as-path { as-path-number | as-path-name } { deny | permit } 100$

.

通配符,可代表任何一个字符

匹配经过了AS100的路由(非始发或最后一个AS):

ip as-path { as-path-number | as-path-name } { deny | permit } ._100_.

*

匹配星号前面的字符或字符串零次或多次

匹配任意AS_PATH的路由:

ip as-path { as-path-number | as-path-name } { deny | permit } .*

+

匹配+前面的字符或字符串一次或多次

匹配AS路径中包含“5”的路由:

ip as-path { as-path-number | as-path-name } { deny | permit } 5+

x|y

匹配|左边或右边的整个字符串

匹配从AS100或AS200始发的路由:

ip as-path { as-path-number | as-path-name } { deny | permit } 100$|200$

( )

表示字符串,一般与“+”或“*”等符号一起使用

匹配AS路径中包含“123”的路由:

ip as-path { as-path-number | as-path-name } { deny | permit } (123)+

[xyz]

表示字符选择范围,将以选择范围内的单个字符为条件进行匹配,只要字符串里包含该范围的某个字符就能匹配到

匹配从单一路径AS10~AS19收到的路由:

ip as-path { as-path-number | as-path-name } { deny | permit } ^1[0-9]$

[^xyz]

表示选择范围外的字符,将以单个字符为条件进行匹配,只要字符串里包含该范围外的某个字符就能匹配到

匹配始发AS的末位不为“2”或“4”的路由:

ip as-path { as-path-number | as-path-name } { deny | permit } [^24]$

{n}

n是一个非负整数,匹配n次

匹配AS路径中包含“55”的路由:

ip as-path { as-path-number | as-path-name } { deny | permit } 5{2}

{n,}

n是一个非负整数,至少匹配n次

匹配AS路径中至少包含两个连续“5”的路由:

ip as-path { as-path-number | as-path-name } { deny | permit } 5{2,}

{n,m}

m和n均为非负整数,其中n小于等于m。只要字符串里包含n到m个某字符就能匹配到

匹配AS路径中至少包含一个“5”或两个连续“5”的路由:

ip as-path { as-path-number | as-path-name } { deny | permit } 5{1,2}

[a-z]

匹配指定字符范围内的任意字符。不可同时匹配多个字符,也不可匹配同一个字符多次

匹配AS路径中包含“0”、“1”或“2”的路由:

ip as-path { as-path-number | as-path-name } { deny | permit }[0-2]

[^a-z]

匹配任何不在指定范围的任意字符。只要字符串里有指定范围外的字符就能匹配到

匹配单一AS路径中不包含“0”、“1”和“2”的路由:

ip as-path { as-path-number | as-path-name } { deny | permit }^ [^0-2]$

_

匹配一个符号,如逗号、左大括号、右大括号、左括号、右括号和空格等符号,在表达式的开头或结尾时还可作起始符、结束符(同^,$)

匹配经过AS101 100的路由:

ip as-path { as-path-number | as-path-name } { deny | permit } 101_100_

\b

匹配一个单词边界,也就是指单词和空格间的位置

匹配从AS100始发的路由:

ip as-path { as-path-number | as-path-name } { deny | permit } \b100$

\B

匹配非单词边界

匹配从AS号以1开头的AS收到的路由:

ip as-path { as-path-number | as-path-name } { deny | permit } ^1\B

\

转义操作符,\后紧跟本表中罗列的单个特殊字符时,将去除特殊字符的特定含义

\w

\w等效于[A-Za-z0-9_],是数字、字母或下划线

匹配AS路径中包含两位数AS的路由:

ip as-path { as-path-number | as-path-name } \w{2}

\W

\W等效于[^A-Za-z0-9_],是除了数字、字母和下划线之外的任意字符

\index

表示重复一次指定字符串,字符串是指\前用()括起来的字符串,index对应\前字符串的顺序号按从左至右的顺序从1开始编号:如果\前面只有一个字符串,则index只能为1;如果\前面有n个字符串,则index可以为1到n中的任意整数

匹配AS路径中包含两个连续的“1”的路由:

ip as-path { as-path-number | as-path-name } (1)\1

 

说明

匹配相同条件AS路径过滤列表的正则表达式并不唯一,表1-1中的正则表达式仅为示例。

 

2. 配置限制和指导

一个AS路径过滤列表可以包含多个表项。在匹配过程中,各表项之间是“或”的关系,即只要路由信息通过该列表中的一条表项,就认为通过该AS路径过滤列表。

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     配置AS路径过滤列表。

ip as-path { as-path-number | as-path-name } { deny | permit } regular-expression

1.6  配置团体属性列表

1. 功能简介

一个团体属性列表可以定义多个表项。在匹配过程中,各表项之间是“或”的关系,即只要路由信息通过该列表中的一条表项,就认为通过该团体属性列表。

高级团体属性列表根据正则表达式来匹配BGP路由中的团体属性,从而达到过滤路由信息的目的。有关正则表达式的详细介绍,请参见“表1-1”。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     配置团体属性列表。

¡     配置基本团体属性列表。

ip community-list { basic-comm-list-num | basic basic-comm-list-name } { deny | permit } [ community-number&<1-32> | aa:nn&<1-32> ] [ internet | no-advertise | no-export | no-export-subconfed ] *

¡     配置高级团体属性列表。

ip community-list { adv-comm-list-num | advanced adv-comm-list-name } { deny | permit } regular-expression

1.7  配置Large团体属性列表

1. 功能简介

一个Large团体属性列表可以定义多个表项。在匹配过程中,各表项之间是“或”的关系,即只要路由信息通过该列表中的一条表项,就认为通过该Large团体属性列表。

高级Large团体属性列表根据正则表达式来匹配BGP路由中的Large团体属性,从而达到过滤路由信息的目的。有关正则表达式的详细介绍,请参见“表1-1”。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     配置Large团体属性列表。

¡     配置基本Large团体属性列表。

ip large-community-list { basic-large-comm-list-num | basic basic-large-comm-list-name } { deny | permit } aa:bb:cc&<1-32>

¡     配置高级Large团体属性列表。

ip large-community-list { adv-large-comm-list-num | advanced adv-large-comm-list-name } { deny | permit } regular-expression

1.8  配置扩展团体属性列表

1. 功能简介

一个扩展团体属性列表可以定义多个表项。在匹配过程中,各表项之间是“或”的关系,即只要路由信息通过该列表中的一条表项,就认为通过该扩展团体属性列表。

团体属性列表根据正则表达式来匹配BGP路由中的RT扩展团体属性,从而达到过滤路由信息的目的。有关正则表达式的详细介绍,请参见“表1-1”。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     配置扩展团体属性列表。

ip extcommunity-list { ext-comm-list-number | ext-comm-list-name } [ index index-number ] { deny | permit } { bandwidth link-bandwidth-value | rt route-target | soo site-of-origin }&<1-32>

ip extcommunity-list { ext-comm-list-number | ext-comm-list-name } [ index index-number ] { deny | permit } rt advanced regular-expression

1.9  配置RD属性列表

1. 功能简介

一个RD属性列表可以包含多个表项。在匹配过程中,路由器按表项编号的升序,依次检查各个表项。各表项之间是“或”的关系,即只要路由信息通过该列表中的一条表项,就认为通过该RD属性列表。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     配置RD属性列表。

ip rd-list rd-list-number [ index index-number ] { deny | permit } route-distinguisher&<1-10>

1.10  配置路由策略

1.10.1  创建路由策略

1. 功能简介

路由策略中至少应该有一个节点的匹配模式是permit。如果路由策略的所有节点都是deny模式,则没有路由信息能通过该路由策略。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     创建路由策略,并进入该路由策略视图。

route-policy route-policy-name { deny | permit } node node-number

(3)     (可选)配置使用未创建的路由策略进行路由过滤时,路由不能通过该路由策略的过滤。

a.     退回系统视图。

quit

b.     配置使用未创建的路由策略进行路由过滤时,路由不能通过该路由策略的过滤。

route-policy non-exist-deny

缺省情况下,使用路由策略进行路由过滤时,如果该路由策略未创建,则路由可以通过该路由策略的过滤。

(4)     (可选)配置路由策略对路由信息的协议类型(IPv4或IPv6)和通过if-match子句指定的地址前缀列表的协议类型进行匹配检查,协议类型不一致的路由信息无法通过该if-match子句的过滤。

route-policy prefix-protocol-check

缺省情况下,路由策略不会对路由信息的协议类型(IPv4或IPv6)和通过if-match子句指定的地址前缀列表的协议类型进行匹配检查。如果if-match子句指定了IPv6地址前缀列表,则所有的IPv4路由信息都会匹配该子句;如果if-match子句指定了IPv4地址前缀列表,则所有的IPv6路由信息都会匹配该子句。

本命令只对配置改变后路由策略匹配到的路由生效。

1.10.2  配置if-match子句

1. 功能简介

在一个节点中,可以没有if-match子句,也可以有多个if-match子句。当不指定if-match子句时,如果该节点的匹配模式为允许模式,则所有路由信息都会通过该节点的过滤;如果该节点的匹配模式为拒绝模式,则所有路由信息都会被拒绝。

2. 配置限制和指导

如果配置了多条相同类型的if-match子句,设备在显示路由策略时,会将这些if-match子句合并为一条if-match子句。如果合并后的if-match子句超过命令行最大长度,则这些相同类型的if-match子句会分成多条显示,这些子句之间是“或”的关系,即满足一个匹配条件,就认为匹配该if-match语句,例如出现多条if-match community子句时,各个子句的团体属性之间是“或”的关系,即满足其中一个团体属性,就认为匹配if-match community子句。

如果一个节点中if-match子句只指定了IPv6 ACL,没有指定IPv4 ACL,所有的IPv4路由信息都会匹配这个节点。如果一个节点中if-match子句只指定IPv4 ACL,没有指定IPv6 ACL,所有的IPv6路由信息都会匹配这个节点。

如果if-match子句对应的ACL不存在,或存在但是未配置任何规则,则默认满足该匹配条件。如果if-match子句对应的ACL存在并且有规则,但是没有匹配的规则或者匹配到的规则是deny模式,则默认不满足该匹配条件。

如果if-match子句对应的前缀列表、AS路径过滤列表、团体属性列表、Large团体属性列表、扩展团体属性列表或RD属性列表不存在,则默认满足该匹配条件。如果if-match子句对应的前缀列表、AS路径过滤列表、团体属性列表、Large团体属性列表、扩展团体属性列表或RD属性列表中没有匹配的规则或者该列表是deny模式,则默认不满足该匹配条件。

使用访问控制列表作为过滤器时,需指定高级ACL来匹配路由信息。在创建ACL规则时,rule [ rule-id ] permit ip source sour-addr sour-wildcard destination dest-addr dest-wildcard中的source sour-addr sour-wildcard用来匹配路由的目的网络地址,destination dest-addr dest-wildcard用来匹配路由的掩码。需要注意的是,本命令中指定的路由掩码的格式为点分十进制,例如,如果需要匹配3.3.3.0/24的路由,则指定的规则应为rule [ rule-id ] permit ip source 3.3.3.0 0.0.0.255 destination 255.255.255.0 0.0.0.255

3. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入路由策略视图。

route-policy route-policy-name { deny | permit } node node-number

(3)     配置通过ACL或IP地址前缀列表匹配路由。

(IPv4网络)

if-match ip { address | next-hop | route-source } { acl { ipv4-acl-number | name ipv4-acl-name } | prefix-list prefix-list-name }

(IPv6网络)

if-match ipv6 { address | next-hop | route-source } { acl { ipv6-acl-number | name ipv6-acl-name } | prefix-list prefix-list-name }

缺省情况下,未配置通过ACL或IP地址前缀列表匹配路由。

路由策略使用非VPN的ACL进行路由过滤。

(4)     配置BGP路由信息的匹配条件。

¡     配置BGP路由信息的AS路径匹配条件。

if-match as-path { as-path-number&<1-32> | as-path-name }

¡     配置匹配BGP路由信息的团体属性匹配条件。

if-match community { { basic-community-list-number | name comm-list-name } [ whole-match ] | adv-community-list-number }&<1-32>

¡     配置匹配BGP路由信息的Large团体属性匹配条件。

if-match large-community { { basic-large-comm-list-number | name large-comm-list-name } [ whole-match ] | adv-large-comm-list-number }&<1-32>

¡     配置BGP路由的扩展团体属性匹配条件。

if-match extcommunity { ext-comm-list-number | ext-comm-list-name }&<1-32>

¡     配置BGP路由信息的本地优先级匹配条件。

if-match local-preference preference

¡     配置BGP RPKI验证结果的匹配条件。

if-match rpki { invalid | not-found | valid }

缺省情况下,未配置BGP路由信息匹配条件。

(5)     配置基于路由信息的匹配条件。

¡     配置路由信息的路由开销匹配条件。

if-match cost cost-value

¡     配置路由信息的出接口匹配条件。

if-match interface { interface-type interface-number }&<1-16>

将路由策略应用到BGP时,BGP协议不支持配置路由信息的出接口匹配条件。

¡     配置路由信息的MPLS标签匹配条件。

if-match mpls-label

缺省情况下,未配置路由信息的MPLS标签的匹配条件。

¡     配置路由信息类型匹配条件。

if-match route-type { bgp-evpn-ad | bgp-evpn-imet | bgp-evpn-ip-prefix | bgp-evpn-mac-ip | eigrp-external | eigrp-internal | external-type1 | external-type1or2 | external-type2 | internal | is-is-level-1 | is-is-level-2 | nssa-external-type1 | nssa-external-type1or2 | nssa-external-type2 } *

¡     配置IGP路由信息标记的匹配条件。

if-match tag tag-value

¡     配置路由协议类型匹配条件。

if-match protocol { bgp | direct | eigrp | isis | ospf | ospfv3 | rip | ripng | static | unr } *

缺省情况下,未配置基于路由信息的匹配条件。

(6)     配置VPN路由RD(Route Distinguisher,路由标识符)属性的匹配条件。

if-match rd-list rd-list-number

缺省情况下,未配置VPN路由RD属性的匹配条件。

(7)     配置通过子路由策略匹配路由。

if-match route-policy route-policy-name

缺省情况下,未将子路由策略作为路由策略的匹配条件。

1.10.3  配置apply子句

(1)     进入系统视图。

system-view

(2)     进入路由策略视图。

route-policy route-policy-name { deny | permit } node node-number

(3)     配置BGP路由属性。

¡     配置BGP路由的AS_PATH属性。

apply { as-path as-number&<1-32> [ delete | replace ] | clear }

¡     删除BGP路由的团体属性。

apply comm-list { comm-list-number | comm-list-name } delete

缺省情况下,没有删除BGP路由的团体属性。

¡     配置BGP路由的团体属性。

apply community { none | additive | { community-number&<1-32> | aa:nn&<1-32> | internet | no-advertise | no-export | no-export-subconfed } * [ additive ] }

¡     配置BGP路由的Large团体属性。

apply large-community { aa:bb:cc&<1-8> [ additive ] | additive | none }

¡     删除BGP路由的Large团体属性。

apply large-comm-list { large-comm-list-number | large-comm-list-name } delete

¡     配置BGP路由的扩展团体属性。

apply extcommunity { bandwidth link-bandwidth-value | { rt route-target }&<1-32> } [ additive ]

¡     配置BGP路由的Color扩展团体属性。

apply extcommunity color color [ additive ]

¡     配置BGP路由的SoO扩展团体属性。

apply extcommunity soo site-of-origin&<1-32> [ additive ]

¡     配置BGP路由的本地优先级。

apply local-preference preference

¡     配置BGP路由的ORIGIN属性。

apply origin { egp as-number | igp | incomplete }

¡     配置BGP路由的首选值。

apply preferred-value preferred-value

¡     配置BGP路由的流量索引。

apply traffic-index { value | clear }

¡     配置BGP路由的AIGP属性

apply aigp { cost-value | igp-cost }

缺省情况下,未配置BGP路由属性。

(4)     配置路由开销。

¡     配置路由信息的路由开销。

apply cost [ + | - ] cost-value

缺省情况下,未配置路由信息的路由开销。

¡     配置路由信息的开销类型。

apply cost-type { external | internal | type-1 | type-2 }

缺省情况下,未配置路由信息的开销类型。

(5)     配置路由信息的下一跳地址。

(IPv4网络)

apply ip-address next-hop { ip-address [ public | vpn-instance vpn-instance-name ] | advertiser-address }

缺省情况下,未配置路由信息的下一跳地址。

对于引入的路由,如果通过本命令的ip-address参数设置下一跳地址,则该下一跳地址不生效。

(IPv6网络)

apply ipv6 next-hop { ipv6-address | advertiser-address }

缺省情况下,未配置路由信息的下一跳地址。

对于引入的路由,如果通过本命令的ipv6-address参数设置下一跳地址,则该下一跳地址不生效。

(6)     配置EVPN IP前缀路由的网关地址。

(IPv4网络)

apply gateway-ip { ip-address | origin-nexthop }

(IPv6网络)

apply ipv6 gateway-ip { ipv6-address | origin-nexthop }

缺省情况下,未配置EVPN IP前缀路由的网关地址。

(7)     配置路由优先级。

¡     配置路由的IP优先级。

apply ip-precedence { value | clear }

缺省情况下,未配置路由的IP优先级。

¡     配置路由协议的优先级。

apply preference preference

缺省情况下,未配置路由协议的优先级。

¡     配置路由收敛优先级。

apply prefix-priority { critical | high | medium }

缺省情况下,路由收敛优先级为低(Low)。

(8)     配置引入路由到IS-IS某个级别的区域。

apply isis { level-1 | level-1-2 | level-2 }

缺省情况下,未配置引入路由到IS-IS某个级别的区域。

(9)     配置MPLS标签。

apply mpls-label

缺省情况下,未配置MPLS标签。

(10)     配置标签索引值或SID值。

¡     配置路由的标签索引值。

apply label-index index-value

缺省情况下,未配置路由的标签索引值。

¡     配置SID值。

apply label-value label-value

缺省情况下,未配置SID值。

(11)     配置路由的QoS本地ID值。

apply qos-local-id { local-id-value | clear }

缺省情况下,未配置路由的QoS本地ID值。

(12)     配置IGP路由信息的标记。

apply tag tag-value

缺省情况下,未配置IGP路由信息的标记。

(13)     配置快速重路由备份。

(IPv4网络)

apply fast-reroute { backup-interface interface-type interface-number [ backup-nexthop ip-address ] | backup-nexthop ip-address }

(IPv6网络)

apply ipv6 fast-reroute { backup-interface interface-type interface-number [ backup-nexthop ipv6-address ] | backup-nexthop ipv6-address }

缺省情况下,未配置快速重路由备份。

(14)     为路由设置Flex-Algo算法ID。

apply flex-algo flex-algo-id

缺省情况下,不会为路由设置Flex-Algo算法ID。

1.10.4  配置continue子句

1. 配置限制和指导

当配置continue子句的多个节点配置相同的apply子句(没有叠加属性)只是子句的值不相同时,以最后一个节点的apply子句为准;如果配置的是有叠加属性的apply子句(命令apply as-path不指定参数replace或者clear/命令apply cost指定参数+-/命令apply community指定参数additive/命令apply large-community指定参数additive/命令apply extcommunity指定参数additive),属性会全部叠加到路由上。

当配置continue子句的多个节点配置apply community子句时,使用命令行apply comm-list delete不能删除前面节点中配置的团体属性。

当配置continue子句的多个节点配置apply as-path子句时,使用命令行apply as-path delete或者apply as-path clear会将之前配添加或者替换的AS号删除或者清空。

当配置continue子句的多个节点配置apply large-community子句时,使用命令行apply large-comm-list delete不能删除前面节点中配置的Large团体属性。

2. 配置步骤

(1)     进入系统视图。

system-view

(2)     进入路由策略视图。

route-policy route-policy-name { deny | permit } node node-number

(3)     配置下一个执行节点。

continue [ node-number ]

缺省情况下,未配置下一个执行节点。

下一个执行节点序列号必须大于当前节点序列号。

1.11  路由策略显示和维护

在完成上述配置后,在任意视图下执行display命令可以显示配置后路由策略的运行情况,通过查看显示信息验证配置的效果。

在用户视图下执行reset命令可以清除路由策略的统计信息。

表1-2 路由策略显示和维护

操作

命令

显示BGP AS路径过滤列表信息

display ip as-path [ as-path-number | as-path-name ]

显示BGP团体属性列表信息

display ip community-list [ basic-community-list-number | adv-community-list-number | name comm-list-name ]

显示BGP Large团体属性列表信息

display ip large-community-list [ basic-large-comm-list-number | adv-large-comm-list-number | name large-comm-list-name ]

显示BGP扩展团体属性列表信息

display ip extcommunity-list [ ext-comm-list-number | ext-comm-list-name ]

显示IPv4地址前缀列表的统计信息

display ip prefix-list [ name prefix-list-name ]

显示RD属性列表信息

display ip rd-list [ rd-list-number ]

显示IPv6地址前缀列表的统计信息

display ipv6 prefix-list [ name prefix-list-name ]

显示路由策略信息

display route-policy [ name route-policy-name [ node node-number ] ]

清除BGP AS路径过滤列表统计信息

reset ip as-path [ as-path-number | as-path-name ]

清除IPv4地址前缀列表的统计信息

reset ip prefix-list [ prefix-list-name ]

清除IPv6地址前缀列表的统计信息

reset ipv6 prefix-list [ prefix-list-name ]

 

1.12  路由策略典型配置举例

1.12.1  在IPv4路由引入中应用路由策略配置举例

1. 组网需求

·     Router B与Router A之间通过OSPF协议交换路由信息,与Router C之间通过IS-IS协议交换路由信息。

·     要求在Router B上配置路由引入,将IS-IS路由引入到OSPF中去,并同时使用路由策略设置路由的属性。其中,设置172.17.1.0/24的路由的开销为100,设置172.17.2.0/24的路由的Tag属性为20。

2. 组网图

图1-2 在IPv4路由引入中应用路由策略配置组网图

3. 配置步骤

(1)     配置各接口的IP地址(略)

(2)     配置IS-IS路由协议

# 配置Router C。

<RouterC> system-view

[RouterC] isis

[RouterC-isis-1] is-level level-2

[RouterC-isis-1] network-entity 10.0000.0000.0001.00

[RouterC-isis-1] quit

[RouterC] interface ten-gigabitethernet 3/1/1

[RouterC-Ten-GigabitEthernet3/1/1] isis enable

[RouterC-Ten-GigabitEthernet3/1/1] quit

[RouterC] interface ten-gigabitethernet 3/1/2

[RouterC-Ten-GigabitEthernet3/1/2] isis enable

[RouterC-Ten-GigabitEthernet3/1/2] quit

[RouterC] interface ten-gigabitethernet 3/1/3

[RouterC-Ten-GigabitEthernet3/1/3] isis enable

[RouterC-Ten-GigabitEthernet3/1/3] quit

[RouterC] interface ten-gigabitethernet 3/1/4

[RouterC-Ten-GigabitEthernet3/1/4] isis enable

[RouterC-Ten-GigabitEthernet3/1/4] quit

# 配置Router B。

<RouterB> system-view

[RouterB] isis

[RouterB-isis-1] is-level level-2

[RouterB-isis-1] network-entity 10.0000.0000.0002.00

[RouterB-isis-1] quit

[RouterB] interface ten-gigabitethernet 3/1/2

[RouterB-Ten-GigabitEthernet3/1/2] isis enable

[RouterB-Ten-GigabitEthernet3/1/2] quit

(3)     配置OSPF路由协议及路由引入

# 配置Router A,启动OSPF。

<RouterA> system-view

[RouterA] ospf

[RouterA-ospf-1] area 0

[RouterA-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255

[RouterA-ospf-1-area-0.0.0.0] quit

[RouterA-ospf-1] quit

# 配置RouterB,启动OSPF,并引入IS-IS路由。

[RouterB] ospf

[RouterB-ospf-1] area 0

[RouterB-ospf-1-area-0.0.0.0] network 192.168.1.0 0.0.0.255

[RouterB-ospf-1-area-0.0.0.0] quit

[RouterB-ospf-1] import-route isis 1

[RouterB-ospf-1] quit

# 查看Router A的OSPF路由表,可以看到引入的路由。

[RouterA] display ospf routing

 

          OSPF Process 1 with Router ID 192.168.1.1

                   Routing Tables

 

 Routing for Network

 Destination        Cost     Type    NextHop        AdvRouter     Area

 192.168.1.0/24     1        Transit 192.168.1.1    192.168.1.1   0.0.0.0

 

 Routing for ASEs

 Destination        Cost     Type    Tag        NextHop        AdvRouter

 172.17.1.0/24      1        Type2   1          192.168.1.2    192.168.2.2

 172.17.2.0/24      1        Type2   1          192.168.1.2    192.168.2.2

 172.17.3.0/24      1        Type2   1          192.168.1.2    192.168.2.2

 

 Total Nets: 4

 Intra Area: 1  Inter Area: 0  ASE: 3  NSSA: 0

(4)     配置过滤列表

# 配置编号为2002的基本ACL,允许172.17.2.0/24的路由通过。

[RouterB] acl basic 2002

[RouterB-acl-ipv4-basic-2002] rule permit source 172.17.2.0 0.0.0.255

[RouterB-acl-ipv4-basic-2002] quit

# 配置名为prefix-a的地址前缀列表,允许172.17.1.0/24的路由通过。

[RouterB] ip prefix-list prefix-a index 10 permit 172.17.1.0 24

(5)     配置路由策略

[RouterB] route-policy isis2ospf permit node 10

[RouterB-route-policy-isis2ospf-10] if-match ip address prefix-list prefix-a

[RouterB-route-policy-isis2ospf-10] apply cost 100

[RouterB-route-policy-isis2ospf-10] quit

[RouterB] route-policy isis2ospf permit node 20

[RouterB-route-policy-isis2ospf-20] if-match ip address acl 2002

[RouterB-route-policy-isis2ospf-20] apply tag 20

[RouterB-route-policy-isis2ospf-20] quit

[RouterB] route-policy isis2ospf permit node 30

[RouterB-route-policy-isis2ospf-30] quit

(6)     在路由引入时应用路由策略

# 配置Router B,设置在路由引入时应用路由策略。

[RouterB] ospf

[RouterB-ospf-1] import-route isis 1 route-policy isis2ospf

[RouterB-ospf-1] quit

# 查看Router A的OSPF路由表,可以看到目的地址为172.17.1.0/24的路由的开销为100,目的地址为172.17.2.0/24的路由的标记域(Tag)为20,而其他外部路由没有变化。

[RouterA] display ospf routing

 

          OSPF Process 1 with Router ID 192.168.1.1

                   Routing Tables

 

 Routing for Network

 Destination        Cost     Type    NextHop         AdvRouter     Area

 192.168.1.0/24     1        Transit 192.168.1.1     192.168.1.1   0.0.0.0

 

 Routing for ASEs

 Destination        Cost     Type    Tag         NextHop       AdvRouter

 172.17.1.0/24      100      Type2   1           192.168.1.2   192.168.2.2

 172.17.2.0/24      1        Type2   20          192.168.1.2   192.168.2.2

 172.17.3.0/24      1        Type2   1           192.168.1.2   192.168.2.2

 

 Total Nets: 4

 Intra Area: 1  Inter Area: 0  ASE: 3  NSSA: 0

1.12.2  在IPv6路由引入中应用路由策略配置举例

1. 组网需求

·     Router A与Router B通信,都运行RIPng协议。

·     使能Router A上的RIPng协议,配置三条静态路由。

·     设置在引入静态路由时应用路由策略,使三条静态路由部分引入、部分被屏蔽掉——20::/32和40::/32网段的路由是可见的,30::/32网段的路由则被屏蔽。

·     通过在Router B上查看RIPng路由表,验证路由策略是否生效。

2. 组网图

图1-3 在IPv6路由引入中应用路由策略配置组网图

3. 配置步骤

(1)     配置Router A

# 配置接口Ten-GigabitEthernet3/1/1和Ten-GigabitEthernet3/1/2的IPv6地址。

<RouterA> system-view

[RouterA] interface ten-gigabitethernet 3/1/1

[RouterA-Ten-GigabitEthernet3/1/1] ipv6 address 10::1 32

[RouterA-Ten-GigabitEthernet3/1/1] quit

[RouterA] interface ten-gigabitethernet 3/1/2

[RouterA-Ten-GigabitEthernet3/1/2] ipv6 address 11::1 32

[RouterA-Ten-GigabitEthernet3/1/2] quit

# 在接口Ten-GigabitEthernet3/1/1下使能RIPng。

[RouterA] interface ten-gigabitethernet 3/1/1

[RouterA-Ten-GigabitEthernet3/1/1] ripng 1 enable

[RouterA-Ten-GigabitEthernet3/1/1] quit

# 配置三条静态路由,其下一跳为11::2,保证静态路由为active状态。

[RouterA] ipv6 route-static 20:: 32 11::2

[RouterA] ipv6 route-static 30:: 32 11::2

[RouterA] ipv6 route-static 40:: 32 11::2

# 配置路由策略。

[RouterA] ipv6 prefix-list a index 10 permit 30:: 32

[RouterA] route-policy static2ripng deny node 0

[RouterA-route-policy-static2ripng-0] if-match ipv6 address prefix-list a

[RouterA-route-policy-static2ripng-0] quit

[RouterA] route-policy static2ripng permit node 10

[RouterA-route-policy-static2ripng-10] quit

# 启动RIPng协议,同时应用路由策略static2ripng对引入的静态路由进行过滤。

[RouterA] ripng

[RouterA-ripng-1] import-route static route-policy static2ripng

[RouterA-ripng-1] quit

(2)     配置Router B

# 配置接口Ten-GigabitEthernet3/1/1的IPv6地址。

<RouterB> system-view

[RouterB] interface ten-gigabitethernet 3/1/1

[RouterB-Ten-GigabitEthernet3/1/1] ipv6 address 10::2 32

# 启动RIPng协议。

[RouterB] ripng

[RouterB-ripng-1] quit

# 在接口下使能RIPng。

[RouterB] interface ten-gigabitethernet 3/1/1

[RouterB-Ten-GigabitEthernet3/1/1] ripng 1 enable

[RouterB-Ten-GigabitEthernet3/1/1] quit

4. 验证配置

# 查看Router B的RIPng路由表。

[RouterB] display ripng 1 route

   Route Flags: A - Aging, S - Suppressed, G - Garbage-collect, D – Direct

                O - Optimal, F - Flush to RIB

 ----------------------------------------------------------------

 

 Peer FE80::7D58:0:CA03:1 on Ten-GigabitEthernet3/1/1

 Destination 20::/32,

     via FE80::7D58:0:CA03:1, cost 1, tag 0, A, 8 secs

 Destination 40::/32,

     via FE80::7D58:0:CA03:1, cost 1, tag 0, A, 3 secs

 Local route

 Destination 10::/32,

     via ::, cost 0, tag 0, DOF

 

不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!

新华三官网
联系我们