ip ip-prefix
命令功能
ip ip-prefix命令用来配置新的地址前缀列表或给已经存在的地址前缀列表增加一个表项。
undo ip ip-prefix命令用来删除整个地址前缀列表或从地址前缀列表中删除一个表项。
缺省情况下,没有配置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 |
掩码长度。 |
- |
match-network |
指定匹配网络地址。match-network参数只有在ipv4-address为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-value的取值限制为:mask-length<=greater-equal-value<=less-equal-value<=32。 |
less-equal less-equal-value |
指定掩码长度匹配范围的上限。 |
参数less-equal-value的取值限制为:mask-length<=greater-equal-value<=less-equal-value<=32。 |
description text |
指定地址前缀列表的描述信息。 |
字符串形式,长度范围是1~80,不支持空格,区分大小写。 |
说明:
地址前缀列表的每个表项都有一个索引号即参数index-number指定的值。在创建表项时,如果不配置索引号,则默认按如下规则处理:
· 新增的索引号取同名列表中上次创建表项的索引号加10,后续以步长10进行增长。
· 当新增的索引号增大到4294967286时,若再创建一个未配置索引号的表项,则由于索引号不能超过4294967295,此时新增的索引号取同名列表中上次创建表项的索引号加1;当索引号以步长为1增长到4294967295时,若再创建一个表项,用户需要手动指定索引号,否则会配置失败。
当待过滤的IPv4路由已匹配当前表项的IPv4地址前缀时,掩码长度可以进行精确匹配或者在一定掩码长度范围内匹配。
· 若不配置greater-equal和less-equal,则进行精确匹配,即只匹配掩码长度为mask-length的IPv4路由。
· 若只配置greater-equal,则匹配的掩码长度范围为[greater-equal-value,32]。
· 若只配置less-equal,则匹配的掩码长度范围为[mask-length,less-equal-value]。
· 若同时配置greater-equal和less-equal,则匹配的掩码长度范围为[greater-equal-value,less-equal-value]。
视图
系统视图
缺省级别
2:配置级
使用指南
应用场景
地址前缀列表既可以作为前缀过滤器被各协议使用,也可以与if-match命令配合,作为路由策略的匹配条件。
地址前缀列表的每个表项都可以视为一条过滤规则,当待过滤路由匹配某一表项时,根据匹配模式即可判断该路由是否能通过地址前缀列表的过滤。地址前缀列表中的表项将按照如下原则与待过滤路由进行匹配:
·
顺序匹配:地址前缀列表的各个表项按索引号从小到大顺序参与匹配。因此在设置表项索引号时,可以安排符合期望的匹配顺序。
·
·
唯一匹配:待过滤路由只要与一个表项匹配,就不再去尝试匹配其他表项。
·
·
默认拒绝:默认所有未与任何一个表项匹配的路由都视为未通过地址前缀列表的过滤。
·
假如现在有如下五条路由: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。下面查看使用不同的地址前缀列表的过滤效果。
表1 地址前缀列表匹配示例 |
|||
序号 |
命令 |
匹配结果 |
原因解释 |
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 24ip 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 32ip 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 24ip 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。 |
配置影响
如果创建一个地址前缀列表名称和索引号都重复而仅仅是匹配内容不同的表项,则该新建的表项将覆盖原有的表项。
注意事项
如果指定ipv4-address mask-length为0.0.0.0 0,则只匹配缺省路由。
如果指定的地址前缀范围为0.0.0.0 0 less-equal 32,则匹配所有路由。
说明:
因为地址前缀列表采用默认拒绝的匹配原则,所以在创建了一个或多个deny模式的表项后,需要创建一个permit 0.0.0.0 0 less-equal 32表项,允许所有其他IPv4路由通过。
后续任务
在对已经使用的路由策略进行修改的场景中,配置地址前缀列表后,缺省情况下路由管理模块会立即通知各协议进行处理,重新应用该路由策略。但是,修改路由策略可能会执行多条命令,为了避免各协议反复重新应用还未修改完的路由策略,在配置完地址前缀列表后,如果还需要配置其他命令才能完成路由策略的修改,可使用route-policy-change notify-delay命令,延迟路由策略重新应用的时间。
使用实例
# 配置名为p1的地址前缀列表,只允许10.0.192.0/8网段内,掩码长度在17到18之间的路由通过。
<sysname> system-view
[sysname] ip ip-prefixp1 permit 10.0.192.0 8 greater-equal 17 less-equal 18
# 配置名为p2的地址前缀列表,只允许掩码长度在17到18之间的路由通过。
<sysname> system-view
[sysname] ip ip-prefixp2 permit 0.0.0.0 0 greater-equal 17 less-equal 18
# 配置名为p3的地址前缀列表,拒绝0.0.0.1~0.255.255.255范围内的所有路由通过,允许其他路由通过。
<sysname> system-view
[sysname] ip ip-prefixp3 index 10 deny 0.0.0.0 8 match-network
[sysname] ip ip-prefixp3 index 20 permit 0.0.0.0 0 less-equal 32
父主题: 路由策略配置命令
相关主题
route-policy-change notify-delay