1、情况列举 Switch 收发 Switch 对标记的处理 remarkAccess (接收) Tagged = PVID 不接收 注:部分高端产品可能接收。Access (接收) Tagged =/ PVID 不接收 注:部分高端产品可能接收。Access (接收) Untagged 接收 增加 tagPVID 从 PCAccess (发送) Tagged = PVID 转发 删除 tag Access (发送) Tagged =/ PVID 不转发 不处理 Access (发送) Untagged 无此情况 无此情况 无此情况Trunk (接收) Tagged = PVID 接收 不修改 t
2、ag Trunk (接收) Tagged =/ PVID 接收 不修改 tag Trunk (接收) Untagged 接收 增加 tagPVID Trunk (发送) Tagged = PVID If Passing then 转发 删除 tag Trunk (发送) Tagged =/ PVID If Passing then 转发 不修改 tag Trunk (发送) Untagged 无此情况 无此情况 无此情况(注)Hybrid (接收) Tagged = PVID 接收 不修改 tag 对端是 trunkHybrid (接收) Tagged =/ PVID 接收 不修改 tag 对
3、端是 trunkHybrid (接收) Untagged 接收 增加 tagPVID 类 TrunkHybrid (发送) Tagged = PVID Tag 和 untag 中列出的 vlan可以 passing 看Tag项和 untag项 Hybrid (发送) Tagged =/ PVID Tag 和 untag 中列出的 vlan可以 passing 看 Tag项和 untag项 Hybrid (发送) Untagged 无此情况 无此情况 无此情况(注)我来解释一下收报文:Acess端口 1、收到一个报文,判断是否有 VLAN信息:如果没有则打上端口的PVID,并进行交换转发,如果有
4、则直接丢弃(缺省)发报文:Acess端口: 1、将报文的 VLAN信息剥离,直接发送出去 收报文:trunk端口: 1、收到一个报文,判断是否有 VLAN信息:如果没有则打上端口的 PVID,并进行交换转发,如果有判断该 trunk端口是否允许该 VLAN的数据进入:如果可以则转发,否则丢弃发报文:trunk端口: 1、比较端口的 PVID和将要发送报文的 VLAN信息,如果两者相等则剥离 VLAN信息,再发送,如果不相等则直接发送收报文:hybrid端口: 1、收到一个报文2、判断是否有 VLAN信息:如果没有则打上端口的 PVID,并进行交换转发,如果有则判断该 hybrid端口是否允许该
5、 VLAN的数据进入:如果可以则转发,否则丢弃发报文:hybrid端口:1、判断该 VLAN在本端口的属性(disp interface 即可看到该端口对哪些 VLAN是 untag, 哪些 VLAN是 tag)2、如果是 untag则剥离 VLAN信息,再发送,如果是 tag则直接发送先呈请一下上面的几个帖子的术语:Tag为 IEEE802.1Q协议定义的 VLAN的标记在数据帧中的标示;ACCESS端口,TRUNK 端口是厂家对某一种端口的叫法,并非 IEEE802.1Q协议的标准定义;这个数据交换的过程比较复杂,如果想解释的话,首先要了解一下几个IEEE802.1Q协议的定理;1、下面是
6、定义的各种端口类型对各种数据帧的处理方法;Tagged数据帧 Tagged数据帧 Untagged数据帧 Untagged数据帧in out in outTagged端口_原样接收 原样发送 按端口 PVID打 TAG标记 按照PVID打 TAG标记Untagged端口_丢弃 去掉 TAG标记 按端口 PVID打 TAG标记 原样发送2、所谓的 Untagged Port和 tagged Port不是讲述物理端口的状态,而是将是物理端口所拥有的某一个 VID的状态,所以一个物理端口可以在某一个 VID上是 Untagged Port,在另一个 VID上是 tagged Port;3、一个物理端
7、口只能拥有一个 PVID,当一个物理端口拥有了一个 PVID的时候,必定会拥有和 PVID的 TAG等同的 VID,而且在这个 VID上,这个物理端口必定是 Untagged Port;4、PVID 的作用只是在交换机从外部接受到可以接受 Untagged 数据帧的时候给数据帧添加 TAG标记用的,在交换机内部转发数据的时候 PVID不起任何作用;5、拥有和 TAG标记一致的 VID的物理端口,不论是否在这个 VID上是Untagged Port或者 tagged Port,都可以接受来自交换机内部的标记了这个TAG标记的 tagged 数据帧;6、拥有和 TAG标记一致的 VID的物理端口,
8、只有在这个 VID上是 tagged Port,才可以接受来自交换机外部的标记了这个 TAG标记的 tagged 数据帧;以下是神州数码对命令的定义(各个厂家对命令的定义可能不一定一致,但是都必须遵循上面的定理):1、Trunk 端口就是在一个物理端口上增加这个交换机所有 VLAN的 VID标示,并且除了和这个物理端口 PVID标示一致的 VID标示为 Untagged Port外,在其他的 VID上都是 Tagged Port;2、Access 端口就是指拥有一个和 PVID标记相同的 VID的物理端口,在这个VID上,遵循定理一定为 untagged Port;在了解了以上的基础理论之后,
9、我们在来看一下楼主的问题:一个数据包从 PC机发出经过 ACCESS端口-TRUNK 端口-TRunk-ACCESS-PC 数据包发生了怎么样的变化?我们先把上述的描述变换为 IEEE802.1Q的标准描述:一个数据包从 PC机发出经过(Untagged 数据帧)ACCESS端口(PVID 定义为 100,VID=100=Untagged Port)-TRUNK端口(PVID 定义为 1出厂配置,没有更改,VID=1=Untagged Port,VID=100=tagged Port)-另一个交换机的 TRunk端口(PVID 定义为 1出厂配置,没有更改,VID=1=Untagged Por
10、t,VID=100=tagged Port)-另一个交换机的 ACCESS端口(PVID 定义为 100,VID=100=Untagged Port)-PC数据包发生了怎么样的变化?(Untagged 数据帧)首先假设两台交换机刚刚开机(MAC 地址表为空)从 PC机发出的数据帧进入交换机的 ACCESS端口以后,会按照这个端口的 PVID打 100的 Tag标记,根据交换机的转发原理,交换机会把这个数据帧转发给 VID=100的所有端口(除了进口以外),这个过程叫做 VLAN Flood;参照上面的定理 1;由于 Trunk端口拥有 VID=100,所以才可接受这个标记 Tag为 100的
11、tagged数据帧;参照上面的定理 5;由于 Trunk端口在 VID=100上为 tagged Port,所以在发送数据帧出交换机的时候,不改变 Tagged数据帧的结构;参照上面的定理 1;到了另一个交换机的 Trunk端口的时候,由于 Trunk端口拥有 VID=100,所以才可接受这个标记 Tag为 100的 tagged数据帧;参照上面的定理 6;另一个交换机的 Trunk端口,接收到标记 tag为 100的 tagged数据帧,并不作任何的更改;参照上面的定理 1;另一个交换机收到到标记 tag为 100的 tagged数据帧,根据交换机的转发原理,交换机会把这个数据帧转发给 VID=100的所有端口(除了进口以外);参照交换机交换原理(受到一个未知目的 MAC数据帧);这样另一个交换机的 ACCESS端口就可以收到标记 tag为 100的 tagged数据帧;参照上面的定理 5;另一个交换机的 ACCESS端口在发出标记 tag为 100的 tagged数据帧的时候,会去掉 TAG标记,转发 untagged数据帧给 PC;参照上面的定理 1;这样 PC机就收到了这个数据;