我有一个基于 yocto 和 systemd 的嵌入式系统。有 2 个接口 eth0 和 wlan0,都使用我的路由器(互联网盒子)提供的 DHCP(ipv4)配置。
/etc/systemd/network/20-wired.network
[Match]
Name=eth0
[Network]
DHCP=ipv4
[DHCP]
RouteMetric=10
/etc/systemd/network/25-wireless.network
[Match]
Name=wlan0
[Network]
DHCP=ipv4
[DHCP]
RouteMetric=20
这是ip route的输出:
default via 192.168.1.1 dev eth0 src 192.168.1.47 metric 10
default via 192.168.1.1 dev wlan0 src 192.168.1.88 metric 20
192.168.1.0/24 dev eth0 scope link src 192.168.1.47
192.168.1.0/24 dev wlan0 scope link src 192.168.1.88
192.168.1.1 dev eth0 scope link src 192.168.1.47 metric 10
192.168.1.1 dev wlan0 scope link src 192.168.1.88 metric 20
所以 ping 到网络上的另一台设备 (192.168.1.42) 正在从 eth0 但不是 wlan0 工作,除非我禁用 eth0。
192.168.1.47 => 192.168.1.42 : OK (eth0)
192.168.1.88 => 192.168.1.42 : KO (wlan0)
192.168.1.42 => 192.168.1.47 : OK (eth0)
192.168.1.42 => 192.168.1.88 : OK (wlan0)
这是/etc/resolv.conf的输出(由 systemd-resolved 处理):
nameserver 192.168.1.1
nameserver fe80::a63e:51ff:fe70:9e16%3
nameserver 2a01:cb08:9049:3200:a63e:51ff:fe70:9e16
如何让两个接口(eth0 和 wlan0)同时工作而不禁用另一个?
问候