概述:

前缀列表,专门用来匹配路由条目,而不是流量,相当于升级版的基础ACL,其不仅可以匹配路由条目目的来源,还可以匹配匹配路由条目的掩码。

ip:prefix 用于过滤甲前缀,能同时匹配前缀号和掩码长度 不能用于数据包过滤 缺省情况下,存在最后一条默认匹配模式为deny 当引用前缀列表不存在时,默认匹配模式为permit

如图所示,待过滤路由按照索引号从小到大的顺序进行匹配:

华为证书编号解读(华为平台前缀列表ip-prefix详解)(1)

地址前缀列表过滤路由的原则可以总结为:顺序匹配、唯一匹配、默认拒绝。

  1. 顺序匹配:按索引号从小到大的顺序进行匹配。同一个地址前缀列表中的多条表项设置不同的索引号,可能会有不同的过滤结果,实际配置时需要注意。
  2. 唯一匹配:待过滤路由只要与一个表项匹配,就不会再去尝试匹配其他表项。
  3. 默认拒绝:默认所有未与任何一个表项匹配的路由都视为未通过地址前缀列表的过滤。因此在一个地址前缀列表中创建了一个或多个deny模式的表项后,需要创建一个表项来允许所有其他路由通过。
ip-prefix语法:

地址前缀列表通过ip ip-prefix命令进行配置,常用格式如下:ip ip-prefix ip-prefix-name [ index index-number ] { permit | deny } ipv4-address mask-length [ greater-equal greater-equal-value ] [ less-equal less-equal-value ]

其中ipv4-address mask-length [ greater-equal greater-equal-value ] [ less-equal less-equal-value ] 用于限定过滤路由的网络号及掩码范围,参数含义如表所示。

参数含义:

  1. ipv4-address:用于指定网络号。
  2. mask-length:用于限定网络号的前多少位需严格匹配。
  3. greater-equal greater-equal-value:可以理解为掩码≥greater-equal-value。
  4. less-equal less-equal-value:可以理解为掩码≤less-equal-value

当待过滤的路由已匹配当前表项的网络号时,掩码长度可以进行精确匹配或者在一定掩码长度范围内匹配:

  1. 若不配置greater-equal和less-equal,则进行精确匹配,即只匹配掩码长度为mask-length的路由。
  2. 若只配置greater-equal,则匹配的掩码长度范围为[greater-equal-value,32]。
  3. 若只配置less-equal,则匹配的掩码长度范围为[mask-length,less-equal-value]。
  4. 若同时配置greater-equal和less-equal,则匹配的掩码长度范围为[greater-equal-value,less-equal-value]。

华为证书编号解读(华为平台前缀列表ip-prefix详解)(2)

前缀列表使用方式:

除了与路由策略等工具配合使用,还可以通过filter-policy配合使用对全局的发布和接收的路由信息过滤(filter-policy可以用ACL或者前缀列表进行匹配):

  1. ip ip-prefix命令通过与下列命令配合使用,可以以地址前缀列表为过滤条件对全局发布的路由信息进行过滤。 filter-policy export(RIP视图下) filter-policy export(OSPF视图下) filter-policy export (IS-IS视图下) filter-policy export(BGP视图下)
  2. ip ip-prefix命令通过与下列命令配合使用,可以以地址前缀列表为过滤条件对全局接收的路由信息进行过滤。 filter-policy import(RIP视图下)filter-policy import(OSPF视图下)filter-policy import(IS-IS视图下)filter-policy import(BGP视图下)
  3. ip ip-prefix命令通过与下列命令配合使用,为特定的对等体配置基于地址前缀列表的过滤器进行路由过滤。peer ip-prefix(BGP)
  4. 在IS-IS协议中,当为了防止次优路径而配置路由渗透时以地址前缀列表为过滤条件控制IS-IS的Level-1路由向Level-2区域进行路由渗透。import-route isis level-1 into level-2 filter-policy ip-prefix ip-prefix-name [ tag tag ]以地址前缀列表为过滤条件控制IS-IS的Level-2路由向Level-1区域进行路由渗透。import-route isis level-2 into level-1 filter-policy ip-prefix ip-prefix-name [ tag tag ]
命令行

# 配置名为p1的地址前缀列表,只允许10.0.192.0/8网段内,掩码长度在17到18之间的路由通过。 <AC6605> system-view [AC6605] ip ip-prefix p1 permit 10.0.192.0 8 greater-equal 17 less-equal 18 # 配置名为p2的地址前缀列表,只允许掩码长度在17到18之间的路由通过。 <AC6605> system-view [AC6605] ip ip-prefix p2 permit 0.0.0.0 0 greater-equal 17 less-equal 18 # 配置名为p3的地址前缀列表,拒绝0.0.0.1~0.255.255.255范围内的所有路由通过,允许其他路由通过。 <AC6605> system-view [AC6605] ip ip-prefix p3 index 10 deny 0.0.0.0 8 match-network [AC6605] ip ip-prefix p3 index 20 permit 0.0.0.0 0 less-equal 32 [SwitchB] ip ip-prefix huawei index 10 permit 192.168.0.0 16 [SwitchB] route-policy RP permit node 10 [SwitchB-route-policy] if-match ip-prefix huawei [SwitchB-route-policy] quit [SwitchB] ospf [SwitchB-ospf-1] import-route static route-policy RP [SwitchB-ospf-1] quit

,