怎么做一个门户网站,厦门公司网站制作流程,制作手机网站,wordpress加速优化服务器文章目录 1.简介及其应用2.封包结构、类型和差异3.属性注册和注销的过程4.三个定时器及其作用5.收到event的行为6.两个状态机#xff08;Applicant和Register#xff09;7.三种注册模式Normal文章说明 1.简介及其应用
GARP(General Attribute Register Protocol)#xff0c… 文章目录 1.简介及其应用2.封包结构、类型和差异3.属性注册和注销的过程4.三个定时器及其作用5.收到event的行为6.两个状态机Applicant和Register7.三种注册模式Normal文章说明 1.简介及其应用
GARP(General Attribute Register Protocol)通用属性注册协议用于属性的动态注册和注销是一个通用协议的模板。目前的应用有GVRP和GMRP。下面基本都以GVRP举例。 GVRP(General Vlan Register Protocol)GARP应用于vlan的应用设想一下如下图一个简单的拓扑。如果在Switch1上创建一个vlan如果想要和Swicth5通信那么需要分别在Switch3和Switch5上分别创建相同的vlan如果拓扑更复杂那么手动配置的Switch更多一是容易出错二是工作量有点大。如果用GVRP功能那么是需要在Switch1上创建一个vlan然后这个vlan属性就会传播在Switch3和Switch5上被注册这样Switch1到Switch5单向通信同样如果再在Switch5上创建同样的vlan那么就实现双向通信。
2.封包结构、类型和差异
2.1 封包结构 说明
1DA:不同的GARP应用取值不同GVRP的组播mac是01-80-C2-00-00-21。GMRP是01-80-C2-00-00-20 2Protocol Id:1(0x0001) 3Attr Type:属性类型GVRP是1表示vlan-Id 4End Mask:是0 5Length:属性长度范围在2-255时间GVRP是2vlan-id范围是0-4095 6Value:不同的应用定义的属性值的长度不同N也不同GVRP中value就是vlanId2个字节。如果event是LeaveAll那么值无效 7Event:就是属性类型包括Empty(5)、LeaveIn(4)、LeaveEmpty(3)、JoinIn(2)、JoinEnpty(1)和LeaveAll(0)六种属性
2.2属性类型和差异 1Empty:不对外声明此属性是否有其他设备希望注册此属性。 2JoinEmpty:未注册此属性但是向外公告希望被其他设备注册 3JoinIn:已经注册此属性同时向外公告希望被其他设备注册 4LeaveEmpty:未注册此属性但是向外公告希望其他设备注销此属性 5LeaveIn:以注册此属性向外公告希望其他设备注销此属性 6LeaveAll:向外公告希望其他设备注册所有已经注册的属性。 区别 (1JoinEmpty和JoinIn的区别 以GVRP来说如果一个port接收到来自vlan的声明那么这个port会加入这个vlan那么如果他不是终端那么他还会通过其他port传输该vlan,但是其他port并不属于这个vlan那么其他port对外就发送JoinEmpty报文。如果自己已经属于这个vlan并对外声明这个vlan那么就发送JoinIn比如手动创建一个vlan并且配置port那么这个port对外声明就发送JoinIn。 (2LeaveEmpty和LeaveIn的区别 和上面的类似。以GVRP来说当手动删除一个静态vlan的时候会发送leaveempty因为vlan已经被删除这个port不属于这个vlan了。如果port仍然属于这个vlan对外发送这个vlan的leave那么就发送leaveIn。 具体情况发什么封包还跟状态机有关后面叙述。
3.属性注册和注销的过程
注册分为单向注册和双向注册注销也一样。单向注册属性只能在一个方向上进行通信。 1单向和双向注册的过程如下图 描述(1)(2)(3)是一个单向注册的过程例如创建vlan2,那么单向注册过后p1,p2,p4都属于vlan2那么Switch1和Switch可以通过vlan2进行通信。这里注意发送joinIn和JoinEmpty。在Swicth1上创建了vlan2并配置了p1那么p1是属于vlan2的。而p3不属于vlan2只是对外公告vlan2属性。 加上(4)(5)(6)后就是一次双向注册的过程。需要创建和Switch1一样的vlan否则还是属于一次单向注册。注册后的结果是p3属于vlan2这样swicth3和switch1也可以通过vlan2通信。这里因为p2属于vlan2所以是发送joinIn。 2单向注销和双向注销的过程如下图: 描述通过上面的双向注册后p1-p4都属于vlan2并且可以相互通信。(1)(2)(3)是一次单向注销的过程。Swicth1手动删除vlan2后因为p1已经不属于vlan2所以发送leaveEmpty,p3仍然属于vlan2所以发送leaveIn。单向后Switch3可以和Switch1通信。加上(4)(5)(6)后双向注销vlan2的属性声明全部被注销。
4.三个定时器及其作用
GARP定义了三个定时器join-timer、leave-timer和leave_all-timer。默认时间一次为200ms,600ms,10000ms.并有一下规定 可以手动配置三个定时器
Leave-all_timer要大于leave-timerLeave-timer要大于join-timer*2join-timer和Leave-all_timer支持随机。join-timer随机不能大于配置的值。(配置的Leave-all_timer1)Leave-all_timer的随机值(配置的Leave-all_timer1.5)join-timer和Leave-all_timer是per-port的也就是每个port设置一个leave-timer是per-attribute和per-port的也就是每个port的每个注册的属性设定一个
三个定时器如下行为 三个定时器之前的关系 1leave-all-timer是在port up并且garp enable之后启动当leave-all-timer过期后会启动join-timer并且重启leave-all-timer当join-timer过期后会向这个port发送leave-all封包并为这个port的所有属性都启动一个leave-timer如果此时有属性的join封包过来就停止leave-timer 2收到leaveleaveIn/leaveMt后也会启动leave-timer等到leave-timer过期后才删除。
5.收到event的行为 6.两个状态机Applicant和Register
1Register Machine 这个状态机表示注册属性的变化状态包含三种状态
IN已经注册了这个属性MT此属性的声明已经全部被注销初始化默认是这个状态LV已经注册这个属性但是由于leave-all-timer过期或者收到leave封包导致将要注销此属性。
状态转换图如下 2Applicant Machine 这个状态机用来表示每个属性在状态变化以触发发送什么类型的封包出去。状态很多如下图。
Anxious的等级如上图有Very Anxious,Anxious,Quiet按照我的理解是对某个属性的信任程度比如刚开始收到一个新的属性置为Very Anxious如果再次收到就降一级为Anxious如果第三次收到就是Quiet表示不用担心的意思了。Member和Observer我的理解是在GARP中扮演的角色按照是否向外公告自己属性来区分。例如如果一个port向外公告了这个属性那么这个属性就属于Member了否则就是Observer。Active Member和Passive MemberPassive Member属于中间角色在Active和Observer转换时候先经过Passive Member。 说明 因为状态变化很多比较复杂所有列举了主要的几个情况的状态变化上图是对一个属性的不同状况发生的状态变化的描述。 1[1]号流程是一个p2收到join封包进行属性注册的过程。 属性注册之前初始化时VO状态收到一次属性声明后变成AO再收到一次就是QO之后如果再收到一直都是QO状态。 因为p2的leave-all-timer会过期或者收到来自p1的leave封包vlan被删除此时状态转为LO之后就有可能回到AO或者VO条件如图。 2[2]号流程就是创建静态vlan后的状态变化p1。 初始化状态是VO后面请求发送变成VP随后连续发送两个join变成QA。 之后如果删除vlan属性的话状态变成LA。 3[3]号流程说的是一个port收到一个新的属性。 如果还有其他port那么就需要从其他portp3公告出去。对于其他portp3来说这个属性也会新的初始为VO之后请求发送到VP连续两次发送join后变成QA。 注意这个之后p3就不会主动发送join封包需要等待通知这个通知事件就是收到来自p4这个属性的leave封包或者leave-all一般都是收到leave-all来自p4的转成VP之后再连续发送两次join。就这样实现循环发送。如果此时这个属性没了也就是这个属性的join封包没有发送出去等到leave-timer过期那么属性就变成VO状态。 4[4]号流程说的是双向注册时候情况。 当vlan属性在Switch3创建的时候属性从p4公告出去注意这个时候p3的这个属性状态是可能是VP AA QA这里讲述AA和QA最有可能的状态此时收到p4的join封包后如果是AA则到-QA否则QA不变。 主要还是关注p2的属性状态变化因为此时需要p2把注册属性公告出去此时p2的这个属性状态最有可能出现的状态是AO或者QO如箭头所示。如果是AO的话此时请求从p2发送此属性的join封包变化到AP因为此时要变成Member发送出去join后变为QA。如果是QO先变成QP需要等到p2的leave-all -timer过期后才变成VP。之后的状态变化就和[3]号一样。 5[1]号情况对应单向注册的p2 p4[2]号对应的是p1和双向注册的p4。[3]号是p3。[4]号对应的是双向注册的p2. 6要分清port的角色是member还是observer。注意leave-all-timer的行为和作用
7.三种注册模式Normal
(1)FIXED: 只允许静态属性在此端口向外声明不允许创建动态vlan。 (2)NORMAL: 允许注册动态vlan并且向外声明静态和动态vlan公告 3)FORBIDDEN: 不允许动态vlan注册只允许公告vlan1的消息。
文章说明
文章参考的是IEEE 802.1d 1998,IEEE 802.1d 2003和802.1q以及其他一些文档特别是对最后一个状态流程的理解有一些理解的不是很到位如果后面理解还会补充如果有什么问题还请讨论一下还在学习中书写文档和标准文档会贴在文件中。需要学习的可以下载