ip ip-prefix 地址前缀列表(被各协议使用,也可以与if-match命令配合,作为路由策略的匹配条件。)

ip ip-prefix 地址前缀列表(被各协议使用,也可以与if-match命令配合,作为路由策略的匹配条件。)
命令功能
ip ip-prefix命令用来创建IPv4地址前缀列表或增加其中一个表项。

参数说明:

图片.png

应用场景
地址前缀列表既可以作为前缀过滤器被各协议使用,也可以与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 地址前缀列表匹配示例

ip ip-prefix aa index 10 permit 1.1.1.1 24

ip ip-prefix aa index 10 deny 1.1.1.1 24
ip ip-prefix aa index 10 permit 1.1.1.1 24 less-equal 32
ip ip-prefix aa index 10 permit 1.1.1.0 24 greater-equal 24 less-equal 32

序号

命令

匹配结果

原因解释

Case1

路由1.1.1.1/24 permit,其他都deny。

这种情况属于单节点的精确匹配,只有目的地址,掩码完全相同的路由才会匹配成功,而且节点的匹配模式为permit,所以路由1.1.1.1/24被permit,属于匹配成功并被permit。根据默认拒绝原则,其他路由由于未匹配成功被deny。


Case2

路由全部被deny。

这种情况依然属于单节点的精确匹配,但节点的匹配模式为deny,所以路由1.1.1.1/24被deny,属于匹配成功但被deny。根据默认拒绝原则,其他路由则属于未匹配成功被默认deny。


Case3

路由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

路由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。

表2 通配地址匹配路由原则

是否包含greater-equalless-equal参数

条件

匹配结果

命令举例

处理后的配置中不包含greater-equalless-equal参数。

处理后ipv4-addressmask-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-addressmask-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-addressmask-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-addressmask-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
# 配置名为p3的地址前缀列表,拒绝0.0.0.1~0.255.255.255范围内的所有路由通过,允许其他路由通过。
<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

display ip ip-prefix


1、本站资源长期持续更新。
2、本资源基本为原创,部分来源其他付费资源平台或互联网收集,如有侵权请联系及时处理。
3、本站大部分文章的截图来源实验测试环境,请不要在生产环境中随意模仿,以免带来灾难性后果。

转载请保留出处:  www.zh-cjh.com珠海陈坚浩博客 » ip ip-prefix 地址前缀列表(被各协议使用,也可以与if-match命令配合,作为路由策略的匹配条件。)

作者: cjh


手机扫一扫,手机上查看此文章:

一切源于价值!

其他 模板文件不存在: ./template/plugins/comment/pc/index.htm

未雨绸缪、居安思危!

数据安全、有备无患!

注意操作、数据无价!

一切源于价值!