具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,下面结合附图并举实施例,对本发明的技术方案进行详细说明。
本发明中,将应用了EVI技术的数据中心站点称为EVI站点,不同EVI站点的ED之间建立经由公网的隧道,例如通用路由封装(GRE)隧道,通过建立的隧道实现二层互联。
参见图2,图2是本发明实施例激活VLAN的动态调整方法流程图,包括以下步骤:
步骤201、多归属ED测量自身的每个激活VLAN在公网侧的流量;接收到由当前设备参与选举出的DED发送的流量请求报文时,返回携带自身的每个激活VLAN的流量信息的流量响应报文;接收到DED发送的激活VLAN下发请求报文时,重新下发激活VLAN下发请求报文中携带的激活VLAN。
本实施例中,在初始时DED仍然按照现有技术的方法在各个多归属ED之间进行激活VLAN的分配,并记录每个多归属ED的VLAN分配情况。假设图1所示的站点2中,ED2中配置的扩展VLAN包括100-300、ED3中配置的扩展VLAN包括200-350,如果按照现有技术方法将100-250分配给ED2作为激活VLAN,将251-350分配给ED3作为激活VLAN,则可以将ED2、ED3的VLAN分配情况记录为表一:
System ID |
Active VLAN |
Inactive VLAN |
0011.2200.0001(ED2) |
100-250 |
251-300 |
0011.2200.0101(ED3) |
251-350 |
200-250 |
表一
其中,System ID表示多归属ED的标识;Active VLAN表示分配给多归属ED的激活VLAN(授权VLAN);Inactive VLAN表示多归属ED配置的扩展VLAN中去激活的扩展VLAN。
DED按照现有技术方法在各个多归属ED之间进行激活VLAN分配之后,各个多归属ED将分配的激活VLAN下发,并开始接收和发送自身的每个激活VLAN的报文。
在多归属ED接收和发送自身的每个激活VLAN的报文时,需要测量并记录自身的每个激活VLAN在公网侧的流量信息。当接收到来自公网侧的报文时,解析报文的VLAN信息,增加VLAN对应的流量信息,当接收到需要转发到公网的报文时,解析报文的VLAN信息,增加VLAN对应的流量信息。记录自身的每个激活VLAN的流量信息可以如表二所示:
VLAN ID |
Interface |
Tunnel |
bytes/min |
100 |
Evi-link0 |
Tunnel 1 |
1890 |
200 |
Evi-link0 |
Tunnel 1 |
2000 |
300 |
Evi-link1 |
Tunnel 2 |
1300 |
表二
其中,VLAN ID表示分配给多归属ED的激活VLAN;interface表示收发该VLAN的报文的接口;Tunnel表示该承载该VLAN报文的隧道。
步骤202、DED向参与选举当前设备作为DED的所有多归属ED发送流量请求报文,接收各多归属ED返回的流量响应报文,获取流量响应报文中携带的该多归属ED的每个激活VLAN在公网侧的流量信息;根据获取的各多归属ED的每个激活VLAN的流量信息,按照预设规则对各多归属ED的激活VLAN进行调整,将调整后分配给各多归属ED的所有激活VLAN携带在激活VLAN下发请求报文中发送给该多归属ED。
这里,DED由互为多归属的ED通过交互EVI ISIS HELLO报文选举得到,选举出的DED同时具有DED和ED的功能,DED在发送流量请求报文时,向自身发送的流量请求报文即是流量请求消息。
所述将分配给各多归属ED的所有激活VLAN携带在激活VLAN下发请求报文中发送到该多归属ED,也即:向各多归属ED发送激活VLAN下发请求报文,该激活VLAN下发请求报文中携带了分配给该ED的所有激活VLAN。
本实施例中,触发DED调整各多归属ED的激活VLAN的条件可以有以下两种:
第一种,DED定期对参与选举DED的各多归属ED的激活VLAN进行调整,这种情况下,可以预先设置激活VLAN调整时间间隔;每隔预设激活VLAN调整时间间隔向参与选举DED的所有多归属ED发送流量请求报文,接收各多归属ED返回的流量响应报文,然后根据各多归属ED的流量响应报文开始调整各多归属ED的激活VLAN。
第二种,当参与选举DED的多归属ED的所有激活VLAN的总流量过大时,可以主动触发DED对参与选举DED的各多归属ED的激活VLAN进行调整。这种情况下,可以预先设置一个流量阈值,当任一参与选举DED的多归属ED检测到自身的所有激活VLAN的总流量大于预设流量阈值时,可以向DED发送激活VLAN调整请求报文,从而触发DED向参与选举DED的所有多归属ED发送流量请求报文,接收参与选举DED的各多归属ED返回的流量响应报文,然后根据各多归属ED的流量响应报文开始调整各多归属ED的激活VLAN。
图2所示本发明实施例中,DED根据获取的参与选举DED的各多归属ED的每个激活VLAN的流量信息,按照预设规则对参与选举DED的各多归属ED的激活VLAN进行调整具体可以包括:
计算参与选举DED的各多归属ED的总流量,以及参与选举DED的所有多归属ED的平均流量Avg;其中,各多归属ED的总流量为该多归属ED的所有激活VLAN的总流量;
针对总流量大于Avg的每个多归属ED,在该多归属ED的所有有竞争关系的激活VLAN中选择一组激活VLAN放入再分配列表,该多归属ED的总流量与该组激活VLAN的总流量的差Diff大于所述Avg,且,当该多归属ED中还存在除该组激活VLAN之外的有竞争关系的激活VLAN时,所述Diff与该多归属ED的除该组激活VLAN之外的任一有竞争关系的激活VLAN的流量的差小于所述Avg;
对于再分配列表中的每个有竞争关系的激活VLAN,将该VLAN分配给配置有该VLAN且总流量最小的多归属ED。
其中,针对总流量大于Avg的每个多归属ED,在该多归属ED的所有有竞争关系的激活VLAN中选择一组激活VLAN放入再分配列表的一种可能的实现方法如下(假设该多归属ED的所有无竞争关系的激活VLAN的总流量Flow2):
将所有有竞争关系的激活VLAN按照流量从大到小的顺序排序;
取出流量最大的激活VLAN,判断该激活VLAN的流量与Flow2的和是否大于Avg,如果是,则将该激活VLAN添加到再分配列表,如果否,则将Flow2加上该激活VLAN的流量;
取出流量次大的激活VLAN,判断该激活VLAN的流量与Flow2的和是否大于Avg,如果是,则将该激活VLAN添加到再分配列表,如果否,则将Flow2加上该激活VLAN的流量。
依次类推,直到处理完所有的有竞争关系的激活VLAN;将最后一个添加到再分配列表中的激活VLAN从再分配列表中删除。
这样,就是实现了从该多归属ED中选出一组激活VLAN并将该组激活VLAN放入了再分配列表中,该ED中除该组激活VLAN外的所有激活VLAN仍保持为该多归属ED作为激活VLAN。
在实际应用中,可以根据需要动态的在多归属ED上配置新的扩展VLAN,或删除已配置的扩展VLAN,无论是配置新的扩展VLAN或删除已有的扩展VLAN,均需要进行激活VLAN的分配。
当多归属ED上配置新的扩展VLAN时,需要将新配置的扩展VLAN通告给DED。在多归属ED新配置的扩展VLAN中,可能包括二种扩展VLAN:一种扩展VLAN是属于无竞争关系的扩展VLAN,是当前多归属ED独有的,需要分配给当前多归属ED作为激活VLAN;另一种扩展VLAN是有竞争关系的扩展VLAN,在此之前已经有其它多归属ED配置了该扩展VLAN,已经分配给其它多归属ED作为激活VLAN,因此可以暂不分配给当前多归属ED,而是在DED发起新一轮激活VLAN调整时再进行激活VLAN调整。
因此,当DED接收到多归属ED通告的新配置的扩展VLAN时,可以确定该多归属ED新配置的扩展VLAN中的所有无竞争关系的扩展VLAN,将所有无竞争关系的扩展VLAN作为激活VLAN分配给该多归属ED,将分配给该多归属ED的所有激活VLAN携带在激活VLAN下发请求报文发送给该多归属ED,从而使该多归属ED下发激活VLAN下发请求报文中携带的新分配的激活VLAN。
当多归属ED删除扩展VLAN时,需要将删除的扩展VLAN通告给DED。在多归属ED删除的扩展VLAN中,可能包括三种扩展VLAN:第一种是去激活VLAN,这种VLAN已经分配给其他多归属ED作为激活VLAN,因此暂时也不需要进行处理;第二种是无竞争关系的激活VLAN,删除之后不能分配给其他多归属ED;第三种是有竞争关系的激活VLAN,需要将这种激活VLAN重新分配给其他多归属ED。
因此,DED接收到多归属ED通告的删除的扩展VLAN时,可以先确定删除的扩展VLAN中所有有竞争关系的激活VLAN,然后向配置有该些有竞争关系的激活VLAN的所有多归属ED发送流量请求报文,接收各多归属ED返回的流量响应报文,获取流量响应报文中该多归属ED的每个激活VLAN的流量信息;接着将删除的扩展VLAN中每个有竞争关系的激活VLAN分配给配置有该VLAN且总流量最小的多归属ED;最后将分配给多归属ED的所有激活VLAN携带在激活VLAN下发请求报文发送给该多归属ED,从而使该多归属ED在分配到新的激活VLAN后重新下发分配到的所有激活VLAN。
另外,DED接收到多归属ED通告的删除的扩展VLAN,并确定删除的扩展VLAN中所有有竞争关系的激活VLAN后,向配置有该些有竞争关系的激活VLAN的所有多归属ED发送流量请求报文时,还需要将存储的该多归属ED通告删除的扩展VLAN从存储的该多归属ED的扩展VLAN中删除。
图2所示本发明实施例中,当有多归属ED加入EVI站点时,需要进行DED的重新选举。
如果新加入站点多归属ED被选举为DED,则可以将自身的所有无竞争关系的扩展VLAN下发为激活VLAN,然后在被选举为DED后发起的第一轮激活VLAN调整时再进行激活VLAN调整;这里,新加入站点的多归属ED被选举为DED后,会接收到参与选举DED的各多归属ED定期广播发送的VLAN配置信息,进而可以在后续有参与选举DED的多归属ED检测到自身的总流量大于预设流量阈值或DED发起新一轮的激活VLAN调整时,对所有多归属ED的激活VLAN进行重新分配。
如果新加入站点的多归属ED未被选举为DED,则需要将自身的扩展VLAN配置信息通告给DED,从而使DED可以为新加入站点的多归属ED分配激活VLAN。这种情况下,DED接收到新加入站点的多归属ED通告的自身的扩展VLAN配置信息后,可以将该多归属ED的所有无竞争关系的扩展VLAN作为激活VLAN分配给该多归属ED,并将分配给该多归属ED的所有激活VLAN携带在激活VLAN下发请求报文中发送给该多归属ED,从而使该多归属ED将激活VLAN下发请求报文中携带的扩展VLAN下发为激活VLAN。
另外,DED在将新加入站点的多归属ED的所有无竞争关系的扩展VLAN作为激活VLAN分配给该多归属ED后,还可以确定新加入站点的所有有竞争关系的扩展VLAN,根据新加入站点的所有有竞争关系的扩展VLAN确定与新加入站点的多归属ED有竞争关系的所有多归属ED,再向与新加入站点的多归属ED有竞争关系的所有多归属ED发送流量请求报文,并接收与新加入站点的多归属ED有竞争关系的各多归属ED返回的流量响应报文,然后按照预设规则对包括新加入站点(新加入站点的各激活VLAN的流量初始均为0)和与新加入站点有竞争关系的所有多归属ED进行激活VLAN调整,并将调整后各多归属ED的所有激活VLAN携带在激活VLAN下发请求报文中发送给该多归属ED,从而使该多归属ED重新下发激活VLAN。
图2所示本发明实施例中,如果有多归属ED退出EVI站点,其与DED之间的EVI link的状态会变成down,因此DED可以及时感知到多归属ED的退出。当多归属ED退出站点后,DED需要将该多归属ED上的有竞争关系的激活VLAN进行重新分配,具体地,可以将该多归属ED中每个有竞争关系的激活VLAN按照平均分配的原则分配给配置有该VLAN的其它多归属ED;最后将分配给所述其它多归属ED的所有激活VLAN携带在激活VLAN下发请求报文中发送给所述其它多归属ED,从而使其他多归属ED可以重新下发激活VLAN下发请求报文中携带的激活VLAN。这里,将每个激活VLAN按照平均分配的原则分配给配置有该VLAN的其他多归属ED的方法与现有技术相同,例如,对于VLAN 100,假设在互为多归属的ED:ED0、ED1、ED2、ED3上均配置有VLAN100,且选择了ED3为AEF(也即VLAN100分配给了ED3,在ED3上是激活VLAN),当ED3退出站点时,需要将作为有竞争关系的VLAN100分配给ED0、ED1或ED2之间进行分配,则根据公式f(VLAN ID)=(VLAN ID)%Number of多归属ED确定100%3=1,因此将VLAN100分配给ED1。
另外,如果是DED退出站点,则需要在剩余的所有多归属ED之间重新进行DED选举,重新选举出的DED可以将原DED中每个有竞争关系的激活VLAN按照平均分配的原则分配给配置有该VLAN的其它ED;将分配给所述其它ED的所有激活VLAN携带在激活VLAN下发请求报文中发送给所述其它ED,从而使得其它多归属ED可以重新下发激活VLAN下发请求报文中携带的激活VLAN。
图2所示本发明实施例中,当激活VLAN迁移时,例如,VLAN1原来是ED1的激活VLAN,然而在DED对各多归属ED的激活VLAN进行调整后,将VLAN1分配给了ED2,则VLAN1从ED1迁移到了ED2。VLAN1从ED1迁移到ED2后,ED2需要将VLAN1的MAC信息通知给远端站点,远端站点接收到ED2通告的VLAN1的MAC信息后,才会将VLAN1的流量通过ED2转发,在此之前,VLAN1的流量仍然被发送到ED1,这可能会导致VLAN1的流量的丢失。
为了避免激活VLAN迁移过程中的流量损失,本实施例中,定义了一种VLAN状态:半激活状态。对于处于半激活状态的VLAN,多归属ED仍然保持对从公网接收到的该VLAN的报文在本EVI站点内的正常转发,但是不再向远端站点通告该VLAN的MAC信息。
这样,多归属ED接收到DED发送的激活VLAN下发请求报文后,重新下发激活VLAN下发请求报文中携带的激活VLAN的方法具体可以为:比较激活VLAN下发请求报文中携带的激活VLAN和本设备当前的激活VLAN,将需要去激活的激活VLAN设置为半激活状态,将新增的激活VLAN下发为激活VLAN,并将该新增激活VLAN的MAC信息通告给远端站点;其中,对于处于半激活状态的VLAN,多归属ED保持对从公网接收到的该VLAN的报文在本EVI站点内的正常转发,并停止向远端站点通告该VLAN的MAC信息。这里,需要去激活的激活VLAN也即这样的VLAN:该VLAN是本设备当前的激活VLAN,但不是激活VLAN下发请求报文中携带的激活VLAN。
另外,多归属ED在将新增的激活VLAN下发为激活VLAN时,还需要进一步将该新增VLAN通告给本站点内的与本ED互为多归属的其它多归属ED,以表明多归属ED将该激活VLAN下发为了激活VLAN。相应地,多归属ED如果接收到本站点内与本ED互为多归属的任一其它多归属ED通告的新增激活VLAN,则可以将新增激活VLAN与本地的半激活状态的VLAN进行比较,如果相同,则启动该VLAN对应的定时器,若定时器时间内接收到该VLAN的报文,则重新启动该VLAN对应的定时器,若定时器时间内未接收到该VLAN的报文,则删除该VLAN对应的定时器,并将该VLAN下发为去激活VLAN。
在上述本发明实施例中,所述的流量请求报文、流量响应报文、激活VLAN下发请求报文、激活VLAN调整请求报文等,均可以通过利用EVI ISIS Hello报文,通过在EVI ISIS Hello报文中增加新的CLV(Code-Length-Value)三元组实现,根据三元组的不同取值进行区分。
以上对本发明激活VLAN的动态调整方法进行了详细说明,本发明还提供了两种路由交换设备,下面进行详细说明。
参见图3,图3是本发明实施例提供的第一种路由交换设备的结构示意图,该路由交换设备可应用于EVI站点,该路由交换设备包括:获取单元301、调整单元302、通知单元303;其中,
获取单元301,用于向参与选举本设备作为DED的所有多归属ED发送流量请求报文,接收参与选举本设备作为DED的各多归属ED返回的流量响应报文,获取流量响应报文中携带的该多归属ED的每个激活VLAN在公网侧的流量信息;
调整单元302,用于根据获取单元301获取的参与选举本设备作为DED的各多归属ED的每个激活VLAN在公网侧的流量信息,按照预设规则对参与选举本设备作为DED的各多归属ED的激活VLAN进行调整;
通知单元303,用于在调整单元302对参与选举本设备作为DED的各多归属ED的激活VLAN进行调整后,将调整后分配给各多归属ED的所有激活VLAN携带在激活VLAN下发请求报文中发送给该多归属ED,用以使该多归属ED重新下发激活VLAN下发请求报文中携带的激活VLAN。
所述获取单元301在向参与选举本设备作为DED的所有多归属ED发送流量请求报文时,用于:
每隔预设激活VLAN调整时间间隔向参与选举本设备作为DED的所有多归属ED发送流量请求报文;
或者,
接收到任一参与选举本设备作为DED的多归属ED的激活VLAN调整请求报文后,向参与选举本设备作为DED的所有多归属ED发送流量请求报文。
所述调整单元302在根据获取单元301获取的参与选举本设备作为DED的各多归属ED的每个激活VLAN的流量信息,按照预设规则对参与选举本设备作为DED的各多归属ED的激活VLAN进行调整时,用于:
计算各多归属ED的总流量,以及所有多归属ED的平均流量Avg;其中,各多归属ED的总流量为该多归属ED的所有激活VLAN的总流量;
针对总流量大于Avg的每个多归属ED,从该多归属ED的所有有竞争关系的激活VLAN中选择一组激活VLAN放入再分配列表,该多归属ED的总流量与该组激活VLAN的总流量的差Diff大于所述Avg,且,当该多归属ED中还存在除该组激活VLAN之外的有竞争关系的激活VLAN时,所述Diff与该多归属ED的除该组激活VLAN之外的任一有竞争关系的激活VLAN的流量的差小于所述Avg;
对于再分配列表中的每个有竞争关系的激活VLAN,将该VLAN分配给配置有该VLAN且总流量最小的多归属ED。
所述调整单元302,用于接收到参与选举本设备作为DED的多归属ED通告的新配置的扩展VLAN时,确定所述新配置的扩展VLAN中所有无竞争关系的扩展VLAN,将所有无竞争关系的扩展VLAN作为激活VLAN分配给该多归属ED;
所述通知单元303,用于在调整单元302将所述多归属ED新配置的所有无竞争关系的扩展VLAN作为激活VLAN分配给该多归属ED后,将分配给该多归属ED的所有激活VLAN携带在激活VLAN下发请求报文发送给该多归属ED,用以使该多归属ED重新下发激活VLAN下发请求报文中携带的激活VLAN。
所述调整单元302,用于接收到参与选举本设备作为DED的多归属ED通告的删除的扩展VLAN时,确定删除的扩展VLAN中所有有竞争关系的激活VLAN,向配置有该些有竞争关系的激活VLAN的所有多归属ED发送流量请求报文,接收各多归属ED返回的流量响应报文,获取流量响应报文中该多归属ED的每个激活VLAN的流量信息;将删除的扩展VLAN中每个有竞争关系的激活VLAN分配给配置有该VLAN且总流量最小的多归属ED;
所述通知单元303,用于将调整单元302分配给所述多归属ED的所有激活VLAN携带在激活VLAN下发请求报文发送给该多归属ED,用以使该多归属ED重新下发激活VLAN下发请求报文中携带的激活VLAN。
所述调整单元302,用于在本设备作为多归属ED新加入EVI站点并被选举作为DED时,将自身的所有无竞争关系的扩展VLAN下发为激活VLAN;用于本设备作为DED时,接收新加入本EVI站点的多归属ED通告的自身的扩展VLAN配置信息,将该多归属ED的所有无竞争关系的扩展VLAN作为激活VLAN分配给该多归属ED;
所述通知单元303,用于本设备作为DED时,在调整单元302将新加入本EVI站点的多归属ED的所有无竞争关系的扩展VLAN作为激活VLAN分配给该多归属ED后,将分配该多归属ED的所有激活VLAN携带在激活VLAN下发请求报文中发送给该多归属ED,用以使该多归属ED下发激活VLAN下发请求报文中携带的激活VLAN。
所述调整单元302,用于在原DED退出EVI站点后本设备被选举为新DED时,将原DED中每个有竞争关系的激活VLAN按照平均分配的原则分配给配置有该VLAN的多归属ED;用于本设备作为DED检测到退出站点的多归属ED时,确定该多归属ED的所有有竞争关系的激活VLAN,将每个有竞争关系的激活VLAN按照平均分配的原则分配给配置有该VLAN的其它多归属ED;
所述通知单元303,用于作为DED时,在调整单元302将退出EVI站点的原DED的每个有竞争关系的激活VLAN按照平均分配的原则分配给配置有该VLAN的多归属ED后,将分配给各多归属ED的所有激活VLAN携带在激活VLAN下发请求报文中发送给该多归属ED,用以使该多归属ED重新下发激活VLAN下发请求报文中携带的激活VLAN;用于在调整单元302将退出站点的多归属ED的每个有竞争关系的激活VLAN分配给配置有该VLAN的所述其它多归属ED后,将分配给所述其他多归属ED的所有激活VLAN携带在激活VLAN下发请求报文中发送给所述其它多归属ED,用以使所述其它多归属ED重新下发激活VLAN下发请求报文中携带的激活VLAN。
参见图4,图4是本发明提供的第二种路由交换设备的结构示意图,该路由交换设备包括:测量单元401,收发单元402、下发单元403;当本设备作为可应用为EVI站点的ED时,
测量单元401,用于测量自身的每个激活VLAN在公网侧的流量;
收发单元402,用于接收由本设备作为ED参与选举出的指定边缘设备DED的流量请求报文,返回携带自身的每个激活VLAN在公网侧的流量信息的流量响应报文;用于接收DED的激活VLAN下发请求报文;
下发单元403,用于下发收发单元402接收到的激活VLAN下发请求报文中携带的激活VLAN。
所述测量单元401,用于检测到自身的所有激活VLAN的总流量大于预设流量阈值时,向DED发送激活VLAN调整请求报文,用以使DED开始获取与本设备互为多归属的所有多归属ED的每个激活VLAN的流量信息,并调整各个多归属ED的激活VLAN。
所述收发单元402,用于本设备作为ED加入EVI站点时,如果未被选举为DED,则将自身的扩展VLAN配置信息通告给DED;用于本设备作为ED新配置扩展VLAN时,将本设备新配置的扩展VLAN通告给DED;用于本设备作为ED删除扩展VLAN时,将本设备删除的扩展VLAN通告给DED。
所述下发单元403在下发收发单元402接收到的激活VLAN下发请求报文中携带的激活VLAN时,用于:比较激活VLAN下发请求报文中携带的激活VLAN和本设备当前的激活VLAN,将需要去激活的激活VLAN设置为半激活状态,将新增的激活VLAN下发为激活VLAN,并将该新增激活VLAN的MAC信息通告给远端站点;其中,对于处于半激活状态的VLAN,本设备保持对从公网接收到的该VLAN的报文在本EVI站点内的正常转发,并停止向远端站点通告该VLAN的MAC信息。
所述下发单元403在将新增的激活VLAN下发为激活VLAN时,进一步将该新增的激活VLAN通告给本站点内与本设备互为多归属的所有其它多归属ED;
所述收发单元402,用于接收到本站点内与本设备互为多归属的任一其它多归属ED通告的新增激活VLAN;
所述下发单元403,用于在收发单元402接收到本站点内与本ED互为多归属的任一其它多归属ED通告的新增激活VLAN时,将该新增激活VLAN与本设备的处于半激活状态的VLAN进行比较,如果相同,则启动该VLAN对应的定时器,若定时器时间内收发单元402接收到该VLAN的报文,则重新启动该VLAN对应的定时器,若定时器时间内收发单元402未接收到该VLAN的报文,删除该VLAN对应的定时器,并将该VLAN下发为去激活VLAN。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。