热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

链路聚合、Trunk、端口绑定和捆绑简析

关于链路聚合(LinkAggregation)、Trunk和端口绑定捆绑这三种概念很容易混淆,主旨都是利用链路冗余提供服务器、交换机和存储间的可靠性,或



      关于链路聚合(Link Aggregation)、Trunk和端口绑定/捆绑这三种概念很容易混淆,主旨都是利用链路冗余提供服务器、交换机和存储间的可靠性,或利用冗余端口实现负载均衡等;通常在大多数场景下被不加区别的混用,今天我们简单分析一下各自的含义和区别。

     链路聚合是采用不同的聚合、合并方法把多个网络链路并行的连接起以便提供网络带宽和链路冗余,实现网络业务连续性;强调的是交换机端到端的链路,一般涉及端口、网卡和交换机(如LACP)绑定等。不同交换机厂商采用不同术语描述链路聚合,但目标都是一致的,即将两个或多个端口绑定在一起作为一个高带宽的逻辑端口来提升链路速度、冗余、弹性和负载均衡。Cisco称作Ether Channel、Brocade称作Brocade LAG,还有基于标准IEEE 802.3ad的LACP(Link Aggregation Control Protocol),该协议在2008年被转入IEEE 802.1ax作为标准,LACP可以动态配置端口聚合,且不依赖任何厂商,因此大部分以太网交换机都支持该协议。

通常情况,交换机之间使用多个端口创建并行聚合/绑定时,生成树协议(STP)会将其视为环路,从技术上来讲,链路聚合技术就是解决该问题,使聚合端口生成单个逻辑链路(single logical link)而不会造成环路。

      Trunk技术一般使用在交换机之间,通过冗余链路实现可靠性、通过级联增加端口数量、通过Trunk提供ISL(交换机间链路)链路使用率。一般分为下面几种场景。

ISL Trunk技术

指交换机之间的链路中继,一般用于增加链路端口数量、级联和长距离传输(一般指FC交换机,使用单模光纤可以实现长距离传输)。



VSAN Trunk技术

是思科FC交换机特有的概念,指多个VSAN流量可以通过一条ISL链路承载,VSAN类似IP交换机的VLAN,实现二层隔离安全访问。博科FC交换机也以类似实现隔离的技术叫Zoning。



VLAN/EthernetTrunk技术

指对VLAN进行Tag标记,让连接在不同交换机上的相同VLAN中的主机互通,把两台交换机的级联端口设置为Trunk端口,当交换机把数据包从级联口发出去的时候,会在数据包中做一个标记,以便其它交换机识别该数据包属于哪一个VLAN,当其它交换机收到这个数据包后,只会将该数据包转发到标记中指定的VLAN,从而完成了跨越交换机的VLAN内部数据传输。在一个交换机间链路ISL上承载多个VLAN数据,提高了链路使用率,不必为每一个VLAN ID在交换机间提供一条单独的ISL链路。

通常使用的协议有标准的802.1q和思科的ISL协议,ISL是思科私有协议,只能用在思科自己的交换机之间。


VLAN/Ethernet Trunk简单总结:
1.VLAN在实际环境中不只是使用一台交换机,而是多台交换机共同作用。每台交换机都划分多个VLAN,且这些VLAN可能在多个交换机上是具有相同的VLAN ID。
2.不同交换机的几个VLAN都连接一条物理的链路,只需要用这条中继链路来承载所有的VLAN通信。
3.交换机链路类型有接入链路和中继链路之分。中继链路才可以承载多个VLAN。


      链路捆绑/端口Bonding一般是指服务器端口、存储以太网口通过Bonding技术实现链路冗余和负载均衡,目前Linux操作系统内核本身已经支持7种绑定模式,有的绑定模式(如 LACP)建议和以太网交换机的LACP协议配合使用。


Balance-rr(Round-robin)模式

也称bound 0模式,所有相同优先级的网卡端口维持在一个循环队列(slave设备链表)中,Bonding设备驱动在这些网卡端口中顺序轮流选择。一旦某一个网卡端口完成了一次数据传输任务,Bonding驱动将自动调度队列中下一个网卡端口,完成下一个数据包的数据传输任务。如此连续、周而复始地发送数据。新加入的Bonding网卡端口将被放在队列的尾部。

Active-backup(AP)模式

也称bound 1模式,多个网卡端口中的一个端口设定为激活状态,其他的端口处于备用状态。当活动端口或者活动链路出现故障时,启动备用链路。

Balance-XOR(XOR)模式

也称bound 2模式,基于指定的传输HASH策略传输数据包。缺省的策略是(源MAC地址 XOR 目标MAC地址)% slave数量。其他的传输策略可以通过“xmit_hash_policy”选项指定。

Broadcast(广播)模式

也称bound 3模式,通过Bonding设备中所有的网卡端口发送需要传输的数据,两个网络完全独立的情况下,如果需要某些特定的单向流量能够同时到达这两个独立的网络,需要使用“broadcast”模式。

802.3ad(LACP)模式

也称bound 4模式,动态链接聚合策略。让多个网卡端口工作在同一个激活的聚合体下,共享相同的速率和双工模式。如果对端以太网交换机支持LACP汇聚模式的端口聚合,推荐使用“802.3ad”模式配置Bonding功能。

Balance-tlb(TLB)模式

