• 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<UP,BROADCAST,RUNNING,MULTICAST>  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<link>
        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<UP,BROADCAST,RUNNING,MULTICAST>  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<link>
        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