我在几篇论文中发现了“BGP 中毒”和“中毒 AS”的说法,有时它似乎指的是为了实现某件事而完成的事情,有时它被认为是坏事,但从未解释过究竟是什么“BGP 中毒”实际上是.
由于我自己无法找到这个问题的答案,如果您能向我提供您对这个概念的理解,我将不胜感激。
https://arxiv.org/pdf/1811.03716.pdf有说明
概括:
假设路由器 Rdst 想要影响入站流量所采用的路径,例如从路由器 Rsrc 到路由器 Rdst 的流量。
假设从 Rsrc 到 Rdst 的最短路径经过某个中间路由器 Rint。
假设路由器Rdst在自治系统ASdst中,路由器Rsrc是自治系统ASsrc,路由器Rint在自治系统ASint等(见下图)
特别是,路由器 Rdst 希望强制流量不通过路由器 Rint,而是通过一些更长的路由,例如通过一些替代路由器 Ralt1 和 Ralt2(再次参见下图)。
为了实现这一点,路由器 Rdst 在为自己的目标前缀发送 BGP 通告时“毒化”其路由:
它不是通告正常的 AS 路径 (ASdst),而是通告 (ASdst, ASint, ASdst)。
请注意,Rdst 是在“撒谎”:它声称该路径已经通过了 ASint,而实际上并没有。
它还添加了一个额外的 ASdst 以确保 AS 路径中的第一个 AS 看起来仍然正常(= 广告路由器的 AS)。
当 Rint 收到 Rdst 通告的 BGP UPDATE 时,会看到 AS-path 中存在循环,并将 UPDATE 视为撤回。特别是,不要将广告传播到 Rsrc。
另一方面,BGP 通告将从 Rdst 正常传播到 Ralt1,再到 Ralt2 到 Rsrc。
因此,从 Rsrc 的角度来看,唯一剩下的可行路径是 Rsrc -> Ralt2 -> Ralt1 -> Rdst。
Ergo:Rdst 已经实现了强制交通避开 Rint 的目标。
RDST (ASdst) ____/ \_____ / \ Ralt1 (ASalt1) Rint (ASint) | | Ralr2 (ASalt2) | \____ ____/ \ / Rsrc (ASsrc)