如何使用 netplan 配置启用了 DHCP 的多个 NIC?

如何使用 netplan 配置启用了 DHCP 的多个 NIC?

我有一台 Ubuntu 18.04 服务器,它有三块网卡,每块都连接到不同的 LAN,每块都从 DHCP 服务器接收网络信息。据我所知,默认情况下,一个接口被设置为默认接口,并将正确路由出站流量,但任何进入非默认接口的入站流量实际上都会被丢弃,因为响应会从不同的接口发出。在我的场景中,我需要能够通过每个接口上的 SSH 访问服务器。

经过大量的挖掘和使用 netplan 后,我最终得到了以下结果:

network:
  version: 2
  renderer: networkd
  ethernets:
    ens192:
      dhcp4: yes
    ens224:
      dhcp4: yes
      dhcp4-overrides:
        use-routes: no
      routes:
        - to: 0.0.0.0/0
          via: 192.168.2.1
          metric: 100
          table: 2
      routing-policy:
        - from: 192.168.2.0/24
          table: 2
    ens256:
      dhcp4: yes
      dhcp4-overrides:
        use-routes: no
      routes:
        - to: 0.0.0.0/0
          via: 192.168.1.1
          metric: 100
          table: 3
      routing-policy:
        - from: 192.168.1.0/24
          table: 3

这似乎很复杂,但确实解决了我最初的问题陈述。我想知道我是否只是忽略了一些显而易见的东西,或者这是否确实是正确的答案。

答案1

您现在使用的配置允许通过每个接口对所有流量进行完整路由,因为您使用的是基于源的路由。如果要求您能够通过 ssh 从任何远程地址到任何本地地址访问计算机,而不管当前哪些网络接口处于开启状态,那么这是目前在 netplan 中表达这一点的最简单方法。

如果您只需要在发生故障时将其用作备份接口ens224,并且只需要它们可以从各自的本地网络访问(并可以访问),那么您可以使用这个简化的配置:ens256ens192

network:
  version: 2
  renderer: networkd
  ethernets:
    ens192:
      dhcp4: yes
    ens224:
      dhcp4: yes
      dhcp4-overrides:
        route-metric: 200
    ens256:
      dhcp4: yes
      dhcp4-overrides:
        route-metric: 200

相关内容