跨城域以太网部署 OSPF 是否有意义?

网络工程 ospf 城域网
2021-07-17 13:58:51

当我需要为客户将多个分支站点相互连接时,我通常建议通过受信任的运营商使用 MPLS VPN。每个站点的 CE 与其上游 PE 使用 BGP,每个站点都用自己的私有 ASN 编号。这对我们来说非常方便,因为 BGP 提供了无数的流量工程工具,并且我们的邻接关系仅限于 n 个站点的 n+1(+1 是我们的 colo 环境)。

然而,最近,我注意到客户对城域以太网解决方案的兴趣越来越大。我们的许多客户在一个共同的都市区内设有分支机构,对于相同速度的电路,MetroE 的报价比 MPLS 服务低数百美元 (USD)。虽然这很吸引人,但我不确定如何最好地在第二层骨干网上建立路由,同时避免将网状拓扑转变为中心辐射型。

BGP 将需要分支站点之间的全网状邻接以维持网状连接,从可扩展性的角度来看,这显然是不可取的。另一种选择是部署 IGP,即 OSPF,并让所有站点通过 WAN 形成邻接关系。我想将每个站点都作为自己的区域来处理,这似乎有点矫枉过正,但我​​想保留汇总从每个站点发布的路线的能力,而这只能在区域边界上完成。

这有意义吗?以这种方式部署 OSPF 时是否有任何需要注意的注意事项(例如,我是否应该考虑禁用 LSA 泛洪)?还是我忽略了另一个解决方案?

4个回答

这是一个复杂的问题,因为两种不同的产品非常不同。MPLS L3VPN 电路本质上是所有参与位置之间的全网状网络,而 MetroE 连接通常是两个特定站点之间的点对点链路。

根据我的经验,MetroE 电路是直接提供的路径,没有保护服务,除非与保护路径签约。这意味着沿特定路径的接口或路由器的故障将导致由 MetroE 服务直接链接的两个站点之间的流量中断。MPLS L3VPN 将修复接口/路由故障,让您在站点之间保持全网状。这通常解释了两者之间的价格差异。

在 MetroE 平台之上构建您自己的服务并没有错——您只需要根据客户的要求来确定哪种类型的路由是合适的。如果您使用的是小型办公网络,OSPF/IS-IS/EIGRP 可能是在您建立的直连站点之间交换路由信息的绝佳方式。如果您更像是一个 NSP/ISP/*SP,那么随着您的扩展,在 IGP 和 EGP 之间分离基础设施和客户路由变得更加重要。

作为一名 ISP 工程师,我们广泛使用 MetroE 和 EWAN 链接来构建我们的主干网,并利用我们的物理链接知识来设计我们的 iBGP/eBGP 环境。在许多情况下,我们使用路由反射器和双路由反射器(对等端的路由-反射器-客户端)来减少我们的 iBGP 对等体数量。但是,除非您在 POP 中处理 6 个以上的路由器,否则 iBGP 的扩展性非常好。

简而言之——如果它是针对单个客户端的,那就是不向他们自己的客户端提供网络服务——坚持使用 IGP。如果需要在站点之间共享外部连接,具有故障转移/冗余等,请仔细检查您拥有的物理路径,并设计您的 eBGP/iBGP 以反映这一点。在远程位置拥有一个路由器,在站点外只有 1 个链接到与 AS 中所有其他路由器的 iBGP 对等体,这毫无意义——使用双路由反射器。

从托管 L3VPN(我假设您所说的“MPLS VPN”)切换到 L2VPN 是一个很好的进步,因为您可以运行非 IP 协议,并完全控制定义您的路由的路由协议和路由平台拓扑。

假设您在每个站点的 CPE 端只放置一个以太网 MAC 地址,对于提供商的设备来说,每个站点学习和转发 1 个 MAC 地址要比每个站点学习和路由潜在的许多子网简单得多。

在协议方面,如果没有更多信息,这是一个有点棘手的问题,因为最佳选择取决于您的流量和增长计划。

这只是一个需要内部和互联网连接的大客户,还是也销售连接?假设所有这些都是内部的,那么您将只部署一个 IGP 并且可能运行一些 eBGP 来宣布路径。

如果您没有很多站点或内部前缀,那么像 OSPF 或 IS-IS 这样的链路状态协议是最有意义的,因为如果只有几个前缀,它会快速收敛并且可以从 RIB 快速构建 FIB .

如果您将有许多站点或许多前缀,这将开始对您的路由平台征税,因为它们每个都需要处理每个。这是开始需要 n 2次的事情如果您的站点经常出现故障,这种链接状态的流失也会开始加重您的路由器池的负担。

如果您要拥有许多站点、许多末节站点(一条路径“上游”,没有其他下游路由器)或大量路由流失,您将需要研究其他协议或拓扑。

在这种情况下,我建议将 BGP 与一些路由反射器一起使用。通过这种方式,您可以提供 2 个以上的重载路由反射器,这些路由反射器将辐条通告到其中,其他辐条可以从中获取路由表。通过这种方式,您可以在您的多个分支站点部署轻量级 CPE,这些站点只需连接、宣布它们的空间并获得内部表或到路由器的默认路由。

大约,我会建议一些规模和装备(并假设亚千兆吞吐量):

  • 1 - 20 个辐条——所有站点之间的 OSPFv3。适用于所有站点的瞻博网络 SRX240 或类似产品。
  • 20 - 100 个辐条——带有路由反射器的 iBGP。Juniper SRX240 在辐条中,Juniper MX5/10/40/80 用于路由反射(或 Debian Linux/BIRD)。
  • 100 - 500 个辐条——开始将它们分成不同的 L2 网络、AS 或区域

只是在 BGP 讨论中添加两个经常被忽视的位:

  • 如果您运行 iBGP,您通常需要另一个路由协议来建立 BGP 下一跳之间的连接。从设计的角度来看,iBGP 与其说是路由协议,不如说是一种可扩展性工具;
  • 如果您运行 eBGP,则不需要全网状 BGP 会话来实现最佳端到端流量;BGP 下一跳处理很好地解决了这些问题。

有关更多详细信息,请参阅http://blog.ioshints.info/2011/08/bgp-next-hop-processing.html

您可以在多点城域以太网服务上很好地运行 OSPF(或其他 IGP),它应该可以很好地工作。

可能有继续运行 BGP 的理由,但是……尽管它们与您可能希望在自己的网络中运行 BGP 的原因大致相同。

您不必将所有 BGP 扬声器都放在像这样的“广播”网络上的同一个 AS 中。将其视为一种由电信运营的内部 IXP,您的私有 AS 可以通过第 2 层网格相互互连。您甚至不必维护 BGP 对等互连的全网状网络,因为 BGP 更新可以在其更新消息中携带与对等会话来源不同的下一跳。

因此,例如,如果您有一个带有路由器 A、B 和 C 的第 2 层网格,并且您在 A 和 B 之间以及 B 和 C 之间有 BGP 对等体,当 C 获取源自 A 的路由的更新时,它将将 A 作为下一跳,即使它们是通过与 B 的对等会话学习的。显然,您需要更多的路由对等,而不仅仅是单个中心辐射,因此您不依赖于单个集线器,但是您无论如何都不需要完整的网格。

如果您这样做,您仍然可以获得运行 BGP 的所有路由策略优势……而且正如另一位受访者提到的那样,它还可以使用相同的私有 AS 编号空间,甚至可以与现有的 L3VPN 互连,因此您的模型和支持机制不需要改变。

话虽如此,我有几个 Metro-E 链路(在我的情况下是点对点),我运行 OSPF 和 iBGP 并且它工作得很好。