BGP同步

网络工程 路由
2021-07-09 23:34:25

在阅读了有关BGP 中同步问题的文章后,我意识到有一件事我不明白。

http://www.cisco.com/c/dam/en/us/support/docs/ip/border-gateway-protocol-bgp/26634-bgp-toc16.gif

AS300 中的 RTC 发送关于 170.10.0.0 的更新。RTA 和 RTB 运行 iBGP,因此 RTB 获得更新并能够通过下一跳 2.2.2.1 到达 170.10.0.0。请记住,下一跳是通过 iBGP 传送的。为了到达下一跳,RTB 必须将流量发送到 RTE。假设 RTA 尚未将网络 170.10.0.0 重新分配到 IGP。此时,RTE 还不知道 170.10.0.0 甚至存在。如果 RTB 开始向 AS400 通告 RTB 可以到达 170.10.0.0,则从 RTD 到目标为 170.10.0.0 的 RTB 的流量流入并在 RTE 下降。

这难道不是人们使用 BGP 的关键原因吗?OSFP 等 IGP 协议不需要了解来自其他 AS 的数千个不同网络,因为 BGP 路由器会为它们处理这些问题吗?

文章指出,作为 IGP 路由器的 RTE 也应该知道170.10.0.0RTC 通过 BGP 通过 BGP 通告给 RTA。如果 RTC 也通告了其他前缀,那就意味着 RTE(IGP 路由器!!)也必须学习它们,以便 RTB 可以与 AS300 通信。

2个回答

您看到 RTE 的问题是正确的。这显示了理论与实践之间的差异。由于以下几个原因,这不是一个实际问题:

  1. 这是AS作为中转AS的情况。即,AS 100 提供 AS 300 和 400 之间的连接。
  2. 许多 ISP(提供传输)在其所有路由器上运行 BGP,因此 RTE 也将成为 BGP 发言人。
  3. 在许多情况下,同步是关闭的。
  4. 绝大多数 ISP 在其核心中运行 MPLS。这是一种不同于使用 IGP 来通告 AS 内可达性的范式。

归根结底,这不是什么大问题,因为网络设计者已经构建了专门通过 IGP 和 BGP 避免此问题的网络。

问题是 AS100 中的路由器对 2.2.2.0/30 网络一无所知,因此即使它们有到该网络的路由,它们也无法到达 170.10.0.0。

我认为你可以通过四种方式解决这个问题:

  1. 在 AS100 网络中构建全网状 iBGP
  2. 在 AS100 网络中实现路由反射器,并在 RR 和 AS100 中的每个路由器之间建立会话
  3. 使用下一跳自选项
  4. 在 AS100 内使用 MPLS