我有一台 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
,并且只需要它们可以从各自的本地网络访问(并可以访问),那么您可以使用这个简化的配置:ens256
ens192
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