背景
在CentOS的新版本中加入了nmcli来便于管理网络,但网上看到的更多的评论还都是摒弃这个,还继续使用传统的修改/etc/sysconfig/network-scripts/ifcfg-* 的方式来做网络配置。但这个太费时间了,还是用nmcli来管理网络吧。
nmcli简介
nmcli 是NetworkManager的一个命令行工具,NetworkManager则在Centos7以后成为了默认的网络管理工具。NetworkManager还有一个图形界面的工具nmtui. 这个更简单,启动后按照提示操作即可。
nmcli 安装和启动
yum install NetworkManager
systemctl start NetworkManager
使用nmcli来配置bond
下面的代码介绍了如何使用nmcli来配置两个 bond,这个用传统的ifcfg还是略微麻烦的。bond0绑定在eno1和eno2上,bond1绑定在enp7s0f0和enp7s0f1上,
sudo nmcli con add type bond con-name bond0 ifname bond0 mode 1 ipv4.method manual ipv4.address 10.9.2.152/24 ipv4.gateway 10.9.2.254
sudo nmcli con add type bond-slave ifname eno1 con-name bond0-port1 master bond0
sudo nmcli con add type bond-slave ifname eno2 con-name bond0-port2 master bond0
sudo nmcli con up bond0-port1
sudo nmcli con up bond0-port2
sudo nmcli con up bond0
sudo nmcli con add type bond con-name bond1 ifname bond1 mode 1 ipv4.method manual ipv4.address 10.9.1.154/24 ipv4.gateway 10.9.1.254
sudo nmcli con add type bond-slave ifname enp7s0f0 con-name bond1-port1 master bond1
sudo nmcli con add type bond-slave ifname enp7s0f1 con-name bond1-port2 master bond1
sudo nmcli con up bond1-port1
sudo nmcli con up bond1-port2
sudo nmcli con up bond1
sudo nmcli reoad
只需要这些简单步骤就可以完成配置,执行完之后,如果不放心还可以在/etc/sysconfig/network-scripts/ifcfg-* 和 /proc/net/bonding/bond* 查看对应的内容,已经全部都生成好了。
清除老的配置
在执行上述任务之前经常会已经有些网络配置了,可以用下面的命令把老的配置删除
sudo nmctl con show
sudo nmctl dev show
sudo nmcli con del bond0
sudo nmcli con del eth0
sudo nmcli con del eth1
sudo nmcli dev del eth0
sudo nmcli dev del eth1
sudo systemctl network restart