BGP中毒到底是什么?

时间:2019-10-28 14:01:25

标签: routing bgp

我在几篇论文中发现“ BGP中毒”和“中毒的AS”的陈述,有时似乎是指为实现某件事而完成的工作,有时被认为是不好的事情,但从未确切解释“ BGP中毒” ”实际上是。

由于我本人无法找到此问题的答案,因此,如果您能提供我对该概念的理解,将不胜感激。

1 个答案:

答案 0 :(得分:2)

https://arxiv.org/pdf/1811.03716.pdf有描述

摘要:

  • 说路由器Rdst希望影响入站流量所经过的路径,例如从路由器Rsrc到路由器Rdst的流量。

  • 说从Rsrc到Rdst的最短路径经过某个中间路由器Rint。

  • 假设自治系统ASdst中的路由器Rdst,自治系统ASsrc中的路由器Rsrc,自治系统ASint中的路由器Rint等(请参见下图)

  • 特别是,路由器Rdst希望强制流量通过路由器Rint,而是采用更长的路由,例如通过某些备用路由器Ralt1和Ralt2(再次,参见下图。)

  • 为实现此目的,路由器Rdst在发送其自己的目的地前缀的BGP公告时会“毒化”其路由:

    • 它没有广播常规的AS路径(ASdst),而是广播了(ASdst,ASint,ASdst)。

    • 请注意,Rdst在“说谎”:它声称路径已经通过ASint,而实际上并未通过。

    • 它还添加了一个额外的ASdst,以确保AS路径中的第一个AS仍然看起来正常(=广告路由器的AS)。

    • 当Rint收到Rdst通告的BGP UPDATE时,它将看到AS路径中存在一个循环并将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)