8. 避免路由信息环路 (Avoiding Routing Information Loops)
当 route 被反射时, 错误配置可能形成 route re-distribution loops. route reflection 方法定义了以下 attributes, 用于检测并避免 routing information loops:
ORIGINATOR_ID
ORIGINATOR_ID 是一个新的 optional, non-transitive BGP attribute, Type code 为 9. 该 attribute 长度为 4 bytes, 由 RR 在反射 route 时创建. 该 attribute 将携带 local AS 中 route 发起者的 BGP Identifier. 如果 ORIGINATOR_ID attribute 已经存在, BGP speaker 不应该创建新的 ORIGINATOR_ID attribute. 能识别 ORIGINATOR_ID attribute 的 router 应该忽略以自身 BGP Identifier 作为 ORIGINATOR_ID 接收的 route.
CLUSTER_LIST
CLUSTER_LIST 是一个新的 optional, non-transitive BGP attribute, Type code 为 10. 它是一个 CLUSTER_ID values 序列, 表示 route 已经过的 reflection path.
当 RR 反射 route 时, 它必须将 local CLUSTER_ID 前置到 CLUSTER_LIST. 如果 CLUSTER_LIST 为空, 它必须创建一个新的 CLUSTER_LIST. 使用该 attribute, RR 可以识别 routing information 是否由于错误配置而回环到同一 cluster. 如果在 CLUSTER_LIST 中发现 local CLUSTER_ID, 则收到的 advertisement 应该被忽略.