centos8使用nmcli配置bond1与vlan组合(测试未通过)

本次实验环境使用workstdtion 虚拟机交换机 模拟物理设备划分vlan

https://github.com/zznn-cloud/zznn-cloud-blog-images/raw/main/Qexo/24/5/image_bba0d14b526d9a8ddba1b176cfdfaeb8.png

NetworkManager和network.service都是用来管理网络的工具。在CentOS 7版本中,NetworkManager和network.service默认安装时是共存的,但习惯使然我们一般都是禁用掉NetworkManager而仍然使用配置文件+network.service的方式来配置和管理主机上的网络。

RHEL 8/CentOS 8版本开始network.service默认没有安装,默认只使用NetworkManager作为网络管理工具。而且RedHat官方指出在后续的版本中会彻底不支持network.service,这样一来除了NetworkManager我们也没有选择余地。既然无力反抗,那么就要学会享受。

其实NetworkManager也有优点,比如使用方式多样化:命令行、文本界面、图形界面、web portal均可支持。nmcli命令行支持tab补齐,使用感受类似配置交换机;nmtui工具可以在shell终端开启文本图形界面。而且Linux主流知发行版,RedHat系、Suse系、Debian/Ubuntu系均支持NetworkManager。

在nmcli中有2个命令最为常用:

nmcli connection

译作连接,可理解为配置文件,相当于ifcfg-ethX。可以简写为nmcli c

nmcli device

译作设备,可理解为实际存在的网卡(包括物理网卡和虚拟网卡)。可以简写为nmcli d

NetworkManager有2个基本的概念:连接(Connection)和设备(Device)。

Device是操作系统层面能够识别到的网卡设备,如本地回环lo、本地网卡eth0(nmcli d命令可以查看到)。

Connection可以认为是Device对应的配置文件,也就是说一个Device可以对应多个Connection。同一时间只有一个Connection是处于激活状态的(nmcli c命令输出结果中绿色的行)。

一. 配置bond与vlan组合(重启系统便会失效)

拓补图

https://github.com/zznn-cloud/zznn-cloud-blog-images/raw/main/Qexo/24/5/image_715204becfedcdac807aa604cbd4594e.png

先决条件

查看/proc/net/vlan 目录是否存在,如果不存在,使用modprobe模命令进入802.1q.o,且使用lsmod命令模是否已入核心

1
2
3
4
5
6
7
# 加载模块
modprobe 8021q

[root@c159 network-scripts]# lsmod |grep 802
8021q 33159 0
garp 14384 1 8021q
mrp 18542 1 8021q

很简单只需要几行命令

参数可选

  • ipv4.method disabled:这个选项禁用了IPv4地址的自动获取,意味着系统不会尝试获取IPv4地址。
  • ipv6.method ignore:这个选项告诉系统忽略IPv6地址的配置,系统不会为该接口分配IPv6地址。
  • mode 1 即为 mode active-backup
1
2
3
4
5
# 使用NetworkManager配置vlan
nmcli con add type bond con-name bond0 ifname bond0 mode 1 ipv4.method disabled ipv6.method ignore
nmcli con add type bond-slave ifname ens224 master bond0
nmcli con add type bond-slave ifname ens256 master bond0
nmcli con add type vlan con-name bond0.80 ifname bond0.80 dev bond0 id 80 ipv4.addresses 10.0.0.100/24 ipv4.gateway 10.0.0.220 ipv4.dns 114.114.114.114

查看命令生成ifcfg-bond0.80详情 并新增此行(SLAVE=yes)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
[root@localhost network-scripts]# cat ifcfg-bond0.80
VLAN=yes
TYPE=Vlan
PHYSDEV=bond0
VLAN_ID=80
REORDER_HDR=yes
GVRP=no
MVRP=no
HWADDR=
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=dhcp
IPADDR=10.0.0.100
PREFIX=24
GATEWAY=10.0.0.220
DNS1=114.114.114.114
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_FAILURE_FATAL=no
IPV6_ADDR_GEN_MODE=default
NAME=bond0.80
UUID=b96b405e-6a6d-4000-bca3-2fc060c945c2
DEVICE=bond0.80
ONBOOT=yes
SLAVE=yes #新增

二. 验证

查看bond: cat /proc/net/bonding/bond0

https://github.com/zznn-cloud/zznn-cloud-blog-images/raw/main/Qexo/24/5/image_b43f2d08cd6c439a2de7279ac31d2178.png

本文参考:

linux-Centos 7下bond与vlan技术的结合 - 520_1351 - 博客园 (cnblogs.com)

1
2
3
4
5
6
7
8
9
10
11
# 使用NetworkManager配置bond 0
# nmcli con add type bond ifname bond0 con-name bond0 mode active-backup
# nmcli con add type bond-slave ifname ens224 master bond0
# nmcli con add type bond-slave ifname ens256 master bond0
# nmcli con modify bond0 ipv4.address 10.0.0.100/24 ipv4.gateway 10.0.0.254 ipv4.dns 114.114.114.114 ipv4.method manual ipv6.method ignore

# 使用NetworkManager配置vlan
nmcli con add type bond ifname bond0 con-name bond0 mode active-backup ipv4.method disabled ipv6.method ignore
nmcli con add type bond-slave ifname ens224 master bond0
nmcli con add type bond-slave ifname ens256 master bond0
nmcli con add type vlan con-name bond0.80 ifname bond0.80 dev bond0 id 101 ipv4.addresses 10.0.0.100/24 ipv4.gateway 10.0.0.254 ipv4.dns 114.114.114.114 ipv4.method disabled ipv6.method ignore