前景须知:

在redhat6 中网卡叫bond,在redhat7及centos7中改名team,此处只记录centos7中双网卡主备搭建过程。

应用情景:实现网络的高可用,防止一条网线或交换机故障影响该物理机进行数据交互

此次环境是由于在上线业务之前是没有做Team的 ,现在由于要撤掉交换机过程期间需要将网线连接到另外一台交换机,为了防止数据中断,因此采用Team主备模式,这样断掉一个网卡就不影响业务,测试发现重启网卡时候会有3到4个丢包

环境:centos7  网卡1 ens192  网卡2 ens224

配置方法:

  1.创建组:

  

[root@bogon ~]# nmcli connection add type team ifname team0 con-name team0 config '{"runner":{"name":"activebackup"}}'

      add  添加

    type  设备类型

  ifname 接口名

  con-name 连接名

  activebackup    Team的主备模式

  会在/etc/sysconfig/network-scripts目录下生成一个ifcfg-team0的配置文件

  2.创建组接口地址:

[root@bogon ~]# nmcli connection modify team0 ip4 10.11.27.200/24  gw4 10.11.27.1

  ip4  设置ipv4的ip及掩码

  gw4 设置网关

[root@bogon ~]# nmcli connection modify team0 ipv4.method manual

  ipv4.method manual  设置ipv4地址为静态地址非dhcp

 

  3.添加网卡到(Team)组

[root@bogon ~]# nmcli connection add ifname ens192 con-name team0-port1 type team-slave master team0
[root@bogon ~]# nmcli connection add ifname ens224 con-name team0-port2 type team-slave master team0

  会在/etc/sysconfig/network-scripts 目录生成ifcfg-team0-port1 ifcfg-team0-port2两个配置文件

  4.由于我这里配置team0的ip是我之前网卡ens192的ip ,为了避免冲突在重启网卡前需要将ens192的网卡配置清除。

   如果是初始配置,则不需要此步骤

[root@bogon ~]# mv /etc/sysconfig/network-scripts/ifcfg-ens192 /home/wxl/

 

   5.重启网卡服务

[root@bogon ~]# systemctl restart network

 

  配置完毕

  重启网卡之前在另外一台机器一直ping此服务器则可以检测到网路中断的时间。

 

  6.查看team0的状态  

[root@bogon ~]# teamdctl team0 state
setup:
  runner: activebackup                          #当前运行的模式 主备
ports:                         #绑定的网卡信息               
  ens192
    link watches:
      link summary: up                          
      instance[link_watch_0]:
        name: ethtool
        link: up                                 #此网卡当前运行情况up则表示正常
        down count: 0
  ens224
    link watches:
      link summary: down
      instance[link_watch_0]:
        name: ethtool
        link: down                               #down表示此网卡被关闭
        down count: 0
runner:
  active port: ens192                            #当前主网卡使用的是ens192

 

 

 7.测试则可以拔掉一根网线或者停掉一个网卡进行测试,找一台机器一直ping着team0的ip观察是否网络会中断

     模拟ens2故障:

[root@bogon ~]# teamdctl team0 state                                                                                        
setup:
  runner: activebackup
ports:
  ens192
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
  ens224
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
runner:
  active port: ens192
[root@bogon ~]# ip  link set  ens224  down                                                                                 
[root@bogon ~]# teamdctl team0 state                                                                                         
setup:
  runner: activebackup
ports:
  ens192
    link watches:
      link summary: up
      instance[link_watch_0]:
        name: ethtool
        link: up
        down count: 0
  ens224
    link watches:
      link summary: down
      instance[link_watch_0]:
        name: ethtool
        link: down
        down count: 1
runner:
  active port: ens192

查看网络情况正常

[#@bh ~]$ ping 10.11.27.200
PING 10.11.27.200 (10.11.27.200) 56(84) bytes of data.
64 bytes from 10.11.27.200: icmp_seq=1 ttl=61 time=12.1 ms
64 bytes from 10.11.27.200: icmp_seq=2 ttl=61 time=12.6 ms
64 bytes from 10.11.27.200: icmp_seq=3 ttl=61 time=12.0 ms
64 bytes from 10.11.27.200: icmp_seq=4 ttl=61 time=11.5 ms
64 bytes from 10.11.27.200: icmp_seq=5 ttl=61 time=11.6 ms
64 bytes from 10.11.27.200: icmp_seq=6 ttl=61 time=12.3 ms

 

 

 

==============================================================================================

nmcli 命令集

显示当先网络设备状态:nmcli dev

显示所有网络连接:nmcli con show
显示活动网络连接:nmcli con show -active
显示指定网络连接的详情:nmcli con show eno16777728
显示网络设备连接状态:nmcli dev status
显示所有网络设备的详情:nmcli dev show
显示指定网络设备的详情:nmcli dev show eno16777728 

 

启用网络连接:nmcli con up eno16777728

停用网络连接(可被自动激活):nmcli con down eno33554960
禁用网卡,防止被自动激活:nmcli dev dis eth0 
删除网络连接的配置文件:nmcli con del eno33554960
重新加载配置网络配置文件:nmcli con reload

动态获取IP方式的网络连接配置:nmcli con add con-name eno16777728 type ethernet ifname eno16777728
指定静态IP方式的网络连接配置:nmcli con add con-name eno16777728 ifname eno16777728 autoconnect yes type ethernet ip4 10.1.254.254/16 gw4 10.1.0.1

启用/关闭所有的网络连接:nmcli net on/off
禁用网络设备并防止自动激活:nmcli con dis eno33554960
查看添加网络连接配置的帮助:nmcli con add help

修改网络连接单项参数

nmcli con mod IF-NAME connection.autoconnect yes修改为自动连接
nmcli con mod IF-NAME ipv4.method manual | dhcp修改IP地址是静态还是DHCP
nmcli con mod IF-NAME ipv4.addresses “172.25.X.10/24 172.25.X.254”修改IP配置及网关
nmcli con mod IF-NAME ipv4.gateway 10.1.0.1修改默认网关
nmcli con mod IF-NAME +ipv4.addresses 10.10.10.10/16添加第二个IP地址
nmcli con mod IF-NAME ipv4.dns 114.114.114.114添加dns1
nmcli con mod IF-NAME +ipv4.dns  8.8.8.8添加dns2
nmcli con mod IF-NAME -ipv4.dns  8.8.8.8删除dns
nmcli命令修改所对应的文件条目
nmcli con mod           ifcfg-* 文件
ipv4.method manual       BOOTPROTO=none
ipv4.method auto         BOOTPROTO=dhcp
connection.id eth0        NAME=eth0
(ipv4.addresses          IPADDR0=192.0.2.1
“192.0.2.1/24           PREFIX0=24
192.0.2.254”)           GATEWAY0=192.0.2.254
ipv4.dns 8.8.8.8        DNS0=8.8.8.8
pv4.dns-search example.com   DOMAIN=example.com
pv4.ignore-auto-dns true    PEERDNS=no
connection.autoconnect yes   ONBOOT=yes
connection.interface-name eth0 DEVICE=eth0
802-3-ethernet.mac-address... HWADDR=...