当前位置: 首页 > 编程日记 > 正文

网络设置巨形帧_Trunk的概念与设置

在二层交换机的性能参数中,常常提到一个重要的指标: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 就能够通过一条链路和中心交换机通信了。

5657313b5ccca4728e5d81de67ea6ff5.png

四、配置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 时,相邻端口上的协议要一致。

相关文章:

epoll使用详解

epoll的工作原理是,你如果想进行IO操作时,先向epoll查询是否可读或可写,如果处于可读或可写状态后,epoll会通过epoll_wait函数通知你,此时你再进行进一步的recv或send操作。epoll仅仅是一个异步事件的通知机制&#xf…

软件测试(一)

最近的时间内,我印象最深刻的Bug是在上学期的javaweb的大作业中。 其中的要求是在工作人员的每一条记录后面添加一个修改按钮,要求把前一个页面的内容带入到下一个页面中,由于密码采用的是MD5的加密,所以带入到后面的页面中的内容…

网络分流器-网络分流器IP网络路由交换测试技术探讨

网络分流器1 . 与流量相关的L2-3层高级测试技术探讨戎腾网络分流器: 对于一个L2-3层网络设备,最基本、最重要的测试是流量转发性能测试。作为一个网络转发设备,首先要保证可以高速、低时延、稳定地转发流量。相关的性能测试通常是通过流量生成器&#xf…

浅谈https\ssl\数字证书

在互联网安全通信方式上,目前用的最多的就是https配合ssl和数字证书来保证传输和认证安全了。本文追本溯源围绕这个模式谈一谈。 名词解释 首先解释一下上面的几个名词: https:在http(超文本传输协议)基础上提出的一种安全的http协议&#xf…

input不管用 vue_Vue自定义指令实现快速读取Excel

前几天因为业务需求,所维护的而后台中出现了大量关于上传下载Excel的操作。因为我们的后台是基于Vue,并且是在 vue-element-admin 的基础上结合实际需求开发而来。vue-element-admin 中也有一些相关操作 Excel 的示例,都十分清晰明了&#xf…

数据结构——算法之(010)( 字符串的左旋转操作)

【申明:本文仅限于自我归纳总结和相互交流,有纰漏还望各位指出。 联系邮箱:Mr_chenping163.com】 题目:定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。如把字符串abcdef左旋转2位得到字符串cde…

value_counts()

Serise类型: Series.value_counts(normalizeFalse, sortTrue, ascendingFalse, binsNone, dropnaTrue) 功能:返回包含唯一值计数的对象。结果对象将按降序排列,以便第一个元素是最常出现的元素。 不包括默认的NA值。 参数:normali…

DFA和NFA

1.历史:引用正则表达式萌芽于1940年代的神经生理学研究,由著名数学家Stephen Kleene第一个正式描述。具体地说,Kleene归纳了前述的神经生理学研究,在一篇题为《正则集代数》的论文中定义了“正则集”,并在其上定义了一…

adc采样的值跳动_嵌入式er必知:模数采样知多少(最全总结)

[导读] 生活环境周围信号万万千,对于一个嵌入式er。我们利用技术去了解世界、改变世界。而一个产品要与外界物理环境打交道,一个至关重要的触角就是采样真实模拟世界的信号,翻译成芯片可理解的数字信号,进而实现很多为人服务的应…

Swift泛型

泛型是为Swift编程灵活性的一种语法&#xff0c;在函数、枚举、结构体、类中都得到充分的应用&#xff0c;它的引入可以起到占位符的作用&#xff0c;当类型暂时不确定的&#xff0c;只有等到调用函数时才能确定具体类型的时候可以引入泛型。 泛型函数 定义 fun 函数名<T,S&…

02、在层级未知情况下通过递归查找子物体

1、在在层级未知情况下通过递归查找子物体 &#xff0c;这个主要是用于UI的的层级查找中 2、代码&#xff1a; 1 using System.Collections;2 using System.Collections.Generic;3 using UnityEngine;4 5 public class EnemyManager : MonoBehaviour6 {7 8 private GameOb…

CentOS装机必备-基本设置以及缺失文件

SecureCRT中注意不要使用以Ascii方式上传文件&#xff0c;只有在需要的地方才使用。主要是虚拟机中安装CentOS每次总会做一些设置&#xff0c;记录下来方便以后。 纯粹基本设置&#xff0c;比如本地SecureCRT可以连接虚拟机中的CentOS。 复杂的非基本设置见&#xff1a;Linux …

unity替换mesh测试

直接替换SkinnedMeshRender的Mesh&#xff0c;实现所谓断肢效果(不过最近发现&#xff0c;绑定多mesh似乎更好实现这样的效果。有时间准备写一篇)&#xff1a; 只要不改变两个Mesh原始文件的层级&#xff0c;就不会出现权重的错乱问题。 权重映射的测试&#xff1a;http://www.…

matlab中patch命令_matlab 放大平移图形是超出边界问题的处理

matlab提供的图形放大和平移函数zoom和pan可以通过鼠标来控制图形&#xff0c;非常方便&#xff0c;在工具条toolbar上也有对应的按钮。但是在放大或平移自己画的数据图是&#xff0c;有时会出现部分图形超出了坐标系的边界的问题&#xff0c;非常奇怪。经分析和试验&#xff0…

关于虚拟化技术软硬件兼容问题的探讨

VMware十几年前就已经出现&#xff0c;个人最早使用VMware的时间似乎是2001年或者2002年&#xff0c;当时可以在个人电脑上通过VMware虚拟多套系统&#xff0c;用于学习研究&#xff08;做实验往往会破坏系统&#xff0c;当时VMware在一些场景下还是比较流行的&#xff09;。由…

