nmcli命令详解;如何用nmcli做bond

在这里插入图片描述

原文发布在微信公众号:Cloud研习社

如果说ip命令是对网络进行配置的命令,那么nmcli更多的是对网卡进行配置的命令。

nmcli – command-line tool for controlling NetworkManager,CentOS / RHEL 7中的网络管理命令行工具。

nmcli [OPTIONS] OBJECT { COMMAND | help }

详解:

[root@m01 ~]# nmcli help
Usage: nmcli [OPTIONS] OBJECT { COMMAND | help }

OPTIONS
  -a, --ask                                ask for missing parameters
  -c, --colors auto|yes|no                 whether to use colors in output
  -e, --escape yes|no                      escape columns separators in values
  -f, --fields <field,...>|all|common      specify fields to output
  -g, --get-values <field,...>|all|common  shortcut for -m tabular -t -f
  -h, --help                               print this help
  -m, --mode tabular|multiline             output mode
  -o, --overview                           overview mode
  -p, --pretty                             pretty output
  -s, --show-secrets                       allow displaying passwords
  -t, --terse                              terse output
  -v, --version                            show program version
  -w, --wait <seconds>                     set timeout waiting for finishing operations

OBJECT
  g[eneral]       NetworkManager's general status and operations
  n[etworking]    overall networking control
  r[adio]         NetworkManager radio switches
  c[onnection]    NetworkManager's connections
  d[evice]        devices managed by NetworkManager
  a[gent]         NetworkManager secret agent or polkit agent
  m[onitor]       monitor NetworkManager changes

OPTIONS:

-c 输出结果的时候自动带上颜色

-f 指定要输出的字段。【网络配置文件中的字段】

OBJECT:

这个字段可以简写,即可以只写开头的一个字母。

g[eneral] 网络管理的一般状态和操作

n[etworking] 整体网络控制

c[onnection] 管理网络连接

d[evice] 管理网络设备

m[onitor] 监控网络变化

nmcli general

使用格式:

nmcli general {status | hostname | permissions | logging}

使用示例:

# 查看网络管理状态
[root@m01 ~]# nmcli general status					
STATE      CONNECTIVITY  WIFI-HW  WIFI     WWAN-HW  WWAN    
connected  full          enabled  enabled  enabled  enabled 
[root@m01 ~]# nmcli general hostname
localhost.localdomain
[root@m01 ~]# nmcli general permissions

nmcli networking

使用格式:

nmcli networking {on | off | connectivity} 

用来查询NetworkManager网络状态。即网络是否被NetworkManager管理。

[root@m01 ~]# nmcli ne connectivity
full

上面的输出结果说明:主机与网络相连,可以完全访问Internet。

nmcli connection

使用格式:

nmcli connection {show | up | down | modify | add | edit | clone | delete | monitor | reload | load | import | export} [ARGUMENTS...]

show 查看网络信息

up 启动(激活)一个连接

down 关闭一个连接

modify 修改已有的网络配置信息

add 添加网络配置信息

edit 编辑一个已有的或者添加一个新的连接

delete 删除一个连接

实例演示:

  1. 查看所有网络连接:

    nmcli c show
    
  2. 查看活动的网络连接

    nmcli c show -active
    
  3. 查看指定网卡的信息

    nmcli c show ens33
    
  4. 网卡状态修改

    nmcli connection up ens33
    
  5. 停用网络连接

    nmcli c down ens33
    
  6. 删除网络连接的配置文件

    nmcli c delete ens33
    
  7. 重新加载网络配置文件

    nmcli c reload
    
  8. 修改网卡配置文件

    自动启动网卡。实际修改的是网卡配置文件ONBOOT=yes

    nmcli c modify ens34 connection.autoconnect yes
    
  9. 设置IP地址获取方式是手动或者DHCP

    # 手动设置IPv4地址,如果原本是DHCP获取地址,改手动后,如果后面不接IP地址,可能会报错
    [root@m01 ~]# nmcli connection modify ens37 ipv4.method manual ipv4.addresses 172.16.10.1/16
     
    # 设置IP地址为DHCP
    [root@m01 ~]# nmcli connection modify ens37 ipv4.method auto
     
    实际修改的是网卡配置文件BOOTPROTO,BOOTPROTO=none 表示手动;BOOTPROTO=dhcp 表示dhcp
    
  10. 修改IP地址

    nmcli c modify ens37 ipv4.address 172.17.18.19/24
    

    实际修改的是网卡配置文件:IPADDR=172.17.18.19 PREFIX=24

  11. 添加DNS

    nmcli c modify ens37 ipv4.dns 223.5.5.5
    

    实际修改的是网卡配置文件:DNS1=223.5.5.5

  12. 添加第二个IP地址

    nmcli c modify ens37 +ipv4.address 172.17.18.29/24
    

    实际修改的是网卡配置文件:IPADDR1=172.17.18.29 PREFIX1=24

  13. 添加网卡

    nmcli c add type ethernet ifname ens35 con-name ens35
    

