目录
    
   
Nmcli 是NetworkManger软件名的缩写,也是该软件下的一个命令,专门用于管理Linux服务器的网络配置。在centos 7中已经出现该命令, 在centos 8中,官方放弃了network服务,主推Nmcli服务。
具体的介绍和配置案例,可以查看官方的产品文档:
    (
    
     网络指南 Red Hat Enterprise Linux 7 | Red Hat Customer Portal
    
    )
   
可以在命令行或者互动编译器使用Nmcli创建、显示、编辑、删除、激活和停用网络连接,以及控制和显示网络设备状态。
在Redhat/8(centOS/8)中通常有以下三种方式配置网络
- 通过nmcli connection add命令配置,会自动生成ifcfg文件。
- 手动配置ifcfg文件,通过nmcli connection reload来加载生效。
- 手动配置ifcfg文件,通过传统network.service来加载生效。
    一、Nmcli — 静态IP的配置
   
我们为什么要为Linux系统配置一个静态的IP地址呢?
通常使用linux系统都是需要提供服务的,作为服务器都需要固定的IP地址,就是静态的IP地址。这样,客户端才能正常访问这个Linux服务器。
    1.网卡的配置文件
   
    在RHEL 8 中 网卡的配置文件 一般在
    
     /etc/sysconfig/network-scripts/ifcfg
    
   
    
     ifcfg后面是自己的网卡名称
    
   
    
     以我为例子,我的是  :
    
    /etc/sysconfig/network-scripts/ifcfg-ens160
   
下面是Linux 默认配置网卡的信息
[root@localhost li]# cat /etc/sysconfig/network-scripts/ifcfg-ens160 
TYPE=Ethernet                #  网卡类型:以太网      
PROXY_METHOD=auto            #  代理方式:关闭状态
BROWSER_ONLY=no              #  只是浏览器(yes|no)
BOOTPROTO=dhcp               #  网卡获得ip地址的方式  (static|dhcp|none|bootp)
DEFROUTE=yes                 #  设置为默认路由(yes|no)
IPV4_FAILURE_FATAL=no        #  是否开启IPV4致命错误检测(yes|no)
IPV6INIT=yes                 #  IPV6是否自动初始化
IPV6_AUTOCONF=yes            #  IPV6是否自动配置
IPV6_DEFROUTE=yes            #  IPV6是否可以为默认路由
IPV6_FAILURE_FATAL=no        #  是否开启IPV6致命错误检测
NAME=ens160                  #  网卡物理设备名称
UUID=734e5e04-1ffe-4907-96d1-87203246e77c                  #uuid识别码
DEVICE=ens160                #  网卡设备名称
ONBOOT=yes                   #  开机自启(yes|no)
PAC_URL=https://sub.100oj.top/api/v1/client/subscribe?token=f0b424080d04772a1ae60575c0197191
    2.在命令行输入命令
   
nmcli connection modify ens160 ipv4.addresses 192.168.84.129/24 ipv4.gateway 192.168.84.1 ipv4.dns 8.8.8.8 ipv4.method manual connection.autoconnect yes
一般是在局域网内的虚拟机上操作,所以IP地址、网关,要根据VMware所给的网段更改(192.168.x.x)我的是192.168.84.X
[root@localhost li]# nmcli connection modify ens160 ipv4.addresses 192.168.84.129/24 ipv4.gateway 192.168.84.1 ipv4.dns 8.8.8.8 ipv4.method manual connection.autoconnect yes 
   
#    连接网卡ens160  修改
#    ipv4.method manual                    - - -  IPv4模式   (aoto=自动  manual=静态)
#    ipv4. addresses 192.168.84.129/24     - - -  IP地址
#    ipv4.gateway 192.168.84.1             - - -  网关
#    ipv4.dns 8.8.8.8                      - - -  dns解析
#    connection.autoconnect yes            - - -  开机自动连接在我们在命令行输入上面的命令之后,会更改网卡的的配置,这个时候我们需要加载网卡初始化的信息,让更改的配置生效。
[root@localhost li]# nmcli connection up ens160这个时候,我们再次查看网卡的配置文件: /etc/sysconfig/network-scripts/ifcfg-ens160
相较于默认网卡配置,会多出几行内容,这就是我们刚刚修改添加的内容
IPADDR=192.168.84.129   #IP地址
PREFIX=24               #掩码位数
GATEWAY=192.168.84.1    #网关
DNS1=8.8.8.8            #dns
    二 、Team网卡绑定的实验
   
    1.Team网络组的模式,及其配置的示例文件
   
