前景须知:
在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/ 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:
ens224
link watches:
link summary: down
instance[link_watch_0]:
name: ethtool
link: down #down表示此网卡被关闭
down count:
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:
ens224
link watches:
link summary: up
instance[link_watch_0]:
name: ethtool
link: up
down count:
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:
ens224
link watches:
link summary: down
instance[link_watch_0]:
name: ethtool
link: down
down count:
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=...