6. Validation Procedure (验证过程)
6. Validation Procedure (验证过程)
从 BGP 对等体接收的在相应 Adj-RIB-In 中被接受的 Flow Specifications 用作路由选择过程的输入。尽管同一 Flow Specification 前缀的两条路由的转发属性可能相同, 但 BGP 仍需要执行其路径选择算法以选择要通告的正确属性集。
BGP Route Selection 过程的第一步 ([RFC4271] 的第 9.1.2 节) 是从选择过程中排除被认为不可行的路由。在 IP 路由信息的上下文中, 此步骤用于验证给定路由的 NEXT_HOP 属性是否可解析。
在 Flow Specification NLRI 的情况下, 该概念可以扩展以允许其他验证过程。
下面描述的验证过程针对通过相同 AFI 但关联的 unicast routing information SAFI 接收的 unicast routes 验证 Flow Specifications:
-
通过 SAFI=133 接收的 Flow Specification 将针对通过 SAFI=1 接收的路由进行验证。
-
通过 SAFI=134 接收的 Flow Specification 将针对通过 SAFI=128 接收的路由进行验证。
在没有显式配置的情况下, 必须验证 Flow Specification NLRI, 使其仅在满足以下所有条件时才被视为可行:
a) Flow Specification 中嵌入了目标前缀组件。
b) Flow Specification 的发起者与 Flow Specification 中嵌入的目标前缀的最佳匹配 unicast route 的发起者匹配 (这是覆盖 Flow Specification 中嵌入的目标前缀的前缀长度尽可能长的 unicast route)。
c) 与 flow 目标前缀相比, 没有从与规则 b 中确定的最佳匹配 unicast route 不同的相邻 AS 接收到的"更具体"的 unicast routes。
但是, 规则 a 可以通过显式配置放宽, 允许不包含目标前缀组件的 Flow Specifications。如果是这种情况, 规则 b 和 c 无效, 必须忽略。
通过 BGP 路由的"发起者", 我们指的是 ORIGINATOR_ID Attribute [RFC4456] 中发起者的地址, 或者如果此路径属性不存在, 则为 BGP 对等体的源 IP 地址。
BGP 实现还必须强制执行通过 External Border Gateway Protocol (eBGP) 接收的路由的 AS_PATH 属性在 AS_PATH 属性的最左侧位置包含相邻 AS。虽然此规则在 BGP 规范中是可选的, 但出于安全原因, 在这里有必要强制执行它。
最佳匹配 unicast route 可能会随时间独立于 Flow Specification NLRI 而改变。因此, 每当 unicast routes 改变时, 必须执行 Flow Specification NLRI 的重新验证。重新验证定义为如上所述重新测试规则 a 到 c。
解释:
基本概念是, 为目标通告最佳 unicast route 的相邻 AS 被允许通告传达更具体或同样具体的目标前缀的 Flow Specification 信息。因此, 只要没有从不同的相邻 AS 接收到会受该 Flow Specification 影响的"更具体"的 unicast routes, Flow Specification 就会成功验证。
相邻 AS 是 Flow Specification 描述的流量的直接目的地。如果它请求丢弃这些流, 则可以满足该请求, 而不必担心它本身代表拒绝服务。其推理是, 这就像下游自治系统正在丢弃流量一样, 将流量传送给它没有任何附加价值。