用于大规模中心辐射型 VPN 的路由协议

网络工程 路由 虚拟专用网 设计 建筑学
2021-07-06 07:32:37

我正在考虑实施一个基于 linux 的 VPN 设置,其中大约 1200 个远程站点连接到两个冗余数据中心/DC。每个远程站点有 4 个网络,每个 DC 有大约 10 个。VPN 本身是基于 IPsec 的 GRE,但我目前正在努力解决的是最适合使用的路由协议。

  • 每个远程站点只需要知道数据中心的网络是什么,他们不需要知道其他远程站点正在使用的网络。
  • 每个数据中心的网络可能会不时在彼此之间移动,并且会添加新网络(不想每次发生这种情况时都更新 1200 多个站点的静态 ipsec 配置)。
  • DC 需要知道每个远程站点正在使用哪些网络。
  • 当主 DC 死机时,流量应自动路由到备用 DC。
  • 这些远程站点中的大多数都在动态 IP/3G 上,因此站点在一天中频繁启动/关闭几次,并且跨越 1200 个站点,这相当于大量拓扑更改。
  • 目前所需产能约为1200辆,但到明年年底可能会增长到1800-1900辆。
  • 不能使用封闭的解决方案(Cisco 等,还有 EIGRP,即使它现在在技术上是免费的)。

从我对 OSPF 的阅读来看,它似乎不支持站点数量。

我的问题是:

  • 哪种路由协议最适合这种设置?
  • 我应该如何构建它以处理大量站点?
2个回答

在这种情况下,我认为 BGP 可能是您最好的选择。您拥有的尾站数量很快超过了大多数 IGP 的好处。BGP 将允许您实现所有所需的实施要求,例如将尾站点知识限制在主/备用 DC、基于标准的协议、有效处理 5,000 多个不同路由的能力等。

OSPF 仍然是一种选择;我只是不认为这是最好的选择。您始终可以将网络的每个分支设置为完全末节区域,这样区域间路由就不会向下传播到每个站点。然后,您可以在每个站点拥有单独的路由实例,以独立于您的头端处理其网络。

每次 SPF 重新计算都会使您在资源上花费一分钱。这些连接的不稳定程度会影响到这一点,这通常取决于您的时间安排的积极程度。

无论您做出何种决定,BGP 都是为扩展而设计的。当有人说他们正在寻找一种方法来扩展到 7,000 多个网络1 时,BGP 是显而易见的。


1 基于增长到 1,900 个站点 x 每个站点 4 个网络的预测。

Mike,你想做的是推动任何协议实现的极限,所以没有好的答案。OSPF 或 iBGP 都可以工作。我们(您)提出的任何解决方案都必须在路由器处理能力、内存(即成本)、带宽和收敛时间之间进行权衡。例如,您可以将 OSPF 分解为一定数量的区域以减少泛滥,但以内存和 CPU 为代价。

收敛时间很重要,因为您希望网络收敛得越快,所需的 CPU 和带宽就越多。举一个极端的例子,如果您想在一秒或更短的时间内收敛,集线器路由器必须每秒生成、发送、接收和处理 14400 个 hello 数据包 (2 x 4 x 1800),并且您使用大量带宽这样做。这是实际路由流量的补充。对任何路由器都要求很高。

BGP 和(Cisco 的)OSPF 都可以过滤到分支路由器的路由更新,从而减少带宽。但是集线器路由器仍然会在内部生成它们,这会占用大量 CPU 和内存。我不知道你实际上节省了多少。

我将强调@MikePennington 的观点,对于这种规模的网络,您应该真正关注硬件路由器。如果不是针对您的远程站点,那么当然针对集线器——所有处理都在那里进行。