ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【硬件相关】网卡bond配置

2022-05-28 18:02:48  阅读:165  来源: 互联网

标签:硬件 bond0 XGigabitEthernet0 端口 网卡 ff bond


一、前言

参考文档:
Redhat:7.7. Using Channel Bonding

本文主要阐述如何配置网卡bond,以及不同bond模式区别差异

bonding是Linux提供的一种技术,它可以将两个以上的网络接口绑定为一个逻辑接口,实现网络冗余、负载均衡,总共支持以下7种模式

mode policy 模式特点 实现效果 交换机支持
0 balance-rr 轮询模式,数据包从不同slave接口依次轮询传输,
同一时刻只有一个slave网络接口工作
网络冗余
负载均衡
需要
1 active-backup 主备模式,只有一个slave接口处于活跃状态,只有
当主接口异常之后,备接口才会启用工作
网络冗余 不需要
2 balance-xor 基于指定的传输hash策略传输数据包 网络冗余
负载均衡
需要
3 broadcast 在所有slave接口发送所有数据包 网络冗余 需要
4 802.3ad 需要交换机对所有slave接口创建端口组(lacp模式),
所有slave接口共享同样的速率,根据传输带宽自动匹配slave接口
网络冗余
负载均衡
需要
5 balance-tlb 传输负载均衡模式,在每个slave接口上根据负载分配传出
流量,若正在接收数据的slave故障,另一个slave接管失败slave的MAC地址对外服务
网络冗余
负载均衡
不需要
6 balance-alb 自适应性负载均衡模式,通过ARP协商实现接收和发送负载均衡 网络冗余
负载均衡
不需要

二、网卡配置

集群存在两张双口万兆网卡,分别使用两张万兆网卡其中一个口配置bond,实现网络聚合效果

1、CentOS


万兆网卡01 万兆网卡02
网卡名称 enp2s0f0 enp130s0f0
bond配置 bond0 bond0

