大家好,我是你们的好朋友:人见人爱、花见花开、车见爆胎、猪见拜拜的龙少一郎,例行介绍如上,严归正传如下:
交换机端口类型分为三种:Access、Trunk、Hybrid,常见的和常用到的仅仅为前面二种。下面我们就以这三种端口类型的定义、功用和使用场合进行具体说明:
Access端口为二层端口,仅仅属于一个Vlan,常常用于连接计算机PC等终端设备。
Trunk端口为二层端口,可以允许多Vlan通过,既可以发送Vlan报文也可以接受Vlan报文,常用于网络设备之间(交换机与交换机之间、交换机与路由器之间等)。
Hybrid端口为二层端口,使用点就包括了Access和Trunk两种特性。
注:二层端口和三层端口的区别指的是二层端口在数据层面对数据的结构进行了报文封装,而Vlan就是数据的二层属性;三层端口是在网络层改变了数据帧结构,从而使该端口具有三层属性,可以进行数据的路由、传递和使用。(要想继续在菜鸟的路上打拼下去的话,请大家继续关注我的博客更新,后续会有相关Vlan和数据结构的个人讲解,我只所以称之为个人,也是鄙人的一已之见,大神勿扰,菜鸟路过)
谈到了Trunk和Hybrid端口,我们不得不谈谈他们的区别何在?
它们的根本区别在于发送数据时对数据结构的改变,接受数据的处理过程是一样的。区别就是:Trunk端口只针对缺省Vlan报文发送时不打标签,而Hybrid端口可以允许多Vlan报文通过时不打标签,这里我可以举几个有趣的比喻:一、Trunk好比优秀的大学,该大学对普通毕业生毕业时我们叫本科毕业,对博士或硕士生在本校毕业时,我们叫他们为博士或硕士本科毕业生,有标签了,记住有标签了,有了标签身份就比较特殊了,类比数据就是特殊数据特殊处理。而Hybrid好比一般的野鸡大学,大家都一样,毕业了都叫本科毕业生或毕业生,没有标签,也就失去了标签的力量,芸芸众生中的普通一员而已,好像在流浪,在数据中也是一样,这些数据我们称之为“孤魂野鬼”,当然这是开玩笑,相信你也轻松理解了,这就是我想要的结果!二、再举一个高大尚的例子,绝对让你耳目一新:Trunk端口就好比豪华夜总会,它对有身份的人是没有限制的,进来出去都是来去自由,对其他非身份的人则会有严格的出入审核。而Hybrid端口就好比低档KTV,无论你是谁,只要有兴趣,都可以进来High一High,不分彼此!说到这,我相信你对这两种端口的区别应该更加深刻而刻骨铭心了吧!
废话说了那么多,该是清醒的时候了,你还是要有毅力坚持看下去,我也会坚持写下去,只要你敢看,我就敢写!其实我们一直用心灵在真诚的沟通着.....
说到缺省Vlan或默认Vlan,我们不得不提到不同厂家的不同叫法,但都是大同小异:思科叫本征Vlan或Native Vlan,华为叫Pvid Vlan,Juniper的叫Native Vlan。那么缺省Vlan在这三种端口类型中又是如何应用的呢?
Access端口只从属于一个Vlan属性,那么它的缺省Vlan即是端口它所在的Vlan。
Trunk端口Hybrid端口因为可以允许多Vlan通过,所以需要设置缺省Vlan,默认为Vlan1。(注:实际上所有网络设备都有缺省或默认Vlan,不同路由器或交换机缺省Vlan不一样,Juniper的为Default,思科的为Vlan1,也就是说不管你设置与否,都存在缺省Vlan,这点要注意!)
如果设置了端口缺省VLAN ID,当端口接收到不带VLAN Tag报文后 则将报文转发到属于缺省VLAN的端口;当端口发送带有VLAN Tag报文时,如果该报文 VLAN ID和端口缺省VLAN ID相同,则系统将去掉报文VLAN Tag,然后再发送该报文。(注:因为刚才提到了不管你设置与否,都有默认Vlan,所以以思科为例,实际情况是一个没有任何Vlan Tag数据进来,它就以没有任何Vlan Tag的数据出去,即是赤裸裸的来,赤裸裸的去;如果带Vlan Tag呢?它就看他的端口是否允许其通过,有则过,否则丢掉)
说了那么多,我们还是很难从整体上看交换机三种端口属性是如何完整的处理一个数据报文的呢?请继续往下看,如果你不看的话,这辈子你就没有机会看到了,如下:
再多说几句废话,我再提醒大家注意一点:很多网络初学者,不太理解交换机的接受和发送数据,针对一个端口而言是否具有双重属性,即一个数据进来了又从这个端口出去了,这里再强调强调强调一次,每个端口只有单向属性,进来就是进来了,出去就是出去了,以数据流向来判断它是进端口还是出端口,但无论何时,同一时刻只有单向单向单向!你还有精力和心情听我娓娓道来么?如果你是认真的,我相信你会继续.....
交换机内部结构是一个以矩阵的形式进行数据转发的,它的处理过程包括接收和发送,明确如下:
Access端口接收数据:收到数据报文后,它首先会判断该数据是否有Vlan报文,如果没有则打上端口Pvid进行交换和转发,如果有则直接丢弃(默认是这样)。
Access端口发送数据:将数据报文Vlan信息剥离后直接发送。
Access端口接受和发送数据图解如下:
Trunk端口接收数据:收到一个报文,判断是否有VLAN信息:如果没有则打上端口 PVID 并进行交换转发,如果有判断VLAND ID是否在该trunk的允许范围内,如果在范围内则转发,否则丢弃。
Trunk端口发送数据:比较端口PVID和将要发送报文VLAN信息如果两者相等则剥离VLAN信息再发送,如果不相等则直接发送。
Trunk端口接受和发送数据图解如下:
![](https://img2023.cnblogs.com/blog/3268718/202309/3268718-20230919143055896-303216331.png)
hybrid端口接收报文: 收到一个报文,判断是否有VLAN信息:如果没有则打上端口 PVID 并进行交换转发。如果有则判断该hybrid端口是否允许该VLAN数据进入:如果可以则转发,否则丢弃(此时端口上untag配置是不用考虑,untag配置只对发送报文时起作用)
hybrid端口发报文:
1、判断该VLAN在本端口属性(disp erface 即可看到该端口对哪些VLAN是untag 哪些VLAN是tag)
2、如果是untag则剥离VLAN信息再发送如果是tag则直接发送
Hybrid端口接收和发送数据就不例举了,原理和Trunk差不多。
最后我附上一张网上的图片,供大家理解活用:
![](https://img2023.cnblogs.com/blog/3268718/202309/3268718-20230919143109570-1425246686.png)