bgp community nopeer的使用场景
NOPEER:BGP 对等互联中的路由泄露控制
NOPEER 的核心应用场景,是对等互联(Peering)环境下的路由泄露控制。它专门用来让一个网络告诉它的对等体:"我们之间是平等互利的 Peering 关系,我发给你的路由,请不要再转手发给你的其他 Peering 邻居了。"
📡 真实场景:多宿主网络与对等体的路由泄露
想象一个常见的多宿主场景:
某企业或小型 ISP(我们称它为 AS-Customer)为了冗余,同时连接了两家上游提供商:AS-Provider-A 和 AS-Provider-B。
为了做入站流量负载均衡,AS-Customer 可能会把它的一个大网段(比如 10.0.0.0/23)同时通告给两家 Provider,作为"主路由"。同时,它可能会把其中一部分更具体的子网(比如 10.0.1.0/24)只通告给 AS-Provider-A,用来把特定流量引过来。
问题来了:AS-Provider-A 和 AS-Provider-B 之间可能也是 Peering 关系(互相免费交换流量)。如果没有限制,AS-Provider-A 收到 10.0.1.0/24 后,可能会顺手也发给它的 Peering 伙伴 AS-Provider-B。
结果就是,AS-Provider-B 虽然没直接收到这个子网的路由,却从"横向"的 Peering 链接那里拿到了。这就可能导致 AS-Customer 精心设计的流量策略失效,或者让 AS-Provider-B 白白承担了它本不该看到的流量。
🛡️ NOPEER 的解决方式
在这种场景下,AS-Customer 可以在向 AS-Provider-A 通告那条子网路由时,附加上 NOPEER 团体属性。
AS-Provider-A 收到后,根据 RFC 3765 的语义,会执行以下判断:
-
它和 AS-Provider-B 之间是 "Sender Keep All"的 Peering 关系(双方平等,互不转嫁路由策略)。
-
因此,AS-Provider-A 不应该把这条带
NOPEER的路由再通告给 AS-Provider-B。
这样就干净地切断了路由横向泄露的路径,确保 AS-Customer 的流量工程意图只在它直接连接的 Provider 层面生效,而不会扩散到更远的对等体网络中。
💡 一句话总结
NOPEER 是一个由路由起源者(Origin AS)发出的策略标记,用于请求它的对等体(Peer)在向其他对等体转发路由时保持克制,从而防止多宿主环境下的路由意外泄露。
浙公网安备 33010602011771号