下面的内容摘自一年多来一直热销不断的《Cisco/H3C交换机配置与管理完全手册》图书。

许多朋友对Cisco交换机中的Access和Trunk二层端口的报文收发规则的理解都只停留在表面,根本没有真正理解其本质,这样一来在遇到问题时就无法从原理上来进行故障分析和排除。下面先介绍笔者自己总结的Access和Trunk端口报文收\发规则,然后再通过一个故障排除示例加深大家对这两种二层端口的报文收发规则的理解。

   Access端口的报文收发规则如下:
   Access端口在收到一个报文(Access端口通常是从终端PC中接收报文)后,先判断该报文中是否有VLAN标记信息:如果没有VLAN标记,则打上该Access端口的PVID后继续转发(毕竟Access端口收到报文后是向其他端口发送的,可以识别带有VLAN标记的报文);如果有VLAN标记(这个报文肯定是来自其他非Access端口和终端PC,因为Access端口和终端PC网卡不会发送带VLAN标记的报文),则默认直接丢弃。

Access端口上发送报文时,会先将报文中的VLAN信息去掉(因为Access端口发送报文一般是到终端PCPC中的网卡是不能识别VLAN标记的。还有一种情况是发送到另一个同VLAN中的Access端口,因为Access端口也不接受带有VLAN标记的报文),然后再直接发送,所以Access端口发关出去的报文都是不带VLAN标记的。表4-1是根据上面介绍的Access端口接收或发送报文规则而例举的示例(表中的VLAN 2、VLAN 3只是其中的两个VLAN例,实际上可为其他任意已激活的VLAN)。

Trunk端口的报文收发规则如下:
在Trunk端口上发送报文时,先会将要发送报文的VLAN标记与Trunk端口的PVID进行比较,如果与PVID相等,则从报文中去掉VLAN标记再发送;如果与PVID不相等,则直接发送。这样一来,如果将交换机级连端口都设置为Trunk,并允许所有VLAN通过后,默认情况下除VLAN 1外的所有来自其他VLAN中的报文将直接发送(因为这些VLAN不是Trunk端口的默认VLAN),而作为Trunk端口默认VLAN的VLAN 1,则需要通过去掉报文中的VLAN信息后再发送。
在Trunk端口收到一个报文时,会首先判断是否有VLAN信息:如果没有VLAN标记,则打上该Trunk端口的PVID,视同该帧是来自PVID所对应的VLAN转发到PVID所对应的VLAN接口上;如果有VLAN标记,判断该Trunk端口是否允许该VLAN的报文进入,如果允许则直接转发,否则丢弃
   表4-2是根据上面介绍的Trunk端口接收或发送报文规则而例举的示例(表中的VLAN 2、VLAN 3只是其中的两个VLAN例,实际上可为其他任意已激活的VLAN)。

下面通过一个因PVID设置不当造成的网络故障的排除方法来加深对Access和Trunk端口数据收发规则的理解。图4-1中,SW1与R1之间,SW1和SW2之间的连接链路都是Trunk链路,允许网络中所有VLAN的数据通过。并设置SW1的f0/2 Trunk接口的PVID=1,SW2的f0/1 Trunk接口的PVID=2,PC2~5各自属于自己的VLAN,为Access端口。现只有PC2无法上网。

图4-1 Access和Trunk端口收发规则解析示例
   这时我们首先分析一下PC2在上网时发送的数据帧流程:首先PC2是向所连接的Access端口发送不带VLAN标记的帧,所连的Access端口接收到这个帧后打开它所属的VLAN 2的标记转发到达SW2的f0/1 Trunk端口,经过比较发现所收到的数据帧的VLAN标记(2)与SW2的f0/1 Trunk端口的PVID(2)一样,所以此时SW2的f0/1 Trunk端口会为把这个数据帧去掉VLAN标记转发到SW1的f0/2 Trunk端口。此时因为SW1的f0/2 Trunk端口收到的数据包没有VLAN标记,则直接把它打上与SW1的f0/2 Trunk端口PVID(1)对应的VLAN 1标记,然后错误地把它转发到VLAN 1所对应的VLAN接口上,所以造成PC2不能上网。
   现在再来看一下其他几台机为什么能正常上网,以PC3为例。
   PC3连接的也是SW2上的一个Access端口,发送的帧也是不带标记的,所连的Access端口接收到这个帧后打开它所属的VLAN 3的标记转发到达SW2的f0/1 Trunk端口,经过比较发现所收到的数据帧的VLAN标记(3)与SW2的f0/1 Trunk端口的PVID不一样,所以此时SW2的f0/1 Trunk端口会为直接转发这个数据帧到SW1的f0/2 Trunk端口。SW1的f0/2 Trunk端口再比较自己的PVID(1)与所收到的数据帧VLAN 标记(3),发现不一样,直接转发,所以PC3是能上网。其他的PC4、PC5与PC3的数据发送流程是一样。
  从以上分析可以看出,造成PC2不能上网的根本原因就在于从访问端口发送的数据帧的VLAN标记与SW2的f0/1 Trunk端口的PVID(2)一样,所以造成转发后的数据帧是不带VLAN标记的,最后被SW1的f0/2 Trunk端口错误地把这些数据帧直接转发到了它所属的VLAN中,而不是正确地发到对应的VLAN中。这时如果把SW2的f0/1 Trunk端口的PVID设置成其他PC机在VLAN的VLAN ID,则对应的VLAN中的PC机就不能上网了。所以在这种情况下,只有把SW2的f0/1 Trunk端口的PVID设置不包括网络中PC机所在VLAN的VLAN ID(本示例中如设置为1)就可以确保各VLAN中的PC都可以上网。这样就可以得出这样一条经验:要确保网络中所有VLAN用户都能上网,则需要把Trunk端口的PVID设置成非上网用户所在VLAN的VLAN ID。

