netplan
netplan —— 抽象网络配置生成器 ,是一个用于配置 Linux 网络的简单工具。
通过 Netplan ,你只需用一个 YAML 文件描述每个网络接口需要配置成啥样即可。
根据这个配置描述, Netplan 便可帮你生成所有需要的配置,不管你选用的底层管理工具是啥.
Netplan 从 /etc/netplan/*.yaml 读取配置,配置可以是管理员或者系统安装人员配置;
也可以是云镜像或者其他操作系统部署设施自动生成。
在系统启动阶段早期, Netplan 在 /run 目录生成好配置文件并将设备控制权交给相关后台程序。
Netplan 目前支持以下两种 网络管理工具 :
NetworkManager
Systemd-networkd
一言以蔽之,从前你需要根据不同的管理工具编写网络配置,现在 Netplan 将管理工具差异性给屏蔽了。 你只需按照 Netplan 规范编写 YAML 配置,不管底层管理工具是啥,一份配置走天下!
命令查看
netplan -h
usage: /usr/sbin/netplan [-h] [--debug] ...
Network configuration in YAML
optional arguments:
-h, --help show this help message and exit
--debug Enable debug messages
Available commands:
help Show this help message
apply Apply current netplan config to running system
generate Generate backend specific configuration files from
/etc/netplan/*.yaml
info Show current netplan version and available features
ip Retrieve IP information from the system
try Try to apply a new netplan config to running system, with
automatic rollback
~$ netplan generate
ERROR: cannot create file /run/NetworkManager/conf.d/10-globally-managed-devices.conf: Failed to create file “//run/NetworkManager/conf.d/10-globally-managed-devices.conf.85F4H0”: Permission denied
配置文件
$ cat /etc/netplan/01-network-manager-all.yaml
# Let NetworkManager manage all devices on this system
network:
version: 2
renderer: NetworkManager
比如我配置工控机的网络如下:
~$ cat /etc/netplan/01-network-manager-all.yaml
# Let NetworkManager manage all devices on this system
network:
ethernets:
enp0s31f6:
addresses: [192.168.100.10/24]
dhcp4: no
enp3s0:
addresses: [192.168.2.101/24]
dhcp4: no
enp4s0:
addresses: [192.168.11.123/24]
dhcp4: no
version: 2