更新时间:2023-11-10 GMT+08:00

IP地址前缀列表概述

IP地址前缀列表简介

IP地址前缀列表是一种包含一组路由信息过滤规则的过滤器,用户可以在规则中定义IP地址前缀和掩码长度范围,用于匹配路由信息的目的网段地址或下一跳地址。地址前缀列表可以应用在各种动态路由协议中,对路由协议发布和接收的路由信息进行过滤。IP地址前缀列表进行匹配的依据有两个:
  • 掩码长度:IP地址前缀列表匹配的对象是IP地址前缀,前缀由IP地址和掩码长度共同定义。

    例如,10.1.0.0/16这条路由,掩码长度是16,这个地址的有效前缀为16位,即10.1.0.0。

  • 掩码长度范围:对于前缀相同,掩码不同的路由,可以指定待匹配的前缀掩码长度范围来实现精确匹配或者在一定掩码长度范围内匹配。

IP地址前缀列表当前支持IPv4地址。

IP地址前缀匹配规则

一个IP地址前缀列表中可以创建多个IP地址前缀规则,每个IP地址前缀规则对应一条过滤规则。如图1所示,待过滤路由按照序列号从小到大的顺序进行匹配:
  • 当匹配上某一前缀规则时,如果该前缀规则的匹配模式是允许,则这条路由被允许通过;如果该前缀规则的匹配模式是拒绝,则这条路由被拒绝通过。
  • 当遍历了IP地址前缀列表中的所有前缀规则,均没有匹配上,那么这条路由就被拒绝通过。
图1 IP地址前缀匹配规则

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

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

IP地址前缀中的掩码匹配规则

IP地址前缀规则中包含“IP地址前缀”“掩码下限”“掩码上限”,规则中参数的详细说明请参见表1

表1 IP地址前缀规则中的参数说明

参数

说明

IP地址前缀

IP地址前缀由IP地址和掩码组成,格式为“IP地址/掩码”,例如10.1.0.0/16。

在IP地址前缀中,通过掩码长度,限定待匹配IP地址的前多少位需要和IP地址前缀严格匹配。

  • 掩码下限
  • 掩码上限

当待过滤的路由已匹配现有的前缀规则时,指定掩码下限和掩码上限,可以在一定掩码长度范围内进行匹配。

  • 掩码下限不能低于IP地址前缀中的掩码长度,比如IP地址前缀的掩码为16,则掩码下限大于等于16,比如18。
  • 掩码上限不能低于掩码下限,比如掩码下限为18,则掩码上限大于等于18,小于等于32,比如20。
您可以根据实际需求灵活配置掩码下限和掩码上限,匹配原则如下:
  • 如果不配置掩码下限和掩码上限,则进行精确匹配,即只匹配掩码长度为IP地址前缀中配置的掩码长度。
  • 如果配置掩码下限,不配置掩码上限,则匹配掩码长度位于[掩码下限,32]范围内的路由。
  • 如果配置掩码上限,不配置掩码下限,则匹配掩码长度位于[掩码长度,掩码上限]范围内的路由。
  • 如果同时配置掩码下限和掩码上限,则匹配的掩码长度位于[掩码下限,掩码上限]范围内的路由。

IP地址前缀规则和IP地址匹配的示例请参见表2。相比示例一的规则未配置掩码下限和掩码上限,其他示例的规则配置了掩码下限或掩码上限,缩小了掩码范围,可以更精确的匹配。

表2 IP地址前缀规则匹配示例

IP地址前缀规则配置情况

匹配原则说明

允许通过的IP地址示例

拒绝通过的IP地址示例

示例一:
  • 匹配原则:允许
  • IP地址前缀:10.0.0.0/16
  • 掩码下限:未配置
  • 掩码上限:未配置
路由地址必须同时满足以下两个条件,才算匹配成功:
  • IP地址的前16位可以匹配
  • 掩码范围为16

IP的前16位和掩码范围均可匹配上,允许通过:10.0.0.0/16

  • 以下IP地址的前16位可匹配上,但是掩码范围未匹配上,拒绝通过:
    • 10.0.0.0/8
    • 10.0.1.0/24
    • 10.0.253.25/32
  • IP地址掩码范围可匹配上,但是前16位未匹配上,拒绝通过:10.1.0.0/16

示例二:

  • 匹配原则:允许
  • IP地址前缀:10.0.0.0/16
  • 掩码下限:18
  • 掩码上限:未配置

路由地址必须同时满足以下两个条件,才算匹配成功:

  • IP地址的前16位可以匹配
  • 掩码范围为[18,32]

以下IP的前16位和掩码范围均可匹配上,允许通过:

  • 10.0.1.0/24
  • 10.0.253.25/32
  • IP地址的前16位可匹配上,但是掩码范围未匹配上,拒绝通过:
    • 10.0.0.0/8
    • 10.0.0.0/16
  • IP地址掩码范围可匹配上,但是前16位未匹配上,拒绝通过:10.1.0.0/20

