详解eNSP中Trunk端口和Access端口收发数据的区别
Access和Trunk端口收发数据的区别
端口类型 | 接收数据 | 转发数据 |
---|---|---|
Access端口 | 如果接收的是不带标签的的数据,则打上自己的pvid接受该数据,如果接受的是带标签的数据,会判断该数据的vlan id是否和自身的pvid相同,若相同则接收该数据,若不同则丢弃该数据 | 转发数据时会将数据的标签剥掉,也就是通过Access端口转发出去的数据都是不带标签的 |
Trunk端口 | 如果接受的是不带标签的数据,则会打上自身的pvid,然后判断数据的vlan id是否在允许通过的vlan id列表中,如果允许通过则接收数据,如果不允许通过则丢弃数据,如果是带标签的数据,则判断该数据的vlan id是否在允许通过vlan id列表中,如果允许通过,则接收该数据,如果不允许,则丢弃该数据 | 转发数据时查看转发数据的vlan id是否在允许通过的vlan id列表中,如果不允许通过,则丢弃该数据,如果允许通过,再判断数据的vlan id是否和端口的pvid相同,如果相同,则剥掉标签转发,如果不同,则直接转发 |
pvid:即Port Vlan ID,端口的缺省vlan
vlan id:可以看作数据的Tag
通过树形图可以更清晰的看出两种类型端口收发数据的方式
在这我们可以通过几个例子来分析一下数据传输的过程
这里我们把左边交换机的所有接口都配置为access端口(虽说access端口是连接主机的,但这里我们只是为了学习,所以交换机之间我们也配成了access类型),pvid都为10,右边交换机的所有端口我们也都配成了access类型,pvid为20,这里我们就以PC1访问PC2为例:
PC1发送数据到E0/0/2端口,此时数据是不带标签的,所以E0/0/2端口就将数据打上自己的pvid(10)后接收数据,然后通过G0/0/1端口发送数据,G0/0/1会先判断数据的vlan id是否和自己的pvid相同,若相同则发送,若不同则丢弃,因为数据的vlan id为10,自己的pvid也是10,所以G0/0/1端口就将数据剥掉标签发送,然后就是右边端口G0/0/2接收数据,因为此时数据是没有标签的,所以G0/0/2端口打上自己的pvid(20)然后接收数据,再通过右边E0/0/3端口发送数据,E0/0/3端口会先判断数据的vlan id是否和自己的pvid相同,若相同则发送,若不同则丢弃,因为此时数据的vlan id是20,E0/0/3端口的pvid也是20,所以E0/0/3端口剥掉数据的标签发送给PC2,PC2发送响应数据时,也是同样的线路。
我们看看测试结果:
这次我们将同一个交换机上的端口设定在不同的vlan
我们还是将两台交换机上的所有端口都设置为access类型,然后将左边交换机的两个端口分别划分到vlan10和vlan20,右边交换机的两个端口分别划分到vlan25和vlan20,这次我们以PC14访问PC15为例:
PC14发送数据到端口E0/0/2,因为数据不带标签,所以端口E0/0/2将数据打上自己的pvid(10)后接收数据,然后通过G0/0/1端口发送数据,端口G0/0/1会先判断数据的vlan id是否和自己的pvid相同,若相同则发送数据,若不同则丢弃数据,因为数据的vlan id是10,而端口G0/0/1的pvid为15,数据的vlan id与端口的pvid不同,所以端口将数据丢弃,也就代表PC14无法访问PC15
我们测试一下
我们再来看一下trunk端口的数据传输过程:
左边的为vlan10,右边为vlan20,我们把左边交换机的两个端口分别配置为一个access端口,一个trunk端口,两个端口的pvid都是10,右边交换机也是一个access端口,一个trunk端口,pvid都是20,我们以PC16访问PC17为例:
PC16发送数据到端口E0/0/2,因为数据没有标签所以端口E0/0/2将端口打上自己的pvid(10)后接收,然后通过端口G0/0/1发送,当数据带标签时,端口G0/0/1会先判断数据的vlan id是否在允许通过的列表中,若允许通过,在进行下一步判断,若不允许,则丢弃,因为数据的vlan id为10,而我们没有在交换机中添加允许vlan10通过,所以数据无法通过。
测试:
下面我们在交换机14的G0/0/1端口上添加允许vlan10通过,执行命令:
[Huawei]interface GigabitEthernet 0/0/1
[Huawei-GigabitEthernet0/0/1]port trunk allow-pass vlan 10
现在端口G0/0/1允许vlan id为10的数据通过,因为数据的vlan id为10,所以G0/0/1端口允许数据通过,此时端口G0/0/1再判断数据的vlan id是否和自己的pvid相同,若相同则剥掉标签转发,若不同则直接转发,因为端口G0/0/1的pvid为10,数据vlan id也为10,所以端口G0/0/1会剥掉数据的标签转发,此时G0/0/2接收数据,因为此时数据没有标签所以端口G0/0/2将数据打上自己的pvid(20),再判断数据的vlan id是否在允许通过的列表中,数据的vlan id为20,而我们没有在端口G0/0/2中添加允许vlan20通过,所以数据还是无法通过,执行命令:
[Huawei]interface GigabitEthernet 0/0/2
[Huawei-GigabitEthernet0/0/2]port trunk allow-pass vlan 20
此时端口G0/0/2允许数据通过,端口G0/0/2接收数据,然后再通过端口E0/0/3转发数据,端口E0/0/3会判断数据的vlan id是否和自己的pvid相同,若相同则剥掉标签转发,若不同则丢弃,因为数据的vlan id为20,端口E0/0/3的pvid为20,两者相同,所以端口E0/0/3剥掉数据的标签转发到PC17
PC17发送响应数据时也是相同的原理,PC17发送数据到端口E0/0/3,因为数据没有标签,端口E0/0/3将数据打上自己的pvid(20)后接收,然后通过端口G0/0/2转发,因为端口G0/0/2我们添加了允许vlan20通过,所以端口G0/0/2允许数据通过,又因为数据的vlan id与端口G0/0/2的pvid相同,所以端口G0/0/2剥掉数据的标签转发,然后是端口G0/0/1接收数据,因为数据没有标签,所以端口G0/0/1将数据打上自己的pvid(10),再判断端口vlan id是否在允许通过的列表中,因为我们在端口G0/0/1中添加了允许vlan10通过,所以端口G0/0/1允许数据通过,所以端口G0/0/1接收数据,再通过端口E0/0/2转发,因为数据的vlan id与自己的pvid相同,所以端口E0/0/2剥掉数据的标签转发到PC16,此时PC16和PC17就完成了访问
我们来测试一下
有帮助的话,还请支持一下哦(嘻嘻)
公众号也会不定时发表一些有趣的文章,可以关注一下哦
详解eNSP中Trunk端口和Access端口收发数据的区别相关推荐
- 详解JavaScript中ES5和ES6的类、继承之间区别和联系
导读: 很多JavaScript的初学者(比如说我)在刚开始学习这门语言的时候,往往会对函数.对象.类.继承这些概念感到迷茫和疑惑,感觉他们彼此之间长得十分相似,这就导致很难分清他们什么时候该怎么用. ...
- 详解java中Thread类,线程和进程的基本区别,多线程的好处,线程的五个生命周期,主线程和IDEA创建的Monitor Ctrl-Break守护线程;优雅地终止线程。死锁的产生
线程:CPU调度的最小单位:线程共享堆内存和方法区,但各自享有栈空间.进程:CPU分配资源的最小单位. 为什么需要多线程:①避免其中一个模块阻塞造成系统假死:②程序异步处理(交替执行),提高程序执行效 ...
- JAVA中的visible什么意思_详解Android中visibility属性VISIBLE、INVISIBLE、GONE的区别
在Android开发中,大部分控件都有visibility这个属性,其属性有3个分别为"visible "."invisible"."gone&quo ...
- 218.94.78.76:20001/index.php,详解spring中使用Elasticsearch的实例教程
本篇文章主要介绍了详解spring中使用Elasticsearch的代码实现,具有一定的参考价值,有兴趣的可以了解一下 在使用Elasticsearch之前,先给大家聊一点干货. 1. ES和solr ...
- 详解OpenCV中的Lucas Kanade稀疏光流单应追踪器
详解OpenCV中的Lucas Kanade稀疏光流单应追踪器 1. 效果图 2. 源码 参考 这篇博客将详细介绍OpenCV中的Lucas Kanade稀疏光流单应追踪器. 光流是由物体或相机的运动 ...
- python操作目录_详解python中的文件与目录操作
详解python中的文件与目录操作 一 获得当前路径 1.代码1 >>>import os >>>print('Current directory is ',os. ...
- python3中unicode怎么写_详解python3中ascii与Unicode使用
这篇文章主要为大家详解python3中ascii与Unicode使用的相关资料,需要的朋友可以参考下# Auther: Aaron Fan ''' ASCII:不支持中文,1个英文占1个字节 Unic ...
- foreach php,详解PHP中foreach的用法和实例
本篇文章介绍了详解PHP中foreach的用法和实例,详细介绍了foreach的用法,感兴趣的小伙伴们可以参考一下. 在PHP中经常会用到foreach的使用,而要用到foreach,就必须用到数组. ...
- python open 打开是什么类型的文件-详解Python中open()函数指定文件打开方式的用法...
文件打开方式 当我们用open()函数去打开文件的时候,有好几种打开的模式. 'r'->只读 'w'->只写,文件已存在则清空,不存在则创建. 'a'->追加,写到文件末尾 'b'- ...
最新文章
- 基于Springboot实现园区招商管理系统
- 理解LSTM/RNN中的Attention机制
- 在CSS3中,可以利用transform功能来实现文字或图像的旋转、缩放、倾斜、移动这四种类型的变形处理...
- Spring-data-redis:特性与实例--转载
- CSS cursor 属性
- oracle查询cpu占用率高,ORACLE杀掉cpu占用率高的session
- ajax的请求参数详解以及前后台交互详解
- win10 wlan 诊断显示后没有有效的ip配置
- 最好用的PDF软件汇总
- 最简单的WIN7内核PE系统(U盘,硬盘,移动硬盘版支持原版WIN7安装
- android 编写优质代码,GitHub - RayFantasyStudio/iCode-Android: 为开发者而生,提供在线代码存放,展示你优秀代码的平台...
- 转:读“DataBase Sharding at Netlog”,看DataBase Scale Out
- 《Web安全攻防》学习笔记
- android 监听本机网络请求_前端系列课程(2)-网络基础概念(URL)
- linux内核IDR机制详解(一)
- 计算机公式SUBSTITUTE,全了,SUBSTITUTE函数常用套路集合!
- Quartus编译错误:which fans out to accumulate:inst4|acc[12] cannot be assigned more than one value
- .NET获取硬盘序列号的几个方法
- 成都java软件技术培训机构
- php rtmp服务器搭建,rtmp直播服务器的搭建(小白踩坑)
热门文章
- SpringCloud 微服务工作笔记:validationQuery: SELECT 1 FROM DUAL
- 【Planning】Firm type used in R3 Planning - Manual Firm and regular run
- Scratch与物理·天文:模拟中国嫦娥探月工程,探索月球的背面!
- 原生js实现canvas画布中绘制、移动、拖拽、删除矩形(如简易截图工具)
- python爬取汽车之家图片,Python requests 爬取汽车之家全部品牌logo,urllib下载到本地...
- 【ivp6服务器可通过ivp4网络访问教程】
- node.js的认识与了解3
- 生命不息,折腾不止—小黑升win10
- 苹果iOS7 Beta 2版系统下载,ios7beta2固件下载
- CF杂题训练(交互题不做,2500以上的看情况吧)