我们可以把 team 组当作一个设 备。 利用多网卡同时工作来提高网络速度,还可以通过Teaming 实现不同网卡之间的负载均衡 (Load balancing)和网卡冗余(Fault tolerance)。
    
     team网络组的模式有
    
    :
   
broadcast(广播模式):每个网卡都传送数据包。
roundrobin(轮询模式):每个网卡轮询方式传送数据。
activebackup(主备模式):网卡之间有主备,主网卡传送数据包,备网卡不传送,主网卡down了,备网卡才传送数据。
loadbalance(负载均衡):监控流量并使用哈希函数,使得每个网卡传送的数据包达到相等。
lacp:需要借助交换机,实现高级的负载均衡。
一些nmcli的常用命令:
/*查看当前会话: nmcli connection show
/*查看本地网卡情况:nmcli device
/*查看设备状态信息: nmcli device status
/*激活网卡
绑定会话:
nmcli device connect ens
…
    2.实验过程
   
    (1)、创建逻辑接口,名称为team0,且使用主备模式
   
nmcli connection add type team ifname team0 con-name team0 config ‘{“runner”:{“name”:”activebackup”}}’
(最外层单引号)
*** con-name为会话名(自己随意起名)
*** ifname接口名称(也就是网卡名)
*** runner 运行模式
*** name 运行名称
    (2)、添加多个从设备(从)
   
    
     若网卡类型无
    
    
     team-slave
    
    
     则直接写网卡真实类型
    
   
    
     将指定的物理网卡添加到team0组成网络组。
    
   
    
     这里要加入team逻辑网卡的物理网卡不可以有IP,所以这里一班选择新加入的网卡进行team网卡绑定。如果想要绑定旧网卡,需要先清空网卡的配置信息
    
   
nmcli connection add type team-slave ifname ens224 con-name
team0-port1
master team0
连接 “team0-port1” (cb11847e-7229-4203-9a66-e80c127dfe0a) 已成功添加。
nmcli connection add type team-slave ifname ens256 con-name
team0-port2
master team0
连接 “team0-poet2” (66a9e7b7-9f5f-43e3-a5e0-2c26bea629b8) 已成功添加
    (3)、激活设备
   
    
     先激活主设备,再激活从设备
    
   
nmcli connection up team0-port1
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/32)
nmcli connection up team0-port2
连接已成功激活(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/33)
    (4)、查看网卡的状态
   
nmcli connection up team0
连接已成功激活(master waiting for slaves)(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/34)
    查看当前会话(因为我的失误,从设备的别名本应该是
    
     team0-port2
    
    ,手误打成了
    
     team0-poet2
    
    )
   
     
   
注:显示team工作状态(测试实验状态) teamdctl team0 stat
如果我们要删除删除team0
[root@localhost ~]# nmcli connection delete tem0-port1
[root@localhost ~]# nmcli connection delete team0-port2
[root@localhost ~]# nmcli connectiion delete team0
    三 、桥接
   
桥接 – – – 将一台机器上的若干个接口连接起来,其中一个网卡收到的报文会被复制给其他网卡发送出去,使得网口之间的报文可以互相转发。
    1.
    
     实验过程
    
   
    (1)、
    
     创建一个桥接设备和会话
    
   
nmcli connection add type bridge ifname br1 con-name br1
连接 “br1” (6c6d6859-bfb5-4f5e-abf8-271b456bc595) 已成功添加。
    (2)、配置软件桥接网卡的IP地址 网关和地址获取方式
   
nmcli connection modify br1 ipv4.addresses
nmcli connection modify br1 ipv4.gateway
nmcli connection modify br1 ipv4.method
    (3)、
    
     添加设备到桥接设备
    
   
nmcli connection add type bridge-slave ifname ens160 con-name br1-slave master br1
连接 “br1-slave” (eb09aec7-86a3-4661-9da5-855cca02845f) 已成功添加。
    (4)、
    
     启用设备
    
    
     ,先启动从设备
    
   
nmcli connection up br1
连接已成功激活(master waiting for slaves)
(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/42)
nmcli connection up br1
连接已成功激活(master waiting for slaves)
(D-Bus 活动路 径:/org/freedesktop/NetworkManager/ActiveConnection/45
    (5)、启用桥接会话
   
nmcli connection up br1
连接已成功激活(master waiting for slaves)
(D-Bus 活动路径:/org/freedesktop/NetworkManager/ActiveConnection/45)
 
