我很难在思维导图中清楚地了解如何针对我们所见的常见网络设置配置 netplan。
- 两个网络接口
- 网络接口 A,连接到 10.0.1.40/24 上的互联网,通过 DHCP 分配
- 网络接口 B,通过 192.168.50.1/24 连接到 192.168.50.1/24 上的网络,分配静态 IP(192.168.50.20/24)
就像是:
network:
version: 2
ethernets:
eno1:
dhcp4: yes
enp6s0f1:
dhcp4: no
addresses:
- 192.168.50.20/24
gateway4: 192.168.50.1
看起来应该可以工作,但在应用了这个之后,似乎
- 服务器失去互联网访问,并且静态 IP 地址的优先级低于 dhcp 接口?这可能吗?
- 服务器有网络访问,但无法与网络上的任何设备通信
192.168.50.1/24
(可能使用了错误的以太网卡)。
值得一提的是,从 netplan 中删除非 dhcp 接口并仅使用sudo ip addr add 192.168.50.20/24 dev eno2
“just works”,但在重启后不会持续存在。
最终的路由表如下所示:
$ ip route
default via 192.168.50.1 dev enp6s0f1 proto dhcp src 192.168.50.11 metric 100
default via 10.1.10.1 dev eno1 proto dhcp src 10.1.10.178 metric 100
10.1.10.0/24 dev eno1 proto kernel scope link src 10.1.10.178
10.1.10.1 dev eno1 proto dhcp scope link src 10.1.10.178 metric 100
192.168.50.0/24 dev enp6s0f1 proto kernel scope link src 192.168.50.11
192.168.50.1 dev enp6s0f1 proto dhcp scope link src 192.168.50.11 metric 100
在这种情况下,192.168.50.1
是没有公共互联网访问的静态网络,但10.1.10.1
不使用该路由。
答案1
现在,按照您现在配置 Netplan YAML 文件的方式,您设置了两个默认路由。 的输出ip route
表明了这一点。 上的第一个默认路由eno1
由 DHCP 服务器提供给您。 上的另一个enp6s0f1
默认路由在您的 YAML 文件中定义。 此外,每个默认路由的度量都是 100,因此一个默认路由不会比另一个具有更高的优先级。
您有两个选择...要么为 分配不同的度量标准,eno1
使其优先于enp6s0f1
,要么删除 的gateway4
节enp6s0f1
。由于您指示所有互联网流量都应流出eno1
且enp6s0f1
严格用于192.168.50.0/24
子网,因此只需删除gateway4
节,如下所示:
network:
version: 2
ethernets:
eno1:
dhcp4: yes
enp6s0f1:
dhcp4: no
addresses:
- 192.168.50.20/24