首页 > 系统相关 >linux服务器网口bond和交换机链路聚合的对接和差异之理解

linux服务器网口bond和交换机链路聚合的对接和差异之理解

时间:2023-06-26 21:24:42浏览次数:57  
标签:聚合 Linux linux 网口 交换机 链路 服务器 bond

linux服务器网口bond和交换机链路聚合的对接和差异之理解

1、前言

我们在服务器和交换机对接的场景中,经常接到这样的需求——1、希望服务器和接入交换机之间的链路形成冗余;2、两条链路形成冗余的同时,对两条物理链路的流量进行负载分担,从而形成带宽叠加的效果。因此在这样的需求之下,就需要分别在Linux服务器和接入交换机上配置网口bond(绑定)和链路聚合,然后进行对接,尽管Linux的bond和交换机的链路聚合所满足的需求是相同的,但因为两者存在一定的差异,因此就需要对两者有一个具体的认识,从而避免因为配置错误造成各种网络故障。

2、Linux的bond和交换机链路聚合差异的描述

2.1、交换机链路聚合

交换机链路聚合的模式有两种——手工负载分担模式和LACP模式,无论是何种模式,交换机链路聚合最多支持聚合的网口数量在绝大多数情况下为8个(具体数量取决于交换机底层的交换芯片),这两种模式都分别有对应的HASH算法,通过这个HASH算法来决定将要发送的数据包究竟是从哪个物理接口发出去,相应的HASH算法分别为:目的IP地址异或(dst-ip)、目的mac地址异或(dst-mac)、源目IP地址异或(src-dst-ip)、源目mac地址异或(src-dst-mac)、源IP地址异或(src-ip)、源mac地址异或(src-mac),以华为S3700交换机为例,如下图所示:

 

关于交换机链路聚合HASH算法的讲解,具体可以参阅:https://blog.csdn.net/muxia_jhy/article/details/102992810

2.2、Linux服务器网口的bond

Linux服务器配置网口的链路聚合有bond(绑定)和team(组合)两种方式,其中bond可以实现最多2张物理网卡的聚合,而team可以实现最多8张网卡的链路聚合,实际配置时,我们配置bond的时候是相对更多的,而在bond中,可供选择的模式有7种,如下表所示:

模式名称含义及是否需对端交换机做链路聚合
mode0/(balance-rr) Round-robin policy(平衡轮询策略) 传输数据包顺序是依次按网口顺序传输,直到最后一个传输完毕,要求对端交换机配置链路聚合且须是手工负载分担模式。
mode1/(active-backup) Active-backup policy(活动备份策略) 只有一个设备处于活动状态,若一个宕掉另一个马上由备份转换为主链路,mac 地址外部可见,不需要交换机配置链路聚合,但交换机会产生MAC地址漂移日志记录。
mode2/(balance-xor) XOR policy(平衡策略) 传输根据[(源 MAC 地址 xor 目标 MAC 地址) mod 设备数量]的布尔值选择传输设备,此模式提供负载平衡和容错能力,不需要交换机配置链路聚合。
mode3/(broadcast) Broadcast policy(广播策略) 将所有数据包传输给所有设备,不需要交换机配置链路聚合。
mode4/(802.3ad) IEEE 802.3ad Dynamic link aggregation(IEEE 802.3ad动态链接聚合) 创建共享相同的速度和双工设置的聚合组。此模式提供了容错能力。每个设备需要基于驱动的重新获取速度和全双工支持;需要对端交换机配置链路聚合并选择为LACP模式。
mode5/(balance-tlb) Adaptive transmit load balancing(适配器传输负载均衡) 发出的流量根据当前负载分给每一个设备,由当前设备处理接收,如果接受的设备传不通就用另一个设备接管当前设备正在处理的 mac 地址,不需要交换机做链路聚合。
mode6/(balance-alb) Adaptive load balancing(适配器负载均衡) 包括 mode5,由ARP协商完成接收的负载。bonding 驱动程序截获 ARP 在本地系统发送出的请求,用其中之一的硬件地址覆盖从属设备的原地址。就像是在服务器上不同的人使用不同的硬件地址一样,不需要交换机做链路聚合。

 

3、在Linux服务器上如何选择bond模式对接交换机更好

3.1、bond模式的选择思路1——根据交换机的配置决定Linux服务器

通常情况下,Linux服务器网口的bond所支持的模式与HASH算法相较于交换机而言更加丰富,因此我们一般都是先将交换机的模式(究竟是手工负载分担模式还是LACP模式)和HASH算法确定下来后,再根据交换机的情况确定Linux服务器bond的模式,不过我们需要在HASH算法上注意以下两点:
无论是Linux服务器还是交换机,HASH算法决定的是数据包从哪个物理成员网口发送出去,不影响各自接收的数据包;
Linux服务器和交换机的HASH算法一般情况下无法做到一致。
基于以上两点,决定Linux服务器的bond采用何种模式的,是交换机一侧的模式而非HASH算法,所以需要搞清楚交换机一侧是采用的手工负载分担模式还是LACP模式。
在一般场景中,为了便于网络维护,客户或者运维人员通常都会在交换机上配置链路聚合,因为如果服务器采用不需要交换机配置链路聚合的mode方案,交换机上的arp表项将相对变得复杂,相对增加了网络排错复杂度。

 

3.2、bond模式的选择思路2——根据是否有带宽叠加需求决定

