路由策略配置命令
- 命令支持情况
- apply as-path
- apply backup-interface
- apply backup-nexthop
- apply behavior
- apply comm-filter delete
- apply community
- apply cost
- apply cost-type
- apply dampening
- apply extcommunity
- apply ip-address next-hop(Route-Policy视图)
- apply ip-precedence
- apply ipv6 next-hop
- apply isis
- apply local-preference
- apply mpls-label
- apply origin
- apply ospf
- apply preference
- apply preferred-value
- apply qos-local-id
- apply tag
- apply traffic-index
- description(Route-Policy视图)
- display ip as-path-filter
- display ip community-filter
- display ip extcommunity-filter
- display ip ip-prefix
- display ip ipv6-prefix
- display ip rd-filter
- display route-policy
- if-match acl(Route-Policy视图)
- if-match as-path-filter
- if-match community-filter
- if-match cost
- if-match extcommunity-filter
- if-match interface
- if-match ip
- if-match ip-prefix
- if-match ipv6
- if-match mpls-label
- if-match rd-filter
- if-match route-type
- if-match tag
- ip as-path-filter
- ip community-filter
- ip extcommunity-filter
- ip ip-prefix
- ip ipv6-prefix
- ip rd-filter
- reset ip ip-prefix
- reset ip ipv6-prefix
- reset route-policy counters
- route-policy
- route-policy-change notify-delay
- route-policy nonexistent-config-check
apply as-path
命令功能
apply as-path命令用来在路由策略中配置改变BGP路由的AS_Path属性的动作。
undo apply as-path命令用来恢复缺省配置。
缺省情况下,路由策略中未配置改变BGP路由的AS_Path属性的动作。
命令格式
apply as-path { { as-number-plain | as-number-dot } &<1-10> { additive | overwrite } | none overwrite }
undo apply as-path
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
as-number-plain | 指定要替换或增加的整数形式的AS号。在同一个命令行中最多可以同时指定10个AS号。 | 整数形式,取值范围是1~4294967295。 |
as-number-dot | 指定要替换或增加的点分形式的AS号。在同一个命令行中最多可以同时指定10个AS号。 | 格式为x.y,x和y都是整数形式,x的取值范围是1~65535,y的取值范围是0~65535。 |
additive | 在原有的AS_Path列表中追加指定的AS号。 | - |
overwrite | 用指定的AS号覆盖原有的AS_Path列表。 | - |
none | 清空原来的AS_Path列表。 | - |
使用指南
应用场景
当BGP路由需要改变AS_Path属性来参与路由选择的竞争时,可以应用包含apply as-path命令的路由策略,改变匹配成功的BGP路由的AS_Path属性。
AS_Path属性是BGP的私有属性,记录了某条路由从本地到目的地址所要经过的所有AS编号,通过应用AS_Path属性可以控制路由选择及防止路由环路。当到达同一目的地存在多条路由时,BGP会比较路由的AS_Path属性,AS_Path列表较短的路由将被认为是最佳路由。
- 如果配置了apply as-path 60 70 80 additive命令,则AS_Path列表更改为(60,70,80,30,40,50)。这种配置一般用于调整使路由不被优选。
- 如果配置了apply as-path 60 70 80 overwrite命令,则AS_Path列表更改为(60,70,80)。更改AS_Path的应用比较灵活,主要有以下几种情况:
- 隐藏路由的真实路径信息。比如,AS_Path列表更改为(60,70,80)之后,路由就丢失了原来携带的AS_Path路径信息(30,40,50)。
- 用于形成负载分担。比如,设备收到两条路由,目的地址都是10.1.0.0/16这个网络,其中一条路由的AS_Path为(60,70,80),另一条路由的AS_Path为(30,40,50),如果把AS_Path(30,40,50)更改为(60,70,80),那么这两条路由就有可能形成负载分担。
- 如果配置了as-path-limit命令,接收路由时会检查AS_Path属性中的AS号是否超限,如果超限则丢弃路由。这样对于AS_Path较长的路由,在接收之前,可以把AS_Path替换成较短的AS_Path。例如原来的AS_Path为(60,70,80,65001,65002,65003),可以配置apply as-path 60 70 80 overwrite命令,把AS_Path列表更改为(60,70,80),缩短AS_Path的长度,防止路由由于AS号超限而被丢弃。
- 缩短AS_Path长度,使路由被优选,把流量引导向本自治系统。
- 如果配置了apply as-path none overwrite命令,则AS_Path列表更改为空。BGP在选路时,如果AS_Path列表为空,AS_Path长度按照0来处理。通过清空AS_Path,不但可以隐藏真实的路径信息,还可以缩短AS_Path长度,使路由被优选,把流量引导向本自治系统。
前置条件
先配置route-policy,才能配置apply as-path命令。
注意事项
策略生效后,将会影响BGP路由选路。
配置该命令会直接影响网络流量所经过的途径,另外也可能造成环路和选路错误,请谨慎使用该命令。
apply backup-interface
命令功能
apply backup-interface命令用来在路由策略中配置创建备份出接口的动作。
undo apply backup-interface命令用来恢复缺省配置。
缺省情况下,路由策略中未配置创建备份出接口的动作。
使用指南
应用场景
该命令主要应用于IP FRR场景,使用apply backup-interface命令可以手动为路由配置一个备份的出接口。在使能IP FRR功能之后,当主用链路发生故障,数据流量可以快速的切换到备份出接口。
前置条件
先配置route-policy,才能配置apply backup-interface命令。
可以在配置备份出接口之前使用if-match子句设置一些匹配条件,如匹配地址前缀列表和访问控制列表等。
后续任务
Route-Policy配置成功之后,可以在ip frr(系统视图)命令或ip frr(VPN实例视图)命令中引用,配置公网或私网的IP FRR功能。
对于P2P链路,可以不设置备份下一跳;而对于非P2P链路,必须设置备份下一跳。
使用实例
# 在名为ip_frr_rp的Route-Policy中配置备份出接口和备份下一跳。
<HUAWEI> system-view
[HUAWEI] route-policy ip_frr_rp permit node 10
[HUAWEI-route-policy] apply backup-interface vlanif10
[HUAWEI-route-policy] apply backup-nexthop 192.168.20.2
# 在名为ip_frr_rp的Route-Policy中删除配置的备份出接口。
<HUAWEI> system-view
[HUAWEI] route-policy ip_frr_rp permit node 10
[HUAWEI-route-policy] undo apply backup-interface
apply backup-nexthop
命令功能
apply backup-nexthop命令用来在路由策略中配置创建备份下一跳的动作。
undo apply backup-nexthop命令用来恢复缺省配置。
缺省情况下,路由策略中未配置创建备份下一跳的动作。
使用指南
应用场景
该命令主要应用于手动IP FRR和手动VPN FRR场景,使用apply backup-nexthop命令可以手动为路由配置一个备份的下一跳。在使能IP FRR功能之后,当主用链路发生故障,数据流量可以快速的切换到备份下一跳。
前置条件
先配置route-policy,才能配置apply backup-nexthop命令。
可以在配置备份下一跳之前使用if-match子句设置一些匹配条件,如匹配接口、地址前缀列表和访问控制列表等。
后续任务
Route-policy配置成功之后,可以在ip frr(系统视图)命令或ip frr(VPN实例视图)命令中引用,配置公网或私网的手动IP FRR功能;还可以在vpn frr命令中引用,配置手动VPN FRR功能。
在手动VPN FRR的情况下,只需要使用该命令设置备份下一跳。
对于P2P链路,可以不设置备份下一跳;而对于非P2P链路,必须使用该命令设置备份下一跳。
使用实例
# 在名为ip_frr_rp的Route-Policy中配置备份出接口和备份下一跳192.168.20.2。
<HUAWEI> system-view
[HUAWEI] route-policy ip_frr_rp permit node 10
[HUAWEI-route-policy] apply backup-interface vlanif10
[HUAWEI-route-policy] apply backup-nexthop 192.168.20.2
# 在名为ip_frr_rp的Route-Policy中删除配置的备份下一跳。
<HUAWEI> system-view
[HUAWEI] route-policy ip_frr_rp permit node 10
[HUAWEI-route-policy] undo apply backup-nexthop
apply behavior
使用指南
应用场景
在部署大型复杂网络时,要对网络中的流量进行分类管理,比如对语音、视频、数据等分别对待,分配不同的带宽、保证不同的时延,就需要配置基于类的QoS,而配置基于类的QoS就需要执行大量的复杂流分类。使用该命令可以为通过过滤的路由关联特定的流行为。
前置任务
必须先建立Qos流行为,才可以在apply behavior behavior-name里为路由关联该流行为。
同时,如果需要对路由进行分类,还需要配置一些匹配条件,例如AS路径列表、团体属性列表、地址前缀列表和路由信息的路由权值等。
注意事项
此命令与apply ip-precedence和apply qos-local-id命令两两互斥,即同一个路由策略的同一个node下面只能配置其中的一个命令。比如,在route-policy test permit node 10这个命令里已经配置了apply behavior命令,如果再配置apply qos-local-id命令,则该配置会替换apply behavior配置。
apply comm-filter delete
命令功能
apply comm-filter delete命令用来在路由策略中配置删除指定团体属性过滤器中的团体属性的动作。
undo apply comm-filter命令用来恢复缺省配置。
缺省情况下,路由策略中未配置删除指定团体属性过滤器中的团体属性的动作。
命令格式
apply comm-filter { basic-comm-filter-number | adv-comm-filter-number | comm-filter-name } delete
undo apply comm-filter
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
basic-comm-filter-number | 指定基本团体属性过滤器号。 | 整数形式,取值范围为1~99。 |
adv-comm-filter-number | 指定高级团体属性过滤器号。 | 整数形式,取值范围为100~199。 |
comm-filter-name | 指定团体属性过滤器名称。 | 字符串形式,区分大小写,不支持空格,长度范围是1~51,且不能都是数字。当输入的字符串两端使用双引号时,可在字符串中输入空格。 |
使用指南
应用场景
当需要删除几个团体属性时,可通过一条ip community-filter命令仅配置一个团体属性的方法,将需要删除的团体属性都分条配置到一个团体属性过滤器,最后应用包含apply comm-filter delete命令的路由策略删除该团体属性过滤器中的所有团体属性。
团体属性是BGP的私有属性,命令apply comm-filter delete仅对BGP路由生效。
前置条件
先配置route-policy才能配置apply comm-filter delete命令。
注意事项
策略生效后,将删除指定团体属性过滤器中的BGP路由团体属性。
当应用包含apply comm-filter delete命令的路由策略删除指定的团体属性过滤器中的团体属性时,团体属性过滤器中的每条配置命令只能包含一个团体属性。如果要删除多个的团体属性值,必须配置多条配置命令。如需要删除团体属性列表1中的团体属性100:100 200:200 ,团体属性列表1的配置必须为:
[HUAWEI] ip community-filter 1 permit 100:100
[HUAWEI] ip community-filter 1 permit 200:200
[HUAWEI] display ip community-filter
Community filter Number: 1 permit 100:100 permit 200:200
[HUAWEI] route-policy RP1 permit node 10
[HUAWEI-route-policy] apply comm-filter 1 delete
如果在团体过滤器的一条配置命令中配置了多个团体属性,则这几个属性不会通过命令apply comm-filter delete删除掉。当需要删除这几个团体属性时,可通过ip community-filter命令一条仅配置一个团体属性,将需要删除的团体属性都分条配置后,再通过应用包含apply comm-filter delete命令的路由策略进行删除。比如下列配置无法删除掉路由附带的100:100 200:200团体属性:
[HUAWEI] ip community-filter 1 permit 100:100 200:200
[HUAWEI] display ip community-filter
Community filter Number: 1 permit 100:100 200:200
[HUAWEI] route-policy RP1 permit node 10
[HUAWEI-route-policy] apply comm-filter 1 delete
当在一个策略的同一个节点上同时配置了apply community和apply comm-filter delete命令时,系统并不关注配置顺序,在执行设置操作之前先执行删除操作:
[HUAWEI] display route-policy
Route-policy : 123a
permit : 10
Match clauses:
Apply clauses: a
apply community 999:9 additive
apply comm-filter 1 delete
此时系统处理的结果是:对应BGP路由的111:1团体属性被撤销,但团体属性999:9仍然会被添加上。
[HUAWEI] display ip community-filter
Community filter Number: 1
permit 111:1
permit 999:9
apply community
命令功能
apply community命令用来在路由策略中配置改变BGP路由团体属性的动作。
undo apply community命令用来恢复缺省配置。
缺省情况下,在路由策略中未配置改变BGP路由团体属性的动作。
命令格式
apply community none
apply community { community-number | aa:nn | internet | no-advertise | no-export | no-export-subconfed } &<1-32> [ additive ]
undo apply community
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
none | 表示删除路由的所有团体属性。 | - |
community-number | aa:nn | 指定团体属性中的团体号。一条命令中最多可以配置32个团体号。
|
整数形式,community-number的取值范围是0~4294967295,aa和nn的取值范围都是0~65535。 |
internet | 表示可以向任何对等体发送匹配的路由。缺省情况下,所有的路由都属于Internet团体。 | - |
no-advertise | 表示不向任何对等体发送匹配的路由。即收到具有此属性的路由后,不能发布给任何其他的BGP对等体。 | - |
no-export | 表示不向AS外发送匹配的路由,但发布给其它子自治系统。即收到具有此属性的路由后,不能发布到本地AS之外。 | - |
no-export-subconfed | 表示不向AS外发送匹配的路由,也不发布给其它子自治系统。即收到具有此属性的路由后,不能发布给任何其他的子自治系统。 | - |
additive | 表示追加路由的团体属性。 | - |
使用指南
应用场景
当需要对BGP路由进行分类标识,更好的运用路由策略时,可以应用包含apply community命令的路由策略,设置匹配成功的BGP路由的团体属性。
团体属性是BGP的私有属性,用来简化路由策略的应用和降低维护管理的难度。团体是一组有相同特征的目的地址的集合,没有物理上的边界,与其所在的AS无关,这些目的地址共享一个或多个共同的团体属性,可以通过命令apply community来改变或设置BGP路由的团体属性。
前置条件
先配置route-policy,才能配置该apply community命令。
注意事项
策略生效后,路由将重新匹配与团体属性相关的其他路由策略。
假设原BGP路由的团体属性为30,在符合过滤条件的情况下,替换或追加AS的规则举例如下:
- 如果配置了apply community 100命令,则团体属性更改为100。
- 如果配置了apply community 100 150命令,则团体属性更改为100,150。
- 如果配置了apply community 100 150 additive命令,则团体名更改为30,100,150。
- 如果配置了apply community none命令,则BGP路由的团体属性被删除。
apply cost
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
+ | 表示增加开销值。 | 若BGP路由的MED值或者其他类型路由的开销值增加后大于4294967295,则取值按4294967295处理。 |
- | 表示减少开销值。 | 若BGP路由的MED值或者其他类型路由的开销值减小后小于0,则取值按0处理。 |
cost | 指定路由的开销值。对路由的选路进行控制,需要将路由的开销设置为固定值时,可以通过调整开销值避免路由环路的产生。 | 整数形式,取值范围是0~4294967295。 |
使用指南
应用场景
在满足由if-match子句指定的过滤条件后,当需要对路由的开销值进行修改,从而控制路由选路时的先后顺序时,使用apply cost命令。配置所需匹配路由的开销值后,使用该策略引入路由的开销值会发生相应改变。
前置条件
先配置route-policy,才能配置该命令行。
配置影响
策略匹配成功后,修改路由的开销值。BGP路由没有开销值,只有MED。如果BGP协议使用包含apply cost命令的Route-Policy,则当策略匹配成功后,修改BGP路由的MED值。
注意事项
使用undo apply cost命令取消路由开销值的配置后,引入路由的开销值不受路由策略影响。
apply cost-type
命令功能
apply cost-type命令用来在路由策略中配置改变路由的开销类型的动作。
undo apply cost-type命令用来恢复缺省配置。
缺省情况下,在路由策略中未配置改变路由的开销类型的动作。
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
external | 在IS-IS网络中,指定路由为外部路由开销类型。 | - |
internal | internal在ISIS网络中和BGP网络中的作用不同:
|
- |
type-1 | 指定OSPF网络中的外部路由开销类型为Type-1。 | - |
type-2 | 指定OSPF网络中的外部路由开销类型为Type-2。 | - |
使用指南
应用场景
当运行IS-IS的设备的cost-style为wide、compatible或wide-compatible时,引入外部路由的开销类型将不区分external和internal。只有当运行IS-IS的设备的cost-style为narrow或narrow-compatible时,引入外部路由的开销类型才区分external和internal,也即apply cost-type命令对于IS-IS而言,只有在narrow或narrow-compatible模式下才有效。
apply cost-type { type-1 | type-2 }命令可以修改OSPF路由的类型(type)。OSPF在引入路由时不修改原路由的cost,但是可以修改原有路由的类型。OSPF将引入的路由发布给邻居时,携带cost和type两部分信息,邻居设备根据这两部分信息重新计算该路由的cost值。
在满足由if-match子句指定的过滤条件后,当需要对路由的路由开销类型进行修改,将引入的外部路由统一设置为Type-1或Type-2时,使用apply cost-type命令。设置匹配路由的开销类型后,使用该路由策略引入路由的类型为设置的开销类型。
前置条件
先配置route-policy,才能配置apply cost-type命令。
配置影响
匹配路由策略成功后,apply cost-type命令将修改该路由的开销类型。
注意事项
- 应用在IS-IS路由时:设置路由为IS-IS的内部路由类型。
- 应用在BGP路由时:设备从IBGP对等体学到的路由在通告给EBGP对等体时,如果配置apply cost-type internal命令,则设备会将向EBGP对等体通告的路由的MED值设置为该路由的下一跳的IGP开销值。
apply dampening
命令功能
apply dampening命令用来在路由策略中配置改变EBGP路由的衰减参数的动作。
undo apply dampening命令用来恢复缺省配置。
缺省情况下,在路由策略中未配置改变EBGP路由的衰减参数的动作。
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
half-life-reach | 指定可达路由的半衰期。 | 整数形式,取值范围为1~45,单位为分钟。 |
reuse | 指定路由解除抑制状态的阈值。当惩罚值降低到该值以下,路由就被再使用。 | 整数形式,取值范围为1~20000。 |
suppress | 指定路由进入抑制状态的阈值。当惩罚值超过该极限时,路由受到抑制。 | 整数形式,取值范围为1~20000。实际配置的值必须大于reuse的值。 |
ceiling | 指定路由的惩罚上限值。 | 整数形式,取值范围为1001~20000。实际配置的值必须大于suppress。 |
使用指南
应用场景
为了避免在BGP网络中频繁震荡路由对设备的影响,可以在BGP网络中使能衰减功能。应用包含apply dampening命令的路由策略,可以改变匹配成功的BGP路由的衰减参数。
同一路由策略的不同节点下,可以根据需要配置不同的衰减参数。路由振荡时,BGP会根据路由通过策略的结果,使用不同的衰减参数进行抑制处理。
执行过程
可以对原有配置进行覆盖配置。
前置条件
先配置route-policy,才能配置apply dampening命令。
注意事项
该命令中的各配置参数没有缺省值,必须显式配置。所指定的reuse、suppress、ceiling三个阈值是依次增大的,即必须满足:reuse<suppress<ceiling。根据公式MaxSuppressTime=half-life-reach×60×(ln(ceiling/reuse)/ln(2)),如果MaxSuppressTime小于1就不能抑制。所以要保证MaxSuppressTime大于等于1,即必须满足:ceiling/reuse足够大。
apply extcommunity
命令功能
apply extcommunity命令用来在路由策略中配置改变BGP路由的扩展团体属性的动作。
undo apply extcommunity命令用来恢复缺省配置。
缺省情况下,在路由策略中未配置改变BGP路由的扩展团体属性的动作。
命令格式
apply extcommunity { rt { as-number:nn | 4as-number:nn | ipv4-address:nn } } &<1-16> [ additive ]
undo apply extcommunity
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
rt | 指定Route Target(路由目标)扩展团体。rt可设置多个,最多16个。 | - |
as-number | 自治系统号。 | 整数形式,取值范围0~65535。 |
4as-number | 4字节自治系统号。 | 有两种格式:
|
ipv4-address | 指定IPv4地址。 | 点分十进制格式。 |
nn | 指定一个整数。 |
|
additive | 表示允许给路由增加已有的团体属性。 | - |
使用指南
应用场景
当需要控制跨域VPN的路由的收发时,应用包含apply extcommunity命令的路由策略,将改变匹配成功的路由的RT扩展团体属性值。目前扩展团体属性仅支持RT扩展团体属性。该命令不支持为公网路由指定扩展团体属性。
前置条件
先配置route-policy,才能配置apply extcommunity命令。
注意事项
在BGP视图、BGP IPv4单播地址视图、BGP IPv6单播地址视图下使用包含此动作的路由策略时,该动作不生效。
策略生效后,将会影响跨域VPN的路由的收发。
如果命令中没有additive关键字,则是替换原有的扩展团体属性。
apply ip-address next-hop(Route-Policy视图)
命令功能
apply ip-address next-hop命令用来在路由策略中配置改变BGP路由的下一跳地址的动作。
undo apply ip-address next-hop命令用来恢复缺省配置。
缺省情况下,在路由策略中未配置改变BGP路由的下一跳地址的动作。
命令格式
apply ip-address next-hop { ipv4-address | peer-address }
undo apply ip-address next-hop { ipv4-address | peer-address }
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
ipv4-address | 指定下一跳地址。 | 点分十进制格式。 |
peer-address | 配置出口策略时,指定本端地址为下一跳。 配置入口策略时,指定对等体地址为下一跳。 |
- |
使用指南
应用场景
当BGP路由需要改变下一跳地址来参与路由选择的竞争时,可以应用包含apply ip-address next-hop命令的路由策略,改变匹配成功的BGP路由的下一跳地址。
通过策略设置路由信息的下一跳地址分两种情况。
IBGP:对于IBGP对等体,配置的入口策略或者出口策略均可以生效。如果策略中配置的下一跳地址是不可达的,那么IBGP对等体也会将该路由加入到BGP路由表中,但不是有效路由。
EBGP:对于EBGP对等体,一般配置为入口策略。这是因为如果配置为出口策略,这条路由到达EBGP对等体后会因为下一跳不可达而被丢弃。
前置条件
先配置route-policy,才能配置apply ip-address next-hop命令。
注意事项
策略生效后,将会影响改BGP路由选路。
当import-route命令和network命令使用Route-Policy时,策略中apply ip-address next-hop子句不生效。
执行此命令手工设置路由的下一跳地址,可能会导致业务不通,请谨慎使用。
apply ip-precedence
命令功能
apply ip-precedence命令用来为路由配置QoS参数ip-precedence。
undo apply ip-precedence命令用来取消配置QoS参数ip-precedence。
缺省情况下,未配置ip-precedence值。
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
ip-precedence | IP优先级。 | 支持两种格式的取值:
|
使用指南
应用场景
BGP路由接收者在收到路由信息后,通过入口路由策略匹配BGP路由的属性,为BGP路由设置IP优先级等参数,将BGP路由信息及相关联的QoS参数一起下发,并对分类后的数据流配置QoS流量策略。这样,在数据转发过程中,对发送到目的网段的数据包可以依据获取的IP优先级等参数使用QoS策略,从而实现通过BGP对QoS策略的传播。
前置条件
先配置route-policy,才能配置apply ip-precedence命令。
配置影响
策略匹配成功后,修改对应IP报文头里的Precedence字段(即服务类型字段ToS(Type of service)的前三位)。
注意事项
使用apply ip-precedence命令为路由配置ip-precedence时,如果使用数字型的参数,则系统生成的配置信息就使用数字型;如果使用优先级关键字,则系统生成的配置信息就使用优先级关键字。
apply ipv6 next-hop
命令功能
apply ipv6 next-hop命令用来在路由策略中配置改变BGP路由的下一跳IPv6地址的动作。
undo apply ipv6 next-hop命令用来恢复缺省配置。
缺省情况下,在路由策略中未配置改变BGP路由的下一跳IPv6地址的动作。
命令格式
apply ipv6 next-hop { peer-address | ipv6-address }
undo apply ipv6 next-hop { peer-address | ipv6-address }
使用指南
应用场景
通过命令apply ipv6 next-hop命令可以设置BGP路由的下一跳IPv6地址。
通过策略设置BGP路由信息的下一跳地址分两种情况。
- IBGP:对于IBGP对等体,配置的入口策略或者出口策略均可以生效。如果策略中配置的下一跳地址是不可达的,则IBGP对等体也会将该路由加入到BGP路由表中,但不是有效路由。
- EBGP:对EBGP对等体使用策略修改下一跳地址时,一般配置为入口策略。这是因为如果配置为出口策略,这条路由到达EBGP对等体后会因为下一跳不可达而被丢弃。
前置条件
先配置route-policy,才能配置apply ipv6 next-hop命令。
配置影响
策略匹配成功,将替换该BGP路由的下一跳IPv6地址。
注意事项
当import-route命令和network命令使用Route-Policy时,策略中apply ipv6 next-hop子句不生效。
apply isis
命令功能
apply isis命令用来在路由策略中配置改变引入到IS-IS协议中的路由的级别的动作。
undo apply isis命令用来恢复缺省配置。
缺省情况下,在路由策略中未配置改变引入到IS-IS协议中的路由的级别的动作。
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
level-1 | 指定IS-IS的路由级别为Level-1。 | - |
level-1-2 | 指定IS-IS的路由级别为Level-1-2。 | - |
level-2 | 指定IS-IS的路由级别为Level-2。 | - |
使用指南
应用场景
为避免ISIS引入过多外部路由,给运行ISIS的设备带来额外的负担,可以在IS-IS中引入路由时应用包含apply isis命令的路由策略,改变引入到IS-IS协议中的路由的Level级别。
前置条件
先配置route-policy,才能配置apply isis命令。
注意事项
策略生效后,将影响ISIS的区域的路由接收。
apply local-preference
命令功能
apply local-preference命令用来在路由策略中配置改变BGP路由信息的本地优先级的动作。
undo apply local-preference命令用来恢复缺省配置。
缺省情况下,在路由策略中未配置改变BGP路由信息的本地优先级的动作。
使用指南
应用场景
当BGP路由需要改变离开AS的路径时,可以应用包含apply local-preference命令的路由策略,改变匹配成功的BGP路由的本地优先级。Local_Pref属性用于判断流量离开AS时的最佳路由,缺省值是100。当BGP网络中的交换机通过不同的IBGP对等体得到目的地址相同但下一跳不同的多条路由时,将优先选择Local_Pref属性值较高的路由。
前置条件
先配置route-policy,才能配置apply local-preference命令。
注意事项
策略生效后,将影响BGP路由选路。
本地优先级仅用于同一个AS域内的选路,不向域外发布这个属性,所以用于配置EBGP邻居策略时,apply local-preference命令的设置不生效。
apply mpls-label
命令功能
apply mpls-label命令用来在路由策略中配置分配MPLS标签给公网路由的动作。
undo apply mpls-label命令用来恢复缺省配置。
缺省情况下,在路由策略中未配置分配MPLS标签给公网路由的动作。
使用指南
应用场景
在VPN的跨域OptionC或CSC(Carrier Support Carrier)场景中,可以应用包含apply mpls-label命令的路由策略为公网路由申请标签。
前置条件
先配置route-policy,才能配置apply mpls-label命令。
注意事项
策略生效后,将为公网路由分配MPLS标签。
apply origin
命令功能
apply origin命令用来在路由策略中配置改变BGP路由的Origin属性的动作。
undo apply origin命令恢复缺省配置。
缺省情况下,在路由策略中未配置改变BGP路由的Origin属性的动作。
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
egp as-number-plain | 指定BGP路由信息源为外部路由。其中as-number-plain为指定外部路由的整数形式AS号,用于唯一标识一个AS。当需要改变路由的来源为外部路由时,使用此参数。EGP的优先级次之。通过EGP(外部网关协议)得到的路由信息,其Origin属性为EGP。 | 整数形式,取值范围是1~4294967295。 |
egp as-number-dot | 指定BGP路由信息源为外部路由。其中as-number-dot为指定外部路由的点分形式AS号,用于唯一标识一个AS。当需要改变路由的来源为外部路由时,使用此参数。EGP的优先级次之。通过EGP(外部网关协议)得到的路由信息,其Origin属性为EGP。 | 格式为x.y,x和y都是整数形式,x的取值范围是1~65535,y的取值范围是0~65535。 |
igp | 指定BGP路由信息源为内部路由。IGP具有最高的优先级。通过路由始发AS的IGP(内部网关协议)得到的路由,例如使用network命令注入到BGP路由表的路由。 | - |
incomplete | 指定BGP路由信息源为未知。Incomplete的优先级最低。通过其他方式学习到的路由信息,例如BGP通过import-route命令引入的路由,其Origin属性为Incomplete。 | - |
使用指南
应用场景
当BGP路由需要改变Origin属性来参与路由选择的竞争时,可以应用包含apply origin命令的路由策略,改变匹配成功的BGP路由的Origin值。Origin值是BGP协议的私有属性,该属性定义路径信息的来源。
前置条件
先配置route-policy,才能配置apply origin命令。
注意事项
策略生效后,将影响BGP路由选路。
apply ospf
命令功能
apply ospf命令用来在路由策略中配置将路由引入到的OSPF网络特定区域的动作。
undo apply ospf命令用来恢复缺省配置。
缺省情况下,在路由策略中未配置将路由引入到OSPF网络的特定区域的动作。
使用指南
应用场景
为避免OSPF引入过多外部路由,给运行OSPF的设备带来额外的负担,可以在OSPF引入路由时,应用包含apply ospf命令的路由策略来将路由引入到OSPF网络的骨干区域或NSSA区域。
前置条件
先配置route-policy,才能配置apply ospf命令。
注意事项
策略生效后,路由将会被引入到该命令指定的OSPF区域。
apply preference
命令功能
apply preference命令用来在路由策略中配置改变路由的优先级的动作。
undo apply preference命令用来恢复缺省配置。
缺省情况下,在路由策略中未配置改变路由的优先级的动作。
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
preference | 指定路由的优先级。 交换机上同时运行多种路由协议时,存在各个路由协议之间路由信息共享和选择的问题,所以为每一种路由协议指定了一个缺省的优先级。在不同的路由协议发现去往同一目的地的多条路由时,优先级高的协议发现的路由将被选中以转发IP报文。优先级的值越小,其实际的优先程度越高。 |
整数形式,取值范围1~255。 |
使用指南
应用场景
当路由需要改变优先级来参与路由选择的竞争时,可以应用包含apply preference命令的路由策略,改变匹配成功的路由的优先级。
前置条件
先配置route-policy,才能配置apply preference命令。
注意事项
策略生效后,将影响路由选路。
apply preferred-value
命令功能
apply preferred-value命令用来在路由策略中配置改变BGP路由的首选值的动作。
undo apply preferred-value命令用来恢复缺省配置。
缺省情况下,路由策略中未配置改变BGP路由的首选值的动作。
使用指南
应用场景
当BGP路由需要改变首选值来参与路由选择的竞争时,可以应用包含apply preferred-value命令的路由策略,改变匹配成功的BGP路由的首选值。
前置条件
先配置route-policy,才能配置apply preferred-value命令。
注意事项
策略配置成功后,将影响BGP的路由选路。
Preferred-value是BGP协议的私有属性,该命令只对BGP路由生效。Preferred-value是BGP选路规则中的weight值,不是RFC规定的标准属性,所以该命令仅在本地生效,在BGP的出口策略中不生效。
apply qos-local-id
命令功能
apply qos-local-id命令用来配置本地QoS ID值。
undo apply qos-local-id命令用来取消配置本地QoS ID值。
缺省情况下,未配置本地QoS ID值。
使用指南
应用场景
本地QoS ID值是用于QoS的一个本地标识。应用时,在Route-Policy中设置QoS Local ID的命令,在QoS策略中配置匹配QoS Local ID的命令。在Route-Policy中设置的本地QoS ID值会被下发到FIB表中,转发时,系统从FIB表中取出本地QoS ID值并根据本地QoS ID值执行相应的QoS策略。
配置影响
此命令与apply behavior和apply ip-precedence命令两两互斥,即同一个路由策略的同一个node下面只能配置其中的一个命令。比如,在route-policy test permit node 10这个命令里已经配置了apply qos-local-id命令,如果再配置apply ip-precedence命令,则该配置会替换apply qos-local-id配置。
apply tag
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
tag | 指定路由信息标记值。 路由标记可将路由按实际需求分类,同类路由打上相同的Tag,在路由策略中根据Tag对路由进行灵活的控制和管理。 |
整数形式,取值范围是0~4294967295。 |
使用指南
应用场景
当需要对路由进行分类标识,更好的运用路由策略时,可以应用包含apply tag命令的路由策略,将匹配成功的路由打上相同的Tag。
前置条件
先配置route-policy,才能配置apply tag命令。
注意事项
策略生效后,路由将重新匹配与tag值相关的其他路由策略。
BGP没有Tag属性,apply tag命令只能设置IGP路由信息的标记。
apply traffic-index
命令功能
apply traffic-index命令用来为BGP流量统计配置索引。
undo apply traffic-index命令用来取消为BGP流量统计配置索引。
缺省情况下,未配置BGP流量统计索引。
使用指南
应用场景
BGP Accounting通过BGP团体属性传播BGP流量索引来达到对路由进行标识,进而对流量进行计费。
BGP路由的发送者可通过匹配Route-Policy为BGP路由设置属性,BGP路由接收者可基于BGP团体属性过滤器、BGP AS路径过滤器、ACL、地址前缀列表等为BGP路由设置BGP流量索引。BGP流量索引同路由信息一起下发到FIB,通过在接口下使能BGP Accounting功能来为该接口生成基于流量索引的流量收集表(Traffic Collection Table)。
在包转发时可根据每接口下的流量索引来进行统计。这个统计即可以是在上行方向基于目的地址的统计,也可以是下行方向基于源地址的统计。
前置条件
先配置route-policy,才能配置apply traffic-index命令。
description(Route-Policy视图)
使用指南
应用场景
使用description命令可以为已经创建的路由策略配置描述信息。这样当设备上配置的路由策略较多时,非常便于用户对路由策略进行管理。
前置条件
需要使用route-policy命令先创建路由策略,才能为路由策略配置描述信息。
display ip as-path-filter
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
as-path-filter-number | 显示指定过滤器号的AS路径过滤器的配置信息。 | 整数形式,取值范围是1~256。 |
as-path-filter-name | 显示指定过滤器号的AS路径过滤器的配置信息。 | 字符串形式,区分大小写,不支持空格,长度范围是1~51。 |
使用指南
应用场景
AS-Path属性是BGP的私有属性,AS路径过滤器主要应用于BGP路由的过滤。
- 查看已配置的AS路径过滤器的详细配置信息。
- 执行undo ip as-path-filter命令后,检查是否成功删除该AS路径过滤器。
注意事项
- 如果指定AS路径过滤器号或者AS路径过滤器名称,则显示指定AS路径过滤器的配置信息。
- 如果不指定AS路径过滤器号或者AS路径过滤器名称,则显示所有AS路径过滤器的配置信息。
- 如果当前系统中不存在AS路径过滤器,或者将要查看的AS路径过滤器不存在,该命令都不会有输出信息。
display ip community-filter
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
basic-comm-filter-num | 显示指定过滤器号的基本团体属性过滤器的配置信息。 | 整数形式,取值范围1~99。 |
adv-comm-filter-num | 显示指定过滤器号的高级团体属性过滤器的配置信息。 | 整数形式,取值范围100~199。 |
comm-filter-name | 显示指定过滤器名的团体属性过滤器的配置信息。 | 字符串形式,取值范围是1~51个字符,且不能都是数字,并区分大小写。 |
使用指南
应用场景
团体属性是BGP的私有属性,团体属性过滤器主要应用于BGP路由的过滤。
- 查看已配置的团体属性过滤器的详细配置信息。
- 执行undo ip community-filter命令后,检查是否成功删除该团体属性过滤器。
注意事项
如果指定团体属性过滤器号或者团体属性过滤器名称,则显示指定团体属性过滤器的配置信息。
如果不指定团体属性过滤器号或者团体属性过滤器名称,则显示所有团体属性过滤器的配置信息。
如果当前系统中不存在团体属性过滤器,或者将要查看的团体属性过滤器不存在,该命令都不会有输出信息。
display ip extcommunity-filter
命令格式
display ip extcommunity-filter [ basic-extcomm-filter-num | advanced-extcomm-filter-num | extcomm-filter-name ]
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
basic-extcomm-filter-num | 基本扩展团体属性过滤器号。 | 整数形式,取值范围是1~199。 |
advanced-extcomm-filter-num | 高级扩展团体属性过滤器号。 | 整数形式,取值范围是200~399。 |
extcomm-filter-name | 显示指定过滤器名的扩展团体属性过滤器的配置信息。 | 字符串形式,不支持空格,区分大小写,长度范围是1~51。 |
使用指南
应用场景
扩展团体属性是BGP的私有属性,扩展团体属性过滤器主要应用于VPN路由的过滤。
- 查看已配置的扩展团体属性过滤器的详细配置信息。
- 执行undo ip excommunity-filter命令后,检查是否成功删除该扩展团体属性过滤器。
注意事项
如果指定扩展团体属性过滤器号或者扩展团体属性过滤器名称,则显示指定扩展团体属性过滤器的配置信息。
如果不指定扩展团体属性过滤器号或者扩展团体属性过滤器名称,则显示所有扩展团体属性过滤器的配置信息。
如果当前系统中不存在扩展团体属性过滤器,或者将要查看的扩展团体属性过滤器不存在,该命令都不会有输出信息。
使用实例
# 显示扩展团体属性过滤器信息。
<HUAWEI> display ip extcommunity-filter
Extended Community filter Number 10
permit rt : 100:10
Extended Community filter Number 280 permit rt 100:65 Extended Community filter basic filter: bas-abc permit rt : 200:10 Extended Community filter advanced filter: adv-abc deny 1.1.1.1:10
display ip ip-prefix
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
ip-prefix-name | 显示指定列表名称的地址前缀列表的详细配置信息。 | 字符串形式,取值范围是1~169,不支持空格,区分大小写。当输入的字符串两端使用双引号时,可在字符串中输入空格。 |
使用指南
应用场景
- 查看已配置的地址前缀列表的详细配置信息。
- 执行undo ip ip-prefix命令后,检查是否成功删除该地址前缀列表。
- 查看地址前缀列表的允许和拒绝统计计数。
注意事项
- 如果指定地址前缀列表名称,则显示指定地址前缀列表的配置信息。
- 如果不指定地址前缀列表名称,则显示所有地址前缀列表的配置信息。
- 如果当前系统中不存在地址前缀列表,或者将要查看的地址前缀列表不存在,该命令都不会有输出信息。
如果需要精确了解某段时间内地址前缀列表的允许和拒绝统计计数信息,可以先使用reset ip ip-prefix命令清除该统计计数,再开始统计。
如果显示信息中出现“The specified filter list does not exist”,则表示前缀列表没有配置成功。那么请在系统视图下执行ip ip-prefix命令配置前缀列表。
使用实例
# 查看名为p1的地址前缀列表信息。
<HUAWEI> display ip ip-prefix p1
Prefix-list pl Permitted 0 Description prefixok Denied 0 index: 10 permit 192.168.0.0/16 ge 17 le 18
项目 |
描述 |
---|---|
Prefix-list |
IPv4地址前缀列表名称。 |
Permitted |
通过匹配的路由数。 |
Description |
IPv4地址前缀列表的描述信息。只有通过ip ip-prefix ip-prefix-name description text命令配置了描述信息,才会显示此字段。 |
Denied |
没有通过匹配的路由数。 |
index |
地址前缀列表中表项的索引号。 |
permit |
地址前缀列表的表项内容。 |
ge 17 |
掩码大于等于17。 |
le 18 |
掩码小于等于18。 |
display ip ipv6-prefix
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
ipv6-prefix-name | 显示指定列表名称的IPv6地址前缀列表的详细配置信息。如果没有指定地址前缀列表名称,将显示所有配置的地址前缀列表。 | 字符串形式,取值范围是1~169,不支持空格,区分大小写。当输入的字符串两端使用双引号时,可在字符串中输入空格。 |
使用指南
应用场景
- 查看已配置的IPv6地址前缀列表的详细配置信息。
- 执行undo ip ipv6-prefix命令后,检查是否成功删除该IPv6地址前缀列表。
- 查看IPv6地址前缀列表的允许和拒绝统计计数。
注意事项
- 如果指定IPv6地址前缀列表名称,则显示指定IPv6地址前缀列表的配置信息。
- 如果不指定IPv6地址前缀列表名称,则显示所有IPv6地址前缀列表的配置信息。
- 如果当前系统中不存在IPv6地址前缀列表,或者将要查看的IPv6地址前缀列表不存在,该命令都不会有输出信息。
如果需要精确了解某段时间内IPv6地址前缀列表的允许和拒绝统计计数信息,可以先使用reset ip ipv6-prefix命令清除该统计计数,再开始统计。
使用实例
# 查看所有IPv6地址前缀列表的信息。
<HUAWEI> display ip ipv6-prefix
Prefix-list6 abc Description prefixok Permitted 0 Denied 0 index: 10 permit ::/0 index: 20 permit ::/1 ge 1 le 128
项目 |
描述 |
---|---|
Prefix-list6 |
IPv6地址前缀列表名称。 |
Description |
IPv6地址前缀列表的描述信息。只有通过ip ipv6-prefix ipv6-prefix-name description text命令配置了描述信息,才会显示此字段。 |
Permitted |
通过匹配的路由数。 |
Denied |
没有通过匹配的路由数。 |
index |
地址前缀列表中表项的索引号。 |
permit |
地址前缀列表的表项内容。 |
ge |
大于等于。 |
le |
小于等于。 |
display ip rd-filter
display route-policy
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
route-policy-name | 显示指定名称的Route-Policy的详细配置信息。 | 字符串形式,区分大小写,不支持空格,长度范围是1~40。当输入的字符串两端使用双引号时,可在字符串中输入空格。 |
if-match acl(Route-Policy视图)
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
acl-number | 指定基本ACL的编号。 | 整数形式,取值范围是2000~2999。 |
acl-name | 指定命名型访问控制列表ACL的名称。 | 字符串形式,不支持空格,区分大小写,长度范围是1~64,以英文字母开始。 |
使用指南
应用场景
对于IPv4地址前缀的匹配,可以通过配置命令if-match acl应用基于ACL的匹配规则。
前置条件
先配置route-policy,才能配置if-match acl命令。
注意事项
根据ACL进行匹配。符合条件的路由与本节点其它if-match子句进行匹配,不符合条件的路由进入路由策略的下一节点。
ACL的名字只能是以字母开头的字符串,例如,2a是不合法的ACL名称。
命令if-match acl与if-match ip-prefix是互斥的,即后配置的if-match ip-prefix可以覆盖先前配置的if-match acl。
对于ACL,使用rule命令配置过滤规则时,只有source参数指定的源地址范围和time-range参数指定的时间段对配置规则有效。
if-match as-path-filter
命令功能
if-match as-path-filter命令用来创建一个基于AS路径过滤器的匹配规则。
undo if-match as-path-filter命令用来删除指定的基于AS路径过滤器的匹配规则。
缺省情况下,路由策略中无基于AS路径过滤器的匹配规则。
命令格式
if-match as-path-filter { as-path-filter-number &<1-16> | as-path-filter-name }
undo if-match as-path-filter [ as-path-filter-number &<1-16> | as-path-filter-name ]
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
as-path-filter-number | 指定AS路径过滤器号。在一个命令行中可以配置多个此参数,但最大不能超过16。 | 整数形式,取值范围1~256。 |
as-path-filter-name | 指定AS路径过滤器名称。 | 字符串形式,区分大小写,不支持空格,长度范围是1~51,且不能都是数字。 说明:
当输入的字符串两端使用双引号时,可在字符串中输入空格。 |
使用指南
应用场景
AS-path属性是BGP协议的私有属性,if-match as-path-filter命令仅对BGP路由有效。要使这个匹配条件生效需要配合使用命令ip as-path-filter定义AS路径过滤器。例如:
- 配置if-match as-path-filter 1,但as-path-filter 1未配置,则当前路由都会被Permit;
- 配置if-match as-path-filter 1,且存在配置ip as-path-filter 1 permit *20,那么对于As-path属性为20 的BGP路由将会被Permit。
若在一个节点中配置多条if-match as-path-filter子句,则if-match as-path-filter子句间是“或”的关系,与其它命令的if-match子句间仍是“与”的关系。
前置条件
在执行命令if-match as-path-filter之前,必须先通过命令ip as-path-filter来配置AS路径过滤器。
注意事项
根据As-path属性进行匹配。符合条件的路由与本节点其它if match子句进行匹配,不符合条件的路由进入路由策略的下一节点。
在一个命令行中可以配置多个AS-Path-filter值,但最多不能超过16个。它们之间是“或”的关系,即通过其中某一个AS路径过滤器的过滤就可以通过该命令的过滤。
在引用as-path-filter之前,建议先创建对应的as-path-filter。缺省情况下,此命令不能引用不存在的as-path-filter。 如果在系统视图下配置了route-policy nonexistent-config-check disable命令,当此命令引用了不存在的as-path-filter时,则认为匹配成功。
if-match community-filter
命令功能
if-match community-filter命令用来创建一个基于团体属性过滤器的匹配规则。
undo if-match community-filter命令用来删除指定的基于团体属性过滤器的匹配规则。
缺省情况下,路由策略中无基于团体属性过滤器的匹配规则。
命令格式
if-match community-filter { basic-comm-filter-num [ whole-match ] | adv-comm-filter-num } &<1-16>
if-match community-filter comm-filter-name [ whole-match ]
undo if-match community-filter [ basic-comm-filter-num | adv-comm-filter-num ] &<1-16>
undo if-match community-filter comm-filter-name
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
basic-comm-filter-num | 指定基本团体属性过滤器号。 | 整数形式,取值范围是1~99。 |
adv-comm-filter-num | 指定高级团体属性过滤器号。 | 整数形式,取值范围是100~199。 |
comm-filter-name | 指定团体属性过滤器名称。 | 字符串形式,区分大小写,不支持空格,长度范围是1~51,且不能都是数字。当输入的字符串两端使用双引号时,可在字符串中输入空格。 |
whole-match | 表示完全匹配,即所有的团体都必须出现。仅对基本团体属性过滤器生效。 | - |
使用指南
应用场景
团体属性是BGP的私有属性,所以命令if-match community-filter仅对BGP路由有效。要使这个匹配条件生效需要配合使用命令ip community-filter定义团体属性过滤器。例如:
- 配置if-match community-filter 1,但community-filter 1未配置,则当前路由都会被Permit。
- 配置if-match community-filter 1,且存在配置ip community-filter 1 permit 1:1,那么对于存在1:1团体属性的BGP路由将会被Permit。
若在一个节点中配置多条if-match community-filter子句,则if-match community-filter子句间是“或”的关系,与其它命令的if-match子句间仍是“与”的关系。
前置条件
在执行命令if-match community-filter命令之前,需要先通过ip community-filter命令配置团体属性过滤器。
先配置route-policy,才能配置if-match community-filter命令。
注意事项
根据路由的团体属性进行匹配。符合条件的路由与本节点其它if match子句进行匹配,不符合条件的路由进入路由策略的下一节点。
在一个命令行中可以配置多个community-filter,但最多不能超过16个。它们之间是“或”的关系,即通过其中某一个community-filter的过滤就可以通过该命令的过滤。
whole-match只对其前面的一个团体过滤器号生效。当if-match community-filter中指定了多个过滤器,且要求每一个过滤器都必须完全匹配,则需要在每个过滤器后面增加whole-match,且仅对基本团体属性过滤器生效。
团体属性过滤器名字不能全为数字。
在引用community-filter之前,建议先创建对应的community-filter。缺省情况下,此命令不能引用不存在的community-filter。 如果在系统视图下配置了route-policy nonexistent-config-check disable命令,当此命令引用了不存在的community-filter时,则认为匹配成功。
使用实例
# 设置一个基于团体属性过滤器1的匹配规则。
<HUAWEI> system-view
[HUAWEI] ip community-filter 1 permit 100:200
[HUAWEI] route-policy test permit node 10
[HUAWEI-route-policy] if-match community-filter 1
# 设置基于团体属性过滤器的完全匹配规则,完全匹配过滤器1、2。
<HUAWEI> system-view
[HUAWEI] route-policy test permit node 11
[HUAWEI-route-policy] if-match community-filter 1 whole-match 2 whole-match
# 设置一个团体属性过滤器名称为aa的匹配规则。
<HUAWEI> system-view [HUAWEI] route-policy test permit node 12 [HUAWEI-route-policy] if-match community-filter aa
if-match cost
命令功能
if-match cost命令用来创建一个基于路由开销的匹配规则。
undo if-match cost命令用来删除基于路由开销的匹配规则。
缺省情况下,路由策略中无基于路由开销的匹配规则。
命令格式
if-match cost { cost | greater-equal greater-equal-value [ less-equal less-equal-value ] | less-equal less-equal-value }
undo if-match cost
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
cost | 指定路由开销值。可以通过调整开销值避免路由环路的产生。 | 整数形式,取值范围是0~4294967295。 |
greater-equal greater-equal-value | 指定路由开销值的最小值。 | 整数形式,取值范围是0~4294967294。 |
less-equal less-equal-value | 指定路由开销值的最大值。less-equal-value取值要大于greater-equal-value。 | 整数形式,取值范围是1~4294967295。 |
使用指南
应用场景
需要使某个节点按照路由开销匹配规则过滤路由信息时,使用if-match cost命令。配置基于路由开销的匹配规则后,路由信息必须符合路由开销匹配规则,才可以执行apply子句的动作对路由的一些属性进行修改。
前置条件
先配置route-policy,才能配置if-match cost命令。
注意事项
根据路由的开销值进行匹配。符合条件的路由与本节点其它if match子句进行匹配,不符合条件的路由进入路由策略的下一节点。
if-match extcommunity-filter
命令功能
if-match extcommunity-filter命令用来创建一个基于扩展团体属性过滤器的匹配规则。
undo if-match extcommunity-filter命令用来删除指定的扩展团体属性过滤器的匹配规则。
缺省情况下,路由策略中无基于扩展团体属性过滤器的匹配规则。
命令格式
if-match extcommunity-filter { { basic-extcomm-filter-num | adv-extcomm-filter-num } &<1-16> | extcomm-filter-name }
undo if-match extcommunity-filter [ [ basic-extcomm-filter-num | adv-extcomm-filter-num ] &<1-16> | extcomm-filter-name ]
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
basic-extcomm-filter-num | 基本扩展团体属性过滤器号。 | 整数形式,取值范围是1~199。 |
adv-extcomm-filter-num | 高级扩展团体属性过滤器号。 | 整数形式,取值范围是200~399。 |
extcomm-filter-name | 扩展团体属性过滤器名称。 | 字符串形式,区分大小写,不支持空格,长度范围是1~51,且不能都是数字。 |
使用指南
应用场景
应用扩展团体属性,可以更为灵活地控制路由策略。当需要使某个节点按照扩展团体属性过滤器匹配规则过滤路由信息时,使用if-match extcommunity-filter命令。
if-match extcommunity-filter命令只支持对BGP路由的匹配,且该命令需要和命令ip extcommunity-filter一起配合使用。例如:
- 配置if-match extcommunity-filter 1,但extcommunity-filter 1未配置,则当前路由都会被Permit。
- 配置if-match extcommunity-filter 1,且存在配置ip extcommunity-filter 1 permit rt 1:1,那么对于Route-Target属性为1:1 的BGP路由将会被Permit。
若在一个节点中配置多条if-match extcommunity-filter子句,则if-match extcommunity-filter子句间是“或”的关系,与其它命令的if-match子句间仍是“与”的关系。
前置条件
在执行if-match extcommunity-filter命令之前,需要先通过ip extcommunity-filter命令配置扩展团体属性过滤器。
注意事项
根据路由的扩展团体属性进行匹配。符合条件的路由与本节点其它if match子句进行匹配,不符合条件的路由进入路由策略的下一节点。
在一个命令行中可以配置多个extcommunity-filter,但最多不能超过16个。它们之间是“或”的关系,即通过其中某一个扩展团体属性过滤器的过滤就可以通过该命令的过滤。
if-match interface
命令功能
if-match interface命令用来创建一个基于出接口的匹配规则。
undo if-match interface命令用来删除指定的基于出接口的匹配规则。
缺省情况下,路由策略中无基于出接口的匹配规则。
命令格式
if-match interface { interface-type interface-number } &<1-16>
undo if-match interface [ interface-type interface-number ] &<1-16>
使用指南
应用场景
命令if-match interface主要基于路由的出接口对路由进行匹配。该命令一次最多可以配置匹配16个出接口。
若在一个节点中配置多条if-match interface子句,则if-match interface子句间是“或”的关系;若在一个节点中配置了多条if-match interface子句和其他不同匹配项的if-match子句间,则if-match interface字句与其他匹配项的if-match子句之间是“与”的关系。 例如:如果在一个节点下同时配置了if-match interface GE1/0/1、if-match interface GE1/0/2和if-match acl 2000,则if-match interface GE1/0/1和if-match interface GE1/0/2之间是“或”的关系,而if-match interface GE1/0/1和if-match acl 2000之间是“与”的关系。
前置条件
先配置route-policy,才能配置if-match interface命令。
注意事项
根据路由的出接口信息进行匹配。符合条件的路由与本节点其它if match子句进行匹配,不符合条件的路由进入路由策略的下一节点。
if-match ip
命令格式
if-match ip { next-hop | route-source | group-address } { acl { acl-number | acl-name } | ip-prefix ip-prefix-name }
undo if-match ip { next-hop | route-source | group-address } [ acl { acl-number | acl-name } | ip-prefix ip-prefix-name ]
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
next-hop | 指定匹配的下一跳地址。 | - |
route-source | 指定匹配的发布路由的源地址。 | - |
group-address | 组播组地址。 | 点分十进制格式。 |
acl | 表示用ACL过滤路由。 | - |
acl-number | 指定基本控制列表ACL号。 | 整数形式,取值范围是2000~2999。 |
acl-name | 指定基本控制列表ACL名字。 | 字符串形式,不支持空格,区分大小写,长度范围是1~64,以英文字母开始。 |
ip-prefix ip-prefix-name | 指定用于过滤的地址前缀列表名称。 | 字符串形式,区分大小写,不支持空格,取值范围是1~169。 |
使用指南
应用场景
命令if-match ip应用广泛,要使这个匹配条件生效需要和IP-Prefix或者ACL一起配合使用。例如:
配置if-match ip next-hop ip-prefix aa,但ip-prefix aa未配置,则当前路由都会被Permit。ACL遵守同样的规则。
配置if-match ip next-hop ip-prefix aa,且存在配置ip ip-prefix aa permit 10.1.1.1 32,那么对于下一跳为10.1.1.1的路由将会被Permit。ACL遵守同样的规则。
前置条件
先配置route-policy,才能配置if-match ip命令。
在执行if-match ip命令之前,需要先配置ACL或IP-Prefix。
注意事项
根据路由的下一跳或者路由源地址信息进行匹配。符合条件的路由与本节点其它if match子句进行匹配,不符合条件的路由进入路由策略的下一节点。
当被过滤的路由下一跳或者路由源为0.0.0.0这种特殊路由时,系统默认其对应的掩码长度为0来进行匹配。
当被过滤的路由下一跳或者路由源为非0.0.0.0这种普通路由时,系统默认其对应的掩码长度为32来进行匹配。
对于ACL,使用rule命令配置过滤规则时,只有source参数指定的源地址范围和time-range参数指定的时间段对配置规则有效。
在引用acl之前,建议先创建对应的acl。如果此命令引用了不存在的acl,则认为匹配成功。
在引用ip-prefix之前,建议先创建对应的ip-prefix。缺省情况下,此命令不能引用不存在的ip-prefix。如果在系统视图下配置了route-policy nonexistent-config-check disable命令,当此命令引用了不存在的ip-prefix时,则认为匹配成功。
使用实例
# 定义一个规则,用来匹配下一跳地址符合IP前缀列表p1的路由信息。
<HUAWEI> system-view
[HUAWEI] route-policy policy permit node 10
[HUAWEI-route-policy] if-match ip next-hop ip-prefix p1
# 定义一个规则,用来匹配路由源地址符合ACL 2000的路由信息。
<HUAWEI> system-view
[HUAWEI] route-policy policy permit node 10
[HUAWEI-route-policy] if-match ip route-source acl 2000
if-match ip-prefix
命令功能
if-match ip-prefix命令用来创建一个基于IP地址前缀列表的匹配规则。
undo if-match ip-prefix命令用来删除指定的基于IP地址前缀列表的匹配规则。
缺省情况下,路由策略中无IP地址前缀列表的匹配规则。
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
ip-prefix-name | 指定IP地址前缀列表名称。 | 字符串形式,取值范围是1~169,不支持空格,区分大小写。当输入的字符串两端使用双引号时,可在字符串中输入空格。 |
使用指南
应用场景
在路由策略中配置基于IP地址前缀列表的匹配规则后,设备将按照IP地址前缀列表对路由进行匹配,通过匹配的路由将被允许通过或拒绝通过。
应用命令if-match ip-prefix时,要使该匹配条件生效需要和命令ip ip-prefix配合使用。例如:
- 配置if-match ip-prefix aa,但ip-prefix aa未配置,则当前路由都会被Permit。
- 配置if-match ip-prefix aa,且存在配置ip ip-prefix aa permit 10.1.1.1 32,那么对于前缀为10.1.1.1,掩码为32的路由将会被Permit。
前置条件
先配置route-policy,才能配置if-match ip-prefix命令。
注意事项
根据路由的IP前缀信息进行匹配。符合条件的路由与本节点其它if match子句进行匹配,不符合条件的路由进入路由策略的下一节点。
命令if-match ip-prefix与if-match acl是互斥的,即同一路由策略节点下,后配置的if-match acl会覆盖之前配置的if-match ip-prefix。
在引用ip-prefix之前,建议先创建对应的ip-prefix。缺省情况下,此命令不能引用不存在的ip-prefix。如果在系统视图下配置了route-policy nonexistent-config-check disable命令,当此命令引用了不存在的ip-prefix时,则认为匹配成功。
if-match ipv6
命令功能
if-match ipv6命令用来创建一个基于IPv6信息的匹配规则。
undo if-match ipv6命令来删除指定的基于IPv6信息的匹配规则。
缺省情况下,路由策略中没有配置基于IPv6信息的匹配规则。
命令格式
if-match ipv6 { address | next-hop | route-source } prefix-list ipv6-prefix-name
undo if-match ipv6 { address | next-hop | route-source } prefix-list ipv6-prefix-name
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
address | 表示匹配IPv6路由信息的目的地址。 | - |
next-hop | 表示匹配IPv6路由信息的下一跳。 | - |
route-source | 表示匹配发布IPv6路由的源地址。 | - |
prefix-list | 表示IP前缀列表。 | - |
ipv6-prefix-name | 指定IPv6地址前缀列表的名称。 | 字符串形式,取值范围是1~169,不支持空格,区分大小写。当输入的字符串两端使用双引号时,可在字符串中输入空格。 |
使用指南
应用场景
使用命令if-match ipv6匹配IPv6路由的目的地址、下一跳或者路由源地址信息时,需要和命令ip ipv6-prefix一起配合使用,若未配置命令ip ipv6-prefix,则所有的路由都会被Permit。
前置条件
先配置route-policy,才能配置if-match ipv6命令。
在执行if-match ipv6命令之前,需要先通过命令ip ipv6-prefix配置IPv6-Prefix。
注意事项
根据IPv6路由的目的地址,下一跳或者路由源地址信息进行过滤,符合条件的路由被Permit,否则被Deny。
当被过滤的路由下一跳或者路由源为0::0这种特殊路由时,系统默认其对应的掩码长度为0来进行匹配。
当被过滤的路由下一跳或者路由源为非0::0这种普通路由时,系统默认其对应的掩码长度为128来进行匹配。
在引用ipv6-prefix之前,建议先创建对应的ipv6-prefix。如果此命令引用了不存在的ipv6-prefix,则认为匹配成功。
if-match mpls-label
命令功能
if-match mpls-label命令用来创建基于MPLS标签的匹配规则。
undo if-match mpls-label命令用来删除基于MPLS标签的匹配规则。
缺省情况下,路由策略中无基于MPLS标签的匹配规则。
使用指南
应用场景
在VPN的OptionC或CSC(carrier support carrier)场景中,使用if-match mpls-label命令匹配带有MPLS标签的路由。
前置条件
先配置route-policy,才能配置if-match mpls-label命令。
注意事项
根据mpls-label进行匹配,符合条件的路由与本节点其它if match子句进行匹配,不符合条件的路由进入路由策略的下一节点。
if-match rd-filter
命令功能
if-match rd-filter命令用来创建一个基于RD属性过滤器的匹配规则。
undo if-match rd-filter命令用来删除基于RD属性过滤器的匹配规则。
缺省情况下,路由策略中无基于RD属性过滤器的匹配规则。
使用指南
应用场景
if-match rd-filter命令和ip rd-filter命令配合使用,在路由策略中实现以RD属性为过滤条件对路由进行过滤。例如:
配置if-match rd-filter 1,但rd-filter 1未配置,则当前路由都会被Permit。
配置if-match rd-filter 1,且存在配置ip rd-filter 1 permit 1:1,那么对于Route-distinguisher属性为1:1的路由将会被Permit。
前置条件
先配置route-policy,才能配置if-match rd-filter命令。
注意事项
根据路由的RD属性进行匹配。符合条件的路由与本节点其它if-match子句进行匹配,不符合条件的路由进入路由策略的下一节点。
if-match route-type
命令功能
if-match route-type命令用来创建一个基于路由类型的匹配规则。
undo if-match route-type命令用来删除指定的基于路由类型的匹配规则。
缺省情况下,路由策略中无基于路由类型的匹配规则。
命令格式
if-match route-type { external-type1 | external-type1or2 | external-type2 | internal | is-is-level-1 | is-is-level-2 | nssa-external-type1 | nssa-external-type1or2 | nssa-external-type2 }
undo if-match route-type { external-type1 | external-type1or2 | external-type2 | internal | is-is-level-1 | is-is-level-2 | nssa-external-type1 | nssa-external-type1or2 | nssa-external-type2 }
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
external-type1 | 表示OSPF Type1的外部路由。 | - |
external-type1or2 | 表示OSPF外部路由。 | - |
external-type2 | 表示OSPF Type2的外部路由。 | - |
internal | 表示内部路由(包括OSPF区域间和区域内路由)。 | - |
is-is-level-1 | 表示IS-IS的Level-1路由。 | - |
is-is-level-2 | 表示IS-IS的Level-2路由。 | - |
nssa-external-type1 | 表示OSPF NSSA Type1的外部路由。 | - |
nssa-external-type1or2 | 表示OSPF NSSA的外部路由。 | - |
nssa-external-type2 | 表示OSPF NSSA Type2的外部路由。 | - |
使用指南
应用场景
需要通过路由类型匹配OSPF或IS-IS路由时,可以配置if-match route-type命令。
若在一个节点中配置多条if-match route-type子句,则if-match route-type子句间是“或”的关系,与其它命令的if-match子句间仍是“与”的关系。
前置条件
先配置route-policy,才能配置if-match route-type命令。
注意事项
根据路由类型进行匹配。符合条件的路由与本节点其它if match子句进行匹配,不符合条件的路由进入路由策略的下一节点。
在同一个Route-policy节点内,后配置的if-match route-type子句不会取代之前配置的if-match route-type子句,而是同时生效。在匹配的过程中,各个if-match route-type子句间是“或”的关系,即路由信息只要匹配条件之一,就可以执行apply子句的动作。例如:先配置了if-match route-type is-is-level-1命令,然后再配置if-match route-type external-type1or2命令,则表示IS-IS的Level-1路由或者OSPF外部路由都可以匹配上。
external-type1or2的意思是匹配external-type1或者external-type2。在同一个Route-Policy的节点内,先配置if-match route-type external-type1命令,再配置if-match route-type external-type2命令,与只配置if-match route-type external-type1or2命令的效果相同,生成的配置文件也相同。
同样,nssa-external-type1or2的意思是匹配nssa-external-type1或者nssa-external-type2。在同一个Route-Policy的节点内,先配置if-match route-type nssa-external-type1命令,再配置if-match route-type nssa-external-type2命令,与只配置if-match route-type nssa-external-type1or2命令的效果相同,生成的配置文件也相同。
if-match tag
命令功能
if-match tag命令用来创建一个基于路由信息标记(Tag)的匹配规则。
undo if-match tag命令用来删除基于Tag的匹配规则。
缺省情况下,路由策略中无基于Tag的匹配规则。
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
tag | 指定路由信息标记值。 路由标记可将路由按实际需求分类,同类路由打上相同的Tag,在路由策略中根据Tag对路由进行灵活的控制和管理。 |
整数形式,取值范围是0~4294967295。 |
使用指南
应用场景
需要通过tag值匹配路由时,可以配置if-match tag命令。
前置条件
先配置route-policy,才能配置if-match tag命令。
注意事项
根据Tag进行匹配。符合条件的路由与本节点其它if-match子句进行匹配,不符合条件的路由进入路由策略的下一节点。
ip as-path-filter
命令格式
ip as-path-filter { as-path-filter-number | as-path-filter-name } { deny | permit } regular-expression
undo ip as-path-filter { as-path-filter-number | as-path-filter-name } [ { deny | permit } regular-expression ]
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
as-path-filter-number | 指定的AS路径过滤器号。 | 整数形式,取值范围1~256。 |
as-path-filter-name | 指定的AS路径过滤器名称。 | 字符串形式,区分大小写,不支持空格,长度范围是1~51,且不能都是数字。当输入的字符串两端使用双引号时,可在字符串中输入空格。 |
deny | 指定AS路径过滤器的匹配模式为拒绝。 | - |
permit | 指定AS路径过滤器的匹配模式为允许。 | - |
regular-expression | 指定AS路径正则表达式。 | 字符串形式,支持空格,取值范围是1~255个字符。 |
使用指南
应用场景
AS路径过滤器使用正则表达式来定义匹配规则。配置了AS路径过滤器后,缺省情况下,RM会立即通知各个协议应用该过滤器进行过滤。
AS-Path属性是BGP的私有属性,所以该过滤器主要应用于BGP路由的过滤:
直接应用该过滤器,例如peer as-path-filter。
作为Route-Policy中的匹配条件,例如if-match as-path-filter zz。
注意事项
在同一个过滤器编号下,可以定义多条规则(Permit或Deny)。
AS路径过滤器的默认行为是deny,即路由如果没有在某一次过滤中被permit则最终不能通过该过滤器的过滤。如果一个过滤器中的所有过滤规则都是deny,则没有路由能通过该过滤器的过滤,这种情况下需要在多次(或一次)deny之后设置一次permit,允许其余所有路由通过过滤器的过滤。
如果该as-path-filter已经被其他命令引用,建议先取消引用该as-path-filter的配置,再通过undo ip as-path-filter命令删除as-path-filter配置。
后续任务
使用display ip as-path-filter可查看该过滤器的详细配置信息。
使用实例
# 创建序号为1的AS路径过滤器,允许AS_Path中以10开始的路由通过。
<HUAWEI> system-view
[HUAWEI] ip as-path-filter 1 permit ^10_
# 创建序号为2的AS路径过滤器,允许AS_Path中包含20的路由通过。
<HUAWEI> system-view
[HUAWEI] ip as-path-filter 2 permit _20_
# 创建序号为3的AS路径过滤器,不允许AS_Path中包含30的路由通过。
<HUAWEI> system-view
[HUAWEI] ip as-path-filter 3 deny _30_
[HUAWEI] ip as-path-filter 3 permit .*
ip community-filter
命令格式
ip community-filter { basic comm-filter-name | basic-comm-filter-num } { permit | deny } [ community-number | aa:nn | internet | no-export-subconfed | no-advertise | no-export ] &<1-20>
ip community-filter { advanced comm-filter-name | adv-comm-filter-num } { permit | deny } regular-expression
undo ip community-filter { basic comm-filter-name | basic-comm-filter-num } [ permit | deny ] [ community-number | aa:nn | internet | no-export-subconfed | no-advertise | no-export ] &<1-20>
undo ip community-filter { advanced comm-filter-name | adv-comm-filter-num } [ permit | deny ] [ regular-expression ]
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
basic comm-filter-name | 指定基本团体属性过滤器名称。 | 字符串形式,区分大小写,取值范围是1~51个字符,且不能都是数字。 说明:
当输入的字符串两端使用双引号时,可在字符串中输入空格。 |
basic-comm-filter-num | 指定基本团体属性过滤器号。 | 整数形式,取值范围1~99。 |
deny | 指定团体属性过滤器的匹配模式为拒绝。 | - |
permit | 指定团体属性过滤器的匹配模式为允许。 | - |
community-number | 指定团体号。 | 整数形式,取值范围0~4294967295。 |
aa:nn | 指定团体号。 一条命令最多可以指定20个团体属性号。
|
aa和nn都是整数形式,取值范围都是0~65535。 |
internet | 表示可以向任何对等体发送匹配的路由。 | - |
no-export-subconfed | 指定不向自治系统外部通告路由。如果使用了联盟,则不会向联盟中的其他子自治系统通告路由。 | - |
no-advertise | 指定不通告给其他对等体。 | - |
no-export | 指定不向自治系统外部通告路由。如果使用了联盟,则不向联盟外部通告路由,但会通告给联盟中的其他子自治系统。 | - |
advanced comm-filter-name | 指定高级团体属性过滤器名称。 | 字符串形式,区分大小写,取值范围是1~51个字符,且不能都是数字。 说明:
当输入的字符串两端使用双引号时,可在字符串中输入空格。 |
adv-comm-filter-num | 指定高级团体属性过滤器号。 | 整数形式,取值范围100~199。 |
regular-expression | 指定团体属性正则表达式。 | 字符串形式,支持空格,区分大小写,取值范围是1~255。 |
使用指南
应用场景
团体属性是BGP的私有属性,可以用于对BGP路由进行过滤。与if-match community-filter配合使用,可以作为Route-Policy中的匹配条件。
注意事项
在基本团体属性过滤器只能指定团体号或知名团体属性,在高级团体属性过滤器中则可以指定正则表达式作为匹配条件。
配置基本团体属性过滤器可通过命令ip community-filter basic comm-filter-name或命令ip community-filter basic-comm-filter-num进行配置。前者可以指定基本团体属性过滤器的名称,但名称必须包含非数字字符。一次最多可以配置20个团体号。后者只能配置过滤器号是1~99的基本团体属性。一次最多可以配置20个团体号。
配置高级团体属性过滤器可通过命令ip community-filter advanced comm-filter-name或命令ip community-filter adv-comm-filter-num进行配置。前者可以指定高级团体属性过滤器的名称,但名称必须包含非数字字符。后者只能配置过滤器号是100~199的高级团体属性。
community-filter配置的规则之间是“与”的关系,这与rd-filter是不同的。原因是每条路由只可能有一个RD,却可以同时具有多个Community。
例如,将community-filter配置成下面两种形式,过滤的效果是不一样的。
形式一:
ip community-filter 1 permit 100:1 200:1 300:1
形式二:
ip community-filter 1 permit 100:1
ip community-filter 1 permit 200:1 300:1
以上community-filter的配置中,每一行规则中的Community必须是路由的Community集合的子集,该行规则才能匹配。
而在下面rd-filter的配置中,两种形式的过滤效果是一样的。
形式一:
ip rd-filter 100 permit 100:1 200:1 2.2.2.2:1 3.3.3.3:1
形式二:
ip rd-filter 100 permit 100:1 200:1
ip rd-filter 100 permit 2.2.2.2:1
ip rd-filter 100 permit 3.3.3.3:1
在Route-Policy中用命令apply comm-filter delete删除团体属性过滤器值的时候,所引用的ip community-filter命令每条只能包含一个团体属性,如果要删除多个团体属性,则可通过配置多条命令来解决。如果在同一个过滤器号下配置了多个团体属性,则这几个属性都无法删除。举例请参见apply comm-filter delete。
团体属性过滤器的默认行为是deny,即路由如果没有在某一次过滤中被permit则最终不能通过该过滤器的过滤。如果一个过滤器中的所有过滤规则都是deny,则没有路由能通过该过滤器的过滤,这种情况下需要在多次(或一次)deny之后设置一次permit,允许其余所有路由通过过滤器的过滤。
如果该community-filter已经被其他命令引用,建议先取消引用该community-filter的配置,再通过undo ip community-filter命令删除community-filter配置。
后续任务
配置了团体属性过滤器后,缺省情况下,路由管理模块RM(Route Management)会立即通知各个协议应用该过滤器进行过滤。如果需要延迟过滤器的生效时间,需使用命令route-policy-change notify-delay配置延迟生效时间。
使用display ip community-filter可查看该过滤器的详细配置。
ip extcommunity-filter
命令功能
ip extcommunity-filter命令用来创建扩展团体属性过滤器。
undo ip extcommunity-filter命令用来删除指定的扩展团体属性过滤器。
缺省情况下,系统中无扩展团体属性过滤器。
命令格式
ip extcommunity-filter { basic-extcomm-filter-num | basic basic-extcomm-filter-name } { deny | permit } { rt { as-number:nn | 4as-number:nn | ipv4-address:nn } } &<1-16>
ip extcommunity-filter { advanced-extcomm-filter-num | advanced advanced-extcomm-filter-name } { deny | permit } regular-expression
undo ip extcommunity-filter { basic-extcomm-filter-num | basic basic-extcomm-filter-name } [ { deny | permit } { rt { as-number:nn | 4as-number:nn | ipv4-address:nn } } &<1-16> ]
undo ip extcommunity-filter { advanced-extcomm-filter-num | advanced advanced-extcomm-filter-name } [ regular-expression ]
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
deny | 指定扩展团体属性过滤器的匹配模式为拒绝。 | - |
permit | 指定扩展团体属性过滤器的匹配模式为允许。 | - |
rt | 指定扩展团体属性过滤器为RT(Route Target)属性过滤器。 | - |
as-number | 自治系统号。 | 整数形式,取值范围0~65535。 |
4as-number | 4字节自治系统号。 | 有两种格式:
|
ipv4-address | 指定IPv4地址。 | 点分十进制格式。 |
nn | 指定一个整数。 |
|
basic-extcomm-filter-num | 基本扩展团体属性过滤器号。 | 整数形式,取值范围是1~199。 |
basic basic-extcomm-filter-name | 基本扩展团体属性过滤器名称。 | 字符串形式,区分大小写,不支持空格,长度范围是1~51,且不能都是数字。当输入的字符串两端使用双引号时,可在字符串中输入空格。 |
advanced-extcomm-filter-num | 高级扩展团体属性过滤器号。 | 整数形式,取值范围是200~399。 |
advanced advanced-extcomm-filter-name | 高级扩展团体属性过滤器名称。 | 字符串形式,区分大小写,不支持空格,长度范围是1~51,且不能都是数字。当输入的字符串两端使用双引号时,可在字符串中输入空格。 |
regular-expression | 用于匹配扩展团体属性的正则表达式。 | 字符串形式,支持空格,长度范围1~255。 |
使用指南
应用场景
扩展团体属性过滤器可以作为Route-Policy中的匹配条件,例如if-match extcommunity-filter zz。
在基本扩展团体属性过滤器只能指定扩展团体属性号,在高级扩展团体属性过滤器中则可以指定正则表达式作为匹配条件。
配置基本扩展团体属性过滤器可通过命令ip extcommunity-filter basic extcomm-filter-name或命令ip extcommunity-filter basic-extcomm-filter-num进行配置。前者可以指定基本扩展团体属性过滤器的名称,但名称必须包含非数字字符,一次可以配置16个扩展团体号。后者只能配置过滤器号是1~199的基本扩展团体属性,一次可以配置16个扩展团体号。
配置高级扩展团体属性过滤器可通过命令ip extcommunity-filter advanced extcomm-filter-name或命令ip extcommunity-filter adv-extcomm-filter-num进行配置。前者可以指定高级扩展团体属性过滤器的名称,但名称必须包含非数字字符。后者只能配置过滤器号是200~399的高级扩展团体属性。
extcommunity-filter配置的规则之间是“或”的关系。
例如,将extcommunity-filter配置成下面两种形式,过滤的效果是一样的。
形式一:
ip extcommunity-filter 1 permit rt 100:1 200:1 300:1
形式二:
ip extcommunity-filter 1 permit rt 100:1
ip extcommunity-filter 1 permit rt 200:1 300:1
配置了扩展团体属性过滤器后,如果通过命令route-policy-change notify-delay配置了路由策略应用的延迟时间,则路由管理模块RM(Route Management)会在该延迟时间超时后通知各个协议应用该过滤器进行过滤。缺省情况下,RM会立即通知各个协议应用该过滤器进行过滤。
undo ip extcommunity-filter命令可以删除单个节点的扩展团体属性过滤器。
使用display ip extcommunity-filter可查看扩展团体属性过滤器的详细配置。
配置影响
用于路由RT属性的过滤,匹配成功的路由被permit,否则被deny。
注意事项
路由的扩展团体属性包括VPN-Target和SoO(Source of Origin),但策略中只支持对VPN-Target的匹配。
扩展团体属性过滤器的默认行为是deny,即路由如果没有在某一次过滤中被permit则最终不能通过该过滤器的过滤。如果一个过滤器中的所有过滤规则都是deny,则没有路由能通过该过滤器的过滤,这种情况下需要在多次(或一次)deny之后设置一次permit,允许其余所有路由通过过滤器的过滤。
ip ip-prefix
命令功能
ip ip-prefix命令用来创建IPv4地址前缀列表或增加其中一个表项。
undo ip ip-prefix命令用来删除指定的IPv4地址前缀列表或其中一个表项。
缺省情况下,系统中无IPv4地址前缀列表。
命令格式
ip ip-prefix ip-prefix-name [ index index-number ] { permit | deny } ipv4-address mask-length [ match-network ] [ greater-equal greater-equal-value ] [ less-equal less-equal-value ]
undo ip ip-prefix ip-prefix-name [ index index-number ]
ip ip-prefix ip-prefix-name description text
undo ip ip-prefix ip-prefix-name description [ text ]
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
ip-prefix-name | 指定地址前缀列表的名称。 | 字符串形式,取值范围是1~169,不支持空格,区分大小写。当输入的字符串两端使用双引号时,可在字符串中输入空格。 |
index index-number | 指定本匹配项在地址前缀列表中的序号。 | 整数形式,取值范围是1~4294967295。缺省情况下,该序号值按照配置先后顺序依次递增,每次加10,第一个序号值为10。 说明:
一个地址前缀列表最多支持配置65535个index。 |
permit | 指定地址前缀列表的匹配模式为允许。在该模式下,如果过滤的IP地址在定义的范围内,则通过过滤,进行相应的设置;否则,必须进行下一节点的测试。 | - |
deny | 指定地址前缀列表的匹配模式为拒绝。在该模式下,如果过滤的IP地址在定义的范围内,该IP地址不能通过过滤从而不能进入下一节点的测试;否则,将进行下一节点的测试。 | - |
ipv4-address | 指定IP地址。 | 点分十进制 |
mask-length | 指定掩码长度。 | 整数形式,取值范围是0~32。 |
match-network | 指定匹配网络地址。match-network参数只有在ipv4-address和mask-length做“与”操作之后生成的IP地址为0.0.0.0时才可以配置,主用是用来匹配指定网络地址的路由。例如:ip ip-prefix prefix1 permit 0.0.0.0 8可以匹配掩码长度为8的所有路由;而ip ip-prefix prefix1 permit 0.0.0.0 8 match-network可以匹配0.0.0.1~0.255.255.255范围内的所有路由。 | - |
greater-equal greater-equal-value | 指定掩码长度匹配范围的下限。若不配置greater-equal greater-equal-value和less-equal less-equal-value,则使用mask-length作为掩码长度。 | 参数greater-equal-value的取值限制为:mask-length<=greater-equal-value<=less-equal-value<=32。 如果只配置了greater-equal,则掩码长度范围在greater-equal-value和32之间。 |
less-equal less-equal-value | 指定掩码长度匹配范围的上限。若不配置greater-equal greater-equal-value和less-equal less-equal-value,则使用mask-length作为掩码长度。 | 参数less-equal-value的取值限制为:mask-length<=greater-equal-value<=less-equal-value<=32。 如果只配置了less-equal,则掩码长度范围在mask-length和less-equal-value之间。 |
description text | 指定地址前缀列表的描述信息。 | 字符串形式,长度范围是1~80,不支持空格,区分大小写。当输入的字符串两端使用双引号时,可在字符串中输入空格。 |
使用指南
应用场景
地址前缀列表既可以作为前缀过滤器被各协议使用,也可以与if-match命令配合,作为路由策略的匹配条件。
地址前缀列表的每个表项都可以视为一条过滤规则,当待过滤路由匹配某一表项时,根据匹配模式即可判断该路由是否能通过地址前缀列表的过滤。地址前缀列表中的表项将按照如下原则与待过滤路由进行匹配:
顺序匹配:地址前缀列表的各个表项按索引号从小到大顺序参与匹配。因此在设置表项索引号时,可以安排符合期望的匹配顺序。
唯一匹配:待过滤路由只要与一个表项匹配,就不再去尝试匹配其他表项。
默认拒绝:默认所有未与任何一个表项匹配的路由都视为未通过地址前缀列表的过滤。
序号 |
命令 |
匹配结果 |
原因解释 |
---|---|---|---|
Case1 |
ip ip-prefix aa index 10 permit 1.1.1.1 24 |
路由1.1.1.1/24 permit,其他都deny。 |
这种情况属于单节点的精确匹配,只有目的地址,掩码完全相同的路由才会匹配成功,而且节点的匹配模式为permit,所以路由1.1.1.1/24被permit,属于匹配成功并被permit。根据默认拒绝原则,其他路由由于未匹配成功被deny。 |
Case2 |
ip ip-prefix aa index 10 deny 1.1.1.1 24 |
路由全部被deny。 |
这种情况依然属于单节点的精确匹配,但节点的匹配模式为deny,所以路由1.1.1.1/24被deny,属于匹配成功但被deny。根据默认拒绝原则,其他路由则属于未匹配成功被默认deny。 |
Case3 |
ip ip-prefix aa index 10 permit 1.1.1.1 24 less-equal 32 |
路由1.1.1.1/24,1.1.1.1/32,1.1.1.1/26被permit,其他路由被deny。 |
这种情况依然属于单节点的精确匹配,节点的匹配模式为permit,同时定义了less-equal等于32,也就是说前缀为1.1.1.0,掩码范围在24和32之间的路由都会被permit。根据默认拒绝原则,其他路由则属于未匹配成功被默认deny。 |
Case4 |
ip ip-prefix aa index 10 permit 1.1.1.0 24 greater-equal 24 less-equal 32 |
路由1.1.1.1/24,1.1.1.1/32,1.1.1.1/26被permit,其他路由被deny。 |
这种情况依然属于单节点的精确匹配,节点的匹配模式为permit,由于greater-equal等于24,less-equal等于32,也就是说前缀为1.1.1.0,掩码范围在24和32之间的路由都会被permit,所以这种配置效果等同于Case3。根据默认拒绝原则,其他路由则属于未匹配成功被默认deny。 |
Case5 |
ip ip-prefix aa index 10 permit 1.1.1.1 24 greater-equal 26 |
路由1.1.1.1/32,1.1.1.1/26被permit,其他路由被deny。 |
这种情况依然属于单节点的精确匹配,节点的匹配模式为permit,由于greater-equal等于26,也就是说前缀为1.1.1.0,掩码范围在26和32之间的路由都会被permit。根据默认拒绝原则,其他路由则属于未匹配成功被默认deny。 |
Case6 |
ip ip-prefix aa index 10 permit 1.1.1.1 24 greater-equal 26 less-equal 32 |
路由1.1.1.1/32,1.1.1.1/26被permit,其他路由被deny。 |
这种情况依然属于单节点的精确匹配,节点的匹配模式为permit,由于greater-equal等于26,less-equal等于32,也就是说前缀为1.1.1.0,掩码范围在26和32之间的路由都会被permit,所以这种配置效果等同于Case5。根据默认拒绝原则,其他路由则属于未匹配成功被默认deny。 |
Case7 |
ip ip-prefix aa index 10 deny 1.1.1.1 24 ip ip-prefix aa index 20 permit 1.1.1.1 32 |
路由1.1.1.1/32被permit,其他路由都被deny。 |
这种情况属于多节点的精确匹配。路由1.1.1.1/24在匹配index 10时,满足匹配条件,但匹配模式是deny,根据唯一匹配原则,属于匹配成功但被deny。路由1.1.1.1/32在匹配index 10时,不满足匹配条件,然后根据顺序匹配原则,继续匹配index 20,此时匹配成功,且index 20的匹配模式是permit,属于匹配成功并被permit。根据默认拒绝原则,其他路由则属于未匹配成功被默认deny。 |
Case8 |
ip ip-prefix aa index 10 permit 0.0.0.0 8 less-equal 32 |
路由1.1.1.1/24、1.1.1.1/32、1.1.1.1/26、2.2.2.2/24和1.1.1.2/16都被permit。 |
前缀为0.0.0.0。0.0.0.0为通配地址,当前缀为0.0.0.0时,可以在其后指定掩码以及掩码范围,不论掩码指定为多少,都表示掩码长度范围内的所有路由全部被permit或deny。 此时greater-equal等于8,less-equal等于32,由于0.0.0.0为通配地址,又由于节点的模式是permit,所以所有掩码长度在8到32的路由都被permit。 |
Case9 |
ip ip-prefix aa index 10 deny 0.0.0.0 24 less-equal 32 ip ip-prefix aa index 20 permit 0.0.0.0 0 less-equal 32 |
路由1.1.1.2/16被permit,其他路由都被deny。 |
对于index 10,greater-equal等于24,less-equal等于32,由于0.0.0.0为通配地址,所有掩码长度在24到32的路由全部被deny。1.1.1.2/16由于不匹配index 10,将进行index 20的匹配,对于index 20,greater-equal等于0,less-equal等于32,由于0.0.0.0为通配地址,所以1.1.1.2/16属于可以匹配上被permit。 |
Case10 |
ip ip-prefix aa index 10 deny 2.2.2.2 24 ip ip-prefix aa index 20 permit 0.0.0.0 0 less-equal 32 |
除路由2.2.2.2/24外的其他路由都被permit。 |
对于index 10,符合条件的路由2.2.2.2/24被deny。其他路由不匹配index 10,将进行index 20的匹配,由于都可以匹配上所以都被permit。 |
配置影响
如果创建一个地址前缀列表名称和索引号都重复而仅仅是匹配内容不同的表项,则该新建的表项将覆盖原有的表项。
注意事项
因为地址前缀列表采用默认拒绝的匹配原则,所以在创建了一个或多个deny模式的表项后,需要创建一个permit 0.0.0.0 0 less-equal 32表项,允许所有其他IPv4路由通过。
如果指定ipv4-address mask-length为0.0.0.0 0,则只匹配缺省路由。
如果指定的地址前缀范围为0.0.0.0 0 less-equal 32,则匹配所有路由。
如果该ip-prefix已经被其他命令引用,建议先取消引用该ip-prefix的配置,再通过undo ip ip-prefix命令删除ip-prefix配置。
用户下发配置后,设备会对用户下发的参数进行有效性检查和处理,其中生成的IP地址(ipv4-address)参数部分是用户指定的ipv4-address和mask-length做“与”操作之后的结果。例如:如果指定ipv4-address mask-length为1.1.1.1 24,则实际生成的配置为1.1.1.0 24,1.1.1.0为1.1.1.1 & 0XFFFFFF00之后的结果。
若处理后生成的IP地址(ipv4-address)参数部分为0.0.0.0,那么匹配的地址为通配地址,通配地址匹配路由原则如下表所示:
说明:
若指定的ipv4-address参数不为0.0.0.0,则指定的mask-length参数不能为0。
表7-200 通配地址匹配路由原则是否包含greater-equal和less-equal参数
条件
匹配结果
命令举例
处理后的配置中不包含greater-equal和less-equal参数。
处理后ipv4-address和mask-length参数为0.0.0.0和X(其中X不等于0)。 匹配码长度为X的所有路由。
处理前:
ip ip-prefix aa index 10 permit 0.0.1.1 16
处理后:
ip ip-prefix aa index 10 permit 0.0.0.0 16
匹配结果:掩码长度为16的路由被permit。
处理后的配置中包含greater-equal参数,不包含less-equal参数。
处理后ipv4-address和mask-length参数为0.0.0.0和X(其中X不等于0)。 匹配码长度为greater-equal~32的所有路由。
处理前:
ip ip-prefix aa index 10 permit 0.0.1.1 16 greater-equal 20
处理后:
ip ip-prefix aa index 10 permit 0.0.0.0 16 greater-equal 20 less-equal 32
匹配结果:掩码长度为20~32的路由被permit。
处理后的配置中不包含greater-equal参数,包含less-equal参数。
处理后ipv4-address和mask-length参数为0.0.0.0和X(其中X不等于0)。 匹配码长度为X~less-equal的所有路由。
处理前:
ip ip-prefix aa index 10 permit 0.0.1.1 16 less-equal 30
处理后:
ip ip-prefix aa index 10 permit 0.0.0.0 16 greater-equal 16 less-equal 30
匹配结果:掩码长度为16~30的路由被permit。
处理后的配置中包含greater-equal参数和less-equal参数。
处理后ipv4-address和mask-length参数为0.0.0.0和X(其中X不等于0)。 匹配码长度为greater-equal~less-equal的所有路由。
处理前:
ip ip-prefix aa index 10 permit 0.0.1.1 16 greater-equal 20 less-equal 30
处理后:
ip ip-prefix aa index 10 permit 0.0.0.0 16 greater-equal 20 less-equal 30
匹配结果:掩码长度为20~30的路由被permit。
后续任务
在对已经使用的路由策略进行修改的场景中,配置地址前缀列表后,缺省情况下路由管理模块会立即通知各协议进行处理,重新应用该路由策略。但是,修改路由策略可能会执行多条命令,为了避免各协议反复重新应用还未修改完的路由策略,在配置完地址前缀列表后,如果还需要配置其他命令才能完成路由策略的修改,可使用route-policy-change notify-delay命令,延迟路由策略重新应用的时间。
使用实例
# 配置名为p1的地址前缀列表,只允许10.0.0.0/8网段内,掩码长度在17到18之间的路由通过。
<HUAWEI> system-view
[HUAWEI] ip ip-prefix p1 permit 10.0.0.0 8 greater-equal 17 less-equal 18
<HUAWEI> system-view
[HUAWEI] ip ip-prefix p3 index 10 deny 0.0.0.0 8 match-network
[HUAWEI] ip ip-prefix p3 index 20 permit 0.0.0.0 0 less-equal 32
ip ipv6-prefix
命令功能
ip ipv6-prefix命令用来配置IPv6地址前缀列表或增加其中一个表项。
undo ip ipv6-prefix命令用来删除IPv6地址前缀列表或其中一个表项。
缺省情况下,系统中无IPv6地址前缀列表。
命令格式
ip ipv6-prefix ipv6-prefix-name [ index index-number ] { deny | permit } ipv6-address prefix-length [ match-network ] [ greater-equal greater-equal-value ] [ less-equal less-equal-value ]
undo ip ipv6-prefix ipv6-prefix-name [ index index-number ]
ip ipv6-prefix ipv6-prefix-name description text
undo ip ipv6-prefix ipv6-prefix-name description [ text ]
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
ipv6-prefix-name | 地址前缀列表的名称,该名称必须唯一。 | 字符串形式,取值范围是1~169,不支持空格,区分大小写。当输入的字符串两端使用双引号时,可在字符串中输入空格。 |
index index-number | 指定地址前缀列表的表项序号。 | 整数形式,取值范围是1~4294967295。缺省情况下,该序号值按照配置先后顺序依次递增,每次加10,且第一个序号值为10。 说明:
一个地址前缀列表最多支持配置65535个index。 |
permit | 指定前缀列表表项的匹配模式为允许。在这种情况下,如果IPV6地址在指定的前缀范围内,该IPV6地址将通过过滤而不进入下一表项的测试;否则,该IPv6地址将进入下一表项的测试。 | - |
deny | 指定前缀列表表项的匹配模式为拒绝。在这种情况下,如果IPv6地址在指定的前缀范围内,该IPV6地址将不能通过过滤从而不进入下一表项的测试;否则,该IPV6地址将进入下一表项的测试。 | - |
ipv6-address | 用IPv6地址形式来指定IPv6地址前缀范围。如果指定::,则表示匹配全零地址。 | - |
prefix-length | 用掩码长度来指定IPv6地址前缀范围。 | 整数形式,取值范围为0~128。如果使用:: 0 less-equal 128,则表示匹配所有IPv6地址。 |
match-network | 指定匹配网络地址。match-network参数只有在ipv6-address和prefix-length做“与”操作之后生成的IP地址为::时才可以配置,主用是用来匹配指定网络地址的路由。例如:ip ipv6-prefix prefix1 permit :: 96可以匹配前缀长度为96的所有路由;而ip ipv6-prefix prefix1 permit :: 96 match-network可以匹配::1~::FFFF:FFFF范围内的所有路由。 | - |
greater-equal greater-equal-value | 指定掩码长度匹配范围的下限。 | 参数greater-equal-value的取值限制为:prefix-length<=greater-equal-value<=less-equal-value<=128。 |
less-equal less-equal-value | 指定掩码长度匹配范围的上限。 | 参数less-equal-value的取值限制为:prefix-length<=greater-equal-value<=less-equal-value<=128。 |
description text | 指定IPv6地址前缀列表的描述信息。 | 字符串形式,长度范围是1~80,不支持空格,区分大小写。当输入的字符串两端使用双引号时,可在字符串中输入空格。 |
使用指南
应用场景
IPv6地址前缀列表既可以作为IPv6前缀过滤器被各协议使用,也可以与if-match ipv6命令配合,作为路由策略的匹配条件。
IPv6地址前缀列表的每个表项都可以视为一条过滤规则,当待过滤路由匹配某一表项时,根据匹配模式即可判断该路由是否能通过地址前缀列表的过滤。IPv6地址前缀列表中的表项将按照如下原则与待过滤路由进行匹配:
顺序匹配:地址前缀列表的各个表项按索引号从小到大顺序参与匹配。因此在设置表项索引号时,可以安排符合期望的匹配顺序。
唯一匹配:待过滤路由只要与一个表项匹配,就不再去尝试匹配其他表项。
默认拒绝:默认所有未与任何一个表项匹配的路由都视为未通过地址前缀列表的过滤。
序号 |
命令 |
匹配结果 |
原因解释 |
---|---|---|---|
Case1 |
ip ipv6-prefix aa index 10 permit 1::1 96 |
路由1::1/96 permit,其他都deny。 |
这种情况属于单节点的精确匹配,只有目的地址,掩码完全相同的路由才会匹配成功,而且节点的匹配模式为permit,所以路由1::1/96被permit,属于匹配成功并被permit。根据默认拒绝原则,其他路由由于未匹配成功被deny。 |
Case2 |
ip ipv6-prefix aa index 10 deny 1::1 96 |
路由全部被deny。 |
这种情况依然属于单节点的精确匹配,但节点的匹配模式为deny,所以路由1::1/96被deny,属于匹配成功但被deny。根据默认拒绝原则,其他路由则属于未匹配成功被默认deny。 |
Case3 |
ip ipv6-prefix aa index 10 permit 1::1 96 less-equal 128 |
路由1::1/96,1::1/128,1::1/100被permit,其他路由被deny。 |
这种情况依然属于单节点的精确匹配,节点的匹配模式为permit,同时定义了less-equal等于128,也就是说前缀为1::1,掩码范围在96和128之间的路由都会被permit。根据默认拒绝原则,其他路由则属于未匹配成功被默认deny。 |
Case4 |
ip ipv6-prefix aa index 10 permit 1::1 96 greater-equal 96 less-equal 128 |
路由1::1/96,1::1/128,1::1/100被permit,其他路由被deny。 |
这种情况依然属于单节点的精确匹配,节点的匹配模式为permit,由于greater-equal等于96,less-equal等于128,也就是说前缀为1::1,掩码范围在96和128之间的路由都会被permit,所以这种配置效果等同于Case3。根据默认拒绝原则,其他路由则属于未匹配成功被默认deny。 |
Case5 |
ip ipv6-prefix aa index 10 permit 1::1 96 greater-equal 100 |
路由1::1/128,1::1/100被permit,其他路由被deny。 |
这种情况依然属于单节点的精确匹配,节点的匹配模式为permit,由于greater-equal等于100,也就是说前缀为1::1,掩码范围在100和128之间的路由都会被permit。根据默认拒绝原则,其他路由则属于未匹配成功被默认deny。 |
Case6 |
ip ipv6-prefix aa index 10 permit 1::1 96 greater-equal 100 less-equal 128 |
路由1::1/128,1::1/100被permit,其他路由被deny。 |
这种情况依然属于单节点的精确匹配,节点的匹配模式为permit,由于greater-equal等于100,less-equal等于128,也就是说前缀为1::1,掩码范围在100和128之间的路由都会被permit,所以这种配置效果等同于Case5。根据默认拒绝原则,其他路由则属于未匹配成功被默认deny。 |
Case7 |
ip ipv6-prefix aa index 10 deny 1::1 96 ip ipv6-prefix aa index 20 permit 1::1 128 |
路由1::1/128被permit,其他路由都被deny。 |
这种情况属于多节点的精确匹配。路由1::1/96在匹配index 10时,满足匹配条件,但匹配模式是deny,根据唯一匹配原则,属于匹配成功但被deny。路由1::1/128在匹配index 10时,不满足匹配条件,然后根据顺序匹配原则,继续匹配index 20,此时匹配成功,且index 20的匹配模式是permit,属于匹配成功并被permit。根据默认拒绝原则,其他路由则属于未匹配成功被默认deny。 |
Case8 |
ip ipv6-prefix aa index 10 permit :: 64 less-equal 128 |
路由1::1/96、1::1/128、1::1/100、2::2/96和1::2/64都被permit。 |
前缀为::为通配地址,当前缀为::时,可以在其后指定掩码以及掩码范围,不论掩码指定为多少,都表示掩码长度范围内的所有路由全部被permit或deny。 此时greater-equal等于64,less-equal等于128,由于::为通配地址,又由于节点的模式是permit,所以所有掩码长度在64到128的路由都被permit。 |
Case9 |
ip ipv6-prefix aa index 10 deny :: 96 less-equal 128 ip ipv6-prefix aa index 20 permit :: 0 less-equal 128 |
路由1::2/64被permit,其他路由都被deny。 |
对于index 10,greater-equal等于96,less-equal等于128,由于::为通配地址,所有掩码长度在96到128的路由全部被deny。1::2/64由于不匹配index 10,将进行index 20的匹配,对于index 20,greater-equal等于0,less-equal等于128,由于::为通配地址,所以1::2/64属于可以匹配上被permit。 |
Case10 |
ip ipv6-prefix aa index 10 deny 2::2 96 ip ipv6-prefix aa index 20 permit :: 0 less-equal 128 |
匹配结果:除路由2::2/96外的其他路由都被permit。 |
对于index 10,符合条件的路由2::2/96被deny。其他路由不匹配index 10,将进行index 20的匹配,由于都可以匹配上所以都被permit。 |
配置影响
如果创建一个IPv6地址前缀列表名称和索引号都重复而仅仅是匹配内容不同的表项,那么该新建的表项将覆盖原有的表项。
注意事项
因为IPv6地址前缀列表采用默认拒绝的匹配原则,所以在创建了一个或多个deny模式的表项后,需要创建一个permit :: 0 less-equal 128表项,允许所有其他IPv6路由通过。
如果指定ipv6-address prefix-length为:: 0,则只匹配IPv6缺省路由。
如果指定的IPv6地址前缀范围为:: 0 less-equal 128,则匹配所有IPv6路由。
如果该ipv6-prefix已经被其他命令引用,建议先取消引用该ipv6-prefix的配置,再通过undo ip ipv6-prefix命令删除ipv6-prefix配置。
用户下发配置后,设备会对用户下发的参数进行有效性检查和处理,其中生成的IP地址(ipv6-address)参数部分是用户指定的ipv6-address和prefix-length做“与”操作之后的结果。例如:如果指定ipv6-address prefix-length为1::1 64,则实际生成的配置为1:: 64,1::为1::1 & 0XFFFF:FFFF:FFFF:FFFF::之后的结果。
若处理后生成的IP地址(ipv6-address)参数部分为::,那么匹配的地址为通配地址,通配地址匹配路由原则如下表所示:
说明:
若指定的ipv6-address参数不为::,则指定的prefix-length参数不能为0。
表7-202 通配地址匹配路由原则是否包含greater-equal和less-equal参数
条件
匹配结果
命令举例
处理后的配置中不包含greater-equal和less-equal参数。
处理后ipv6-address和prefix-length参数为::和X(其中X不等于0)。 匹配码长度为X的所有IPv6路由。
处理前:
ip ipv6-prefix aa index 10 permit ::1:1 96
处理后:
ip ipv6-prefix aa index 10 permit :: 96
匹配结果:掩码长度为96的IPv6路由被permit。
处理后的配置中包含greater-equal参数,不包含less-equal参数。
处理后ipv6-address和prefix-length参数为::和X(其中X不等于0)。 匹配码长度为greater-equal~128的所有IPv6路由。
处理前:
ip ipv6-prefix aa index 10 permit ::1:1 96 greater-equal 120
处理后:
ip ipv6-prefix aa index 10 permit :: 96 greater-equal 120 less-equal 128
匹配结果:掩码长度为120~128的IPv6路由被permit。
处理后的配置中不包含greater-equal参数,包含less-equal参数。
处理后ipv6-address和prefix-length参数为::和X(其中X不等于0)。 匹配码长度为X~less-equal的所有IPv6路由。
处理前:
ip ipv6-prefix aa index 10 permit ::1:1 96 less-equal 120
处理后:
ip ipv6-prefix aa index 10 permit :: 96 greater-equal 96 less-equal 120
匹配结果:掩码长度为96~120的IPv6路由被permit。
处理后的配置中包含greater-equal参数和less-equal参数。
处理后ipv6-address和prefix-length参数为::和X(其中X不等于0)。 匹配码长度为greater-equal~less-equal的所有IPv6路由。
处理前:
ip ipv6-prefix aa index 10 permit ::1:1 96 greater-equal 120 less-equal 124
处理后:
ip ipv6-prefix aa index 10 permit :: 96 greater-equal 120 less-equal 124
匹配结果:掩码长度为120~124的IPv6路由被permit。
后续任务
在对已经使用的路由策略进行修改的场景中,配置IPv6地址前缀列表后,缺省情况下路由管理模块会立即通知各协议进行处理,重新应用该路由策略。但是,修改路由策略可能会执行多条命令,为了避免各协议反复重新应用还未修改完的路由策略,在配置完IPv6地址前缀列表后,如果还需要配置其他命令才能完成路由策略的修改,可使用route-policy-change notify-delay命令,延迟路由策略重新应用的时间。
使用实例
# 允许掩码长度在32位到64位之间的地址通过。
<HUAWEI> system-view
[HUAWEI] ip ipv6-prefix abc permit :: 0 greater-equal 32 less-equal 64
# 拒绝前缀为FC00:0:0:D00::/32,且前缀长度大于32位的地址通过,允许其他的IPv6路由通过。
<HUAWEI> system-view
[HUAWEI] ip ipv6-prefix abc deny fc00:0:0:d00:: 32 less-equal 128
[HUAWEI] ip ipv6-prefix abc permit :: 0 less-equal 128
<HUAWEI> system-view
[HUAWEI] ip ipv6-prefix p3 index 10 deny :: 96 match-network
[HUAWEI] ip ipv6-prefix p3 index 20 permit :: 0 less-equal 128
ip rd-filter
命令格式
ip rd-filter rd-filter-number { deny | permit } route-distinguisher &<1-10>
undo ip rd-filter rd-filter-number [ { deny | permit } route-distinguisher &<1-10> ]
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
rd-filter-number | 指定RD过滤器的编号。 | 整数形式,取值范围是1~255。 |
permit | 指定匹配模式为允许。 | - |
deny | 指定匹配模式为拒绝。 | - |
route-distinguisher | 指定RD属性。可以配置1~10个RD属性。 交换机支持下面6种格式配置RD属性:
|
|
使用指南
通常ip rd-filter命令会与if-match rd-filter命令配合使用。先在使用ip rd-filter命令配置RD属性过滤器,然后在Route-Policy中使用if-match rd-filter命令配置基于RD属性的过滤条件,最后通过应用路由策略实现过滤接收和发布的路由。
RD属性过滤器有以下使用规则:
如果没有配置rd-filter,却引用这个rd-filter进行过滤,则匹配结果是permit。
例如,没有配置rd-filter 100,而route-policy引用了这个它:
route-policy test permit node 10
if-match rd-filter 100
使用这个route-policy进行过滤时,认为if-match语句命中,并返回名为test的Route-Policy的node10的匹配结果是permit。
如果配置了rd-filter,但路由的RD没有与规则中定义的任何一个RD匹配,则默认匹配结果是deny。
例如,路由的RD为100:1,而rd-filter的配置如下,
ip rd-filter 100 permit 10.1.1.1:100
使用这个过滤器进行过滤时,匹配结果是deny。
rd-filter配置的规则之间是“或”的关系。这与community-filter是不同的。原因是每条路由只可能有一个RD,而却可以同时具有多个Community。
例如,将rd-filter配置成下面两种形式,过滤的结果是一样的。
形式一:
ip rd-filter 100 permit 100:1 200:1 10.2.2.2:1 10.3.3.3:1
形式二:
ip rd-filter 100 permit 100:1 200:1
ip rd-filter 100 permit 10.2.2.2:1
ip rd-filter 100 permit 10.3.3.3:1
与community-filter对比,下面的配置中,两种形式的过滤效果是不一样的。
形式一:
ip community-filter 1 permit 100:1 200:1 300:1
形式二:
ip community-filter 1 permit 100:1
ip community-filter 1 permit 200:1 300:1
以上community-filter的配置中,每一行规则中的Community必须是路由的Community集合的子集,该行规则才能匹配。
多条规则之间按照配置顺序进行匹配。例如,
ip rd-filter 100 deny 200:1 10.5.5.5:1
ip rd-filter 100 permit 200:* 10.5.5.5:*
则RD为200:1或5.5.5.5:1的路由将被拒绝。但如果配置顺序相反,例如:
ip rd-filter 100 permit 200:* 10.5.5.5:*
ip rd-filter 100 deny 200:1 10.5.5.5:1
则RD为200:1或5.5.5.5:1的路由将被允许。
每个RD过滤器最多可配置255条规则。
reset ip ip-prefix
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
ip-prefix-name | 指定地址前缀列表的名称。 如果没有指定参数ip-prefix-name,将清除所有的IPv4地址前缀列表的计数器。 |
字符串形式,取值范围是1~169,不支持空格,区分大小写。当输入的字符串两端使用双引号时,可在字符串中输入空格。 |
使用指南
应用场景
IPv4地址前缀列表可以实现对IPv4地址的过滤。在过滤IPv4地址时,系统会记录下被IPv4地址前缀列表允许和拒绝的地址前缀数量,这个数量可以执行display ip ip-prefix命令查看。
如果需要查看某一时段起被IPv4地址前缀列表允许和拒绝的IPv4地址前缀数量,可以先执行reset ip ip-prefix命令清除IPv4地址前缀列表的允许和拒绝的统计计数,然后再执行display ip ip-prefix命令查看。
配置影响
执行reset ip ip-prefix命令后,IPv4地址前缀列表的统计计数被清零,之前的统计信息将无法查看。
注意事项
如果指定IPv4地址前缀列表的名字ip-prefix-name,将清除指定IPv4地址前缀列表的统计计数。
如果没有指定IPv4地址前缀列表的名字ip-prefix-name,将清除所有的IPv4地址前缀列表的统计计数。
reset ip ipv6-prefix
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
ipv6-prefix-name | 指定地址前缀列表的名称。 | 字符串形式,取值范围是1~169,不支持空格,区分大小写。当输入的字符串两端使用双引号时,可在字符串中输入空格。 |
使用指南
应用场景
IPv6地址前缀列表可以实现对IPv6地址的过滤。在过滤IPv6地址时,系统会记录下被IPv6地址前缀列表允许和拒绝的IPv6地址前缀数量,这个数量可以执行display ip ipv6-prefix命令查看。
如果需要查看某一时段起被IPv6地址前缀列表允许和拒绝的IPv6地址前缀数量,可以先执行reset ip ipv6-prefix命令清除IPv6地址前缀列表的允许和拒绝的统计计数,然后再执行display ip ipv6-prefix命令查看。
配置影响
执行reset ip ipv6-prefix命令后,IPv6地址前缀列表的统计计数被清零,之前的统计信息将无法查看。
注意事项
如果指定IPv6地址前缀列表的名字ipv6-prefix-name,将清除指定IPv6地址前缀列表的统计计数。
- 如果没有指定IPv6地址前缀列表的名字ipv6-prefix-name,将清除所有的IPv6地址前缀列表的统计计数。
reset route-policy counters
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
route-policy-name | 指定Route-Policy的名称。 | 字符串形式,区分大小写,不支持空格,长度范围是1~40。当输入的字符串两端使用双引号时,可在字符串中输入空格。 |
使用指南
应用场景
Route-Policy用于过滤路由信息以及为通过过滤的路由信息设置路由属性。Route-Policy在对路由信息进行过滤时,系统会记录下匹配Route-Policy节点的路由信息的统计计数,这个统计计数可以通过执行display route-policy命令查看。
reset route-policy counters命令可以清零Route-Policy对路由的匹配计数,通过与display route-policy命令配合使用,可以明确指定的Route-Policy是否计数。
配置影响
执行reset route-policy counters命令清零Route-Policy对路由的匹配计数后,该计数将不可恢复。
route-policy
命令格式
route-policy route-policy-name { permit | deny } node node
undo route-policy route-policy-name [ node node ]
参数说明
参数 | 参数说明 | 取值 |
---|---|---|
route-policy-name | 指定Route-Policy名称。如果该名称的路由策略不存在,则创建一个新的路由策略并进入它的Route-Policy视图。如果该名称的路由策略已经存在,则直接进入它的Route-Policy视图。 | 字符串形式,区分大小写,不支持空格,长度范围是1~40。当输入的字符串两端使用双引号时,可在字符串中输入空格。 |
permit | 指定Route-Policy节点的匹配模式为允许。如果路由与节点所有的if-match子句匹配成功,则执行此节点apply子句;否则,进行下一节点。 | - |
deny | 指定Route-Policy节点的匹配模式为拒绝。如果路由与节点所有的if-match子句匹配成功,则该路由将被拒绝通过;否则进行下一节点。 | - |
node node | 指定Route-Policy的节点号。当使用Route-Policy时,node的值小的节点先进行匹配。一个节点匹配成功后,路由将不再匹配其他节点。全部节点匹配失败后,路由将被过滤。 | 整数形式,取值范围是0~65535。 |
使用指南
应用场景
Route-Policy用于过滤路由信息以及为通过过滤的路由信息设置路由属性。一个Route-Policy由多个节点构成。一个节点包括多个if-match和apply子句。if-match子句用来定义该节点的匹配条件,apply子句用来定义通过过滤的路由行为。if-match子句的过滤规则关系是“与”,即该节点的所有if-match子句都必须匹配。Route-Policy节点间的过滤关系是“或”,即只要通过了一个节点的过滤,就可通过该Route-Policy。如果没有通过任何一个节点的过滤,路由信息将无法通过该Route-Policy。
执行过程
当成功创建路由策略后,系统提示“Info: New Sequence of this List !”,并进入该路由策略模式。 当成功删除路由策略后,系统无提示。
注意事项
配置了Route-Policy后,缺省情况下,各个协议立即应用该过滤器进行过滤。如果配置route-policy-change notify-delay命令,则经过一段延迟时间,各个协议才开始应用该过滤器进行过滤。
使用命令display route-policy可查看该过滤器Permit和Deny的路由统计数。
在使用route-policy-name之前,必须通过route-policy命令创建路由策略,否则配置不成功。
如果该route-policy已经被其他命令引用,建议先取消引用该route-policy的配置,再通过undo route-policy命令删除route-policy。
当Route-Policy子句中包含ip-prefix匹配条件时,只对IPv4地址前缀做判断,IPv6地址前缀默认全部通过。如果需要同时过滤IPv6前缀,要再增加if-match子句对ipv6-prefix做过滤。同理,当 Route-Policy子句中包含ip6-prefix匹配条件时,只对IPv6地址前缀做判断,IPv4地址前缀默认全部通过。如果需要同时过滤IPv4前缀,要再增加if-match子句对ip-prefix做过滤。
对于BGP对等体级别和对等体组级别的该配置遵从个体优先的原则,在通过路由策略控制BGP路由发布或接收时,BGP对等体的优先级高于对等体组。
route-policy-change notify-delay
命令功能
route-policy-change notify-delay命令用来控制路由策略变化后RM通知各协议重新应用策略的延迟时间。
undo route-policy-change notify-delay命令用来取消设置,恢复到缺省值。
缺省情况下,没有配置此命令,应用新策略的延迟时间是0秒。
使用指南
系统对路由策略的变化处理规则如下:
当路由策略的相关命令配置变化后,缺省情况下,RM会立即通知协议进行处理。如果不希望路由策略变化通知过快,可以根据实际情况,应用此命令配置延迟等待时间。路由策略将在定时器超时后应用新的策略:
如果在等待时间内路由策略的配置又发生了改变,RM将重置定时器,重新开始计时。
如果新策略被BGP协议使用,那么在route-policy-change notify-delay命令配置的延迟时间内,仍旧可以通过执行命令refresh bgp all,触发BGP协议立即应用新策略。
通过配置该延迟时间,可以控制由以下命令配置的策略:route-policy、ip ip-prefix、ip ipv6-prefix、ip as-path-filter、ip community-filter、ip extcommunity-filter、ip rd-filter以及acl。
route-policy nonexistent-config-check
命令功能
route-policy nonexistent-config-check命令用来控制系统是否严格检查配置命令引用未创建的路由策略。
undo route-policy nonexistent-config-check disable命令用来使能对配置命令引用未创建的路由策略的严格检查。
缺省情况下,系统不允许配置命令引用未创建的路由策略。
命令格式
route-policy nonexistent-config-check { disable | enable }
undo route-policy nonexistent-config-check disable