我的 Linux PC 上有两个网络接口。一个是 eth0,另一个是 eth1。这是 netplan yaml 文件:
network:
version: 2
renderer: NetworkManager
ethernets:
eth0:
addresses: [192.168.20.3/24]
gateway4: 192.168.20.1
nameservers:
addresses: [192.168.10.1]
routes:
- to: 224.100.100.0/24
via: 192.168.20.1
eth1:
addresses: [192.168.20.3/24,192.168.10.8/24]
nameservers:
addresses: [192.168.10.1]
eth1 和 eth0 具有相同的网络段 192.168.20.x
有一个传感器,其 IP 为 192.168.20.13,但我无法 ping 通它,我可以执行路由命令:
route add -host 192.168.20.13 dev eth1
可以ping通。
我的问题是如何在 netplan yaml 文件中设置规则?
答案1
这是一个应该可以工作的配置。(请注意缩进,这在您的问题中是不正确的,但在您的系统磁盘上可能是正确的。)
network:
version: 2
renderer: NetworkManager
ethernets:
eth0:
addresses: [192.168.20.3/24]
nameservers:
addresses: [192.168.10.1]
routes:
- to: 0.0.0.0/0
via: 192.168.20.1
eth1:
addresses: [192.168.20.3/24,192.168.10.8/24]
nameservers:
addresses: [192.168.10.1]
routes:
- to: 192.168.20.13/32
via: 192.168.20.3
与您原始配置的区别:
- 删除到 224.100.100.0 的静态路由,该路由与您的默认路由重复。
- 用更清晰的条目
gateway4
替换使用routes
- 在 eth1 上为传感器添加主机路由。
建议您不要在网络的不同段上使用相同的网络地址。这违反了路由网络的基本原则。