Zookeeper使用 高阶函数 JAVA学习 LeetCode 存量客户 cocoa uiview menu formvalidator.js swiper vue最新版本 vue表单 vue手册 matlab向量的模 git登录命令 maven插件 java获取字符串 python相对路径怎么写 python支持中文 python模块大全 java多态 java开发学习 如何安装java环境 java定义变量 win10长期服务版 千元以下最好的手机 忧思华光玉攻略 adobe清理工具 js闭包的理解 js延迟加载的方式 一件换肤 millenium 给视频加字幕的软件 疯狂java ip地址转换器 ps制作表格 文明6万神殿 c4d挤压怎么用 web聊天室 3dmax2014下载
当前位置: 首页 > 学习教程  > 编程语言

Access、Hybrid和Trunk三种模式的理解

2020/11/4 14:22:56 文章标签:

tag报文结构是在源mac地址和目的mac地址之后,加上了4bytes的vlan信息,普通的PC网卡是不能识别 的。 Access端口只属于1个VLAN,一般用于连接计算机端口。 Trunk类型的端口可用于多VLAN通信。 Hybrid类型的端口允许多VLAN通过,可以接收发送多…

  1. tag报文结构是在源mac地址和目的mac地址之后,加上了4bytes的vlan信息,普通的PC网卡是不能识别 的。

  2. Access端口只属于1个VLAN,一般用于连接计算机端口。

  3. Trunk类型的端口可用于多VLAN通信。

  4. Hybrid类型的端口允许多VLAN通过,可以接收发送多VLAN报文,可用于交换机与交换机的连接,也可用于交换机和计算机的连接。

  5. Hybrid类型的端口和trunk端口在处理数据包时,方法是一样的。唯一不同之处在于发送数据包时,hybrid端口可以允许多个VLAN的数据包发送时不打标签,而truck端口只允许缺省vlan(native vlan或者default vlan)的数据包发送时不打标签。

  6. Access端口只属于一个vlan, 所以它的缺省VLAN就是它所在的VLAN, 不用设置。hybrid 端口 和trunk端口属于多个VLAN, 所以需要设置缺省VLAN, 默认情况下,它们的缺省VLAN是VLAN 1.

  7. 如果设置了端口的缺省VLAN ID, 当端口接收到不带VLAN tag的数据包之后,则将数据包转发到缺省VLAN 所在的交换机端口;当端口发送带有VLAN tag的数据包时,如果该数据包的VLAN ID与端口缺省VLAN相同,则交换机将去掉数据包携带的VLAN tag, 然后转发到该端口。

  8. 华为交换机的缺省VLAN 被称为PVID, 思科交换机则称为Native VLAN.

  9. 交换机端口处理进出数据包过程如下:

 

  • Access 端口接收数据包:

    收到一个数据包,判断是否有VLAN信息,如果没有则打上端口的Native VLAN ID, 并进行交换转发。

    有人问了:如果有VLAN信息呢?一般情况下不应该将access端口与带有vlan的另一端口相连,因为access本来就是为接入普通计算机而设计的,而普通计算机的网卡发送数据包是不带vlan的。如果由于配置错误将其连到了对端trunk端口,或者现在有些计算机的网卡已经可以收发带有VLAN tag数据包,在这两种情况下,我的理解是,如果trunk端口发来的数据的VLAN ID与Access端口的native vlan相同,则交换机转发该数据包。如果trunk端口发来的数据包的VLAN ID与access端口的native vlan不同,则交换机丢弃该数据包。

  • Access 端口发送数据包:

    将数据包的VLAN信息剥离,直接发送出去。

  • Trunk端口接收数据包:

    收到一个数据包,判断是否有VLAN信息,如果没有则打上端口的Native VLAN ID,并进行交换转发。

    如果有VLAN信息,则判断该trunk端口是否允许该VLAN的数据包进入,如果允许则转发,否则丢弃。

  • Trunk端口发送数据包:

    比较端口的Native VLAN和发送数据包的VLAN信息,如果两者相等则剥离VLAN信息,然后发送。如果不相等,则直接发送。

  • Hybrid端口接收数据包:

    收到一个数据包,判断是否有VLAN信息, 如果没有则打上端口的Native VLAN ID, 并进行交换转发。

    如果有VLAN信息,则判断该hybrid端口是否允许该VLAN的数据包进入,如果允许则转发,否则丢弃。

  • Hybrid端口发送数据包:

    判断该VLAN在本端口配置的属性,如果属性是untag, 则剥离VLAN tag再进行转发。如果属性是tag, 则直接发送。

 

有一点必须清楚,就是交换机内部在处理数据包时,所有的数据包一定是打上VLAN tag的,知道了这一点,那么交换机处理VLAN的具体过程就很容易理解了。

举例1:

    两台交换机,一台端口配置trunk, native vlan为100, 另一台端口配置access, native vlan 为默认的1.

问: 连接到两台交换机的PC, 能互通吗? 为毛?

