5.2.2 WCCP控制平面消息
在完成网络拦截及重定向之前,支持WCCP的WAN优化器必须要能成功地注册到WCCP路由上,WCCP通过使用Here_I_AM(HIA)以及I_See_You(ISU)控制平面消息来完成注册。
说明:WCCP控制平面消息交换通过UDP2048端口完成。
每个WCCP客户端每隔10秒向同一SG内的WCCP路由器发送HIA消息,以加入该SG并维护其会员资格。HIA消息的Web缓存信息属性使用WAN优化器的IP地址来标识该优化器,HIA消息在服务信息属性中标明WAN优化器希望加入哪个SG。
每个WCCP客户端通过HIA消息里的Web缓存信息属性向外告知它所加入的SG视图,WCCP客户端会将这样的HIA消息发给相同SG的所有WCCP路由。这些信息包括一个WCCP路由器列表,包括了所有向WAN优化器发送了ISU消息的路由器信息,以及那些已经收到该ISU消息的WAN优化器列表。Web缓存视图信息属性还包括了变更编号(Changed Number,CN),当WCCP客户端的视图每发生一次变化,该CN的值就会递增。
说明:WCCP客户端通过Web缓存消息属性向外公示它们所连接的WCCP路由器的信息。
当WCCP路由器收到一个HIA消息时,将会回应一个ISU消息。ISU消息中路由器指定属性包含了WCCP路由ID(IP地址最大或者如果激活了loopback地址,则loopback地址最大的WCCP路由)、属于SG范围内的WAN优化器列表,列表范围之外的WAN优化器将忽略该ISU消息。
WCCP优化器通过HIA消息中的web缓存视图信息属性向外告知与它处在同一SG内的WCCP路由,该优化器的SG视图信息,属性参数包括WCCP路由可见的该SG内可用的WAN优化器列表以及从WAN优化器返回的HIA消息中的WCCP路由列表。当SG的成员信息发生变更时,该属性的成员信息变更序号(Membership Change Number,MCN)将由WCCP路由递增。
说明:当MCN递增时,ISU消息中的路由信息属性反映了最近的WCCP客户端信息。
说明:WCCP控制平面采用TLV(Type-Length-Value)格式编码时选用了不同的“要素”,每一要素标识作用不同,不是所有的要素都要包含在消息内,除了服务要素及安全信息要素,某些要素是可选的。
WAN优化器可以和WCCP路由协商以下内容:
·重定向(转发)方式
·分配方法
·返回方法
协商在一个WAN优化器加一个SG成对进行,因此一个WAN优化器可以和不同的SG路由协商重定向、分配以及返回方法。
WCCP路由将能够支持某SG的重定向、分配、返回方法封装在ISU消息的“能力”属性中进行广播,该属性的设置是可选的,如果WCCP路由没有指定重定向、分配及返回方法,则该路由默认支持GRE重定向方式、散列分配算法以及GRE返回方法。
WAN优化器会检查来自WCCP路由的ISU消息中关于重定向、分配以及返回方法的说明,如果WCCP路由公布方法中不包括该WAN优化器支持的算法,WAN优化器将会放弃加入该SG的行为,否则WAN优化器将会在WCCP路由公布的不同方法中选择一种,并且在它紧接着要发送的HIA消息的可选能力信息属性中标签好这些方法。如果在HIA消息中不包括以上方法的说明,则表明WAN优化器要求默认的GRE重定向算法、默认的散列分配算法以及默认GRE返回方法。
WCCP路由同样会检查来自WAN优化器对ISU消息进行回应的HIA消息中对这些方法的说明,如果WCCP路由不支持这些方法,WCCP路由将忽略该HIA消息,否则WCCP路由就将该WAN优化器作为可利用资源并将之添加到相应SG内。
在WCCPv2中,会使用“receive ID”来确认WCCP路由和WAN优化器间的双向联接,ISU消息中路由确认消息属性包含了“receive ID”域,由每个SG单独维护,每当WCCP路由向SG发送一个ISU消息,该值则累加一次。
WAN优化器收到由WCCP路由发送的“receive ID”消息后,将通过封装在HIA消息的Web缓存视图信息属性返回ID值,WCCP将检查从每一SG成员处返回的HIA消息,确认“receive ID”的值,如果该值与最后一次发往该成员的ISU消息中的值不匹配,WCCP路由将忽略该HIA消息。
只有当路由器确认它发往WAN优化器的ISU消息通过HIA消息返回,并且“receive ID”值正确无误后,才会将该WAN优化器纳入可利用的SG成员范围。
发往WCCP路由的散列/掩码分配情况表位于重定向分配消息(RA,Redirect_Assign)中,借助此表,可以知道SG中所有WAN优化器间的网络重定向传输方式。RA消息由指定或领导WAN优化器(在SG中选择地址最小的路由)发送到SG中所有WCCP路由上,包括一个分配键和分配变化号码(Assignment Change Number,ACN)。
图5-1左边部分说明了一个初始的WCCP握手序列。
图 5-1 WCCP初始握手及稳定状态联接
·从WCCP客户端首次发往WCCP路由的HIA消息指明了SG属性;
·从WCCP路由首次发往WCCP客户端的ISU消息是对前次HIA消息的应答,接受了SG的设置,将receive ID的值初始化为1;
·第二次HIA消息的receive ID值为1,设置好了分配权重和状态;
·第二次ISU消息包括了路由视图中的WCCP客户端,将receive ID值加1变成2,将成员变化数目值(MCN)初始化为1;
·第一次RA消息的receive ID为2,设置散列/掩码表(由具体使用的方法确定),将CN和ACN的值都初始化为1;
·第三次HIA消息的receive ID为2,CN值保持不变,仍为1;
·第三次ISU消息将receive ID值累加1变成3,ACN值变为1,MCN值保持不变,仍为1。
图5-1右边部分说明了WCCP稳定状态序列:
·HIA消息的receive ID值为n,CN值仍然保持不变为x;
·下一ISU消息将receive ID值累加1,变为n+1,MCN值为y,ACN值为z,保持不变;
·下一HIA消息的receive ID值为n+1,CN值保持x不变;
·下一ISU消息将receive ID值累加1,变为n+2,MCN值为y,ACN值为z,保持不变;
·下一HIA消息的receive ID值为n+2,CN值保持x不变。
如果一个WCCP路由超过25秒后还没有从一个SG成员(WAN优化器)处收到HIA消息,它将向该成员发出一个是否还在的消息RQ(Removal_Query)进行询问。
如果一个WCCP路由超过30秒还没收到SG成员的HIA消息,将认为该优化器处于不可用状态,并将它移出SG,ISU消息的路由视图信息属性中也不会再包含该WAN优化器的信息。
图5-2是对WCCP客户端超时序列的说明:
图 5-2 WCCP客户端超时
·WCCP路由器向WCCP客户端发消息;
·WCCP客户端未能在25秒内返回HIA消息;
·WCCP路由直接向WCCP客户端发RQ消息;
·WCCP客户端未能在5秒内对RQ消息作出应答;
·WCCP路由将该WCCP客户端移出它的散列/掩码表,更新路由视图信息,将MCN值累加1。