摘要
- RFC 1997 要求理解 community 的 BGP speaker 不得把带
NO_EXPORT的路由通告到联盟边界之外;这个值不会认证发送者,也不会证明前缀授权。 - 它位于可由本地策略修改的 optional transitive 属性中。RFC 8642 记录了不同平台对相似 community 重写命令的处理差异。
- 可信边界必须沿路验证:发送、接收、策略转换与各出口通告缺一不可,前缀过滤和关系过滤也不能由一个标签替代。
设想一家网络在私有互联上公布一个更具体前缀,希望邻居在内部使用,却不希望它进入更广泛的互联网。发送方加上 NO_EXPORT。此刻被证明的只有自身出口策略;邻居是否兑现边界,还取决于另一套独立系统。
RFC 1997 引入 COMMUNITIES,是为了把具有共同属性的目的地归组,减少仅靠前缀和 AS_PATH 维护策略的复杂度。这个属性是 optional、transitive,并由四字节值组成。“transitive”描述属性如何随 BGP 传播,并不等于允许带 NO_EXPORT 的路由继续对外传播。
标准给出的边界很具体:NO_EXPORT 路由不得越过 BGP confederation 边界;不属于联盟的独立 AS 在此规则下视为自己的联盟。NO_ADVERTISE 更窄,禁止向任何其他 BGP peer 通告。NO_EXPORT_SUBCONFED 连联盟内部其他 member AS 也纳入外部 peer 范围。IANA 登记数值,RFC 规定行为。
共同词汇降低了协调成本。发送方无需知道接收方使用哪一种厂商语法。但 RFC 1997 同时允许接收方依据本地策略添加或修改 communities。协议没有把远程命令塞进邻居路由器;它只让一个请求能被双方识别。
RFC 8642 解释了这道边界为何会悄然失效。不同实现中的 set community 曾有不同语义:有的删除包括 well-known 值在内的全部 community,有的保留部分特殊值,有的并不移除现有集合。看起来相同的配置审查,可能产生相反的出站结果。
因此,配置文件不是最终证据。一条 route-map 可能在添加商业标签时顺手抹掉 NO_EXPORT;IPv4 与 IPv6 可能经过不同策略链;保存成功也不证明运行进程已经加载。争议必须由最终路由状态裁决。
RFC 8642 要求新的实现不得继续制造差异,这能收窄未来的不确定性,却不能重写已经部署的软件与继承配置。升级前后仍要用受控前缀比较实际属性。
RFC 7454 提供了更细的信任设计。网络应清理邻居无权使用的本方命名空间 community,通常保留其他收到的值,尤其不应无故删除 NO_EXPORT。全部保留会让外部主体猜中私有动作;全部删除又会破坏合法范围信号。正确做法是为每类关系明确授权。
NO_EXPORT 没有签名,也没有历史证明。它不能说明谁最先添加了值,不能证明前缀起源有效,也不能证明商务合同接受这项请求。RPKI 起源验证与 community 传播范围回答的是不同问题;一个为真,不会使另一个自动成立。
RFC 7908 把 route leak 定义为路由超出预期范围传播,范围通常分散在多家 AS 的本地策略与 provider、customer、peer 关系中。许多泄漏根本没有 NO_EXPORT。精确前缀过滤、客户锥关系和出口策略仍是独立控制面。
RFC 9234 给出更强的对照。相邻双方可以在 OPEN 中确认 BGP Role,再用 Only to Customer 属性携带关系相关状态,以阻止或识别特定泄漏。这是在弥补单方面标签无法核对邻居关系的缺口。
即便如此,权力仍然分布。strict mode 可以因角色不匹配拒绝会话,但软件升级后也可能造成连接中断。路径中的 AS 仍可故意移除 OTC。协议让关系更可机器读取,并没有制造中央执法或普遍密码学保证。
验证应从发送方 Adj-RIB-Out 开始:记录确切 NLRI、地址族、peer、策略前后的属性。随后检查接收方的原始收到路由与 import 后状态,再查看每一个可能越界的出口通告。
单一公共 route collector 的“没有看到”不是全局证明。它只看见自己的会话。可靠测试需要 canary 前缀、已知 peer、多观察点或双边证据。分别带与不带 NO_EXPORT 通告,确认内部仍可用、外部确实不可见,并验证撤回后的清理。
自动化应比较路由结果,而不是只比较配置文本。受保护 community 在重写后消失、关系矩阵与 Adj-RIB-Out 不一致、例外超过期限,都应触发阻断。发生泄漏时,实际发出 UPDATE 的网络必须保留本地止损手段:明确前缀过滤、定向撤回或限制出口。
Heng Lu 的最小初始规范原则恰好解释这项设计。共同层只提供简洁词汇与明确默认边界;例外、内部架构与风险容忍留给承担损失的人。Running-code primacy 则规定验收:RFC 和提交记录是意图,正在发送的 UPDATE 才是系统。
NO_EXPORT 的价值来自克制。它让网络无需交出路由器控制权也能表达范围。它的名字不会自动锁住路由;只有每个自治控制点选择、执行并证明这项边界,请求才会成为现实。
Sources
会员简报
档案背景详情
使用相应会员等级登录,即可解锁完整简报与来源注释。
仅限 Strategic Circle
Strategic Circle
所有读者均可浏览。加入并登录后可解锁档案简报。
加入 Strategic Circle仅限 Leadership Alliance
Leadership Alliance
符合条件的 IP 资产所有者和管理层可登录查看 Leadership Alliance 简报。
加入 Leadership Alliance
