条件语句
条件语句主要用于if和elseif之后,作为路由过滤的条件,下面对条件语句进行分类介绍。
所有条件语句中的参数,可以是具体的数值,可以引用全局变量(引用全局变量的方法为$符号后跟全局变量名),在参数化的过滤策略中也可以是本策略定义的参数。
全局变量不可以在{ 元素, 元素, ... }形式配置的路由属性集合中引用。
对路由的开销值进行过滤
条件语句 |
功能 |
参数解释 |
该条件语句生效的命令 |
---|---|---|---|
med eq med |
匹配MED值等于med的BGP路由。 |
med:整数形式,取值范围是0~4294967295。 |
|
med ge med |
匹配MED值大于等于med的BGP路由。 |
med:整数形式,取值范围是0~4294967295。 |
|
med le med |
匹配MED值小于等于med的BGP路由。 |
med:整数形式,取值范围是0~4294967295。 |
|
{ isis-cost | rip-cost | ospf-cost } eq cost |
匹配开销值等于cost的IS-IS路由/RIP路由/OSPF路由。 |
cost:整数形式,取值范围是0~4294967295。 |
|
{ isis-cost | rip-cost | ospf-cost } ge cost |
匹配开销值大于等于cost的IS-IS路由/RIP路由/OSPF路由。 |
cost:整数形式,取值范围是0~4294967295。 |
|
{ isis-cost | rip-cost | ospf-cost } le cost |
匹配开销值小于等于cost的IS-IS路由/RIP路由/OSPF路由。 |
cost:整数形式,取值范围是0~4294967295。 |
|
rib-cost eq cost |
匹配开销值等于cost的IP路由表中所有路由。 |
cost:整数形式,取值范围是0~4294967295。 |
|
rib-cost ge cost |
匹配开销值大于等于cost的IP路由表中所有路由。 |
cost:整数形式,取值范围是0~4294967295。 |
|
rib-cost le cost |
匹配开销值小于等于cost的IP路由表中所有路由。 |
cost:整数形式,取值范围是0~4294967295。 |
|
preference eq preference |
匹配路由优先级(Preference)值等于preference的路由。 |
preference:整数形式,取值范围是0~255。 |
|
preference le preference |
匹配路由优先级(Preference)值小于等于preference的路由。 |
preference:整数形式,取值范围是0~255。 |
|
preference ge preference |
匹配路由优先级(Preference)值大于等于preference的路由。 |
preference:整数形式,取值范围是0~255。 |
|
对路由的源地址、目的地址或下一跳地址进行过滤
条件语句 |
功能 |
参数解释 |
该条件语句生效的命令 |
---|---|---|---|
ip route-source in { ip-prefix-list-name | ip-prefix-list } |
匹配发布IPv4路由的源地址。 |
ip-prefix-list-name:IPv4地址前缀集合的名称,字符串形式,取值范围是1~200,不支持空格,区分大小写,以字母或者数字开头,由字母、数字、下划线(_)、中横线(-)、点(.)组成。 ip-prefix-list:{ 元素, 元素, ... }形式定义的IPv4地址前缀集合,其中元素为带掩码长度的IPv4地址。例如{ 1.1.1.0 24, 2.2.2.2 32 }。 |
|
ipv6 route-source in { ipv6-prefix-list-name | ipv6-prefix-list } |
匹配发布IPv6路由的源地址。 |
ipv6-prefix-list-name:IPv6地址前缀集合的名称,字符串形式,取值范围是1~200,不支持空格,区分大小写,以字母或者数字开头,由字母、数字、下划线(_)、中横线(-)、点(.)组成。 ipv6-prefix-list:{ 元素, 元素, ... }形式定义的IPv6地址前缀集合,其中元素为带掩码长度的IPv6地址。 |
|
ip route-destination in { ip-prefix-list-name | ip-prefix-list } |
匹配IPv4路由的目的地址。 |
ip-prefix-list-name:IPv4地址前缀集合的名称,字符串形式,取值范围是1~200,不支持空格,区分大小写,以字母或者数字开头,由字母、数字、下划线(_)、中横线(-)、点(.)组成。 ip-prefix-list:{ 元素, 元素, ... }形式定义的IPv4地址前缀集合,其中元素为带掩码长度的IPv4地址。 |
|
ipv6 route-destination in { ipv6-prefix-list-name | ipv6-prefix-list } |
匹配IPv6路由的目的地址。 |
ipv6-prefix-list-name:IPv6地址前缀集合的名称,字符串形式,取值范围是1~200,不支持空格,区分大小写,以字母或者数字开头,由字母、数字、下划线(_)、中横线(-)、点(.)组成。 ipv6-prefix-list:{ 元素, 元素, ... }形式定义的IPv6地址前缀集合,其中元素为带掩码长度的IPv6地址。 |
|
ip next-hop in { ip-prefix-list-name | ip-prefix-list } |
匹配IPv4路由的下一跳地址。 |
ip-prefix-list-name:IPv4地址前缀集合的名称,字符串形式,取值范围是1~200,不支持空格,区分大小写,以字母或者数字开头,由字母、数字、下划线(_)、中横线(-)、点(.)组成。 ip-prefix-list:{ 元素, 元素, ... }形式定义的IPv4地址前缀集合,其中元素为带掩码长度的IPv4地址。 |
|
ipv6 next-hop in { ipv6-prefix-list-name | ipv6-prefix-list } |
匹配IPv6路由的下一跳地址。 |
ipv6-prefix-list-name:IPv6地址前缀集合的名称,字符串形式,取值范围是1~200,不支持空格,区分大小写,以字母或者数字开头,由字母、数字、下划线(_)、中横线(-)、点(.)组成。 ipv6-prefix-list:{ 元素, 元素, ... }形式定义的IPv6地址前缀集合,其中元素为带掩码长度的IPv6地址。 |
|
对OSPF、IS-IS或静态路由的Tag值进行过滤
条件语句 |
功能 |
参数解释 |
该条件语句生效的命令 |
---|---|---|---|
tag eq tag |
匹配路由标记(Tag)值等于tag的路由。 |
tag:整数形式,取值范围是0~4294967295。 |
|
tag ge tag |
匹配路由标记(Tag)值大于等于tag的路由。 |
tag:整数形式,取值范围是0~4294967295。 |
|
tag le tag |
匹配路由标记(Tag)值小于等于tag的BGP路由。 |
tag:整数形式,取值范围是0~4294967295。 |
|
对BGP路由的本地优先级进行过滤
条件语句 |
功能 |
参数解释 |
该条件语句生效的命令 |
---|---|---|---|
local-preference eq preference |
匹配本地优先级(Local-Pref)等于preference的BGP路由。 |
preference:整数形式,取值范围是0~4294967295。 |
|
local-preference ge preference |
匹配本地优先级(Local-Pref)大于等于preference的BGP路由。 |
preference:整数形式,取值范围是0~4294967295。 |
|
local-preference le preference |
匹配本地优先级(Local-Pref)小于等于preference的BGP路由。 |
preference:整数形式,取值范围是0~4294967295。 |
|
对BGP路由的AS列表进行过滤
条件语句 |
功能 |
参数解释 |
该条件语句生效的命令 |
---|---|---|---|
as-path in { as-path-list-name | as-path-list } |
匹配AS_Path列表在AS_Path集合中的BGP路由。 |
as-path-list-name:AS_PATH集合的名称,字符串形式,取值范围是1~200,不支持空格,区分大小写,以字母或者数字开头,由字母、数字、下划线(_)、中横线(-)、点(.)组成。 as-path-list:{ 元素, 元素, ... }形式定义的AS_Path集合,其中元素为regular+正则表达式形式的AS_Path。 |
|
as-path is-none |
匹配AS_Path列表为空,即本地始发的BGP路由。 |
– |
|
as-path origin as-path [ whole-match ] |
匹配AS_Path起始部分为指定AS组合的BGP路由,即AS_Path尾部为指定as-path的BGP路由。 |
as-path:AS_Path列表,两端加单引号,AS号中间用空格分隔。whole-match表示不能去除重复AS号,否则会去除重复AS号予以匹配。 |
|
as-path pass as-path [ whole-match ] |
匹配AS_Path经过指定AS组合的BGP路由,即AS_Path从头部开始匹配,有部分连续AS号可以匹配as-path的BGP路由。 |
as-path:AS_Path列表,两端加单引号,AS号中间用空格分隔。whole-match表示不能去除重复AS号,否则会去除重复AS号予以匹配。 |
|
as-path peer-is as-path [ whole-match ] |
匹配AS_Path结束部分为指定AS组合的BGP路由,即AS_Path头部为指定as-path的BGP路由。 |
as-path:AS_Path列表,两端加单引号,AS号中间用空格分隔。whole-match表示不能去除重复AS号,否则会去除重复AS号予以匹配。 |
|
as-path length { eq | ge | le } as-path-number |
匹配AS_Path长度等于/大于等于/小于等于指定长度的路由。
|
as-path-number:指定的AS_Path长度,整数形式,取值范围是0-2047。 |
|
as-path unique-length { eq | ge | le } as-path-number |
匹配去除重复AS号的AS_Path长度等于/大于等于/小于等于指定长度的路由(重复AS号只计算一次)。
|
as-path-number:指定的AS_Path长度,整数形式,取值范围是0-2047。 |
|
对BGP路由的团体属性进行过滤
条件语句 |
功能 |
参数解释 |
该条件语句生效的命令 |
---|---|---|---|
community matches-any { community-list-name | community-list } |
匹配至少一个团体属性集合中的团体属性元素的BGP路由。 |
community-list-name:团体属性集合名称,字符串形式,取值范围是1~200,不支持空格,区分大小写,以字母或者数字开头,由字母、数字、下划线(_)、中横线(-)、点(.)组成。 community-list:{ 元素, 元素, ... }形式定义的团体属性集合,其中元素为aa:nn、团体号或知名团体属性(internet、no-export-subconfed、no-advertise或no-export)。 |
|
community matches-all { community-list-name | community-list } |
匹配团体属性集合是携带的团体属性的子集的BGP路由。 |
community-list-name:团体属性集合名称,字符串形式,取值范围是1~200,不支持空格,区分大小写,以字母或者数字开头,由字母、数字、下划线(_)、中横线(-)、点(.)组成。 community-list:{ 元素, 元素, ... }形式定义的团体属性集合,其中元素为aa:nn、团体号或知名团体属性(internet、no-export-subconfed、no-advertise或no-export)。 |
|
community matches-within { community-list-name | community-list } |
匹配携带的团体属性是团体属性集合的子集的BGP路由。 |
community-list-name:团体属性集合名称,字符串形式,取值范围是1~200,不支持空格,区分大小写,以字母或者数字开头,由字母、数字、下划线(_)、中横线(-)、点(.)组成。 community-list:{ 元素, 元素, ... }形式定义的团体属性集合,其中元素为aa:nn、团体号或知名团体属性(internet、no-export-subconfed、no-advertise或no-export)。 |
|
community is-none |
匹配团体属性为空的BGP路由。 |
- |
|
对VPN路由的属性进行过滤
条件语句 |
功能 |
参数解释 |
该条件语句生效的命令 |
---|---|---|---|
rd in { rd-list-name | rd-list } |
匹配RD值在RD属性集合中的VPN路由。 |
rd-list-name:RD属性集合名称,字符串形式,取值范围是1~200,不支持空格,区分大小写,以字母或者数字开头,由字母、数字、下划线(_)、中横线(-)、点(.)组成。 rd-list:{ 元素, 元素, ... }形式定义的RD属性集合,元素的取值请参见RD属性集合元素的取值。 |
|
extcommunity rt matches-any { rt-list-name | rt-list } |
匹配携带的RT属性至少一个能匹配扩展团体属性(Route-Target)集合中的元素的VPN路由。 |
rt-list-name:扩展团体属性(Route-Target)集合名称,字符串形式,取值范围是1~200,不支持空格,区分大小写,以字母或者数字开头,由字母、数字、下划线(_)、中横线(-)、点(.)组成。 rt-list:{ 元素, 元素, ... }形式定义的扩展团体属性(Route-Target)集合,元素的取值请参见扩展团体属性(Route-Target)集合元素的取值。 |
|
extcommunity rt matches-all { rt-list-name | rt-list } |
匹配扩展团体属性(Route-Target)集合是携带的RT属性的子集的VPN路由。 |
rt-list-name:扩展团体属性(Route-Target)集合名称,字符串形式,取值范围是1~200,不支持空格,区分大小写,以字母或者数字开头,由字母、数字、下划线(_)、中横线(-)、点(.)组成。 rt-list:{ 元素, 元素, ... }形式定义的扩展团体属性(Route-Target)集合,元素的取值请参见扩展团体属性(Route-Target)集合元素的取值。 |
|
extcommunity rt matches-within { rt-list-name | rt-list } |
匹配携带的RT属性是扩展团体属性(Route-Target)集合的子集的VPN路由。 |
rt-list-name:扩展团体属性(Route-Target)集合名称,字符串形式,取值范围是1~200,不支持空格,区分大小写,以字母或者数字开头,由字母、数字、下划线(_)、中横线(-)、点(.)组成。 rt-list:{ 元素, 元素, ... }形式定义的扩展团体属性(Route-Target)集合,元素的取值请参见扩展团体属性(Route-Target)集合元素的取值。 |
|
extcommunity rt is-none |
匹配RT属性为空的VPN路由。 |
- |
|
extcommunity soo matches-any { soo-list-name | soo-list } |
匹配携带的SoO属性至少一个能匹配扩展团体属性(Site-of-Origin)集合中的元素的VPN路由。 |
soo-list-name:扩展团体属性(Site-of-Origin)集合名称,字符串形式,取值范围是1~200,不支持空格,区分大小写,以字母或者数字开头,由字母、数字、下划线(_)、中横线(-)、点(.)组成。 soo-list:{ 元素, 元素, ... }形式定义的扩展团体属性(Site-of-Origin)集合,元素的取值请参见扩展团体属性(Site-of-Origin)集合元素的取值。 |
|
extcommunity soo matches-all { soo-list-name | soo-list } |
扩展团体属性(Site-of-Origin)集合是携带的SoO属性的子集的VPN路由。 |
soo-list-name:扩展团体属性(Site-of-Origin)集合名称,字符串形式,取值范围是1~200,不支持空格,区分大小写,以字母或者数字开头,由字母、数字、下划线(_)、中横线(-)、点(.)组成。 soo-list:{ 元素, 元素, ... }形式定义的扩展团体属性(Site-of-Origin)集合,元素的取值请参见扩展团体属性(Site-of-Origin)集合元素的取值。 |
|
extcommunity soo matches-within { soo-list-name | soo-list } |
匹配携带的SoO属性是扩展团体属性(Site-of-Origin)集合的子集的VPN路由。 |
soo-list-name:扩展团体属性(Site-of-Origin)集合名称,字符串形式,取值范围是1~200,不支持空格,区分大小写,以字母或者数字开头,由字母、数字、下划线(_)、中横线(-)、点(.)组成。 soo-list:{ 元素, 元素, ... }形式定义的扩展团体属性(Site-of-Origin)集合,元素的取值请参见扩展团体属性(Site-of-Origin)集合元素的取值。 |
|
extcommunity soo is-none |
匹配SoO属性为空的VPN路由。 |
- |
|
对路由的其他属性进行过滤
条件语句 |
功能 |
参数解释 |
该条件语句生效的命令 |
---|---|---|---|
mpls-label exist |
匹配带有MPLS标签的路由。 |
– |
|
origin is origin-type |
匹配指定起源的BGP路由。 |
origin-type:路由起源,有如下几种取值:
|
|
protocol is protocol-type |
匹配指定协议的路由。 |
protocol-type表示协议类型,包括:
|
|
protocol in protocol-type |
匹配指定的多个协议的路由。 |
protocol-type表示协议类型,包括:
|
|
route-type is route-type |
匹配指定路由类型的路由。 |
route-type表示路由类型,包括:
|
|
path-type is path-type |
匹配指定BGP路由的来源。 |
path-type表示BGP路由来源,包括:
|
|
rpki is rpki-type |
匹配路由起源AS验证结果为指定类型的BGP路由。 |
rpki-type有如下三种取值:
|
|
orf-prefix in { ip-prefix-list-name | ip-prefix-list } |
匹配ORF前缀在指定的IPv4地址前缀集合中的BGP路由。 |
ip-prefix-list-name:IPv4地址前缀集合的名称,字符串形式,取值范围是1~200,不支持空格,区分大小写,以字母或者数字开头,由字母、数字、下划线(_)、中横线(-)、点(.)组成。 ip-prefix-list:{ 元素, 元素, ... }形式定义的IPv4地址前缀集合,其中元素为带掩码长度的IPv4地址。 |
无 |
interface in interface-list-name |
匹配出接口,路由的下一跳出接口在配置的出接口列表内。 |
interface-list-name:出接口列表的名称,字符串形式,取值范围是1~64,不支持空格,区分大小写,以字母或者数字开头,由字母、数字、下划线(_)、中横线(-)、点(.)组成。为通过xpl interface-list section-name命令配置的出接口列表。 |
|