也称bound 5模式,自适应传输负载均衡策略。Bonding驱动程序根据每一个Bonding网卡端口(slave)的不同处理能力和当前的负载状态,对网络服务请求进行合理的调配,将网络传输的负载在所有网卡端口中重新分布。

Balance-alb(ALB)模式

也称bound 6模式,自适应负载均衡策略。在balance-tlb模式提供传输负载均衡功能的基础上,balance-alb模式增加针对IPv4流量的接收负载均衡(receive load balance)。Bonding驱动程序根据每一个Bonding网卡端口(slave)的不同处理能力和当前的负载状态,对网络服务请求进行合理的调配,将网络发送和传输的负载在所有网卡端口中重新分布。



温馨提示:

请搜索“ICT_Architect”“扫一扫”下面二维码关注公众号,获取更多精彩内容。
   



推荐阅读
  • 深入解析Linux下的I/O多路转接epoll技术
    本文深入解析了Linux下的I/O多路转接epoll技术,介绍了select和poll函数的问题,以及epoll函数的设计和优点。同时讲解了epoll函数的使用方法,包括epoll_create和epoll_ctl两个系统调用。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 本文介绍了Python高级网络编程及TCP/IP协议簇的OSI七层模型。首先简单介绍了七层模型的各层及其封装解封装过程。然后讨论了程序开发中涉及到的网络通信内容,主要包括TCP协议、UDP协议和IPV4协议。最后还介绍了socket编程、聊天socket实现、远程执行命令、上传文件、socketserver及其源码分析等相关内容。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 计算机存储系统的层次结构及其优势
    本文介绍了计算机存储系统的层次结构,包括高速缓存、主存储器和辅助存储器三个层次。通过分层存储数据可以提高程序的执行效率。计算机存储系统的层次结构将各种不同存储容量、存取速度和价格的存储器有机组合成整体,形成可寻址存储空间比主存储器空间大得多的存储整体。由于辅助存储器容量大、价格低,使得整体存储系统的平均价格降低。同时,高速缓存的存取速度可以和CPU的工作速度相匹配,进一步提高程序执行效率。 ... [详细]
  • 本文讨论了微软的STL容器类是否线程安全。根据MSDN的回答,STL容器类包括vector、deque、list、queue、stack、priority_queue、valarray、map、hash_map、multimap、hash_multimap、set、hash_set、multiset、hash_multiset、basic_string和bitset。对于单个对象来说,多个线程同时读取是安全的。但如果一个线程正在写入一个对象,那么所有的读写操作都需要进行同步。 ... [详细]
  • Linux系统高级网络配置:链路聚合
    链路聚合网卡的链路聚合就是将多块网卡连接起来,当一块网卡损坏,网络依旧可以正常运行,可以有效的防止因为网卡损坏带来的损失,同 ... [详细]
  • 在单位的一台4cpu的服务器上部署了esxserver,挂载了6个虚拟机,目前运行正常。在安装部署过程中,得到了cnvz.net论坛精华区 ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • Tomcat/Jetty为何选择扩展线程池而不是使用JDK原生线程池?
    本文探讨了Tomcat和Jetty选择扩展线程池而不是使用JDK原生线程池的原因。通过比较IO密集型任务和CPU密集型任务的特点,解释了为何Tomcat和Jetty需要扩展线程池来提高并发度和任务处理速度。同时,介绍了JDK原生线程池的工作流程。 ... [详细]
  • 本文介绍了操作系统的定义和功能,包括操作系统的本质、用户界面以及系统调用的分类。同时还介绍了进程和线程的区别,包括进程和线程的定义和作用。 ... [详细]
  • 本文介绍了在Android开发中使用软引用和弱引用的应用。如果一个对象只具有软引用,那么只有在内存不够的情况下才会被回收,可以用来实现内存敏感的高速缓存;而如果一个对象只具有弱引用,不管内存是否足够,都会被垃圾回收器回收。软引用和弱引用还可以与引用队列联合使用,当被引用的对象被回收时,会将引用加入到关联的引用队列中。软引用和弱引用的根本区别在于生命周期的长短,弱引用的对象可能随时被回收,而软引用的对象只有在内存不够时才会被回收。 ... [详细]
  • 模块化区块链生态系统的优势概述及其应用案例
    本文介绍了相较于单体区块链,模块化区块链生态系统的优势,并以Celestia、Dymension和Fuel等模块化区块链项目为例,探讨了它们解决可扩展性和部署问题的方案。模块化区块链架构提高了区块链的可扩展性和吞吐量,并提供了跨链互操作性和主权可扩展性。开发人员可以根据需要选择执行环境,并获得奖学金支持。该文对模块化区块链的应用案例进行了介绍,展示了其在区块链领域的潜力和前景。 ... [详细]
  • linux进阶50——无锁CAS
    1.概念比较并交换(compareandswap,CAS),是原⼦操作的⼀种,可⽤于在多线程编程中实现不被打断的数据交换操作࿰ ... [详细]
  • top命令使用方法及解读
    本文介绍了top命令的使用方法和解读,包括查看进程信息、系统负载、内存状态、CPU占用等内容。通过top命令可以持续观察系统上运行的进程,并了解系统负载情况,及时关闭一些进程以减轻系统负担。同时,还介绍了top命令的快捷键和安全模式启动方法。通过本文的学习,读者可以更好地使用top命令来管理系统进程。 ... [详细]
author-avatar
贤闲咸大_552
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有