链路聚合、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是思科私有协议,只能用在思科自己的交换机之间。

简单总结:
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)的不同处理能力和当前的负载状态,对网络服务请求进行合理的调配,将网络发送和传输的负载在所有网卡端口中重新分布。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


什么是设计模式一套被反复使用、多数人知晓的、经过分类编目的、代码 设计经验 的总结;使用设计模式是为了 可重用 代码、让代码 更容易 被他人理解、保证代码 可靠性;设计模式使代码编制  真正工程化;设计模式使软件工程的 基石脉络, 如同大厦的结构一样;并不直接用来完成代码的编写,而是 描述 在各种不同情况下,要怎么解决问题的一种方案;能使不稳定依赖于相对稳定、具体依赖于相对抽象,避免引
单一职责原则定义(Single Responsibility Principle,SRP)一个对象应该只包含 单一的职责,并且该职责被完整地封装在一个类中。Every  Object should have  a single responsibility, and that responsibility should be entirely encapsulated by t
动态代理和CGLib代理分不清吗,看看这篇文章,写的非常好,强烈推荐。原文截图*************************************************************************************************************************原文文本************
适配器模式将一个类的接口转换成客户期望的另一个接口,使得原本接口不兼容的类可以相互合作。
策略模式定义了一系列算法族,并封装在类中,它们之间可以互相替换,此模式让算法的变化独立于使用算法的客户。
设计模式讲的是如何编写可扩展、可维护、可读的高质量代码,它是针对软件开发中经常遇到的一些设计问题,总结出来的一套通用的解决方案。
模板方法模式在一个方法中定义一个算法的骨架,而将一些步骤延迟到子类中,使得子类可以在不改变算法结构的情况下,重新定义算法中的某些步骤。
迭代器模式提供了一种方法,用于遍历集合对象中的元素,而又不暴露其内部的细节。
外观模式又叫门面模式,它提供了一个统一的(高层)接口,用来访问子系统中的一群接口,使得子系统更容易使用。
单例模式(Singleton Design Pattern)保证一个类只能有一个实例,并提供一个全局访问点。
组合模式可以将对象组合成树形结构来表示“整体-部分”的层次结构,使得客户可以用一致的方式处理个别对象和对象组合。
装饰者模式能够更灵活的,动态的给对象添加其它功能,而不需要修改任何现有的底层代码。
观察者模式(Observer Design Pattern)定义了对象之间的一对多依赖,当对象状态改变的时候,所有依赖者都会自动收到通知。
代理模式为对象提供一个代理,来控制对该对象的访问。代理模式在不改变原始类代码的情况下,通过引入代理类来给原始类附加功能。
工厂模式(Factory Design Pattern)可细分为三种,分别是简单工厂,工厂方法和抽象工厂,它们都是为了更好的创建对象。
状态模式允许对象在内部状态改变时,改变它的行为,对象看起来好像改变了它的类。
命令模式将请求封装为对象,能够支持请求的排队执行、记录日志、撤销等功能。
备忘录模式(Memento Pattern)保存一个对象的某个状态,以便在适当的时候恢复对象。备忘录模式属于行为型模式。 基本介绍 **意图:**在不破坏封装性的前提下,捕获一个对象的内部状态,并在该
顾名思义,责任链模式(Chain of Responsibility Pattern)为请求创建了一个接收者对象的链。这种模式给予请求的类型,对请求的发送者和接收者进行解耦。这种类型的设计模式属于行为
享元模式(Flyweight Pattern)(轻量级)(共享元素)主要用于减少创建对象的数量,以减少内存占用和提高性能。这种类型的设计模式属于结构型模式,它提供了减少对象数量从而改善应用所需的对象结