netplan, NetworkManager, systemd-networkd简介

1、systemd-networkd简介

systemd-networkd是systemd 的一部分 ,负责 systemd 生态中的网络配置部分(systemd-networkd.service, systemd-resolved.service)。使用 systemd-networkd,你可以为网络设备配置基础的 DHCP/静态IP网络等,还可以配置虚拟网络功能,例如网桥、隧道和 VLAN等等。systemd-networkd 与wpa_supplicant 服务配合可以支持配置WIFI无线适配器。具体见Linux网络管理工具systemd-networkd简介

2、NetworkManager简介

NetworkManager是一项后端服务(networkmanager.service),是一个用于控制Ubuntu操作系统上的网络接口图形化界面的工具。NetworkManager和systemd-networked可以理解为相互替代关系,一个是基于图形化界面的工具,另外一个是基于命令行界面的工具。因此,用户可以根据自己的需求,决定使用networkmanager还是systemd-netword。 因此,如果要禁用NetworkManager,则应启用systemd-networkd,而在systemd-networkd运行时最好禁用networkmanager。

3、Netplan简介

Netplan是Canonical(Ubuntu)开发的做为某些 Linux 发行版(主力为ubuntu Linux发行版)上默认的网络配置命令行工具。Netplan 使用 YAML 描述文件来配置网络,然后,通过这些描述为任何给定的底层呈现工具(主要就是systemd-networkd和networkmanager二种工具)生成必要的配置选项。

如下图所示,我们可以看到Netplan读取/etc/netplan下的描述网络用的各个yaml文件,生成backend config后端配置项。将这些后端配置项通过yaml文件里指定的renderers渲染器(systemd-networkd或者networkmanager)将配置下发到Linux内核中。
在这里插入图片描述

3.1、Netplan 目前支持的网络管理工具:

  • NetworkManager
  • Systemd-networkd

3.2、/etc/netplan下面有哪些东西

这个目录下,放的就是netplan配置网络所要用到的配置文件,默认当所有网络接口都采用dhcp且无其它配置时,则就是看到的默认的配置文件 01-network-manager-all.yaml, 这个文件内没有多少内容,只是简单的指定了renderer是NetworkManager,其它的全部使用默认配置。

xxx@xxx-pc:~$ ls -l /etc/netplan
总计 4
-rw-r--r-- 1 root root 104  89  2022 01-network-manager-all.yaml

xxx@xxx-pc:~$ cat /etc/netplan/01-network-manager-all.yaml 
# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: NetworkManager

3.3、netplan提供的命令

  • netplan generate
    以/etc/netplan 配置为输入为renderer指定的底层网络管理工具生成配置文件。
  • netplan apply
    应用配置,使配置生效。
  • netplan try
    试用配置,然后等待用户的确认;如果网络中断或没有给出确认,就自动回滚。

3.4、一个配置的例子

这是一台有4张网卡的主机,分别是enp2s0、enp3s0、 enp4s0、 eno1,我们准备把这4张网卡加入同一个网桥br0, 关闭所有网卡的DHCP请求功能,并开启这个网桥通过DHCP自动获取IP地址的功能
第一步,我们在/etc/netplan目录下增加一个br0.yaml文件,用于描述这个网桥,及关闭各个网卡的dhcp获取IP地址功能。

xxx@xxx-HP-PC:~$ ls -l /etc/netplan/
总计 8
-rw-r--r-- 1 root root 104  89  2022 01-network-manager-all.yaml
-rw-r--r-- 1 root root 594  421 21:43 br0.yaml
  1. 用vi打开这个文件,
vi /etc/netplan/br0.yaml
  1. 把以下内容加入到这个文件中。
# Let NetworkManager manage all devices on this system
network:
  version: 2
  renderer: NetworkManager
meihualing@xx-HP-PC:~$ cat /etc/netplan/br0.yaml
network:
  version: 2
  renderer: NetworkManager
  ethernets:
    eno1:
      dhcp4: no
      dhcp6: no
    enp2s0:
      dhcp4: no 
      dhcp6: no 
    enp3s0:
      dhcp4: no 
      dhcp6: no 
    enp4s0:
      dhcp4: no 
      dhcp6: no 
  bridges:
    br0:
      interfaces:
        - enp2s0
        - enp3s0
        - enp4s0
        - eno1
      dhcp4: yes 
      dhcp6: yes 
      #addresses:
      #  - 192.168.3.166/24
      #routes:
      #  - to: default
      #    via: 192.168.3.1
      #nameservers:
      #  addresses: [192.168.3.1, 8.8.8.8]
      parameters:
        stp: false
  1. 使用netplan apply命令让网桥生效
sudo netplan apply

  1. 生效后,通过ip addr show和brctl show可以看到以下网络配置结果
  • 生成了一个br0网桥
  • 4个网卡都加入了br0网桥
  • 网桥接口br0通过DHCP请求,从上上游DHCP SERVER请求到了IP地址192.168.3.122
xxx@xxx-HP-PC:~$ ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
       valid_lft forever preferred_lft forever
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: enp2s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether a0:36:9f:56:98:45 brd ff:ff:ff:ff:ff:ff
3: enp3s0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
    link/ether a0:36:9f:56:95:be brd ff:ff:ff:ff:ff:ff
4: enp4s0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq master br0 state UP group default qlen 1000
    link/ether a0:36:9f:57:18:d2 brd ff:ff:ff:ff:ff:ff
5: eno1: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel master br0 state UP group default qlen 1000
    link/ether 8c:dc:d4:41:8b:ac brd ff:ff:ff:ff:ff:ff
    altname enp0s25
7: br0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 82:61:84:35:97:fb brd ff:ff:ff:ff:ff:ff
    inet 192.168.3.112/24 brd 192.168.3.255 scope global dynamic noprefixroute br0
       valid_lft 604763sec preferred_lft 604763sec
    inet6 fe80::8061:84ff:fe35:97fb/64 scope link noprefixroute 
       valid_lft forever preferred_lft forever

xxx@xxx-HP-PC:~$ brctl show
bridge name	bridge id		STP enabled	interfaces
br0		8000.8261843597fb	no		eno1
							enp2s0
							enp3s0
							enp4s0

3.5、注意点

注意在/etc/netplan目录下,有多个yaml文件存在,netplan是根据字母表排序,挨个生效的,后面的yaml指定的配置会覆盖前面的yaml指定的配置。

猜你喜欢

转载自blog.csdn.net/meihualing/article/details/130300331
今日推荐