nmcli命令大集合

Posted 大天使彦

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了nmcli命令大集合相关的知识,希望对你有一定的参考价值。

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  

nmcli connection show  链接名  查看这一套配置的相关信息

 

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 连接配置名

 

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

 

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

 

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

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

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

 

 nmcli修改连接配置名

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

 

nmcli 增加新的地址

 nmcli  connection modify 连接配置名 +ipv4addresses  2.2.2.2/16

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

nmcli con up 连接配置名  

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

nmcli connection modify ens33 +ipv4.addresses 2.2.2.2/16

nmcli con up ens33

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

删除添加的地址

nmcli  connection delete 连接配置名 -ipv4addresses  2.2.2.2/16

nmcli con up 连接配置名

 

网络接口配置-bonding

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

Mode 0 (balance-rr)

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

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

Mode 1 (active-backup)

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

Mode 3 (broadcast)

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

 

nmcli 命令实现bonding

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

第一步:添加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

 

网桥

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

配置实现网桥

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

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

 

以上是关于nmcli命令大集合的主要内容,如果未能解决你的问题,请参考以下文章

nmcli命令使用以及网卡绑定bond

nmcli命令学习(必须会,CentOS8都默认nmcli了)

nmcli命令详解

强大的nmcli命令独家揭秘

nmcli 命令常用选项

nmcli命令(转)