一、nmcli命令

1.什么是nmcli

以前我配置网卡的时候都要打vim /etc/sysconfig/network-scripts/ifcfg-eth0这么一长串命令,有很多配置名字还记不住就需要去看模板,好不容易配置完了,还得去重启网卡。直到今天我知道了这个nmcli命令,才发现原来配置网卡可以这么简单,妈妈再也不用担心我不会配置网卡了。
2.nmcli的用法
命令语法:

nmcli[ OPTIONS ] OBJECT { COMMAND | help }
值得一提的是OBJECT和COMMAND可以用全程也可以用简称,最少可以只用一个字母,但我们一般用头三个字母,这样不容易搞错。
nmcli命令使用以及网卡绑定bond_第1张图片
我们使用nmcli命令去配置网卡时如果忘记了语法命令是可以用TAB键补齐命令的。
nmcli命令使用以及网卡绑定bond_第2张图片
OBJECT里我们平时用的最多的就是connection和device,这里就跟大家简单区分一下connection和device
connection是连接,偏重于逻辑设置
device叫网络接口,是物理设备
多个connection可以应用到同一个device,但同一时间只能启用其中一个connection。
这样的好处是针对一个网络接口,我们可以设置多个网络连接,比如静态IP和动态IP,再根据需要up相应的connection。
下面是一些nmcli的常用命令介绍
nmcli device show 查看所有网卡设备信息
show 后跟网卡名是查看某个网卡的详细信息
nmcli命令使用以及网卡绑定bond_第3张图片
nmcli connection show 查看所有连接
同理 show 后跟上连接名可以查看连接的详细信息
不过connection show 后跟上 -a 参数是仅显示活动的连接
nmcli命令使用以及网卡绑定bond_第4张图片
像图中home它的DEVICE选项为空,说明没有网卡绑定,所以并未生效。
nmcli device status
列出 NetworkManager 识别出的设备列表及他们的状态
nmcli命令使用以及网卡绑定bond_第5张图片
nmcli general status
将 NetworkManager 的所有状态都打印出来
nmcli命令使用以及网卡绑定bond
在centos7中默认的网卡名变为了ens..,我们可以使用nmcli来改成我们熟悉的样子(更改配置文件名):
nmcli命令使用以及网卡绑定bond_第6张图片
nmcli connection add con-name config-eth0-1 ifname eth0 type ethernet
创建一个网卡连接配置文件,这里con-name后跟的是新建的配置文件名称,ifname后跟的是接口名称,type为ethernet,ipve默认为dhcp
nmcli命令使用以及网卡绑定bond_第7张图片
命令完成后会在/etc/sysconfig/network-scripts/目录下产生一个名为ifcfg-config-eth0-1的配置文件
nmcli命令使用以及网卡绑定bond_第8张图片
nmcli connection up config-eth0-1
nmcli connection down config-eth0-1
对创建好的配置文件我们可以用up,down来启用和禁用
nmcli命令使用以及网卡绑定bond_第9张图片
nmcli connection delete config-eth0-1
删除连接(删除的连接并未被启用)
nmcli命令使用以及网卡绑定bond_第10张图片
nmcli connection add con-name eth0-1 type ethernet ifname eth1 autoconnect yes ip4 10.1.252.60/24 gw4 10.1.0.254
我们也可以使用nmcli来创建一个静态IP网络连接配置
这里的autoconnect 为开机是否自启,yes为开机自启
nmcli命令使用以及网卡绑定bond_第11张图片
我们启用eth0-1看看IP是否变化
nmcli命令使用以及网卡绑定bond
nmcli命令使用以及网卡绑定bond_第12张图片
nmcli connection modify eth0-1 +ipv4.address 2.2.2.2/24

我们也可以对连接文件进行修改
命令修改与配置文件对照表:
nmcli命令使用以及网卡绑定bond_第13张图片
修改连接配置后我们要重新加载才能生效
nmcli connection reload
nmcli connection down eth0-1
nmcli connection up eth0-1
nmcli命令使用以及网卡绑定bond_第14张图片

二、网卡绑定band

1.什么是bond
网卡bond是通过把多张网卡绑定为一个逻辑网卡,实现本地网卡的冗余,带宽扩容和负载均衡。在应用部署中是一种常用的技术。
2.bond的模式种类
常见的bond模式有七种:
Mode=0(balance-rr) 表示负载分担round-robin,和交换机的聚合强制不协商的方式配合。
Mode=1(active-backup) 表示主备模式,只有一块网卡是active,另外一块是备的standby,这时如果交换机配的是捆绑,将不能正常工作,因为交换机往两块网卡发包,有一半包是丢弃的。
Mode=2(balance-xor) 表示XOR Hash负载分担,和交换机的聚合强制不协商方式配合。(需要xmit_hash_policy)
Mode=3(broadcast) 表示所有包从所有interface发出,这个不均衡,只有冗余机制...和交换机的聚合强制不协商方式配合。
Mode=4(802.3ad) 表示支持802.3ad协议,和交换机的聚合LACP方式配合(需要xmit_hash_policy)
Mode=5(balance-tlb) 是根据每个slave的负载情况选择slave进行发送,接收时使用当前轮到的slave
Mode=6(balance-alb) 在5的tlb基础上增加了rlb。)

3.bond的创建方法
这里我们还是用nmcli来创建bond
我们以bond1模式为例
首先我们创建一个连接配置文件
nmcli connection add con-name bond0 type bond ifname bond0 mode active-backup
mode 后跟的bond模式
nmcli命令使用以及网卡绑定bond_第15张图片
因为我们还没有在bond连接中绑定网卡所以显示为×××
nmcli connection add type bond-slave ifname eth2 master bond0
nmcli connection add type bond-slave ifname eth3 master bond0
我们添加两块网卡到bong0中
nmcli命令使用以及网卡绑定bond_第16张图片
启用这两个连接
nmcli命令使用以及网卡绑定bond_第17张图片
cat /proc/net/bonding/bond0
查看bond状态
nmcli命令使用以及网卡绑定bond_第18张图片
我们来测试下bond
nmcli命令使用以及网卡绑定bond_第19张图片
nmcli命令使用以及网卡绑定bond_第20张图片
我们先查看下bond0的ip,然后再在另一个终端上ping
我们先down掉一个网卡
nmcli命令使用以及网卡绑定bond_第21张图片
nmcli命令使用以及网卡绑定bond_第22张图片
down掉eth1后依旧可以ping通
总结:
我们使用nmcli只需简单的几部就可以做好bond了,由此可见bond确实好用。