1.问题描述

创建这篇笔记,是因为我们遇到一个问题,这个问题与CentOSStream发行版有关。自从出现CentOSStream版本之后,我们直接跳过CentOS8版本,便开始选择其他Linux发行版。我们认为短期之内不能指望使用RockyLinux来替代CentOS发行版。最后经过一番权衡,我们选择UbuntuServerTLS系列发行版。我们安装发行版,以完成相关工作任务。然而,在配置网络时,我们便遇到问题:Ubuntu没有使用NetworkManager管理网络配置?

不同于发行版,在中,开始使用NetworkManager进行网络管理。在RHCE的官方课程中,也是力推NetworkManager进行管理管理,取代以往修改配置文件的网络管理方式。而使用NetworkManager进行网络管理,需要使用nmctl命令来操纵实现网络配置。但是,在中,没有nmctl命令,也没有()在运行。经过官方文档查找,我们发现在中使用Netplan进行网络管理,而Netplan是个前端程序,它会调用NetworkManager或者systemd-networkd完成网络配置。哦,原来Ubuntu使用其他管理工具来管理网络。

然后,我们便开始回忆其他Linux发行版,我们逐渐发现:现在,工具越来越多,每个发行版都有自己的管理方法,都有自己的管理工具。比如RHEL/CentOS开始使用firewalld管理防火墙,而在Ubuntu中,采用ufw管理防火墙。还有文件系统,各个发行版默认采用不同的文件系统,那么管理工具也不相同。这些便催生这篇笔记,我们需要汇总各个发行版中管理网络的工具,否则将来维护系统时将无从下手(虽然底层原理没有过多变化,但是这些五花八门的工具的用法已经足够让人焦头烂额)。

该笔记将记录:概述各种Linux发行版的默认配置网络的工具、相关的学习资料,以及要面对的问题。

2.解决方案3.网络管理的方式

在Linux中,管理网络方式分为两种:

1)通过修改配置文件(废弃)

在以前维护网络配置时,主要通过修改/etc/sysconfig/network-scripts/配置文件,然后servicenetworkrestart便可完成网络配置。现在情况已经发生改变,很多Linux发行版开始提供网络管理工具,比如CentOS/RHEL/Debian的NetworkManager、Ubuntu的Netplan、systemd-networkd(networkctl)等等,这些工具屏蔽网络配置的存储方式,以后将越来越难以通过修改配置文件的方式来完成网络设置。所以,我们很早就开始使用NetworkManager进行网络配置,紧跟发行版的步伐,彻底放弃通过修改配置文件的方式。

题外话:在Linux中,很多服务的管理,多数是通过修改配置,重载配置完成的,这绝对是种快捷、高效、清晰的方法。但是,操作系统的网络配置过于复杂,而非简单的修改配置既可完成,所以才会出现这些配置及管理网络的工具。

2)通过网络管理工具

比如NetworkManager、systemd-networkd、Netplan等等。这也是我们正在积极学习的工具,我们紧跟Linux发行版的步伐,以后将通过这些工具完成网络管理任务。但是,这也是我们积极推荐给别人的方法,毕竟在我们这个行业里,知识要及时更新:-)

4.管理网络的工具

在Linux中,现有的常见网络管理工具:

1)NetworkManager

在2004时,RedHat启动NetworkManager项目,为了简化网络管理。截至目前(03/28/2021),功能丰富,能满足我们所有的网络配置需求。

2)systemd-networkd

systemd也属于RedHat公司,其中的systemd-networkd用于管理网络服务。systemd-networkd首次集成到systemd209中,但是功能有限,仅支持静态地址分配、基本的桥接设置。在systemd215时,加入ipv4DHCP、VXLAN支持。通过命令networkctl来操作systemd-networkd服务,实现网络配置。

3)Netplan

Netplan是Ca'non'i'cal公司的产品,而Ubuntu属于Canonical公司,所以Ubuntu使用Netplan配置网络也不足为其。Netplan是个前端程序,我们编写配置网络的YAML文件,然后Netplan解析该配置,最后它将调用后端的systemd-networkd或者NetworkManager来完成网络配置。在中,Netplan将调用systemd-networkd完成网络配置。

5.发行版默认工具5.1.

在中,使用NetworkManager管理网络。现在官方保证NetworkMangaer稳定可用,我们就紧跟步伐。将来无论NetworkManager是否被其他工具替代,都不太可能回到直接修改配置文件的管理方式。

5.2.

使用Netplan管理,默认后端为systemd-networkd服务。而配置systemd-networkd的networkctl命令版本为systemd237,还不支持网络配置。

配置网络的详细过程,官方手册已给出详细说明,参考Network-Configuration|Ubuntu()文档。

5.3.DebianGNU/(jessie)

Debian就是Debian,一如既往,将选择权交由用户,让用户选择自己的工具:
1)我们能够通过修改配置文件的方式(/etc/network/interfaces)
2)亦能自行安装网络管理工具(比如NetworkManager、systemd-networkd等等)

关于Debian的网络配置,参考官方文档:
1)()
2)NetworkConfiguration()

#03/28/2021目前,对于Debian发行版,我们选择NetworkManager进行网络管理。但是,按照目前的态势,将来采用systemd-networkd的概率比较大。

6.参考文献

Debian/()
systemd-networkd-ArchWiki()
NetworkManager-Wikipedia()
systemd-Wikipedia()
RedHatresetsCentOSLinuxandusersareangry|ZDNet()