关于在数据中心扩展OSPF,我了解到了什么

2020-08-16 19:57:20

我在亚马逊做了17年的网络工程师。现在我离开了亚马逊,看看这个行业,我正在学习新的东西。我最近学到的一件事是,由于规模的原因,OSPF不应该用于Clos叶主干网络。我听说它跟不上现代数据中心网络的规模和规模。Juniper IP Fabric Underlay Network Design and Implementation就是该建议的一个示例。Https://tools.ietf.org/html/rfc7938是在大型CLOS网络中使用eBGP作为路由协议的参考。

这让我感到震惊,因为我们十年前就建立了大型OSPF Clos网络。我们用数百台(甚至数千台)使用OSPF的路由器以这种方式构建网络。我不是说这很容易,也不是说我们不需要很好地理解OSPF;如果你设计得不好,你就会遭受洪灾。但是如果你把它设置好了,它真的工作得很好。它收敛得很快,在失败的情况下不会崩溃。关键是要确保您了解泛洪是如何工作的,并将重点放在区域和总结上。在使用BGP和OSPF设计Clos网络时,您需要注意不同的事项。使用BGP,您必须弄清楚如何减轻路径搜索。OSPF需要研究如何避免拥塞崩溃。

还有为这些大型CLO或类似CLO的网络(如https://datatracker.ietf.org/wg/rift/documents/.)构建新协议的工作。我不明白为什么OSPF或ISIS不够好,所以我不明白为什么它们是必要的。Rift有一些好的想法,我只是还没有看到使用它的理由。

当我们这样做时,我们使用的是2003年的CPU,我们使用的是一个鲜为人知的OSPF堆栈。它的OSPF实现还可以,但是开发人员强烈警告我们不要使用他们的BGP实现。我们必须了解并降低风险。我们必须尽可能地对其进行测试,并且在第一次部署时非常小心。这个堆栈以前从未进行过这样的战斗测试。我们仍然遇到了一些可怕的性能问题,但我们在协议栈上与优秀的软件工程师一起工作,以解决问题并计算出我们的规模。

其他人同意我的观点,https://www.youtube.com/watch?v=Qmvg2mnbcPg,,尽管他们主要关注的是比我工作时更小的网络。但无论哪种方式,OSPF都可以在非常大(或很小)的Clos网络上正常工作。

作为扩展的示例,这是一个通用的24端口3层CLO。使OSPF在这方面发挥作用是可能的。这比我们在2012年的工作规模要小。

为了了解并降低未知OSPF堆栈的大规模风险,我开始构建配置管理系统,并开始模拟我们的网络设计。我们需要了解任何OSPF协议栈是如何工作的。我们能让协议变得更具规模吗?我们需要看看真正的OSPF实施会发生什么情况。我再怎么强调这个模拟的重要性也不为过。我们不了解洪水问题,也不了解解决方案,直到我们在模拟中进行了试验。

在此之前,我们在白板上花了很多时间讨论拓扑和OSPF。我认为白板是目前可用的最重要的网络设计工具,这让我很难过。我希望那不是真的,我想要更好的工具。我甚至不能告诉你2-3个伟大的网络工程师在白板上争论避免了多少灾难。这真的很有效,但也有一些重要的原因不够好。其中之一是,对于许多这样的讨论,要获得数据来做出决定是极其困难的。在这种情况下,需要将3层Clos中的收敛时间和故障检测与eBGP、iBGP和OSPF进行比较,但我们没有该功能。

在密集的网状网络(如Clos网络)中,围绕OSPF的担忧围绕四个主要问题展开:泛洪的影响、链路状态数据库的大小、SPF计算的速度以及OSPF承载大量前缀的能力。我们担心的是OSPF的伸缩性(w.r.t.)。它的泛洪,链路状态数据库协议的泛洪是昂贵的,而不是最短路径优先(SPF)计算。这意味着你必须非常小心什么是被淹没的,哪些是区域,以及事情是如何总结的。我不明白这一点,直到我有了一个模拟,我可以尝试有区域或没有区域的东西,效果是戏剧性的。我认为通常情况下,设计中有一部分是你不理解的,这是做仿真的主要原因之一。我们没有能力建立一个像我们将要建设的那样大的网络,所以模拟是至关重要的。我甚至无法想象如果没有它我们会做什么。基于模拟,我们为真实硬件创建了有针对性的测试,以了解它将如何处理规模。

本文的重点不是OSPF比BGP更好,而是它确实可以在非常大的Clos网络中工作。我感到沮丧的是,这个行业的这么多人在没有很好的数据或分析的情况下,仅仅遵循一套观点和设计选择就走上了一个方向。我希望有一些简单的方法让人们能够设计、模拟和测试像这样的不同设计,这样他们就可以自己决定他们想要做的权衡,而不是依赖于某种类型的行业炒作。需要有一种更好的方法来描述拓扑和设计,这样才能真正容易地尝试不同的想法。

如果您有其他考虑因素,比如您想运行IPv6或EVPN,那么eBGP的单个实例(如开源路由套件FRR所普及的实例)可能是最简单或最优雅的。但是,如果设计得当,规模并不是使用BGP而不是OSPF的原因。如果您运行的是小型Clos网络,并且没有IPv6或EVPN,则OSPF更简单,通常速度更快,这是BGP在数据中心出现之前的常见做法。

无论如何,您都需要了解您正在做出的选择,并了解其中的权衡。这很难做到,尤其是在网络领域,因为我们缺乏设计模式和好的工具来帮助我们理解我们选择的含义。

如果有人知道工具或设计模式,甚至有人在Clos网络中实际比较了OSPF和BGP的数据,我很想听听。