网络配置:systemd-networkd 与网络、服务以及与 ip 命令的兼容性

网络配置:systemd-networkd 与网络、服务以及与 ip 命令的兼容性

我正在尝试将运行 Debian 的 IOT 设备连接到 Wifi,在此过程中,我尝试配置 wlan0 接口。我注意到有几种方法可以做到这一点。据我了解(可能不正确):

1) 似乎有一种 systemd-networkd 方式,其中涉及修改文件 /etc/systemd/network/wlan0.network,然后理想地systemd-networkd.service在启动时设置接口。

2)经典的ifupdown配置方式,主要依赖/etc/networking/interfaces文件进行配置,然后由网络服务networking.service在启动时设置这些服务。

我的问题是 1)我对它们的工作原理的理解是否正确,2)您是否应该在任何给定时间只启用其中一项服务,3)一旦一切都设置好,它们是否都与命令ip/ifconfig以及ifupifdown命令兼容?

基本上,如果有人可以向我概述这些服务和接口如何交互、哪些是遗留的、什么不是遗留的等等,我将不胜感激。

谢谢!

答案1

1)我对它们的工作原理的理解是否正确

是的,尽管 ifupdown 更喜欢ifup@<interface>.service现在。

2)你是否应该在任何时候只启用其中一项服务

一般来说是的,但重要的是只有一个服务应该管理一个接口在任何给定时间。完全可以(但可能不推荐)为不同的接口使用不同的服务,例如使用 systemd-networkd 设置隧道,同时仍使用 ifupdown 设置以太网。

(例如,我使用 NetworkManager 进行常规 PC 网络管理,但也使用 systemd-networkd 创建 WireGuard 链接、“虚拟机”桥等。)

3)一切设置完成后,它们是否都与 ip/ifconfig 命令兼容

ip- 是的。

ifconfig– 部分原因。除了其他问题之外,此工具无法显示每个接口的多个 IPv4 地址(除非它们被标记为旧版“别名”)。这实际上并不是 networkd 和 ifconfig 不兼容;而是现代 Linux IP 堆栈和 ifconfig 不兼容。

3) 一旦一切设置完毕,它们是否都与 ifup 和 ifdown 命令兼容?

这些ifup/ifdown命令与您提到的“ifupdown”完全相同。您可以说 networking.service 只ifup <name>针对列为“auto”的每个接口运行。(人们普遍误以为它们是低级工具或 的缩写ifconfig up,但事实并非如此。)

因此,只有 /etc/network/interfaces 中列出的接口与 ifup/ifdown 兼容。

相关内容