• nmcli配置多会话
  • 绑定两块网卡

  • 实验1
    网卡支持多会话功能,由于工作环境不同,需要配置不同的网络:如在家里使用使用DHCP获取,在公司使用固定ip,如果使用修改方式比较麻烦,配置多会话功能,在不同场景激活即可。
    实验环境:
    centos7、home:DHCP、company:static,自动连接
    配置过程:配置信息会保存至/etc/sysconfig/network-scripts/ifcfg-name

    • 添加会话
      [root@xt ~]# nmcli connection add con-name company autoconnect yes ifname ens36 type ethernet 
      Connection 'company' (46f14092-152e-4af3-9273-5acbf573b2a2) successfully added.
      [root@xt ~]# nmcli connection add con-name home autoconnect no ifname ens36 type ethernet 
      Connection 'home' (d3c8a326-e494-47b9-b6ea-92f18998b9b6) successfully added.
      [root@xt ~]# nmcli connection show 
      NAME         UUID                                  TYPE            DEVICE      
      eno16777736  2361aff4-2de8-4868-9fd6-5d30ccdada02  802-3-ethernet  eno16777736 
      home         d3c8a326-e494-47b9-b6ea-92f18998b9b6  802-3-ethernet  --          
      company      46f14092-152e-4af3-9273-5acbf573b2a2  802-3-ethernet  ens36       
      [root@xt ~]# nmcli device status 
      DEVICE       TYPE      STATE      CONNECTION  
      eno16777736  ethernet  connected  eno16777736 
      ens36        ethernet  connected  company     
      lo           loopback  unmanaged  --          
    • 修改IP地址
      如果不修改默认为自动分配;
      [root@xt ~]# nmcli connection modify company ipv4.addresses 172.16.0.10/16 ipv4.method manual
      还可以配置DNS、gateway...

    • 查看效果
[root@xt ~]# systemctl restart network #重启服务 
[root@xt ~]# nmcli device status  #ens36当前自动连接至company会话
DEVICE       TYPE      STATE      CONNECTION  
eno16777736  ethernet  connected  eno16777736 
ens36        ethernet  connected  company     
lo           loopback  unmanaged  --          

