是否有任何方法可以在配置了 OSPF 的两条链路上对流量进行负载平衡

网络工程 网络
2022-02-18 22:08:20

分支网通过两条不同带宽的点对点专线与DC相连。我希望两个链接都处于活动 - 活动模式。如何在主动-主动模式下使用这两个链路,我们使用 OSPF 作为路由协议..

3个回答

尝试负载平衡时有几点需要考虑。

至少对于 Cisco 路由器,您可以选择按流负载平衡,其中第一个数据流将仅使用一个链接,下一个数据流将使用下一个链接,流在两者之间交替;以及每个 ip 数据包使用不同链接的每个数据包负载平衡。

正如@ronmaupin 在评论中解释的那样,每个数据包的负载平衡会导致很多问题。

您可以按流进行(路由器上的默认设置),但仍然存在问题:

  1. 由于流的所有数据包都采用相同的路径,因此如果该流超过链路的带宽,您将丢弃数据包。换句话说,单个流的可用带宽不超过单​​个链路的带宽。由于您不知道将选择哪个链接,因此您必须假设它可能是较慢的链接。
  2. 如果流通过一个链路(例如较慢的链路)发送,即使另一链路上有足够的带宽,该链路也可能饱和。
  3. Cisco 路由器上的 OSPF 只能进行等价负载平衡,其中流量在链路之间平均交替)。对于不同带宽的链接,您不希望这样。EIGRP 协议可以做比例负载均衡,但是设置起来有点复杂。
  4. 您必须考虑流量双向流动。每个路由器独立决定使用哪个链路。站点 A 的路由器可能会选择快速链路将流量发送到站点 B,但 B 路由器可能会选择较慢的链路来返回流量。根据具体情况,这可能是一个问题。

正如 Ron Maupin 在评论中所解释的,执行等价多路径路由 (ECMP),尤其是在不同带宽的情况下,可能会导致问题。

(但它受到一些 OSPF 实施的支持,包括 Cisco 之一。)

您可以做的是使用基于策略的路由 (PBR) 让某种流量通过一个链接路由,而其他流量通过第二个链接路由,并带有回退。

要使用路由协议执行此操作,您可能需要某种 VRF。

执行此操作的确切方法在很大程度上取决于所用路由器上可用的功能。

默认情况下,OSPF 不支持对具有不同带宽的多条链路上的流量进行不等价负载平衡。但是要使流量在不同带宽的两条不同链路之间分配,使它们相等的成本负载平衡,如果两个点的成本相等,那么 OSFP 可以在这两条链路上分配和负载平衡流量,您可以使用此命令 ip ospf cost 命令完成此任务

router(config)# ip ospf cost "value"

为每个接口手动配置成本指标。此命令会覆盖您在路由器配置模式下使用 reference-bandwidth 命令设置的任何参考带宽设置。