示例三:

  • 匹配原则:允许
  • IP地址前缀:10.0.0.0/16
  • 掩码下限:未配置
  • 掩码上限:24

路由地址必须同时满足以下两个条件,才算匹配成功:

  • IP地址的前16位可以匹配
  • 掩码范围为[16,24]

以下IP的前16位和掩码范围均可匹配上,允许通过:

  • 10.0.0.0/16
  • 10.0.0.0/20
  • 10.0.1.0/24
  • IP地址的前16位可匹配上,但是掩码范围未匹配上,拒绝通过:
    • 10.0.0.0/8
    • 10.0.253.25/32
  • IP地址掩码范围可匹配上,但是前16位未匹配上,拒绝通过:10.1.0.0/20
示例四:
  • 匹配原则:允许
  • IP地址前缀:10.0.0.0/16
  • 掩码下限:18
  • 掩码上限:24
路由地址必须同时满足以下两个条件,才算匹配成功:
  • IP地址的前16位可以匹配
  • 掩码范围为[18,24]
以下IP的前16位和掩码范围均可匹配上,允许通过:
  • 10.0.0.0/20
  • 10.0.1.0/24
  • 以下IP地址的前16位可匹配上,但是掩码范围未匹配上,拒绝通过:
    • 10.0.0.0/8
    • 10.0.0.0/16
    • 10.0.253.25/32
  • IP地址掩码范围可匹配上,但是前16位未匹配上,拒绝通过:10.1.0.0/20

全0(0.0.0.0)为通配地址。当IP地址为全0时,可以在其后指定掩码长度或者掩码长度范围:

  • 指定掩码长度,则表示具有该掩码长度的所有路由都被允许通过或拒绝通过。
  • 指定掩码长度范围,即设置掩码下限和掩码上限,则表示该掩码长度范围内的所有路由都被允许通过或拒绝通过。

通配地址匹配路由原则详细说明请参见表3

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

掩码下限和掩码上限配置情况

IP地址前缀

匹配原则

  • 掩码下限:未配置
  • 掩码上限:未配置

IP地址前缀:0.0.0.0/0

只可以匹配缺省路由,即0.0.0.0/0

示例:只有0.0.0.0/0路由被允许通过或拒绝通过。

IP地址前缀:0.0.0.0/X,此处掩码长度X不为0

匹配掩码长度为X的所有路由。

示例:掩码长度X为8,则所有掩码长度为8的路由将被允许通过或拒绝通过。

  • 掩码下限:配置
  • 掩码上限:未配置

IP地址前缀:0.0.0.0/0

匹配掩码长度位于[掩码下限,32]范围内的所有路由。

示例:掩码下限为20,则掩码长度范围满足[20,32]的所有路由将被允许通过或拒绝通过。

IP地址前缀:0.0.0.0/X,此处掩码长度X不为0

匹配掩码长度位于[掩码下限,32]范围内的所有路由。

示例:掩码长度X为8,掩码下限为20,则掩码长度范围满足[20,32]的所有路由将被允许通过或拒绝通过。

  • 掩码下限:未配置
  • 掩码上限:配置

IP地址前缀:0.0.0.0/0

匹配掩码长度位于[0,掩码上限]范围内的所有路由。

示例:掩码上限为28,则掩码长度范围满足[0,28]的所有路由将被允许通过或拒绝通过。

IP地址前缀:0.0.0.0/X,此处掩码长度X不为0

匹配掩码长度位于[X,掩码上限]范围内的所有路由。

示例:掩码长度X为8,掩码上限为28,则掩码长度范围满足[8,28]的所有路由将被允许通过或拒绝通过。

  • 掩码下限:配置
  • 掩码上限:配置

IP地址前缀:0.0.0.0/0

匹配掩码长度位于[掩码下限,掩码上限]范围内的所有路由。

示例:掩码下限为20,掩码上限为28,则掩码长度范围满足[20,28]的所有路由将被允许通过或拒绝通过。

IP地址前缀:0.0.0.0/X,此处掩码长度X不为0

匹配掩码长度位于[掩码下限,掩码上限]范围内的所有路由。

示例:掩码长度X为8,掩码下限为20,掩码上限为28,则掩码长度范围满足[20,28]的所有路由将被允许通过或拒绝通过。

约束与限制

  • 默认情况下,一个用户最多可创建5个IP地址前缀列表。
  • 默认情况下,一个IP地址前缀列表中最多可创建100个前缀规则。
  • IP地址前缀列表的变更会改变路由的流量走向,因此为了减少变更对网络性能的影响,同一个IP地址前缀列表在40 s内只允许变更一次。