我对如何使用 Netplan 配置具有两个 NICS 的 Ubuntu 18 服务器有点困惑。每个 NIC 都在一个单独的子网上。它们直接连接到路由器上单独的路由器接口(这是一个 SMB 路由器,因此每个接口都可以配置为不同的子网)。
例如,在我的服务器上,我有两个 NIC,它们的名称如下所示,并包含所需的相应信息:
eth0 - 192.168.2.2/24
gateway - 192.168.2.1
dns - 192.168.2.1
eth1 - 192.168.22.2/24
gateway - 192.168.22.1
dns - 192.168.22.1
我正在玩源路由示例在 netplan.io 上,但这不是我想要的。我不想只通过一个接口路由所有传出流量。我需要能够通过 eth0 的网关路由出 eth0 的流量,并且我需要能够通过 eth1 的网关路由出 eth1 的流量。
我将让路由器通过防火墙规则处理两个子网之间的路由。我只需要 Neplan 与我的两个 NIC 配合使用,并让我设置两个子网,每个子网都有自己的网关信息。有什么想法吗?
答案1
编辑:不幸的是,经过进一步测试后,我自己的答案是错误的。
下面的设置方式仍然会通过 eth1 设备路由所有发往外部 IP(互联网流量)的流量,而这并不是我想要的。我需要分别从每个 NIC 路由流量。因此,如果 eth1 需要连接到互联网,它需要将这些数据包从直接连接到 eth1 的网关发送出去。同样,如果 eth2 需要连接到互联网,那么它也需要将自己的数据包发送到直接连接到 eth2 的网关。
我最终放弃了 Netplan,转而使用标准网络工具(ifconfig 和 /etc/network/interfaces),并设置了我想要的路由表/策略。我再也不会使用 Netplan 了。他们把本来应该很简单的东西弄得太复杂了。我花了好几天时间试图让 Netplan 工作,但最终还是放弃了抽象层的流产。我将我的错误答案留在下方以供记录。
**** 以下答案错误 ****
看起来这似乎有效:
ethernets:
eth0:
addresses:
- 192.168.2.2/24
routes:
- to: 0.0.0.0/0
via: 192.168.2.1
metric: 100
table: 101
routing-policy:
- from: 192.168.2.0/24
table: 101
eth1:
addresses:
- 192.168.22.2/24
gateway4: 192.168.22.1
nameservers:
addresses: [192.168.22.1]
我试图gateway4
为每个 NIC 节列出一个,但从我所读的内容来看,这是不正确的。必须为直接连接到不同网关的其他 NIC/子网设置到 0.0.0.0/0 的静态路由。gateway4
如果这样做,只需要一个列表。
希望这可以为未来的其他人提供帮助(或者当我几年后需要再次设置它但却忘记了它时)。