具有两个上行链路的 Netplan 路由

具有两个上行链路的 Netplan 路由

我们的服务器位于托管数据中心,并且有两条上行链路:一条快速计量连接(用于实时流量)和一条慢速固定费率连接(用于备份等)。我们希望使用 Linux 机器进行路由,并根据本地源子网使用特定的上行链路,这实际上意味着两条不同的默认路由。这应该可以通过单独的路由表来实现,但我还不太能理解它们。

以下是错误的示例 netplan 配置,省略了 VLAN、名称服务器等内容:

network:
  version: 2
  ethernets:
    eth0:
      addresses: [ 5.5.5.2/27 ]
      routes:
        - to: default
          via: 5.5.5.1 # provider edge fast uplink
    eth1:
      addresses: [ 6.6.6.2/27 ]
      routes:
        - to: default
          via: 6.6.6.1 # provider edge cheap uplink
    eth2:
      addresses: [ 10.20.30.1/24 ]
    eth3:
      addresses: [ 10.20.40.1/24 ]

来自子网 10.20.30.0/24 的出站流量应使用快速上行链路,来自 10.20.40.0/24 的流量应使用廉价上行链路。此外,本地子网必须能够相互访问。配置应如何实现这一点?出站流量的 NAT 将通过 iptables 完成。

答案1

回答我自己的问题。解决需求的配置如下所示:

network:
  version: 2
  renderer: networkd
  ethernets:
    eth0:
      addresses: [ 5.5.5.2/27 ]
      routes:
        - to: default
          via: 5.5.5.1 # provider edge fast uplink
    eth1:
      addresses: [ 6.6.6.2/27 ]
      routes:
        - to: default
          via: 6.6.6.1 # provider edge cheap uplink
          metric: 102
          table: 200
    eth2:
      addresses: [ 10.20.30.1/24 ]
      routes:
        - to: 10.20.30.0/24
          table: 200
    eth3:
      addresses: [ 10.20.40.1/24 ]
      routes:
        - to: 10.20.40.0/24
      routing-policy:
        - from: 10.20.40.0/24
          table: 200

笔记:

  • 该解决方案使用两个路由表,默认表(简化路由器本身的网络连接)和表 200。
  • 由于两个私有子网需要能够相互访问,尽管使用不同的路由表,因此每个私有接口/子网都需要将自身添加到其他路由表。

答案2

多个上行链路/提供商的路由: https://lartc.org/howto/lartc.rpdb.multiple-links.html

相关内容