VLAN技术浅谈 http://www.h3c.com.cn/MiniSite/H3care_Club/Data_Center/Net_Reptile/The_One/Home/Catalog/200911/655250_97665_0.htm
百度百科vlan http://baike.baidu.com/view/1362579.htm?fr=aladdin
3.2 VLAN成员连接方式
VLAN成员的连接方式分为三种:Access,Trunk,Hybrid;
l Access连接:报文不带tag标签,一般用于和tag-unaware(不支持802.1Q封装)设备相连,或者不需要区分不同VLAN成员时使用;
l Trunk连接:在PVID所属的VLAN不带tag标签转发,其他VLAN中的报文都必须带tag标签,用于tag-aware(支持802.1Q封装)设备相连,一般用于交换机之间的互连;
l Hybrid连接:可根据需要设置某些VLAN报文带tag,某些报文不带tag。与trunk连接最大的不同在于,trunk连接只有PVID所属的VLAN不带tag,其他VLAN都必须带tag,而Hybrid连接是可以设置多个VLAN不带tag;
实际应用中,根据设置设备端口的Access、Trunk、Hybrid属性来实现各种不同的连接方式。端口属性的应用也远远超出了简单的VLAN成员互连,特别是我司,用端口属性来实现了一些相对复杂的功能,比如isolated-user VLAN,组播VLAN。
3.3 Tag/Untag报文的处理原则
为了理解VLAN内报文的转发,就必须要知道交换机对于不同VLAN报文的tag/untag的处理原则。
首先,需要明确一点就是,在交换机的内部,为了快速高效的处理,报文都是带tag转发的。其实,这点很好理解,因为交换机上很可能会配置多个VLAN,那不同VLAN流量区分只有依靠tag标签。
下面从报文入和报文出两个方向来介绍。
l 报文入方向:
在入方向上,交换机的根本任务就是决定该报文是否允许进入该端口,根据入报文的tag/untag的属性以及端口属性,细分为如下情况:
1) 报文为untag:允许报文进入该端口,并打上PVID的VLAN tag,与端口属性无关;
2) 报文为tag:在这种情况下,需要交换机来判断是否允许该报文进入端口;
Ø Access端口: PVID和报文中tag标明的VLAN一致,接收并处理报文;否则丢弃。
Ø Trunk/Hybrid端口:如果端口允许tag中标明的VLAN 通过,则接收并处理报文;否则丢弃。
l 报文出方向:
在出方向上,交换机已经完成对报文的转发,其根本任务就是在转发出端口时,是否携带tag转发出去,根据出端口属性,细分为如下情况:
1) Access端口:将标签剥掉,不带tag转发;
2) Trunk端口:报文所在VLAN和PVID相同,则报文不带tag;否则带tag;
3) Hybrid端口:报文所在VLAN配置为tag,则报文带tag;否则不带tag;
Access端口负责接终端设备,它收到一个帧的时候,如果这个帧没有标记它就用自己的pvid给他打上标记,它在发出一个帧时如果VID=PVID就去掉标记以保证传送给终端设备的帧没有被变动过,pvid是在划分vlan时候每个端口都有的属性,默认情况下思科交换机中每个端口初始pvid是1,表示他是vlan1的成员们如果你给他划分了其他VLAN那么PVID相应会发生更改
ACCESS端口的特点是 只允许符合PVID的流量通过。
Trunk的意思是,它是一条中继链路,允许各种VLAN通过。它的规则和Access差不多,当收到一个没有tag的标记的时候就用自己的pvid给他标记,当发送一个帧时候如果vid=pvid则去掉pvid,与Access不同的是,Trunk有一个属于自己的本征VLAN,用来发送一些cdp,bpdu等交换机间联系的数据或者管理流量,从交换机自身产生的帧在发出去的时候是不会带标记的,因为VID=pvid所以标记被去掉,而对端接收到没有标记的帧时候就会用自身本征VLAN的信息给他加上标记,然后查看交换表如果发现目的地址是自己则去掉标记,如果发现目的mac地址不是自己则继续转发给其他Trunk同时去掉标记(因为一个交换机只有一个本征VLAN所有pvid=vid去掉标记)
Hybrid是Access与Trunk的混合模式,它允许VID=pvid。Hybrid与Trunk一样,在该端口上可以传送多个vlan的包,一般用于交换机与交换机之间,或者交换机与服务器之间的链接。如果收到的数据包不带vlan,则加上pvid进行转发;如果收到的数据包带vlan,则判断该端口是否允许该vlan进入,如果可以则进行转发,否则丢弃。