nmcli命令

地址配置工具:nmcli

nmcli device  #查看所有网卡的信息
nmcli device status 和 numcli device 相同
nmcli device show  网卡名  #查看某个网卡的信息

nmcli connecttion 显示所有网卡的配置连接配置,就是/etc/sysconfig/network-scripts/下有没有网卡的配置文件,没有的话不显示,即使ifconfig命令有该网卡的信息)

加一个连接配置:nmcli connection add type ethernet(l类型可以变) 连接配置名(随意起)ifname eth1

回车之后就可以用nmcli connection 显示连接配置名了,同时在/etc/sysconfig/network-scripts/下有一个新文件ifcfg-连接配置名

nmcli connection show  

1.png
nmcli connection show 链接名 查看这一套配置的相关信息
2.png
3.png
nmcli connection reload 重新加载配置文件(如果新增加了配置文件就可以用这个命名重新加载配置文件使其生效)
nmcli 修改ip地址等属性

 nmcli connection modify INFACE ipv4.method manual ipv4.addresses 172.17.0.1/16 ipv4.gateway 172.18.0.1 ipv4.dns 114.114.114.114

modify后面跟的是连接配置,手动配地址,ip地址,网关,dns地址。

nmcli 命令生效

 nmcli con down #连接配置名
 nmcli con up #连接配置名

设备即网络接口,连接是对网络接口的配置。一个网络接口可有多个连接配置,但同时只有一个连接配置生效(针对一个接口可以有多套配置文件,但是在同一时间只能有一套配置文件生效)

4.png
5.png

上图显示针对接口ens33有两套配置文件

6.png

显示所有连接配置信息,发现接口ens33的两套配置信息只有一套生效了

7.png

而将未生效的连接配置文件生效之后发现之前已经生效的配置文件有没有生效。所以一个接口虽然可以有多套配置文件但是在同一时间,只能有一套配置文件生效。

一个接口可以有多套配置文件,多套的配置文件中的接口是相同的,但UUID不能相同

nmcli修改连接配置名

 nmcli connection modify [原连接配置名] connection id.[新连接配置名]

nmcli 增加新的地址

 nmcli  connection modify [连接配置名] ipv4.addresses 2.2.2.2/16

增加地址之后不会立刻生效。

nmcli con up [连接配置名]  

8.png

如图,现在ens34接口只有一个ip地址,现在要加一个地址

nmcli connection modify ens33 ipv4.addresses 2.2.2.2/16
nmcli con up ens33

9.png

添加成功,再来看一下ens33接口的配置文件,发现已经添加了IP地址信息。

10.png

删除添加的地址

nmcli  connection delete [连接配置名] ipv4.addresses 2.2.2.2/16
nmcli con up [连接配置名]

网络接口配置-bonding

Bonding 就是将多块网卡绑定同一IP地址对外提供服务,可以实现高可用或者负载均衡。当然,直接给两块网卡设置同一IP地址是不可能的。通过bonding,虚拟一块网卡对外提供连接,物理网卡的被修改为相同的MAC地址。

Mode 0 (balance-rr)

衡和容错的能力轮转(Round-robin)策略:从头到尾顺序的在每一个slave接口上面发送数据包。本模式提供负载均

11.png

一个机器上面有两块网卡,第一个数据来了走第一个网卡,第二个数据来了走第二个网卡,第三个数据来了走第一个网卡,第四个数据来了就走第二个网卡。

Mode 1 (active-backup)

活动-备份(主备)策略:只有一个slave被激活,当且仅当活动的slave接口失败时才会激活其他slave。为了避免交换机发生混乱此时绑定的MAC地址只有一个外部端口上可见(平时只有一个网卡工作,另一个网卡不工作,一旦这个工作的网卡坏了,那么不工作的网卡就会被激活,接替工作)

Mode 3 (broadcast)

广播策略:在所有的slave接口上传送所有的报文,提供容错能力(从远程来了一个数据,所有的网卡都能收到,并且都回应,就会出现一个dup!的提示)

nmcli 命令实现bonding

A机器两个网卡都是主机模式

12.png

第一步:添加bonding接口

nmcli con add type bond con-name mybond0 ifname mybond0 mode active-backup
con-name 是连接配置名 ifname 是接口名 mode 是bond的模式

增加IP地址