虽然链路聚合必定会产生的效果是物理链路冗余,但是否会产生带宽叠加的效果则取决于具体的场景,例如“Linux服务器mode4的bond+交换机LACP”这样的组合则有可能不会产生带宽叠加效果,原因在于LACP(或802.3ad)存在M:N模式,即“M条活动链路+N条备份链路”组合为链路聚合。备份链路不会传输业务数据流量,其中代表M的活动链路数量上限阈值可以通过配置进行修改,bond最多只能支持两条链路聚合,假设有两条链路做链路聚合,但再LACP设置了活动接口数量,那么“服务器mode4的bond+交换机LACP”这样的组合方式,链路则是一主一备的状态,流量无法负载分担,因而无法带宽叠加。

 

 

3.3、建议配置的“Linux服务器bond+交换机链路聚合”组合

针对一般服务器和接入交换机对接之场景,可以有以下组合供配置参考,当然可以根据实际需求进行实际分析和组合:

Linux服务器mode0+交换机手工负载分担链路聚合

Linux服务器mode4+交换机LACP链路聚合

标签:聚合,Linux,linux,网口,交换机,链路,服务器,bond
From: https://www.cnblogs.com/jianxiaoxiu/p/17506731.html

相关文章

  • 如何创建Linux虚拟机
    二,新建Linux虚拟机1.1创建新的虚拟机12345671.2编制虚拟机设置1 23  3 1.3开启Linux虚拟机1 2 3 4 5 6 6 7 8 9 10 11 12 13 14 15 16 17(C:\Users\G。\AppData\Roami......
  • Linux下安装neo4j
    Linux下安装neo4j一、JDK安装参照https://www.cnblogs.com/yclh/p/14849228.html中jdk1.8的安装二、下载neo4j下载地址:https://neo4j.com/download-center/选择社区版,下载完成后得到neo4j-community-3.5.5-unix.tar.gz为了适配jdk1.8版本,版本太高的需要JDK的更高版本  ......
  • Linux可视化管理-webmin工具
    环境:连接工具:tabby,操作系统:centos7.6.webmin介绍​ Webmin是功能强大的基于Web的Unix/linux系统管理工具。管理员通过浏览器访问Webmin的各种管理功能并完成相应的管理操作。除了各版本的linux以外还可用于:AIX、HPUX、Solaris、Unixware、Irix和FreeBSD等系统安......
  • 虚拟机安装Linux
    二、虚拟机安装Linux1.新建虚拟机,选择典型安装2.选择稍后安装操作系统3.选客户机操作系统为Linux(L),版本(V)为CentOS764位4.命名虚拟机,也可以根据需求更改默认位置5.指定虚拟机最大磁盘大小,并选择将虚拟磁盘拆分成多个文件6.点击完成创建虚拟机    7.点击虚拟......
  • 如何建立Linux与git的连接?
    @[Toc]本文以Xshell为案例进行与git的连接!建立连接三板斧:add,commit,pushLinux与git远程连接的方法:1.设置全局的用户名和邮箱gitconfig--globaluser.name"你的用户名"gitconfig--globaluser.email"你的邮箱"2.先创建本地文件夹mkdirtest3.cd进入本地仓库cdtest4......
  • Linux ssh: Could not resolve hostname xxxx: Name or service not known
    linux(centos)在配置互信时,出现报错:ssh:Couldnotresolvehostnamexxxx:Nameorservicenotknown出现这种错误是因为系统/etc/hosts中配置的主机名与HOSTNAME的不一致造成。例如:/etc/hosts中这样配置baoyw-dbhostname中这样配置baoywdb......
  • Hyper-V是微软开发的一种虚拟化技术,它允许在一台物理计算机上创建和管理多个虚拟机。
    Hyper-V是微软开发的一种虚拟化技术,它允许在一台物理计算机上创建和管理多个虚拟机。虚拟机可以运行不同的操作系统,如Windows、Linux等。以下是关于Hyper-V的一些要点:虚拟化技术:Hyper-V是一种类型-1(裸金属)虚拟化技术,它直接运行在硬件上,而不需要一个宿主操作系统。这使得虚拟机能......
  • linux 核间通讯rpmsg架构分析【转】
    转自:https://blog.csdn.net/wind0419/article/details/123277545以imx8为例在最底层硬件上,A核和M核通讯是靠硬件来进行的,称为MU,如图  LinuxRPMsg是在virtioframework上实现的一个消息传递机制VirtIO是一个用来实现“虚拟IO”的通用框架,典型虚拟的pci,网卡,磁盘等虚拟设......
  • linux下搭建mysql
    Linux下搭建mysql一、上传解压mysql压缩包1.上传mysql压缩包到linux下任意目录比如/usr/src(新系统需要给该目录添加权限:chmod777/usr/src)2.解压mysql压缩包unzipmysql-community-5.7-all.zip二、安装mysql应用程序1.严格按顺序安装rpm程序rpm-ivhmysql-community-common-5.7.......
  • Linux基础26 rsync服务, 三种传输方式
    Rsync服务一、备份1.什么是备份?备份就是把重要的数据或文件再次复制一份保存起来(给源文件增加一个副本)2.为什么要备份?数据很重要!!!出现故障之后,需要恢复数据(软件服务出现问题几率很小,80%都是人为故障)3.能不能不做备份对于不重要的数据,可以不做备份对于不必要的数据可......