redhat官网参考手册:https://docs.redhat.com/zh_hans/documentation/red_hat_enterprise_linux/8/html/configuring_and_managing_networking/configuring-a-network-bond-by-using-nmcli_configuring-network-bonding
使用nmcli命令行工具来完成bond,网桥,子接口的创建
一、创建bond
bond模式如下图:
实验网卡如下:
1. 创建bond0网卡接口
[root@localhost ~]# nmcli connection add type bond con-name bond0 ifname bond0 bond.options "mode=active-backup,miimon=100"
[root@bogon network-scripts]# nmcli connection modify bond0 ipv4.method disabled
Connection 'bond0' (9eae22a9-3287-4742-8c46-cd2358807356) successfully added.
[root@localhost ~]# nmcli device
DEVICE TYPE STATE CONNECTION
ens160 ethernet connected ens160
virbr0 bridge connected virbr0
ens224 ethernet connected ens224
ens256 ethernet connected ens256
bond0 bond connected Bond bond0
lo loopback unmanaged --
virbr0-nic tun unmanaged --
nmcli connection modify bond0 ipv4.method disabled 将bond0接口地址禁用,后面在配置地址
add type bond
: 添加bond的类型con-name bond0
:设置网络连接名称(默认与设备名一致)ifname bond0
: 物理设备的名称bond.options "mode=active-backup,miimon=100"
:bond模式与bond参数设置,mode=active-backup 模式为主备,miimon=100心跳检测时间为100ms
创建了一个名为bond0的网络设置,类型位bond,网路连接名为bond0,mode为1主备,参数为miimon=100,多个参数用逗号隔开。
2. 将网络设备添加到bond0中
2.1. 将网络设置添加到bond中会创建新的配置文件,建议备份原有配置文件
[root@localhost network-scripts]# ls
ifcfg-bond0 ifcfg-ens160 ifcfg-ens224 ifcfg-ens256
[root@localhost network-scripts]# mkdir bak
[root@localhost network-scripts]# mv ifcfg-ens224 ifcfg-ens256 bak/
[root@localhost network-scripts]# ls bak/
ifcfg-ens224 ifcfg-ens256
[root@localhost network-scripts]# ls
bak ifcfg-bond0 ifcfg-ens160
2.2. 将从网卡加入到bond
[root@localhost network-scripts]# nmcli connection add type ethernet slave-type bond con-name ens224 ifname ens224 master bond0
[root@localhost network-scripts]# nmcli connection add type ethernet slave-type bond con-name ens256 ifname ens256 master bond0
[root@localhost network-scripts]# ls
bak ifcfg-bond0 ifcfg-ens160 ifcfg-ens224 ifcfg-ens256
3. 为bond配置地址
[root@localhost network-scripts]# nmcli connection modify bond0 ipv4.method manual ipv4.addresses 192.168.0.191/24 ipv4.gateway 192.168.0.2 ipv4.dns 192.168.0.2
[root@localhost network-scripts]# nmcli con up bond0
[root@localhost network-scripts]# nmcli con up bond0
5: bond0: <NO-CARRIER,BROADCAST,MULTICAST,MASTER,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 36:b7:ac:42:f9:74 brd ff:ff:ff:ff:ff:ff
inet 192.168.0.191/24 brd 192.168.0.255 scope global noprefixroute bond0
valid_lft forever preferred_lft forever
ipv4.method manual
: 设置静态地址(auto 是动态)
4. 还原实验环境
从尾到头一步一步还原,加深印象
4.1. 删除bond地址
[root@localhost network-scripts]# nmcli connection modify bond0 ipv4.addresses "" ipv4.gateway "" ipv4.dns "" ipv4.method disabled
[root@localhost network-scripts]# nmcli con up bond0
删除IP地址的操作就是把ip,网关,dns 设置为空,ipv4.method 设置为disabled,在重新up一下使配置生效
4.2. 删除新创建的网络连接
将备份的配置还原,然后删除新的配置文件在重启网络
root@localhost network-scripts]# \cp bak/ifcfg-ens2* ./
[root@localhost network-scripts]# nmcli con show
NAME UUID TYPE DEVICE
bond0 420e569f-b4ab-4297-8249-f571dff771bc bond bond0
ens160 d2ed1313-2b57-49f9-974c-a53657cf02e2 ethernet ens160
Wired connection 1 462ac000-ea95-32dc-9796-793e17dd699e ethernet ens224
Wired connection 2 ef233d68-eba7-37bf-8ad0-39d9d135a98b ethernet ens256
virbr0 118c3512-e07c-474e-96a9-eeea99db739e bridge virbr0
[root@localhost network-scripts]# nmcli con delete "Wired connection 1"
[root@localhost network-scripts]# nmcli con delete "Wired connection 2"
[root@localhost network-scripts]# nmcli con reload
4.3. 删除bond0网络接口设置
[root@localhost network-scripts]# nmcli con delete bond0
[root@bogon network-scripts]# nmcli con reload
二、创建子接口
子接口是在一张物理接口上面,在新建一个接口。
创建一个bond物理接口,在bond接口下面创建子接口(参考如上)
1. 创建vlan子接口
nmcli connection add type vlan con-name bond0.10 ifname bond0.10 vlan.parent bond0 vlan.id 10
将创建了一个网络设备名 bond0.10, 连接名为bond0.10,的走是bond0的物理网卡接口,被划分到了vlan10
三、 创建网桥
1. 创建网络设置类型为网桥
[root@bogon ~]# nmcli connection add type bridge con-name br0 ifname br0
2. 将现有的接口加入到网桥
如果将网络接口加入到了网桥,那么这个接口就成为网桥的端口,不能在使用了。
[root@bogon ~]# nmcli connection modify bond0 master br0
[root@bogon ~]# ip link show
20: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue master br0 state UP mode DEFAULT group default qlen 1000
link/ether 00:0c:29:47:91:76 brd ff:ff:ff:ff:ff:ff
查看网桥的端口和vlan id
[root@bogon ~]# bridge vlan
port vlan ids
virbr0 1 PVID Egress Untagged
virbr0-nic 1 PVID Egress Untagged
br0 None
bond0 1 PVID Egress Untagged
删除网络接口设备使用 nmcli con delete <网络连接名>,
最后 nmcli con reload 一下