nmcli connection modify 连接配置名 ipv4.method manual  ipv4.addresses 192.168.37.100/24

也可以写成一条添加接口时直接添加地址

nmcli con add type bond con-name mybond0 ifname mybond0 mode active-backup ipv4.method manual  ipv4.addresses 192.168.37.100/24

第二步:添加从属接口

nmcli con add type bond-slave ifname ens33 master mybond0
nmcli con add type bond-slave ifname ens34 master mybond0

注:如无为从属接口提供连接名,则该名称是接口名称加类型构成

第三步:要启动绑定,则必须首先启动从属接口

nmcli con up bond-slave-ens33
nmcli con up bond-slave-ens34

第四步:启动绑定

nmcli con up mybond0

B机器的网卡也是主机模式,并且要保证和192.168.37.100在一个网段里面,然后去ping192.168.37.100

查看bond0状态

cat  /proc/net/bonding/bond0

网络组Network Teaming

网络组:是将多个网卡聚合在一起的方法,从而实现冗错和提高吞吐量

网路组由内核驱动和teamd守护进程实现

多种方式runner(和bonding技术里的mode一样)

broadcast

roundrobin

activebackup

loadbalance

lacp(implements the 802.3ad Link Aggregation Control Protocol)

网络组

启动网络组接口不会自动启动网络组中的port接口

启动网络组接口中的port接口总会自动启动网络组接口

禁用网络组接口会自动禁用网络组中的port接口

没有port接口的网络组接口可以启动静态IP连接

启用DHCP连接时,没有port接口的网络组会等待port接口的加入

创建网络组

第一步:创建网络组接口:

nmcli con add type team con-name CNAME ifname INAME config JSON

CNAME 连接名,INAME接口名

JSON指定runner 方式

格式:‘{“runner”:{“name”:“METHOD”}}

METHOD 可以是broadcast ,roundrobin,activebacup,loadbalance,lacp

给网络组接口配ip地址

nmcli con mod team0 ipv4.method manual pv4.addresses 192.168.37.100/24

第二步:创建从属接口

nmcli con add type team-slave con-name CNAME ifname INAME master TEAM

CNAME连接名

INAME网络接口名

TEAM网络组接口名

若连接名不指定,默认为team-slave-IFACE

第三步:启动网络组接口和从属接口

nmcli con up CNAME

查看team0的状态

teamdctl team0 state

网络组示例:

nmcli con add type team con-name team0 ifname team0 config '{"runner":{"name":"loadbalance"}}
nmcli con mod team0 ipv4.method manual pv4.addresses 192.168.37.100/24
nmcli con add type team-slave con-name team0-ens33 ifname ens33 master team0
nmcli con add type team-slave con-name team0-ens34 ifname ens34 master team0
nmcli con up team0
nmcli con up team0-ens33
nmcli con up team0-ens34

网络组的配置文件在/etc/sysconfig/nework-scripts/ifcfg-team0

DEVICE=team0
DEVICETYPE=Team
TEAM_CONFIG="{"runner": {"name": "broadcast"}}"
BOOTPROTO=none
IPADDR0=172.25.5.100
PREFIX0=24
NAME=team0
ONBOOT=yes

删除网络组

nmcli connection down team0
nmcli connection delete team0-ens33
nmcli connection delete team0-ens33

网桥

桥接:把一台机器上的若干个网络接口“连接”起来。其结果是,其中一个网口收到的报文会被复制给其他网口并发送出去。以是的网口之间的报文能够互相转发。网桥就是这样一个设备,它有若干个网口,并且这些网口是桥接起来的。与网桥相连的主机就能通过交换机的报文转发而互相通信。

13.png

配置实现网桥

第一步:创建软件网桥接口并配上地址

nmcli con add type bridge con-name  br0 ifname br0 ipv4.method manual ipv4.addresses  192.168.37.100

第二步:创建网桥的从属接口

nmcli con add type bridge-slave ifname ens33 master br0
nmcli con add type bridge-slave ifname ens34 master br0

第三步:启动网桥接口和从属接口

nmcli con up br0
nmcli con up bridge-slave-ens33
nmcli con up bridge-slave-ens34

网桥的配置文件/etc/sysconfig/network-scripts/ifcfi-网桥接口名

删除网桥

直接删除配置文件最干脆

然后再重新加载一下配置文件,nmcli connection reload