[root@xt ~]# ifconfig ens36 #ens36的ip信息配置正常
ens36: flags=4163  mtu 1500
        inet 172.16.0.10  netmask 255.255.0.0  broadcast 172.16.255.255
        inet6 fe80::20c:29ff:fe20:b507  prefixlen 64  scopeid 0x20
        ether 00:0c:29:20:b5:07  txqueuelen 1000  (Ethernet)
        RX packets 187  bytes 23730 (23.1 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 88  bytes 10998 (10.7 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

[root@xt ~]# nmcli connection up home  #将网卡会话切换至home会话
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/9)

[root@xt ~]# nmcli device status 
DEVICE       TYPE      STATE      CONNECTION  
eno16777736  ethernet  connected  eno16777736 
ens36        ethernet  connected  home        #ens36当前会话状态
lo           loopback  unmanaged  --          

[root@xt ~]# ifconfig ens36 #此时ip信息是自动获取
ens36: flags=4163  mtu 1500
        inet 192.168.175.133  netmask 255.255.255.0  broadcast 192.168.175.255
        inet6 fe80::20c:29ff:fe20:b507  prefixlen 64  scopeid 0x20
        ether 00:0c:29:20:b5:07  txqueuelen 1000  (Ethernet)
        RX packets 190  bytes 24476 (23.9 KiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 98  bytes 12306 (12.0 KiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

  • 实验2:网卡绑定
    1.配置两块网卡信息:设置主卡为bond0,

    [root@xt test]# cat ifcfg-ens36
    TYPE="Ethernet"
    BOOTPROTO="none"
    DEVICE="ens36" #修改第二块网卡的名称
    ONBOOT="yes"
    MASTER=bond0
    SLAVE=yes

    2.创建绑定 网卡的配置文件并指定ip地址等信息

    [root@xt test]# cat ifcfg-bond0
    TYPE="Ethernet"
    BOOTPROTO="none"
    NAME=bond0
    DEVICE=bond0
    ONBOOT="yes"
    IPADDR=192.168.0.10
    PREFIX=24
    DNS=192.168.0.1
    NM_CONTROLLED=no

    3.让内核支持bonding驱动

    vim /etc/modprobe.d/bond.conf
    alias bond0 bonding
    options bond0 miimon=100 mode=6
    说明:miimon是用来进行链路监测的。 比如:miimon=100,那么系统会100ms监测一次链路连接状态,如果有一条线路不通就转入另一条线路;  

    4.重启服务

  • 方法2:直接使用nmcli配置
    $ nmcli con add type bond ifname mybond0 mode active-backup 
    $ nmcli con add type bond-slave ifname eth1 master mybond0
    $ nmcli con add type bond-slave ifname eth2 master mybond0
    $再modify mybond0 ip相关信息,或者一开始添加
    常用模式:
    mode=0 |balance-rr:平衡负载,同时工作且自动备援,但需要”Switch”支援及设定
    mode=1:自动备援模式,只有一块网卡工作,故障后自动切换
    mode=6:平均负载均衡模式,且自动备援,但无需”Switch”支援及设定   
    #nmcli connection add autoconnect no type bond mode balance-alb ip4 192.168.10.10/24 gw4 192.168.10.1 
    autoconnect no-->ONBOOT=no
[root@xt test]# nmcli -p connection show bond 
===============================================================================
                       Connection profile details (bond)
===============================================================================
connection.id:                          bond
connection.uuid:                        56802b0b-824e-4c76-8562-94ad43661d56
connection.interface-name:              nm-bond
connection.type:                        bond
connection.autoconnect:                 no
connection.autoconnect-priority:        0
connection.timestamp:                   0
connection.read-only:                   no
connection.permissions:                 
connection.zone:                        --
connection.master:                      --
connection.slave-type:                  --
connection.autoconnect-slaves:          -1 (default)
connection.secondaries:                 
connection.gateway-ping-timeout:        0
connection.metered:                     unknown
-------------------------------------------------------------------------------
ipv4.method:                            manual
ipv4.dns:                               
ipv4.dns-search:                        
ipv4.addresses:                         192.168.10.10/24
ipv4.gateway:                           192.168.10.1
ipv4.routes:                            
ipv4.route-metric:                      -1
ipv4.ignore-auto-routes:                no
ipv4.ignore-auto-dns:                   no
ipv4.dhcp-client-id:                    --
ipv4.dhcp-send-hostname:                yes
ipv4.dhcp-hostname:                     --
ipv4.never-default:                     no
ipv4.may-fail:                          yes
-------------------------------------------------------------------------------
ipv6.method:                            auto
ipv6.dns:                               
ipv6.dns-search:                        
ipv6.addresses:                         
ipv6.gateway:                           --
ipv6.routes:                            
ipv6.route-metric:                      -1
ipv6.ignore-auto-routes:                no
ipv6.ignore-auto-dns:                   no
ipv6.never-default:                     no
ipv6.may-fail:                          yes
ipv6.ip6-privacy:                       -1 (unknown)
ipv6.dhcp-send-hostname:                yes
ipv6.dhcp-hostname:                     --
-------------------------------------------------------------------------------
bond.options:                           mode=balance-alb
-------------------------------------------------------------------------------

重启服务生效:生成 配置文件永久有效:

[root@xt network-scripts]# cat ifcfg-bond
DEVICE=nm-bond
BONDING_OPTS=mode=balance-alb
TYPE=Bond
BONDING_MASTER=yes
BOOTPROTO=none
IPADDR=192.168.10.10
PREFIX=24
GATEWAY=192.168.10.1
DEFROUTE=yes
IPV4_FAILURE_FATAL=no
IPV6INIT=yes
IPV6_AUTOCONF=yes
IPV6_DEFROUTE=yes
IPV6_PEERDNS=yes
IPV6_PEERROUTES=yes
IPV6_FAILURE_FATAL=no
NAME=bond
UUID=523b6b71-9151-4887-877d-7c0bfa55e489
ONBOOT=no