wKiom1WnZWGCfEphAAC6j4a1oEw300.jpg

    答案:通。 因为,trunk端口发出去的native vlan数据包中的vlan tag会被剥离,则另一交换机的access口收到的数据包是untag的,它当然能处理, 它收到后只在内部使用native vlan 1, 等一出交换机,由于是access端口,vlan tag就会被剥离掉,并送到trunk端口,而trunk端口再重新打上自己的native vlan 100进行转发。

    这个例子说明,中继端口发送native vlan数据包时是剥离tag的,即使两个链路配置了不同的native vlan, 也能互通。但是这时交换机的console口一般会报错:“Mismatched Native VLAN".  呵呵,是不是很神奇?

 

===========================================================================================================================

以太网端口的三种链路类型:Access、Hybrid和Trunk:
Access类型的端口只能属于1个VLAN,一般用于连接计算机的端口;
Trunk类型的端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,一般用于交换机之间连接的端口;
Hybrid类型的端口可以允许多个VLAN通过,可以接收和发送多个VLAN的报文,可以用于交换机之间连接,也可以用于连接用户的计算机。
Hybrid端口和Trunk端口在接收数据时,处理方法是一样的,唯一不同之处在于发送数据时:Hybrid端口可以允许多个VLAN的报文发送时不打标签,而Trunk端口只允许缺省VLAN的报文发送时不打标签。
在这里大家要理解端口的缺省VLAN这个概念
Access端口只属于1个VLAN,所以它的缺省VLAN就是它所在的VLAN,不用设置;
Hybrid端口和Trunk端口属于多个VLAN,所以需要设置缺省VLAN ID。缺省情况下,Hybrid端口和Trunk端口的缺省VLAN为VLAN 1
如果设置了端口的缺省VLAN ID,当端口接收到不带VLAN Tag的报文后,则将报文转发到属于缺省VLAN的端口;当端口发送带有VLAN Tag的报文时,如果该报文的VLAN ID与端口缺省的VLAN ID相同,则系统将去掉报文的VLAN Tag,然后再发送该报文。
注:对于华为交换机缺省VLAN被称为“PVID Vlan”,(PVID为Port-base Vlan ID), 对于思科交换机缺省VLAN被称为“Native Vlan”

交换机接口出入数据处理过程:
Acess端口收报文:
收到一个报文,判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有则直接丢弃(缺省)
Acess端口发报文:
将报文的VLAN信息剥离,直接发送出去
trunk端口收报文:
收到一个报文,判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有判断该trunk端口是否允许该 VLAN的数据进入:如果可以则转发,否则丢弃
trunk端口发报文:
比较端口的PVID和将要发送报文的VLAN信息,如果两者相等则剥离VLAN信息,再发送,如果不相等则直接发送
hybrid端口收报文:
收到一个报文,判断是否有VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有则判断该hybrid端口是否允许该VLAN的数据进入:如果可以则转发,否则丢弃(此时端口上的untag配置是不用考虑的,untag配置只对发送报文时起作用)

hybrid端口发报文:
1、判断该VLAN在本端口的属性(disp interface 即可看到该端口对哪些VLAN是untag, 哪些VLAN是tag)
2、如果是untag则剥离VLAN信息,再发送,如果是tag则直接发送

以下案例可以帮助大家深入理解华为交换机的hybrid端口模式
[Switch-Ethernet0/1]int e0/1
[Switch-Ethernet0/1]port link-type hybrid
[Switch-Ethernet0/1]port hybrid pvid vlan 10
[Switch-Ethernet0/1]port hybrid vlan 10 20 untagged
[Switch-Ethernet0/1] int e0/2
[Switch-Ethernet0/2]port link-type hybrid
[Switch-Ethernet0/2]port hybrid pvid vlan 20
[Switch-Ethernet0/2]port hybrid vlan 10 20 untagged
此时inter e0/1和inter e0/2下的所接的PC是可以互通的,但互通时数据所走的往返vlan是不同的。
以下以inter e0/1下的所接的pc1访问inter e0/2下的所接的pc2为例进行说明
pc1所发出的数据,由inter0/1所在的pvid vlan10封装vlan10的标记后送入交换机,交换机发现inter e0/2允许vlan 10的数据通过,于是数据被转发到inter e0/2上,由于inter e0/2上vlan 10是untagged的,于是交换机此时去除数据包上vlan10的标记,以普通包的形式发给pc2,此时pc1->p2走的是vlan10
再来分析pc2给pc1回包的过程,pc2所发出的数据,由inter0/2所在的pvid vlan20封装vlan20的标记后送入交换机,交换机发现inter e0/1允许vlan 20的数据通过,于是数据被转发到inter e0/1上,由于inter e0/1上vlan 20是untagged的,于是交换机此时去除数据包上vlan20的标记,以普通包的形式发给pc1,此时pc2->pc1走的是vlan20


本文链接: http://www.dtmao.cc/news_show_350119.shtml

附件下载

相关教程

    暂无相关的数据...

共有条评论 网友评论

验证码: 看不清楚?