介绍
网卡绑定分为有team和bond
一、什么是网卡绑定(冗余)
就是将两块网卡虚拟链接成一块网卡的技术。通过网卡绑定技术让多块网卡看起来是一个单独的以太网接口设备并具有相同的ip地址。
二、为什么做网卡绑定
通过网卡绑定技术既能增加服务器的可靠性,又增加了可用网络宽带,为用户提供不间断的网络服务,实现主备功能当一块网卡出问题的时候,另一块网卡就会被启用。
确认&修改环境
查看IP
[root@test network-scripts]# ip add show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: ens33: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:95:c5:52 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.3/24 brd 192.168.1.255 scope global noprefixroute ens33
valid_lft forever preferred_lft forever
inet6 fe80::a5e4:8482:4a68:5eef/64 scope link noprefixroute
valid_lft forever preferred_lft forever
3: virbr0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether 52:54:00:d8:61:d7 brd ff:ff:ff:ff:ff:ff
inet 192.168.122.1/24 brd 192.168.122.255 scope global virbr0
valid_lft forever preferred_lft forever
4: virbr0-nic: <BROADCAST,MULTICAST> mtu 1500 qdisc pfifo_fast master virbr0 state DOWN group default qlen 1000
link/ether 52:54:00:d8:61:d7 brd ff:ff:ff:ff:ff:ff
5: ens38: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
link/ether 00:0c:29:95:c5:5c brd ff:ff:ff:ff:ff:ff
inet 10.1.1.10/24 brd 10.1.1.255 scope global noprefixroute ens38
valid_lft forever preferred_lft forever
inet6 fe80::8a94:2ffc:df84:adbe/64 scope link noprefixroute
valid_lft forever preferred_lft forever
6: ens39: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UNKNOWN group default qlen 1000
link/ether 00:0c:29:95:c5:66 brd ff:ff:ff:ff:ff:ff
发现网卡名的名称不是以eth[x]来命名的,进行修改
[root@test kylin]# cd /etc/sysconfig/network-scripts/
[root@test network-scripts]# ls
ifcfg-ens33 ifdown-post ifup-eth ifup-sit
ifcfg-ens38 ifdown-ppp ifup-ib ifup-Team
ifcfg-lo ifdown-routes ifup-ippp ifup-TeamPort
ifdown ifdown-sit ifup-ipv6 ifup-tunnel
ifdown-bnep ifdown-Team ifup-isdn ifup-wireless
ifdown-eth ifdown-TeamPort ifup-plip init.ipv6-global
ifdown-ib ifdown-tunnel ifup-plusb network-functions
ifdown-ippp ifup ifup-post network-functions-ipv6
ifdown-ipv6 ifup-aliases ifup-ppp
ifdown-isdn ifup-bnep ifup-routes
发现没有ens39
的配置文件说明网卡没有识别出来
[root@test network-scripts]# nmcli device status
DEVICE TYPE STATE CONNECTION
ens33 ethernet 连接的 ens33
ens38 ethernet 连接的 ens38
virbr0 bridge 连接的 virbr0
ens39 ethernet 已断开 --
lo loopback 未托管 --
virbr0-nic tun 未托管 --
激活网卡并修改配置文件的网卡名称
[root@test network-scripts]# nmcli connection add ifname ens39 con-name ens39 type ethernet
连接“ens39”(29108b77-e026-406f-98a2-fa57b692841f) 已成功添加。
[root@test network-scripts]# cd /etc/sysconfig/network-scripts/
[root@test network-scripts]# sed -i 's/ens33/eth0/' ifcfg-ens33
[root@test network-scripts]# mv ifcfg-ens33 ifcfg-eth0
[root@test network-scripts]# sed -i 's/ens38/eth1/' ifcfg-ens38
[root@test network-scripts]# mv ifcfg-ens38 ifcfg-eth1
[root@test network-scripts]# sed -i 's/ens39/eth2/' ifcfg-ens39
[root@test network-scripts]# mv ifcfg-ens39 ifcfg-eth2
修改网卡启动时的名称
[root@test network-scripts]# sed -i 's/rhgb/net.ifnames=0 biosdevname=0 &/' /etc/default/grub
[root@test network-scripts]# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-3.10.0-957.el7.x86_64
Found initrd image: /boot/initramfs-3.10.0-957.el7.x86_64.img
Found linux image: /boot/vmlinuz-0-rescue-83263378974041bbad57ff5f7524542f
Found initrd image: /boot/initramfs-0-rescue-83263378974041bbad57ff5f7524542f.img
done
[root@test network-scripts]# reboot # 重启生效
确认于哪个物理端口进行冗余
[root@test kylin]# ethtool -p eth0
# 此时物理网口黄色灯光闪烁
网卡如果有配置要进行清空
[root@test kylin]# nmcli connection delete eth0
成功删除连接 'eth0'(29b9a708-31d3-4c8b-aa96-139c030b368b)。
[root@test kylin]# nmcli connection delete eth1
成功删除连接 'eth1'(5e274566-510c-48a8-805e-f2f74a0a1958)。
[root@test kylin]# nmcli connection delete eth2
成功删除连接 'eth2'(29108b77-e026-406f-98a2-fa57b692841f)。
确认好端口后进行配置
配置team
一、什么是team
team是链路聚合的一种方式,最多可支持八块网卡工作
二、team支持的工作方式
模式 | 功能 |
---|---|
broadcast | 广播容错 |
roundrobin | 平衡轮叫 |
activebackup | 主备 |
loadbalance | 负载均衡 |
三、配置
[root@test kylin]# nmcli connection add ifname team0 con-name team0 type team autoconnect yes config '{"runner":{"name":"activebackup"}}' ip4 192.168.10.100/24
[root@test kylin]# ip add show | grep team0
7: team0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
inet 192.168.1.100/24 brd 192.168.1.255 scope global noprefixroute team0
[root@test kylin]# nmcli connection add ifname eth1 con-name team0-1 type team-slave autoconnect yes master team0
连接“team0-1”(6b9ff815-a33b-42a3-a36a-d7ce85ccf81b) 已成功添加。
[root@test kylin]# nmcli connection add ifname eth2 con-name team0-2 type team-slave autoconnect yes master team0
连接“team0-2”(7d3c143b-53d3-41b6-b5bb-99bbce1973f3) 已成功添加。
[root@test kylin]# teamdctl team0 state # 查看配置
配置bond
一、bond模式详解和配置
二、网卡bond的模式
网卡绑定mode共有七种(0~6) bond0、bond1、bond2、bond3、bond4、bond5、bond6。 常用的有三种:
mode=0:平衡负载模式,有自动备援,但需要”Switch”支援及设定。
mode=1:自动备援模式,其中一条线若断线,其他线路将会自动备援。
mode=6:平衡负载模式,有自动备援,不必”Switch”支援及设定。
查看网口与网线连接状态
[root@test network-scripts]# ethtool eth0
Settings for eth0:
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes # 如果Link detected:no 的话,尝试用命令ifconfig eth2 up,如果用ethtool查看任然为no的话,才能说明此网卡确实没有网线插入。
网卡配置文件介绍
cat /etc/sysconfig/network-script/ifcfg-eth0
TYPE=Ethernet (可忽略)
BOOTPROTO=none (系统启动地址协议;none同static,配置为静态IP;dhcp,配置为动态IP,自动获取)
NAME=eth0 (名称)
DEVICE=eth0 (网络接口名称,必与该配置文件后缀的名称相同)
ONBOOT=yes (系统启动时是否激活)
IPADDR=192.168.1.10 (ip地址)
NETMASK=255.255.255.0 (子网掩码)
GATEWAY=192.168.1.254 (网关)
DNS1=8.8.8.8 (DNS,域名解析,可写其他的dns)
USERCTL=yes/no 是否允许非root用户控制该设备
NETWORK=192.168.1.0 网络地址(可不要)
BROADCAST=192.168.1.255 广播地址(可不要)
HWADDR=00:0C:29:2C:E1:0F 网卡的Mac地址
重启网络服务失败,这儿或者就是配置文件有误
nmcli device show 详细显示网卡的信息 可以后面再跟上具体的网卡名,如不加,则显示所有网卡的信息
nmcli device status 简单显示所有网卡的连接状态
nmcli device disconnect ens33 断开指定网卡与方案的连接
nmcli device connect ens33 创建指定网卡与方案的连接
nmcli connection reload 重读
nmcli connection up 方案名 使方案名生效
nmcli connection show 查看当前网卡配置方案
在centos 7 中不建议手动创建网卡配置文件,如果手工修改了配置文件(路径:/etc/sysconfig/network-scripts/),则需要使用nmcli connection reload 重读后,才能够nmcli connection up 方案名
注: ip地址配置在bond0上, 物理网卡不需要配置ip地址。
命令行配置
注:nmcli & nmtui需要开启NetworkManager服务
nmcli connection add type bond ifname bond1 mode 1
nmcli connection add type bond-slave ifname eth1 master bond1
nmcli connection add type bond-slave ifname eth2 master bond1
nmcli connection up bond-slave-eth1
nmcli connection up bond-slave-eth2
nmcli connection up bond-bond1
配置文件编写
1、关闭和停止NetworkManager服务
systemctl stop NetworkManager.service # 停止NetworkManager服务
systemctl disable NetworkManager.service # 禁止开机启动NetworkManager服务
ps: 一定要关闭,不关会对做bonding有干扰
2、加载bonding模块
modprobe --first-time bonding
没有提示说明加载成功, 如果出现modprobe: ERROR: could not insert ‘bonding’: Module already in kernel说明你已经加载了这个模块, 就不用管了
你也可以使用lsmod | grep bonding查看模块是否被加载
lsmod | grep bonding
bonding 136705 0
[root@test network-scripts]# cd /etc/sysconfig/network-scripts/
[root@test network-scripts]# cat ifcfg-bond0
BONDING_OPTS=mode=active-backup
TYPE=Bond
BONDING_MASTER=yes
BOOTPROTO=none
IPADDR=192.168.10.200
PREFIX=24
NAME=bond0
DEVICE=bond0
ONBOOT=yes
[root@test network-scripts]# cat ifcfg-eth1
TYPE=Ethernet
NAME=eth1
DEVICE=eth1
ONBOOT=yes
MASTER=bond0
SLAVE=yes
[root@test network-scripts]# cat ifcfg-eth2
TYPE=Ethernet
NAME=eth2
DEVICE=eth2
ONBOOT=yes
MASTER=bond0
SLAVE=yes
重启网络服务
systemctl restart network
查看bond0的接口状态信息 ( 如果报错说明没做成功,很有可能是bond0接口没起来)
cat /proc/net/bonding/bond0
借鉴网上各个帖子加上了一些自己的配置