以下示例,将网卡enp2s0f0和网卡enp130s0f0聚合为bond0网卡,bond配置模式为bond6(mode=6

注:如需更改bond模式,则更改mode为对应数值即可

1、备份现有网卡配置信息

[root@node118 network-scripts]# cp ifcfg-enp2s0f0 backup-ifcfg-enp2s0f0 
[root@node118 network-scripts]# cp ifcfg-enp130s0f0 backup-ifcfg-enp130s0f0 

2、添加以下网卡配置信息,重启网络服务即可

[root@node118 network-scripts]# cat ifcfg-enp2s0f0 
DEVICE=enp2s0f0
BOOTPROTO=none
ONBOOT=yes
NAME=enp2s0f0
TYPE=Ethernet
MASTER=bond0
SLAVE=yes
NM_CONTROLLED=no


[root@node118 network-scripts]# cat ifcfg-enp130s0f0 
DEVICE=enp130s0f0
BOOTPROTO=none
ONBOOT=yes
NAME=enp130s0f0
TYPE=Ethernet
MASTER=bond0
SLAVE=yes
NM_CONTROLLED=no


[root@node118 network-scripts]# cat ifcfg-bond0 
DEVICE=bond0
NAME=bond0
TYPE=Ethernet
NM_CONTROLLED=no
USERCTL=no
ONBOOT=yes
BOOTPROTO=static
BONDING_OPTS='mode=6 miimon=100'
IPADDR=172.16.21.118
NETMASK=255.255.255.0
GATEWAY=172.16.21.205
DNS1=114.114.114.114
DNS2=8.8.8.8


[root@node118 network-scripts]# systemctl restart network

2、Ubuntu


万兆网卡01 万兆网卡02
网卡名称 ens160 ens192
bond配置 bond0 bond0

以下示例,将网卡ens160和网卡ens192聚合为bond0网卡,bond配置模式为bond6(mode=6
注:如需更改bond模式,则更改mode为对应数值即可

1、安装ifenslave软件包

root@node180:~# apt-cache search ifenslave
ifenslave - configure network interfaces for parallel routing (bonding)

root@node180:~# apt-get install ifenslave

2、备份现有网卡配置

root@node180:/etc/network# cp interfaces interfaces.bak

3、添加以下网卡配置文件,重启网络服务即可

root@node180:~# cat /etc/network/interfaces
source /etc/network/interfaces.d/*

auto lo
iface lo inet loopback

auto ens160
iface ens160 inet manual
bond-master bond0

auto ens192
iface ens192 inet manual
bond-master bond0

auto bond0
iface bond0 inet static
address 172.16.21.180
netmask 255.255.255.0
network 172.16.21.0
broadcast 172.16.21.255
gateway 172.16.21.205
dns-nameservers 114.114.114.114 8.8.8.8

bond-slaves none
bond-miimon 100
bond-mode 6

root@node180:~# /etc/init.d/networking restart

三、交换机配置

以bond4模式举例,除了网卡配置信息修改之外,同时需要修改交换机配置,示例为华为交换机(S6720-54C-EI-48S-AC)

1、配置说明

  • 笔记本通过Console线连接至交换机COM口,通过xshell连接至调试会话
    注:
    1、可通过设备管理器查看COM端口号
    2、传输协议为SERIAL,波特率为9600,其他参数值为默认即可
    3、华为交换机默认用户密码为admin/admin@huawei.com
  • 执行system-view命令进入以太网端口视图
<HUAWEI>system-view 
Enter system view, return user view with Ctrl+Z.
[HUAWEI]
  • 执行interface Eth-Trunk {端口组ID}命令进入链路聚合端口,执行mode lacp命令将端口组设置模式为LACP
[HUAWEI]interface Eth-Trunk 10
[HUAWEI-Eth-Trunk10]mode lacp 
[HUAWEI-Eth-Trunk10]display this
#
interface Eth-Trunk10
 mode lacp
#
return
[HUAWEI-Eth-Trunk10]quit
  • 执行interface XGigabitEthernet 0/0/{交换机端口号}进入交换机端口,执行eth-trunk {端口组ID}将当前交换机端口加入端口组
    注:如需取消设置,则执行undo eth-trunk即可
[HUAWEI]interface XGigabitEthernet 0/0/42
[HUAWEI-XGigabitEthernet0/0/42]eth-trunk 10
[HUAWEI-XGigabitEthernet0/0/42]display this
#
interface XGigabitEthernet0/0/42
 eth-trunk 10
#
return
  • 执行display eth-trunk查看当前端口组配置
    注:需要把对应节点网卡配置修改为bond4,此时查看对应端口组端口状态为Selected
[HUAWEI]display eth-trunk
Eth-Trunk80's state information is:
Local:
LAG ID: 80                  WorkingMode: LACP                                 
Preempt Delay: Disabled     Hash arithmetic: According to SIP-XOR-DIP         
System Priority: 32768      System ID: 1856-4421-3090                         
Least Active-linknumber: 1  Max Active-linknumber: 8                         
.
Operate status: up          Number Of Up Port In Trunk: 4                     
--------------------------------------------------------------------------------
ActorPortName          Status   PortType PortPri PortNo PortKey PortState Weight
XGigabitEthernet0/0/7  Selected 10GE     32768   1      20545   10111100  1     
XGigabitEthernet0/0/9  Selected 10GE     32768   2      20545   10111100  1     
XGigabitEthernet0/0/3  Selected 10GE     32768   3      20545   10111100  1     
XGigabitEthernet0/0/8  Selected 10GE     32768   4      20545   10111100  1     

Partner:
--------------------------------------------------------------------------------
ActorPortName          SysPri   SystemID        PortPri PortNo PortKey PortState
XGigabitEthernet0/0/7  65535    6891-d066-f634  255     1      15      10111100
XGigabitEthernet0/0/9  65535    6891-d066-f634  255     2      15      10111100
XGigabitEthernet0/0/3  65535    6891-d066-f634  255     3      15      10111100
XGigabitEthernet0/0/8  65535    6891-d066-f634  255     4      15      10111100

Eth-Trunk81's state information is:
Local:
LAG ID: 81                  WorkingMode: LACP                                 
Preempt Delay: Disabled     Hash arithmetic: According to SIP-XOR-DIP         
System Priority: 32768      System ID: 1856-4421-3090                         
Least Active-linknumber: 1  Max Active-linknumber: 8                          
Operate status: up          Number Of Up Port In Trunk: 2                     
--------------------------------------------------------------------------------
ActorPortName          Status   PortType PortPri PortNo PortKey PortState Weight
XGigabitEthernet0/0/5  Selected 10GE     32768   5      20801   10111100  1     
XGigabitEthernet0/0/1  Selected 10GE     32768   6      20801   10111100  1     

Partner:
--------------------------------------------------------------------------------
ActorPortName          SysPri   SystemID        PortPri PortNo PortKey PortState
XGigabitEthernet0/0/5  65535    6891-d067-426c  255     1      15      10111100
XGigabitEthernet0/0/1  65535    6891-d067-426c  255     2      15      10111100

四、相关说明

1、测试总结

1.1、分析说明

  • 1) bond0

a. 使用两个网口轮询发送,提高发送能力,使用两个服务端时,能够达到理论上的带宽的极限2G.但由于是轮询发送,会出现包乱序,导致重发。当发送请求给两个服务端时,从dstat来看流量,出口的带宽已经达到极限

而iperf的结果看,每个服务端接收的流量只有8.7Gbit

抓包查看有乱序和重发的现象,所以,应用不能使用到所有网口的带宽。

b. 只有两个节点时,发送时轮询发送,性能的瓶颈在接收端。交换机在某一个时间段只往一个端口发送包,这个时候发送端两个口总共只能发送1G的流量。

  • 2) bond4

a. 两个节点分别使用4个万兆网口做bond4,由于所有slave接口MAC地址一样,两个节点对跑iperf时,只有1个万兆网口工作,无法发挥4个万兆网口的性能
注:如需发挥4个万兆网口bond4性能,则需用4台万兆客户端iperf压测

[root@node85 ~]# ip ad
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
4: enp24s0f0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP group default qlen 1000
    link/ether 68:91:d0:66:f6:34 brd ff:ff:ff:ff:ff:ff
5: enp24s0f1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP group default qlen 1000
    link/ether 68:91:d0:66:f6:34 brd ff:ff:ff:ff:ff:ff
6: enp25s0f0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP group default qlen 1000
    link/ether 68:91:d0:66:f6:34 brd ff:ff:ff:ff:ff:ff
7: enp25s0f1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond0 state UP group default qlen 1000
    link/ether 68:91:d0:66:f6:34 brd ff:ff:ff:ff:ff:ff
8: enp59s0f0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond1 state UP group default qlen 1000
    link/ether 68:91:d0:67:42:6c brd ff:ff:ff:ff:ff:ff
9: enp59s0f1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc mq master bond1 state UP group default qlen 1000
    link/ether 68:91:d0:67:42:6c brd ff:ff:ff:ff:ff:ff
10: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 68:91:d0:66:f6:34 brd ff:ff:ff:ff:ff:ff
    inet 172.16.21.85/24 brd 172.16.21.255 scope global bond0
       valid_lft forever preferred_lft forever
    inet6 fe80::6a91:d0ff:fe66:f634/64 scope link 
       valid_lft forever preferred_lft forever
11: bond1: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
    link/ether 68:91:d0:67:42:6c brd ff:ff:ff:ff:ff:ff
    inet 172.16.33.85/24 brd 172.16.33.255 scope global bond1
       valid_lft forever preferred_lft forever
    inet6 fe80::6a91:d0ff:fe67:426c/64 scope link 
       valid_lft forever preferred_lft forever

  • 3) bond5

a. bond5通过MAC地址来均衡出口的带宽。但在发送arp报文时,只发送一个端口的地址。所以入口的流量只走一个口。当两个节点时,接收端的带宽上限只有1G,客户端理论上限也只有1G,两个节点作为客户端相似.

b. 两个节点作为服务端时,bond5可以利用到两个端口的带宽,bond5通过算法来均衡出口的带宽,所以出口带宽能达到2G.

  • 4) bond6

a. bond6是在bond0的基础上,增加接收的负载均衡。bond6可以截获arp的报文,通过修改MAC地址,使不同客户端的可以跟不同端口进行通信。当只有两个节点时,客户端收到arp地址只有一个,服务端接收的流量最大也只有1G.

b.使用2个客户端或者2个服务端测试,客户端和服务端都能利用到两个接收发送的端口,所以带宽都能达到2G.

1.2、分析总结

从上面的测试来看,bond0由于本身的机制,容易出现重发影响性能的缺点,并且,bond0本身没有定义入口流量的均衡,性能的瓶颈在入口流量;bond5同理,入口的带宽限制了网络的性能;
bond6在bond5的基础上增加接收能力,在三节点以上规模的节点,出入口的流量都能达到2G的带宽上限,但实际使用中发现网络流量并不稳定;
综上所述,在条件允许情况下,要想实现网络冗余和网络聚合效果,推荐使用bond4配置

注:bond0、bond4需要交换机支持(交换机端口绑定),bond5、bond6无需交换机支持(软件配置即可)

标签:硬件,bond0,XGigabitEthernet0,端口,网卡,ff,bond
来源: https://www.cnblogs.com/luxf0/p/16321439.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有