Chinaunix首页 | 论坛 | 博客
  • 博客访问: 305
  • 博文数量: 1
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 10
  • 用 户 组: 普通用户
  • 注册时间: 2015-07-30 20:19
文章分类
文章存档

2015年(1)

我的朋友
最近访客

分类: 系统运维

2015-07-31 08:09:52

各种端口类型对各种数据帧的处理方法:
 
所谓的Untagged Port和tagged Port不是讲述物理端口的状态,而是将是物理端口所拥有的某一个VLAN ID的状态,一个物理端口可以在一些VLAN ID上是Untagged Port,在另一些VLAN ID上是tagged Port;
 
 
我的理解:
 
ACCESS:PVID的Untagged Port;
        接收时:如果是Untagged帧,按照PVID打上tag然后寻找相同VLAN ID的端口转发;如果是Tagged帧,丢弃;
        发送时:如果是Untagged帧,直接发出;如果是Tagged帧,VLAN ID等于PVID的话就去掉tag然后发出,否则丢弃;
 
TRUNK:多个VLAN ID(根据permit定义或GVRP学习)的Tagged Port和PVID的Untagged Port;
       接收时:如果是Untagged帧,按照PVID打上tag然后寻找相同VLAN ID的端口转发;如果是Tagged帧,VLAN ID在Tagged Port有定义时直接寻找相同VLAN ID的端口转发,否则丢弃;
       发送时:如果是Untagged帧,按照PVID打上tag然后发出;如果是Tagged帧,VLAN ID在Tagged Port有定义时直接发出,否则丢弃;
 
HYBRID:任意VLAN ID的Tagged或Untagged Port,PVID的Untagged Port;
       接收时:如果是Untagged帧,按照PVID打上tag然后寻找相同VLAN ID的端口转发;如果是Tagged帧,VLAN ID在Tagged Port有定义时直接寻找相同VLAN ID的端口转发,VLAN ID在Untagged Port有定义时去掉tag后寻找相同VLAN ID的端口转发,否则丢弃;
       发送时:如果是Untagged帧,按照PVID打上tag然后发出;如果是Tagged帧,VLAN ID在Tagged Port有定义时直接发出,VLAN ID在Untagged Port有定义时去掉tag后发出,否则丢弃;
 
 
 
 
一个简单实例:
一个数据包从PC1发出经过ACCESS->TRUNK->TRUNK->ACCESS->PC2数据包发生了怎么样的变化?
我们先把上述的描述变换为IEEE802.1Q的标准描述:
一个数据包从PC1机发出经过(Untagged 数据帧)
SWITCH A:
ACCESS端口(PVID定义为100)
TRUNK端口(PVID定义为1,tagged Port:VLAN 100)
SWITCH B:与A相同
PC1数据包发生了怎么样的变化?(Untagged 数据帧)
首先假设两台交换机刚刚开机(MAC地址表为空)从PC1发出的数据帧进入SWITCH A的ACCESS端口以后,会按照这个端口的PVID打100的Tag标记,根据交换机的转发原理,交换机会把这个数据帧转发给VID=100的所有端口(除了进口以外),这个过程叫做VLAN Flood;
由于Trunk端口拥有VID=100,所以接收到这个标记Tag为100的tagged数据帧;
由于Trunk端口在VID=100上为tagged Port,所以在发送数据帧的时候,不改变Tagged数据帧的结构;
到了SWITCH B的Trunk端口的时候,由于Trunk端口拥有VID=100,所以接收到这个标记Tag为100的tagged数据帧;
SWITCH B的Trunk端口,接收到标记tag为100的tagged数据帧,并不作任何的更改,根据交换机的转发原理,交换机会把这个数据帧转发给VID=100的所有端口(除了进口以外);(因为此时交换机还没有完整的ARP表,否则会单播发送)
这样SWITCH B的ACCESS端口就可以收到标记tag为100的tagged数据帧;
ACCESS端口在发出标记tag为100的tagged数据帧的时候,会去掉TAG标记,转发untagged数据帧给PC2;
这样PC2就收到了这个数据;
阅读(88) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:没有了

给主人留下些什么吧!~~