跳到主要内容

2. Prefix-to-AS Mapping Database (前缀到 AS 映射数据库)

2. Prefix-to-AS Mapping Database (前缀到 AS 映射数据库)

BGP 发言者将经验证的对象从缓存加载到本地存储. 所加载对象的内容为 (IP 地址, 前缀长度, 最大长度, 起源 AS 编号). 我们将这种本地存储的对象称为 "Validated ROA Payload (经验证的 ROA 载荷)" 或 "VRP".

除 "VRP" 外, 我们还定义若干术语. 使用这些术语时, 首字母大写:

  • Prefix (前缀): (IP 地址, 前缀长度), 按惯例解释 (见 [RFC4632]).

  • Route (路由): 由接收到的 BGP UPDATE 导出的数据, 定义见 [RFC4271] 第 1.1 节. Route 包含一个 Prefix 与一条 AS_PATH, 还可包含用于刻画前缀的其他属性.

  • VRP Prefix: 来自 VRP 的 Prefix.

  • VRP ASN: 来自 VRP 的起源 AS 编号.

  • Route Prefix: 由路由导出的 Prefix.

  • Route Origin ASN (路由起源 AS 编号): 按如下方式从 Route 导出的起源 AS 编号:

    • AS_PATH 的最后一段类型为 AS_SEQUENCE, 则为该段中最右侧的 AS, 或

    • 若该段类型为 AS_CONFED_SEQUENCEAS_CONFED_SET, 或 AS_PATH 为空, 则为该 BGP 发言者自身的 AS 编号, 或

    • AS_PATH 属性的最后一段为任何其他类型, 则为特殊取值 "NONE".

  • Covered (覆盖): 当 VRP 的前缀长度小于或等于 Route 的前缀长度, 且对 VRP 前缀长度所指定的所有位而言 VRP 前缀地址与 Route 前缀地址一致时, 称 Route Prefix 被 VRP Covered. (即 Route 前缀要么与 VRP 前缀相同, 要么比 VRP 前缀更具体.)

  • Matched (匹配): 当 Route Prefix 被该 VRP Covered, Route 前缀长度小于或等于 VRP 的最大长度, 且 Route Origin ASN 等于 VRP ASN 时, 称 Route Prefix 被 VRP Matched.

基于上述定义, 任意给定 BGP Route 将处于以下验证状态之一:

  • NotFound (未找到): 没有 VRP Cover 该 Route Prefix.

  • Valid (有效): 至少有一个 VRP Match 该 Route Prefix.

  • Invalid (无效): 至少有一个 VRP Cover 该 Route Prefix, 但没有任何 VRP Match 它.

我们注意到, 任何 VRP 的 VRP ASN 都不能为 "NONE". 因此, Origin ASN 为 "NONE" 的 Route 无法被任何 VRP Matched. 同样, 任何有效 Route 的 Origin ASN 都不能为零 [AS0]. 因此, ASN 为零的 VRP 无法 Match 任何 Route.

当 BGP 发言者从邻居收到 UPDATE 时, 应该对该 UPDATE 消息中的每条 Route 按上文执行查找. 该查找也应该应用于从其他来源重分布进 BGP 的路由, 例如其他协议或本地定义的 static route (静态路由). 实现可以 (MAY) 提供配置选项以控制对哪些路由应用查找. Route 的验证状态必须 (MUST) 设置为反映查找结果. 实现应将本文所述的验证状态视为 Route 的本地属性或属性. 若未对某 Route 执行验证, 实现应该 (SHOULD) 将此类路由的验证状态初始化为 "NotFound".

验证状态的使用见第 3 节与第 5 节. 除非明确配置如此, 实现绝对不得 (MUST NOT) 仅因验证状态而将路由排除在 Adj-RIB-In 之外或排除在决策过程考虑之外.

我们注意到, 一条 Route 可被多个 VRP Matched 或 Covered. 本程序不规定必须以何种顺序访问 VRP, 但输出的验证状态是完全确定的.