systemd-networkd 可以处理网络命名空间中的接口吗?

systemd-networkd 可以处理网络命名空间中的接口吗?

我正在尝试在嵌入式系统上配置 systemd-networkd,其中 wlan0 位于单独的网络命名空间中。我希望 systemd 能够配置和监视接口,以便在网络可用时可以启动相关服务。

如果我将 wlan0 保留在默认网络命名空间中,则 networkctl 会显示网络已启动且可路由,并且一切按预期工作。

# networkctl status wlan0
6: wlan0
             Link File: /usr/lib/systemd/network/99-default.link
          Network File: /etc/systemd/network/wlan.network
                  Type: wlan
                 State: routable (configured)
                  Path: platform-47810000.mmc
                Driver: brcmfmac
            HW Address: 00:25:ca:2e:f6:e5
                   MTU: 1500 (min: 68, max: 1500)
  Queue Length (Tx/Rx): 1/0
               Address: 192.168.101.1

我没有看到任何方法来配置 systed-netword 将接口分配给不同的命名空间。如果我在 systemd-networkd 启动之前手动将 wlan0/phy0 接口移动到不同的命名空间(在另一个 systemd 服务中使用 iw 命令),则 systemd-networkd 无法找到 wlan0 接口。

Feb 16 16:01:34 buildroot systemd[1]: Starting Attach wlan0 to to network namespace inet_ns...
Feb 16 16:01:35 buildroot systemd[1]: Started Attach wlan0 to to network namespace inet_ns.
Feb 16 16:01:35 buildroot systemd[1]: Starting Network Service...
Feb 16 16:01:35 buildroot systemd-networkd[427]:
Feb 16 16:01:36 buildroot systemd-networkd[427]: Enumeration completed
Feb 16 16:01:36 buildroot systemd[1]: Started Network Service.
Feb 16 16:01:36 buildroot systemd-networkd[427]: wlan0: Could not find device, waiting for device initialization: No such device

如果我在 systemd-networkd 启动后手动将 wlan0/phy0 接口移至不同的命名空间,则 networkd 会看到它,但稍后 networkctl 无法找到该设备:

# networkctl status wlan0
Failed to query link bit rates: Unknown object '/org/freedesktop/network1/link/_36'.
6: wlan0
             Link File: n/a
          Network File: n/a
                  Type: wlan
                 State: n/a (unmanaged)
            HW Address: 00:25:ca:2e:f6:e5
                   MTU: 1500 (min: 68, max: 1500)
  Queue Length (Tx/Rx): 1/0

在 systemd 下将接口移动到不同网络命名空间的正确方法是什么?

相关内容