交换机内部的对vlan
tag的处理有以下几种情况:(按照数据包的转发方向)
1、从Access端口进入,然后从Access端口发出;则进入是带上vlan tag,发出时去掉vlan tag;
2、从Access端口进入,然后从Trunk端口发出;则进入时带上vlan tag,发出时保留vlan tag;
3、从Trunk端口进入,然后从Trunk端口发出;则vlan tag无变化,进来什么样出去还是什么样;
4、从Trunk端口进入,然后从Access端口发出;则进入时无变化,出去时去掉vlan tag;
其实很简单,总之记住从Access口出来都是不带tag的,从Trunk口出来,都是带tag的...
1.trunk的作用:可以让多个vlan通过
2.trunk的原理是对不同vlan打上不同的标签 以区分不同vlan的数据帧
3.trunk是交换机上的东西(交换机关心的是数据帧;路由器关心的是数据包)这点你弄混了!!!所以:trunk链路上只能对数据帧再封装和删封装 不能对数据包再封装或删封装
情况1:一般vlan a的数据进入一端trunk链路时 要传送到对端(trunk接口再交给)vlan a:
vlan a---------switch----------(trunk链路)-----------switch---------vlan a
本地交换机把vlan a的数据帧交给本端trunk接口
进入本端trunk接口前打上vlan a标签
进入对端truan后删除vlan a标签
对端交换机把该数据送给(对端)本地的vlan a
情况2:native vlan:(默认native vlan 是 vlan 1)
native vlan---------switch----------(trunk链路)-----------switch---------native vlan
native vlan的数据进入tunk trunk发现是native vlan的数据 就不加vlan标签直接发给对端tunk口
对端trunk收到native vlan的数据(因为没加vlan标签 所以不用删标签了)交给本地的native vlan
一个数据包从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
Port,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的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机就收到了这个数据.