第一部分VLAN一、概念VLAN:VirtualLANVLAN将LAN中几个子段划分出来作为一个虚拟的LAN。同一个VLAN的成员可以自由通信,不受地域的限制,而不同VLAN间的通信是禁止的,无论是单播、组播还是广播,流量只送到VLAN所属的LAN子段。二、封装形式VLAN技术定义了三种基本的帧类型:UntaggedFrame、Priority-TaggedFrame、VLAN-TaggedFrame。VLAN-Tagged帧的标签头中携带了一个非空的VID,表示帧所属的VLAN。一个帧有非空VID说明其他设备,或者是帧的源或者是VLAN桥把VID加人了帧中。IEEE802.1q协议规定的VLAN-Tagged帧格式如图所示:第二部分GARP一、概念GARP:GenericAttributeRegistrationProtocolGVRP:GARPVLANRegistrationProtocolGMRP:GARPMulticastRegistrationProtocolGVRP与GMRP是基于GARP协议的应用。二、基本功能VLAN与组播组的数据可以分为静态的,动态的,及动静态混合的。基于端口的VLAN中的动态信息是通过GVRP协议在交换机和终端之间交换信息而获得的。组播组中的动态信息是通过GMRP协议获得的。GMRP协议以及GVRP协议作为GARP协议的两个不同应用均以GARP的实现为基础。GARP(通用属性登记协议)为每个GARP应用在一个桥接局域网内提供了一个通用属性分发能力,用以进行登记和去登记属性值。而具体的协议(GMRP和GVRP)使用这些属性控制交换机中MAC桢转发和端口对输入和输出的MAC桢处理。具体的讲,GVRP应用间传递的是12位的VLANID号,交换机中转发数据库根据MAC桢的源地址和该桢的VLAN号来决定是否转发该桢或向何处转发。GMRP应用间传递的是组播的组播地址和服务需求属性(该属性决定对目的地址是其他组播地址的MAC桢的处理),交换机中根据两个属性来实现对应的动态组播功能。三、定时器GARP协议规定有三个定时器:JoinTime,LeaveTime,LeaveAllTime。协议中定义的缺省定时器值为:参数值(0.01秒)JoinTime20LeaveTime60LeaveAllTime1000通过网管可以对每个端口的GARP定时器值进行修改。802.1D协议推荐GARP定时器值符合以下制约关系:2×JoinTimeLeaveTimeLeaveAllTime四、GARP基本结构对于特定的GARP应用(如GMRP),在每个交换机的端口都有一个应用的参与者(GARPParticipant),在同一个交换机中不同的GARPParticipant之间的信息传播是通过GIP(GARPInformationPropagation)来实现的,不同的交换机端口间和交换机端口和终端设备间的消息交互是通过GARP消息来实现的。在每个GARP参与者中包括GARP(GARPApplicationcomponent)应用组件和GID组件;GARP应用组件按照特定的应用对GARP参与者之间传递的消息进行解释和处理,控制改变MAC层的转发数据库或决定是否发送GARP消息,GID则用于存储不同应用的注册和登记状态,及状态转换表。五、GARP属性的传播GARP协议使得每个GARP应用中的每个参与者对于相应的属性值可以发表申明以及撤消申明,并引起相同GARP应用中的其它参与者对那些参数值的申明以及撤消申明。实际上,GARP参与者对某个属性某个端口发表申明是通过请求状态机中的相关变量实现的。某个端口在接收到一个包含申明(或撤消申明)的GARPPDU时需要进行登记。某个属性值某个端口当前的登记状态保存在与此属性值相关的登记状态机的相关状态变量中。当与某个端口相连的局域网段上的所有GARP参与者对某个属性都已发表了撤消申明,那么此端口将对此属性进行去登记。登记在桥端口的参数值将在有效拓扑结构的端口上进行传播登记。在一个端口的状态机中进行登记与此端口在生成树中的状态无关。但是登记信息的传播必须在生成树中的有效拓扑结构中进行。六、GIP在同一个交换机之间不同的GARP参与之间交互信息有如下的特点:1.操作系统及其低层驱动可以确保在同一个程序空间中传递的消息几乎不会丢失。2.对外不可见,即不同的交换机可以有不同的实现方法,属于系统内部的事情,不涉与其他的交换机对接的问题在TMS中,GIP是通过一个链表来实现的,即将同一个GARP应用在每个端口的GID实例用链表连起来,通过这种方式来控制GID的个数及GID之间的消息传播。ZXDSL9210系统中,举例:当一个端口的GVRP开关被打开,就将此端口的GID实例加入双向链表中。七、GARP消息在不同的交换机之间及交换机和终端之间的交互消息是通过GARP消息来实现的,GARP的消息主要有以下的五种消息构成:1)Empty:并没有登记,也不试图去申明此属性值,但是一直关注是否有参与者想要申明此属性。2)JoinEmpty:希望申明此属性,还没有对此属性进行登记,但是将关注是否有参与者试图申明此属性。3)JoinIn:希望申明此属性。或者已登记此属性或者并不关心是否有其它参与者试图申明此属性。4)Leave:已登记此属性,但是正处于去登记过程中。5)LeaveAll:所有的属性将会被去登记。如果有参与者希望保持登记,那么它需要重新加入来维持登记。如果一个请求状态接收到一个JoinIn消息,那么就可避免它本身再发送一条Join消息来对此属性进行申明,因为无论JoinIn消息的接收者还是JoinIn的发送者,双方都已对此属性进行了申明。但是JoinIn消息不能作为一种消息确认,因为可能有多个参与者需要对同一个属性值进行登记。八、GARP协议包格式GARP协议包形式如图所示:13NProtocolIDMessage1……MessageNEndMarkAtrributeTypeAttributeListAtrribute1……AttributeNEndMarkAtrributeLengthAttributeEventAttributeValue协议标识字段:占用两个字节,值0x0001:GARP协议属性类型字段:占用一个字节,标明消息声明属性类型。属性长度:占用一个字节,标明属性占用的字节数。属性事件:占用一个字节,协议规定的事件值与含义如下:1:JoinEmptyoperator2:JoinInoperator3:LeaveEmptyoperator4:LeaveInoperator5:EmptyoperatorLeaveAll事件:占用一个字节,0:LeaveAlloperator属性值:属性值占用的字节数为N字节,由属性类型决定。结束符:占用一个字节,用0表示结束。实例:GVRP:0180c200002100404780013e002242420300010102000402000104020002040500030405000404020005040100060000GMRP:0180c200002000404780013e8100000500144242030001010200000202000302000305010000九、登记状态登记状态的工作是记录相关网段上的其它参与者对属性的申明。它不发送任何协议消息,但是它影响请求状态发送Join消息的类型。登记状态有三个态:(a)IN:在网段上申明的属性值已登记。(b)MT:(Empty)网段上所有关于此属性值的申明均已撤消。(c)LV:此属性值已登记,但是登记状态定时器已启动Leave定时器,,如果在定时期满内看不到关于这个属性的申明,将迁移到MT状态。登记状态接收到消息后,按照登记状态迁移表进行状态的迁移:对于三种状态的具体迁移情况不做赘述。十、GMRP协议GARP组播登记协议(GMRP)建立在通用属性登记协议(GARP)的基础上,提供一种允许桥和终端动态登记(取消登记)组成员信息,同时在所有支持扩展过滤器服务的桥接网上散布该信息的机制。通过GMRP登记、取消登记和传播的信息有以下形式:a)组成员信息:该信息表明了一个组中的一个或多个GMRP成员及组MAC地址。详细的组成员信息交换可以创建或修改过滤器数据库中的组登记入口,表示组成员所在的端口已经登记。b)组服务需求信息:表明一个或多个GMRP参与者要求将默认的过滤器行为设置为ForwardAllGroups(转发所有的组)或ForwardUnregisteredGroups(转发未登记的组)。组属性类型用于表示组MAC地址的值。在GARPPDUs中,所携带的组属性类型的值为1。组属性类型的实例作为属性值(AttributeType)编为6个八位码,每个八位码是一个无符号八位数,六个正好代表一个MAC地址。服务需求属性类型用于表示组服务需求的值。在GARPPDUs中,该属性值表示为2,编码为一个八位码,其值只能为下面两个中的一个:(a)所有组(AllGroup),编码为0;(b)所有未登记组(AllUnregisteredGroups),编码为1。GVRP地址为01-08-C2-00-00-20。十一、GVRP协议GVRP提供对每个VLAN的动态VLAN登记入口内容的保持,并把其中包含的信息传播到其他桥。这些信息允许支持GVRP的设备动态地建立和修改一系列VLAN的信息,这些VLAN当时有通过端口能到达的积极成员。GVRP的运行和GMRP很相似,主要的不同是:a)GVRP携带的属性值是12比特的VID值,在GMRP中,携带的是一些48比特的MAC地址和组服务需求信息;b)登记和取消一个VID会影响动态VLAN登记入口的内容,在GMRP受影响的是组登记入口的内容。GVRP允许桥接局域网中的桥和终端发布和取消涉及VLAN成员的声明。发布一个声明使GVRP的每个收到声明的参与者建立或修改过滤器数据库的动态VLAN登记入口,表明该VLAN已在接收端口进行登记。随后,如果一个网段的所有对某给出的VID有兴趣的参与者都取消了声明,连接在该网段上的端口会被每个连接在该网段上的GVRP参与者在该VLAN的动态VLAN登记入口中设置为Unregistered。GVRP地址为01-08-C2-00-00-21。第三部分IGMPSnooping一、概念IGMPSnooping的作用是在2层交换机上实现IGMP组播的功能,即2层交换机的某个端口接收从IGMP组播路由器发出的QUERY,进行组播源的分析,同时向交换机的所有属于同一个VLAN的端口广播,接收从主机发送的REPORT、LEAVE报文,进行组播组成员的分析并设置硬件的IGMPSnooping组播表,同时向属于同一个VLAN的发来QUERY包的端口广播。IGMPSnooping提供超时机制,在老化时间(AgingTime)到达时将没有再继续收到协议包的端口删除,并在硬件上删除组播表的设置。