nmcli connection实战应用

网卡bond或team是通过把多张网卡绑定为一个逻辑网卡,实现本地网卡的冗余、带宽扩容或负载均衡。

常见的bond模式:

  • Mode=0(balance-rr) 表示负载分担round-robin,需要交换机端也做端口聚合。
  • Mode=1(active-backup) 表示主备模式,只有一块网卡是active,另外一块是备的standby,这时如果交换机配的是捆绑,将不能正常工作,因为交换机往两块网卡发包,有一半包是丢弃的。
  • Mode=2(balance-xor) 表示XOR Hash负载分担,和交换机的聚合强制不协商方式配合。
  • Mode=3(broadcast) 表示所有包从所有interface发出,这个不均衡,只有冗余机制…和交换机的聚合强制不协商方式配合。
  • Mode=4(802.3ad) 表示支持802.3ad协议,和交换机的聚合LACP方式配合。
  • Mode=5(balance-tlb) 根据每个slave的负载情况选择slave进行发送,接收时使用当前轮到的slave
  • Mode=6(balance-alb) 在5的tlb基础上增加了rlb。
  1. 两块网卡绑定做bond6

    # 1. 先备份原有网络配置文件
    cp /etc/sysconfig/network-scripts/ifcfg-eno* .
    
    # 2. 看一下当前有哪些网卡
    [root@m01 ~]# nmcli connection show 
    NAME   UUID                                  TYPE      DEVICE 
    ens33  16d2cd29-5a42-4d84-91ba-eef9ac8e212a  ethernet  ens33  
    ens34  73058591-0684-482a-843f-d58630f02a29  ethernet  ens34  
    
    
    # 3. 先创建一个bond类型的网卡,我们采用bond6
    nmcli connection add con-name bond6 ifname bond6 type bond mode 6
    
    # 4. 向新创建的bond6网卡添加两块实体网卡(就是上面看到的ens33、ens34),bond6作为主网卡
    nmcli connection add con-name slave1 ifname ens33 type ethernet master bond6
    nmcli connection add con-name slave2 ifname ens34 type ethernet master bond6
    
    # 5. 修改bond6的信息:设置静态ip,地址为172.18.2.12,并且设置开机自启动,网关是172.18.2.254
    nmcli connection modify bond6 ipv4.method manual connection.autoconnect yes ipv4.addresses 172.18.2.12 ipv4.gateway 172.18.2.254
    
    # 6. 启动网卡。这时候我们就绑定成功了
    nmcli connection up bond6
    

    说明:

    connection add 添加新的连接

    con-name 连接名

    type 设备类型

    ifname 接口名

    请自行测试:我们可以断开ens33或ens34,断开一个,网络可以正常通信,就说明bond6做成功了。

    注意:如果做bond0的话,在vmware workstation虚拟机中做就会出现适配器不具有网络连接的现象,但是bond0能够正常启动也能够正常使用,只不过没有起到备份模式的效果。

    当使用ifdown eth0后,网络出现不通现象。这和VMware的工作方式以及内核获取mac地址的方式有关。不用纠结这个。

  2. 两块网卡做team绑定

team和bond一样是将多个网卡聚合在一起方法,从而实现冗错和提高吞吐量。

team不同于bond技术,team提供更好的性能和扩展性。team由内核驱动和teamd守护进程实现。

team的模式:

  1. broadcast
  2. roundrobin
  3. activebackup
  4. loadbalance
  5. lacp
# 1. 创建一个网卡team0,同时会自动生成相应的配置文件
nmcli connection add type team ifname team0 con-name team0 config '{"runner": {"name": "activebackup"}}'

# 2. 配置team0的ip地址
nmcli connection modify team0 ipv4.addresses '10.0.0.7/24'

# 3. 这是team0的网卡ip为静态配置
nmcli connection modify team0 ipv4.method manual

# 4. 把ens33、34网卡绑定到team0上
nmcli connection add type team-slave ifname ens33 con-name ens33 master team0
nmcli connection add type team-slave ifname ens34 con-name ens34 master team0

# 5. 启动网卡
nmcli connection up team0
nmcli connection up ens33
nmcli connection up ens34

# 6. 查看连接状态
teamdctl team0 stat
# 返回结果有link summary: up就说明成功了,然后测试连通性就可以了。

nmcli device

使用格式:

nmcli device {status | show | set | connect | reapply | modify | disconnect | delete | monitor | wifi | lldp} [ARGUMENTS...]

实例演示:

  1. 查看所有网络设备详情
nmcli d show 
  1. 查看网络设备的连接状态

    nmcli d status
    
  2. 禁用网卡防止被激活

    nmcli d disconnect ens34
    

    往期经典:
    Linux 云计算 运维 最全学习路线(建议收藏)

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值