本文转自王达博客51CTO博客,原文链接http://blog.51cto.com/winda/555280如需转载请自行联系原作者

茶乡浪子

深入理解Access和Trunk端口的报文收发规则相关推荐

  1. 网络:access和trunk端口和hybird端口的区别

    在路由/交换领域,VLAN的中继端口叫做trunk. trunk技术用在交换机之间互连,使不同VLAN通过共享链路与其它交换机中的相同VLAN通信. 交换机之间互连的端口就称为trunk端口.trun ...

  2. 交换机应用之端口模式(access、trunk和hybird)、是否标记(tag、untag)、端口缺省vlan(pvid、native id)...

    一.概述 打不打标记Tag,untag以及交换机的各种端口模式是网络工程技术人员调试交换机时接触最多的概念了.标记tag就是指VLAN的标签,数据包属于哪个VLAN的.交换机三种端口模式Access ...

  3. 交换机应用之端口模式(access、trunk和hybird)、是否标记(tag、untag)、端口缺省vlan(pvid、native id)

    一.概述 打不打标记Tag,untag以及交换机的各种端口模式是网络工程技术人员调试交换机时接触最多的概念了.标记tag就是指VLAN的标签,数据包属于哪个VLAN的.交换机三种端口模式Access ...

  4. pvid与access的关系_交换机应用之端口模式(access、trunk和hybird)、是否标记(tag、untag)、端口缺省vlan(pvid、native id)...

    一.概述 打不打标记Tag,untag以及交换机的各种端口模式是网络工程技术人员调试交换机时接触最多的概念了.标记tag就是指VLAN的标签,数据包属于哪个VLAN的.交换机三种端口模式Access ...

  5. 华为交换机access、trunk、hybrid口区别理解

    一.个人理解部分: 1.Access口:仅可以属于某一个Vlan,所以可以连客户端,且客户端只能属于端口的VLAN. 2.Trunk口:可以属于多个VLAN ,且默认VLAN的数据帧会发出会去掉VLA ...

  6. 虚拟局域网VLAN和以太网交换机端口分类(access,trunk,hybird)

    1.虚拟局域网优点: 2.划分虚拟局域网方法 1)基于交换机端口划分 最简单.也是最常用的方法.优点:连接设备可以更换.缺点:不允许用户移动 2)基于计算机网卡的MAC地址划分 优点:允许用户移动.缺 ...

  7. 小知识:Access端口和Trunk端口

    打标签:当交换机收到普通的以太网帧时,会将其插入4字节的VLAN标识,进而改变为 802.1Q帧 去标签:当交换机转发802.1Q帧时,可能会删除4字节VLAN标记,进而转变为普通以太网帧 PVID和 ...

  8. 交换机不配access口能通吗_交换机的Access端口和Trunk端口

    交换机上生成的各VLAN(逻辑组)是互不相通的 实现VLAN间通信的方法: 使用路由器 使用三层交换机 VLAN的实现机制 IEEE 802.1Q帧 交换机的端口类型 802.1Q帧是由交换机来处理的 ...

  9. access端口、trunk端口和hybird端口

    Access 端口. Trunk 端口和 Hybrid 端口 Access类型:端口只能属于1个VLAN,一般用于连接计算机: Trunk类型:端口可以属于多个VLAN,可以接收和发送多个VLAN的报 ...

最新文章

  1. python爬取网页有乱码怎么解决_python - 爬虫获取网站数据,出现乱码怎么解决。...
  2. linux软件安装卸载命令行
  3. MySQL学习笔记07【事务、用户管理和权限管理】
  4. Easyui的DateBox日期格式化
  5. 【Pandas】dataframe 设置完全显示所有列
  6. Linux下编译android源码的步骤
  7. JTA分布式事务处理
  8. android开源播放器代码,github上十二款最著名的Android播放器开源项目
  9. 在Chrome浏览器添加IDM插件——顽强版
  10. 下载webex client的remover
  11. 图片占内存容量计算公式
  12. 陀螺仪加速度计MPU6050
  13. 宝塔面板网站解决跨域问题
  14. Axure原型设计灯箱效果
  15. 如何u盘全新安装xp系统?
  16. 字节序: big-endian vs little-endian
  17. 智能中线保护装置-零线电流保护器-中性线保护装置
  18. 深度多模态子空间聚类网络+代码实现
  19. Python的exec
  20. Ztmao主题猫wordpress主题经典失传版/WP网站模板下载站源码+全局SEO功能设定

热门文章

  1. 用方框图来表示指令周期
  2. 《Linux系统调用:raise,abort》
  3. java.sql.SQLException: Operation not allowed for a result set of type ResultSet.TYPE_FORWARD_ONLY报错
  4. CSS样式实例---导航条
  5. 7月1日电动车头盔和充电器新国标正式实施了!
  6. vue、Affix 固钉、Affix 属性事件、vue Affix 全部固钉、vue Affix 全部属性事件
  7. R语言中的函数基本知识点
  8. java源程序分为两大类_根据程序运行的环境不同,JAVA源程序分为两大类,那两个类?-----并解析什么意思...
  9. 剪切的文件还能恢复吗?挽救误操作
  10. mpeg4标准包含{xvid\divx,h264\avc}