在二层交换机的性能参数中,常常提到一个重要的指标:TRUNK ,许多的二层交换机产品在介绍其性能时,都会提到能够支持TRUNK 功能,从而可以为互连的交换机之间提供更好的传输性能。那到底什么是TRUNK呢?使用TRUNK 功能到底能给我们带来哪些应用方面的优势?还有在具体的交换机产品中怎样来配置TRUNK. 下面我们来了解一下这些方面的知识。
一、什么是 TRUNK ?
TRUNK是端口汇聚的意思,就是通过配置软件的设置,将2个或多个物理端口组合在一起成为一条逻辑的路径从而增加在交换机和网络节点之间的带宽,将属于这几个端口的带宽合并,给端口提供一个几倍于独立端口的独享的高带宽。
Trunk是一种封装技术,它是一条点到点的链路,链路的两端可以都是交换机,也可以是交换机和路由器,还可以是主机和交换机或路由器。基于端口汇聚(Trunk )功能,允许交换机与交换机、交换机与路由器、主机与交换机或路由器之间通过两个或多个端口并行连接同时传输以提供更高带宽、更大吞吐量,大幅度提供整个网络能力。
一般情况下,在没有使用TRUNK 时,大家都知道,百兆以太网的双绞线的这种传输介质特性决定在两个互连的普通 10/100 交换机的带宽仅为100M ,如果是采用的全双工模式的话,则传输的最大带宽可以达到最大200M,这样就形成了网络主干和服务器瓶颈。要达到更高的数据传输率,则需要更换传输媒介,使用千兆光纤或升级成为千兆以太网,这样虽能在带宽上能够达到千兆,但成本却非常昂贵(可能连交换机也需要一块换掉),更本不适合低成本的中小企业和学校使用。如果使用TRUNK 技术,把四个端口通过捆绑在一起来达到 800M 带宽,这样可较好的解决了成本和性能的矛盾。
二、TRUNK 的具体应用
TRUNK (端口汇聚)是在交换机和网络设备之间比较经济的增加带宽的方法,如服务器、路由器、工作站或其他交换机。这中增加带宽的方法在当单一交换机和节点之间连接不能满足负荷时是比较有效的。
TRUNK 的主要功能就是将多个物理端口(一般为 2- 8 个) 绑定为一个逻辑的通道,使其工作起来就像一个通道一样。将多个物理链路捆绑在一起后,不但提升了整个网络的带宽,而且数据还可以同时经由被绑定的多个物理链路传输,具有链路冗余的作用,在网络出现故障或其他原因断开其中一条或多条链路时,剩下的链路还可以工作。
但在 VLAN 数据传输中,各个厂家使用不同的技术,例如:思科的产品是使用其 VLAN TRUNK 技术,其他厂商的产品大多支持 802.1q 协议打上 TAG 头,这样就生成了小巨人帧,需要相同端口协议的来识别,小巨人帧由于大小超过了标准以太帧的 1518 字节限制,普通网卡无法识别,需要有交换机脱 TAG.
TRUNK 功能比较适合于以下方面具体应用:
1、 TRUNK 功能用于与服务器相联,给服务器提供独享的高带宽。
2、 TRUNK 功能用于交换机之间的级联,通过牺牲端口数来给交换机之间的数据交换提供捆绑的高带宽,提高网络速度,突破网络瓶颈,进而大幅提高网络性能。
3、 Trunk 可以提供负载均衡能力以及系统容错。由于 Trunk 实时平衡各个交换机端口和服务器接口的流量,一旦某个端口出现故障, 它会自动把故障端口从 Trunk 组中撤消, 进而重新分配各个 Trunk 端口的流量, 从而实现系统容错。
三、如何设置 TRUNK ?
设置 TRUNK 需要指定一个作为主干的端口,比如 2/24 ,如把某个端口设成 Trunk 方式,命令如下:
set trunk mod/port [on | off | desirable | auto | nonegotiate] [vlan_range] [isl | dot1q dot10 | lane | negotiate].
该命令可以分成以下 4 个部分:
mod/port :指定用户想要运行 Trunk 的那个端口;
Trunk 的运行模式,分别有: on | off | desirable | auto | nonegotiate.
要想在快速以太网和千兆以太网上自动识别出 Trunk ,则必须保证在同一个 VTP 域内。也可以使用 On 或 Nonegotiate 模式来强迫一个端口上起 Trunk ,无论其是否在同一个 VTP 域内。
承载的 VLAN 范围。缺省下是 1 ~ 1005 ,可以修改,但必须有 TRUNK 协议。使用 TRUNK 时,相邻端口上的协议要一致。
另外在中心交换机上需要把和下面的交换机相连的端口设置成 TRUNK ,这样下面的交换机中的多个 VLAN 就能够通过一条链路和中心交换机通信了。
四、配置TRUNK时的注意事项
在一个 TRUNK 中,数据总是从一个特定的源点到目的点,一条单一的链路被设计去处理广播包或不知目的地的包。在配置 TRUNK 时,必须遵循下列规则:
1:正确选择TRUNK 的端口数目,必须是 2,4 或 8.
2:必须使用同一组中的端口,在交换机上的端口分成了几个组, TRUNK 的所有端口必须来自同一组。
3:使用连续的端口;TRUNK 上的端口必须连续,如你可以用端口 4,5,6 和 7 组合成一个端口汇聚。
4:在一组端口只产生一个 TRUNK ;如对于安奈特的 AT - 8224XL 以太网交换机有 3 组,假定没有扩展槽。
所以该交换机可以支持 3 个端口聚合。加上扩展槽可以使得该交换机多支持一个端口汇聚。
5:基于端口号维护接线顺序:在接线时最重要的是两头的连接线必须相同。在一端交换机的最低序号的端口必须和对方最低序号的端口相连接,依次连接。
6:为 TRUNK 配置端口参数:在 TRUNK 上的所有端口自动认为都具有和最低端口号的端口参数相同的配置(比如在VLAN 中的成员)。比如如果你用端口 4、5、6 和 7产生了TRUNK ,端口4是主端口,它的配置被扩散到其他端口(端口5、6和7)。只要端口已经被配置成了TRUNK ,你不能修改端口 5 、 6 和 7 的任何参数,可能会导致和端口 4 的设置冲突。
7:使用扩展槽:有些扩展槽支持 TRUNK. 这要看模块上的端口数量。
Trunk 的优点:
1、可以在不同的交换机之间连接多个 VLAN ,可以将 VLAN 扩展到整个网络中。
2、 Trunk 可以捆绑任何相关的端口,也可以随时取消设置,这样提供了很高的灵活性。
3、 Trunk 可以提供负载均衡能力以及系统容错。由于 Trunk 实时平衡各个交换机端口和服务器接口的流量,一旦某个端口出现故障, 它会自动把故障端口从 Trunk 组中撤消, 进而重新分配各个 Trunk 端口的流量, 从而实现系统容错。
要传输多个 VLAN 的通信,需要用专门的协议封装或者加上标记( tag ),以便接收设备能区分数据所属的 VLAN.VLAN 标识从逻辑上定义了,哪个数据包是它有多种协议,而我们最常用到的是基于: IEEE802.1Q 和 CISCO专用的协议: ISL.
下面我简要的介绍一下这两种协议。
1、交换机间链路( ISL )是一种 CISCO 专用的协议,用于连接多个交换机。当数据在交换机之间传递时负责保持VLAN信息的协议。在一个 ISL干道端口中,所有接收到的数据包被期望使用ISL头部封装,并且所有被传输和发送的包都带有一个ISL头。从一个ISL端口收到的本地帧( non-tagged )被丢弃。它只用在 CISCO 产品中。
2、IEEE802.1Q 正式名称是虚拟桥接局域网标准, 用在不同的产家生产的交换机之间。一个 IEEE802.1Q干道端口同时支持加标签和未加标签的流量。一个 802.1Q 干道端口被指派了一个缺省的端口 Vlan ID ( PVID ),并且所有的未加标签的流量在该端口的缺省 PVID 上传输。一个带有和外出端口的缺省 PVID 相等的 Vlan ID 的包发送时不被加标签。所有其他的流量发送是被加上 Vlan 标签的。
在设置 trunk 后,trunk 链路不属于任何一个 VLAN.trunk 链路在交换机之间起着VLAN 管道的作用,交换机会将该 trunk 以外并且和 trunk 中的端口处于一个 vlan 中的其它端口的负载自动分配到该 trunk 中的各个端口。
因为同一个 vlan 中的端口之间会相互转发数据报,而位于 trunk 中的 trunk 端口被当作一个端口来看待,如果vlan中的其它非 trunk 端口的负载不分配到各个 trunk 端口,则有些数据报可能随机的发往 trunk 而导致帧顺序混乱。由于 trunk 口作为 1 个逻辑端口看待,因此在设置了 trunk 后,该trunk 将自动加入到这些 vlan 中它的成员端口所属的vlan中,而其成员端口则自动从vlan中删除。
在中 TRUNK 线路上传输不同的 VLAN 的数据时,可使用有两种方法识别不同的 VLAN 的数据:帧过滤和帧标记。帧过滤法根据交换机的过滤表检查帧的详细信息。每一个交换机要维护复杂的过滤表,同时对通过主干的每一个帧进行详细检查,这会增加网络延迟时间。
目前在 VLAN 中这种方法已经不使用了。现在使用的是帧标记法。数据帧在中继线上传输的时候,交换机在帧头的信息中加标记来指定相应的 VLAN ID. 当帧通过中继以后,去掉标记同时把帧交换到相应的 VLAN 端口。帧标记法被 IEEE 选定为标准化的中继机制。它至少有如下三种处理方法:
1)静态干线配置
静态干线配置最容易理解。干线上每一个交换机都可由程序设定发送及接收使用特定干线连接协议的帧。在这种设置下,端口通常专用于干线连接,而不能用于连接端节点,至少不能连接那些不使用干线连接协议( trunking protocol )的端节点。 当自动协商机制不能正常工作或不可用时,静态配置是非常有用的,其缺点是必须手工维护。
2)干线功能通告
交换机可以周期性地发送通告帧,表明它们能够实现某种干线连接功能。例如,交换机 可以通告自己能够支持某种类型的帧标记 V L A N,因此按这个交换机通告的帧格式向其发送帧是不会有错的。交换机的功能还止这些,它还可以通告它现在想为哪个V L A N提供干线连接服务。 这类干线设置对于一个由端节点和干线混合组成的网段可能会很有用。
3)干线自动协商
干线也能通过协商过程自动设置。在这种情况下,交换机周期性地发送指示帧,表明它们希望转到干线连接模式。如果另一端的交换机收到并识别这些帧,并自动进行配置,那么这两部交换机就会将这些端口设成干线连接模式。
这种自动协商通常依赖于两部交换机(在同一网段上)之间已有的链路,并且与这条链路相连的端口要专用于干线连接,这与静态干线设置非常相似。
trunk (干道)是一种封装技术,它是一条点到点的链路,主要功能就是仅通过一条链路就可以连接多个交换机从而扩展已配置的多个 VLAN. 还可以采用通过 Trunk 技术和上级交换机级连的方式来扩展端口的数量, 可以达到近似堆叠的功能,节省了网络硬件的成本,从而扩展整个网络。
TRUNK 承载的VLAN 范围。缺省下是1~1005,可以修改,但必须有1个Trunk 协议。使用 Trunk 时,相邻端口上的协议要一致。