自己开发操作系统

算是《30天自制操作系统》的读书笔记吧&#xff0c;但是我觉得原书不少地方啰嗦&#xff0c;某些做法值得商榷 http://product.china-pub.com/36828381.二进制编译器 首先下载Bzl1621.lzh&#xff0c;这个可以把二进制数编辑的软件。 BZ启动画面打开img文件2.使用虚拟机加载IMG…

广东科技学院专插本c语言考卷_广东科技学院第二届红色文化节之红色影视经典配音大赛决赛...

红色经典影视配音大赛追忆革命岁月&#xff0c;传承红色文化&#xff0c;激扬青春生命&#xff0c;传承红色精神&#xff0c;为了让广大师生感受到红色影视经典的魅力和配音的乐趣&#xff0c;加深对红色文化的理解&#xff0c;提高师生们的爱国情怀。2020年12月16日19&#xf…

Social regularizations

trust-aware &#xff1a;如何从隐式信任中导出显示信任。链接预测就是搞这一方面的么&#xff1f; 和类似谱聚类的拉普拉斯矩阵结合在一起&#xff0c;没怎么看。

阿里P7架构师的成长之路

前言 系统架构师是近几年来在国内外迅速成长并发展良好的一个职位&#xff0c;它的重要性及给互联网行业所带来的影响是不言而喻的。很多程序员把成为一名优秀的架构师作为自己职业生涯奋斗的目标&#xff0c;但很多人努力却用不对地方&#xff0c;前段时间我与在阿里的P7架构师…

cad的文字嵌入线条_带你玩转CAD!

CAD画图已经成为化工人的必备技能。什么&#xff0c;这么多CAD必备技巧你居然还不知道&#xff1f;我该拿什么拯救你&#xff0c;我最最最最最最亲爱的旁友&#xff01;&#xff01;&#xff01;下面给大家整理了50个相见恨晚的CAD技巧&#xff0c;带你玩转CAD&#xff01;&…

BZOJ1315 : Ural1557Network Attack

找到一棵dfs搜索树&#xff0c;给每条非树边一个随机非0权值&#xff0c;每条树边为所有经过它的树边的权值的异或。 那么有2种情况是合法的&#xff1a; 1.一条边权值为0&#xff0c;一条边权值非0。 2.两条边异或和为0。 排序后统计即可&#xff0c;时间复杂度$O(m\log m)$。…

android原生跳转到外网

2019独角兽企业重金招聘Python工程师标准>>> super.onCreate(savedInstanceState); setContentView(R.layout.main); Intent intent new Intent(); intent.setAction("android.intent.action.VIEW"); Uri uri Uri.parse("…

linux上使用strace查看C语言级别的php源码【一种方法】

如果你希望看到C语言级别的php代码就需要使用strace 这个默认是安装了的&#xff0c;如果没有安装可以 #yum install strace查看httpd进程 #ps auxw | grep httpd有多个&#xff0c;必须停止apache [rootlocalhost usr]# /usr/local/webserver/apache2/bin/apachectl stop启动…

iphone8p百度云认证_探秘百度数据工厂Pingo的多存储后端数据联合查询技术

作者介绍&#xff1a;张志宏&#xff0c;2013年加入百度大数据部&#xff0c;曾作为核心成员参与百度大数据平台的搭建。目前是百度数据工厂Pingo核心团队的技术负责人。Pingo是来自百度的离线大数据集成开发平台&#xff0c;使用Spark作为计算引擎&#xff0c;深度整合了资源调…

JavaScript文件中调用AngularJS内部方法或改变$scope变量

需要在其他JavaScript文件中调用AngularJS内部方法或改变$scope变量&#xff0c;同时还要保持双向数据绑定&#xff1b; 首先获取AngularJS application&#xff1a; 方法一&#xff1a;通过controller来获取app var appElement document.querySelector([ng-controllermainCon…

web类协议脚本-飞机订票系统示例

以下是LR自带的飞机订票系统的Demo&#xff0c;希望能帮助大家。 Action() {int iRand;int iTmp;char *strTmpA;char *strTmpB;char *strTmpC;char *position;if ((strTmpA (char *)malloc(100 * sizeof(char))) NULL) { lr_output_message ("Insufficient memory avail…

ACCEPT()和ACCEPT4()

ACCEPT章节&#xff1a;Linux 程序员手册 (2) 更新&#xff1a;2010-09-10到 易美翻译 翻译名字accept - 通过套接口接受一个连接 概要 #include Esys/types.h> /* 参看 “注意小节” */ #include Esys/socket.h>int accept(int sockfd, struct sockaddr *addr, socklen…

没有提示_华为手机发出莫名的提示音,打开什么也没有?原来是它们在作怪

不知道你们有没有遇到过这样的情况&#xff0c;在使用手机的过程中会出现一个非常奇怪的现象&#xff1a;当你听到手机发出声音&#xff0c;打开手机却发现什么通知也没有&#xff1f;这一度让我感到很困扰&#xff0c;本着“打破砂锅问到底”的精神&#xff0c;终于让我找到了…

近段时间佛我就偶尔无

jo建瓯市金佛玩手机欧力紧凑度 我株型紧凑我阿九倨傲四局李嘉诚转载于:https://juejin.im/post/5b8e5263e51d4538e2278c9b

php内核探索方法与资源

PHP内核探索 TIPI深入理解PHP内核 风雪之隅PHP源码分析 《php扩展开发及内核应用》 百度XLQ Gods blog codinglabsPHP内核探索&#xff1a;从SAPI接口开始PHP内核探索&#xff1a;一次请求的开始与结束PHP内核探索&#xff1a;一次请求生命周期PHP内核探索&#xff1a;单进程SA…