在虚拟二层互联中学习路由的方法和装置制造方法
【专利摘要】本发明公开了一种在虚拟二层互联中学习路由的方法和装置。基于本发明,各站点网络的边缘设备能够在邻居发现过程中相互间实现批量发布各自站点网络中的所有MAC地址信息、并进行路由学习,因此,当各站点网络间的邻居发现过程完成、并由此完成虚拟以太通道的建立时,控制平面的MAC地址信息的发布及路由学习也已完成,从而,就无需为了控制平面的MAC地址信息发布而在虚拟以太通道启用路由协议。另外,在本发明中,即便站点网络中的MAC地址信息发生变化,该站点网络的边缘设备可以通过数据平面通告其他站点网络、而无需在控制平面启用路由协议予以发布。
【专利说明】在虚拟二层互联中学习路由的方法和装置
【技术领域】
[0001]本发明涉及虚拟二层互联技术、例如以太网虚拟化互联(EthernetVirtualization Interconnection, EVI)技术,特别涉及一种在虚拟二层互联中学习路由的方法和装置。
【背景技术】
[0002]EVI是一种先进的“MAC in IP”技术,用于实现基于IP核心网的二层虚拟专用网络(Layer 2Virtual Private Network, L2VPN),从而实现虚拟局域网(Virtual LocalArea Network, VLAN)在不同站点之间的扩展。
[0003]如图1所示,EVI网络包括站点(Site)网络、交叠(Overlay)网络、以及核心网络。其中:
[0004]站点网络为真实的二层网络,每个站点网络中具有主机(Host)、边缘设备(EdgeDevice,ED)、以及用于在该站点网络的Host与ED之间实现二层交换的交换设备(Switch),每个站点网络均通过各自的ED连接核心网络、并接入核心网络所承载的交叠网络;
[0005]交叠网络为连接在各站点网络之间的虚拟二层网络,交叠网络中能够建立虚链接(virtual Link, vLink)、并通过建立的vLink实现各站点网络之间的虚拟二层互联,其中,vLink承载于站点网络之间实现双向互通的通用路由封装(Generic RoutingEncapsulation, GRE)隧道,vLink通常也被称为虚拟以太通道;
[0006]核心网络则是真实的三层IP网络、并承载交叠网络,核心网络中具有路由设备(Router)、用以承载交叠网络中所建立的虚拟以太通道。
[0007]基于上述的网络架构,每个站点网络的内部流量可在该站点网络中实现真实的二层转发;属于相同VLAN的每两个站点网络之间的外部流量则需要通过交叠网络所提供的虚拟以太通道来实现虚拟二层转发。
[0008]为了实现在交叠网络中的虚拟二层转发,各站点网络的ED通过控制平面相互通告各自所在站点网络的媒体接入控制(Media Access Control,MAC)地址信息、即各自所在站点内的Host的MAC地址,从而实现在站点网络间的二层互联中学习路由、以指导各站点网络的ED在数据平面的报文转发过程。
[0009]当然,以上的说明仅仅是以EVI网络为例。对于除EVI网络之外的其他实现虚拟二层互联的网络,也同样存在通过发布MAC地址信息而进行路由学习的需求。
【发明内容】
[0010]有鉴于此,本发明提供了一种在虚拟二层互联中学习路由的方法和装置。
[0011]本发明提供的一种在虚拟二层互联中学习路由的方法,该方法应用于虚拟二层互联的站点网络中被配置为邻居发现客户端的边缘设备、并包括:
[0012]当本机向邻居发现服务器发起注册时,将本机所在站点网络中的所有MAC地址信息发布至邻居发现服务器;[0013]当本机接收邻居发现服务器的注册应答时,接收邻居发现服务器所在站点网络中的所有MAC地址信息;
[0014]当本机在邻居发现服务器注册成功后,与邻居发现服务器建立虚拟转发通道;
[0015]当本机与邻居发现服务器之间的虚拟转发通道建立完成后,依据邻居发现服务器所在站点网络中的所有MAC地址信息建立对应的MAC地址转发项。
[0016]可选地,该方法进一步包括:
[0017]当本机接收邻居发现服务器的注册应答时,从邻居发现服务器接收在本机之前注册的其他邻居发现客户端所在站点网络中的所有MAC地址信息;
[0018]当本机从邻居发现服务器接收到其他邻居发现客户端所在站点网络中的所有MAC地址信息后,发起建立与该其他邻居发现客户端之间的虚拟转发通道;
[0019]当本机发起建立虚拟转发通道后,在建立虚拟转发通道的过程中将本机所在站点网络中的所有MAC地址信息发布至该其他邻居发现客户端;
[0020]当本机与在本机之前注册的其他邻居发现客户端的虚拟转发通道建立完成后,依据该其他邻居发现客户端所在站点网络中的所有MAC地址信息建立对应的MAC地址转发项。
[0021]可选地,该方法进一步包括:
[0022]当本机感知到在本机之后注册的其他邻居发现客户端向本机发起建立虚拟转发通道后,在建立虚拟转发通道的过程中从该其他邻居发现客户端接收该其他邻居发现客户端所在站点网络中的所有MAC地址信息;
[0023]当本机与在本机之后注册的其他邻居发现客户端的虚拟转发通道建立完成后,依据该其他邻居发现客户端所在站点网络中的所有MAC地址信息建立对应的MAC地址转发项。
[0024]可选地,所述站点网络中的所有MAC地址信息包括在邻居发现信息进行发布,以及,在邻居发现客户端之间发布的邻居发现信息携带于链路状态协议数据单元LSP报文中。
[0025]可选地,该方法进一步包括:
[0026]当本机所在站点网络发生MAC地址变更时,通过已建立的虚拟转发通道发布携带有MAC地址变更信息的数据平面报文;
[0027]当本机接收到邻居发现服务器或其他邻居发现客户端发布的携带有MAC地址变更信息的数据平面报文时,依照MAC地址变更信息更新本机的MAC地址转发项。
[0028]本发明提供的一种在虚拟二层互联中学习路由的方法,该方法应用于虚拟二层互联的站点网络中被配置为邻居发现服务器的边缘设备、并包括:
[0029]当有邻居发现客户端向本机发起注册时,接收该邻居发现客户端发布的该邻居发现客户端所在站点网络中的所有MAC地址信息;
[0030]当本机向邻居发现客户端进行注册应答时,将本机所在站点网络中的所有MAC地址信息发布至该邻居发现客户端;
[0031]当本机对邻居发现客户端的注册应答成功后,与该邻居发现客户端建立虚拟转发通道;
[0032]当本机与邻居发现客户端之间的虚拟转发通道建立完成后,依据该邻居发现客户端所在站点网络中的所有MAC地址信息建立对应的MAC地址转发项。
[0033]可选地,该方法进一步包括:
[0034]当本机向邻居发现客户端进行注册应答时,将在该邻居发现客户端之前完成注册的其他邻居发现客户端所在站点网络中的所有MAC地址信息发布至该邻居发现客户端。
[0035]可选地,所述站点网络中的所有MAC地址信息包括在邻居发现信息进行发布。
[0036]可选地,该方法进一步包括:
[0037]当本机所在站点网络发生MAC地址变更时,通过已建立的虚拟转发通道发布携带有MAC地址变更信息的数据平面报文;
[0038]当本机接收到邻居发现客户端发布的携带有MAC地址变更信息的数据平面报文时,依照MAC地址变更信息更新本机的MAC地址转发项。
[0039]本发明提供的一种在虚拟二层互联中学习路由的装置,该装置应用于虚拟二层互联的站点网络中被配置为邻居发现客户端邻居发现客户端的边缘设备、并包括:
[0040]第一地址发布模块,当本机向邻居发现服务器发起注册时,将本机所在站点网络中的所有MAC地址信息发布至邻居发现服务器;
[0041]第一地址接收模块,当本机接收邻居发现服务器的注册应答时,接收邻居发现服务器所在站点网络中的所有MAC地址信息;
[0042]第一通道建立模块,当本机在邻居发现服务器注册成功后,与邻居发现服务器建立虚拟转发通道;
[0043]第一表项创建模块,当本机与邻居发现服务器之间的虚拟转发通道建立完成后,依据邻居发现服务器所在站点网络中的所有MAC地址信息建立对应的MAC地址转发项。
[0044]可选地,该装置进一步包括:
[0045]第二地址接收模块,当本机接收邻居发现服务器的注册应答时,从邻居发现服务器接收在本机之前注册的其他邻居发现客户端所在站点网络中的所有MAC地址信息;
[0046]第二通道建立模块,当本机从邻居发现服务器接收到其他邻居发现客户端所在站点网络中的所有MAC地址信息后,发起建立与该其他邻居发现客户端之间的虚拟转发通道;
[0047]第二地址发布模块,当本机发起建立虚拟转发通道后,在建立虚拟转发通道的过程中将本机所在站点网络中的所有MAC地址信息发布至该其他邻居发现客户端;
[0048]第二表项创建模块,当本机与在本机之前注册的其他邻居发现客户端的虚拟转发通道建立完成后,依据该其他邻居发现客户端所在站点网络中的所有MAC地址信息建立对应的MAC地址转发项。
[0049]可选地,该装置进一步包括:
[0050]第三地址接收模块,当本机感知到在本机之后注册的其他邻居发现客户端向本机发起建立虚拟转发通道后,在建立虚拟转发通道的过程中从该其他邻居发现客户端接收该其他邻居发现客户端所在站点网络中的所有MAC地址信息;
[0051]第三表项创建模块,当本机与在本机之后注册的其他邻居发现客户端的虚拟转发通道建立完成后,依据该其他邻居发现客户端所在站点网络中的所有MAC地址信息建立对应的MAC地址转发项。
[0052]可选地,所述站点网络中的所有MAC地址信息包括在邻居发现信息进行发布,以及,在邻居发现客户端之间发布的邻居发现信息携带于链路状态协议数据单元LSP报文中。
[0053]可选地,该装置进一步包括:
[0054]第一更新发布模块,当本机所在站点网络发生MAC地址变更时,通过已建立的虚拟转发通道发布携带有MAC地址变更信息的数据平面报文;
[0055]第一更新接收模块,当本机接收到邻居发现服务器或其他邻居发现客户端发布的携带有MAC地址变更信息的数据平面报文时,依照MAC地址变更信息更新本机的MAC地址转发项。
[0056]本发明提供的一种在虚拟二层互联中学习路由的装置,该装置应用于虚拟二层互联的站点网络中被配置为邻居发现服务器的边缘设备、并包括:
[0057]第四地址接收模块,当有邻居发现客户端向本机发起注册时,接收该邻居发现客户端发布的该邻居发现客户端所在站点网络中的所有MAC地址信息;
[0058]第四地址发布模块,当本机向邻居发现客户端进行注册应答时,将本机所在站点网络中的所有MAC地址信息发布至该邻居发现客户端;
[0059]第四通道建立模块,当本机对邻居发现客户端的注册应答成功后,与该邻居发现客户端建立虚拟转发通道;
[0060]第四表项创建模块,当本机与邻居发现客户端之间的虚拟转发通道建立完成后,依据该邻居发现客户端所在站点网络中的所有MAC地址信息建立对应的MAC地址转发项。
[0061]可选地,该装置进一步包括:
[0062]第五地址发布模块,当本机向邻居发现客户端进行注册应答时,将在该邻居发现客户端之前完成注册的其他邻居发现客户端所在站点网络中的所有MAC地址信息发布至该邻居发现客户端。
[0063]可选地,所述站点网络中的所有MAC地址信息包括在邻居发现信息进行发布。
[0064]可选地,该装置进一步包括:
[0065]第二更新发布模块,当本机所在站点网络发生MAC地址变更时,通过已建立的虚拟转发通道发布携带有MAC地址变更信息的数据平面报文;
[0066]第二更新接收模块,当本机接收到邻居发现客户端发布的携带有MAC地址变更信息的数据平面报文时,依照MAC地址变更信息更新本机的MAC地址转发项。
[0067]由此可见,基于本发明,各站点网络的边缘设备能够在邻居发现过程中相互间实现批量发布各自站点网络中的所有MAC地址信息、并进行路由学习,因此,当各站点网络间的邻居发现过程完成、并由此完成虚拟以太通道的建立时,控制平面的MAC地址信息的发布及路由学习也已完成,从而,就无需为了控制平面的MAC地址信息发布而在虚拟以太通道启用路由协议。另外,在本发明中,即便站点网络中的MAC地址信息发生变化,该站点网络的边缘设备可以通过数据平面通告其他站点网络、而无需在控制平面启用路由协议予以发布。
[0068]相应地,本发明能够具体产生如下的技术效果:
[0069]1)、MAC地址信息的发布在邻居发现过程中一次性完成、而不再依赖于在虚拟以太通道启用路由协议,因而能够减少在虚拟以太通道启用路由协议所产生的资源耗费;
[0070]2)、当站点网络内发生VLAN变化时,可以利用在虚拟以太通道发送数据平面报文予以通告,而无需通过在虚拟以太通道启用路由协议来发布;
[0071]3)、通过控制平面发布的MAC地址信息是虚拟以太通道完成建立之前实现的,并且,在虚拟以太通道完成建立之后所可能出现的MAC地址变更的通告是在数据平面完成、而非控制平面,因而不会出现虚拟以太通道内的数据流量影响控制流量的情况。
【专利附图】
【附图说明】
[0072]图1为EVI网络的组网架构示意图;
[0073]图2为本发明实施例中ED利用邻居发现过程批量发布MAC地址信息以实现路由学习的原理性流程示意图;
[0074]图3a至图3c为本发明实施例基于如图2所示原理实现的一种在虚拟二层互联中学习路由的方法的流程示意图;
[0075]图4为本发明实施例中用于ED在数据平面发布MAC地址信息变更的数据平面报文的结构示意图。
【具体实施方式】
[0076]为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施例,对本发明进一步详细说明。
[0077]本发明实施例仍以EVI网络为例。
[0078]在EVI网络的传统路由学习方式中,ED通过虚拟以太通道来实现控制平面的MAC地址信息通告,因此,每条虚拟以太通道除了承担对应VLAN的数据报文转发之外,还需要承担对应VLAN的MAC地址信息通告,即,在数据通道中同时转发数据流量和控制流量;并且,为了在虚拟以太通道实现对应VLAN的MAC地址信息通告,ED还需要在每条虚拟以太通道均启用路由协议。由此,就产生如下问题:
[0079]I)、每个ED发布MAC地址信息所消耗的资源与该ED建立的虚拟以太通道的数量呈线性关系,并随着虚拟以太通道的数量增多而线性增长。
[0080]例如,假设两个相邻的站点网路均存在同样的10个VLAN,这两个站点网络的ED之间就会建立对应的10条虚拟以太通道,且其中每个站点网络的ED需要在10条虚拟以太通道均启用路由协议;若这两个站点网络中的VLAN数量增加至20个甚至更多,则虚拟以太通道的数量也会相应增加至20个甚至更多、且均需要启用路由协议。
[0081]2)、每个ED在本站点网络内发生VLAN变化时,不但需要针对新增VLAN新建立对应的虚拟转发通道,还需要在虚拟转发通道启用路由协议重新发布新增VLAN的MAC地址信息并进行路由学习。
[0082]例如,假设两个相邻的站点网络同时增加了一个新的VLAN,这两个站点网络的ED之间会针对新增的VLAN新建一条虚拟转发通道,由于新增VLAN的MAC地址信息此前并未在两个站点网络之间相互发布,因而针对新增VLAN,这两个站点网络的ED需要通过在新建的虚拟转发通道启用路由协议进行一次MAC地址信息的发布、并进行该新增VLAN的路由学习。
[0083]3)、当虚拟以太通道中转发的数据报文流量过大时,复用在虚拟以太通道发布的MAC地址信息容易丢失。[0084]但在本发明实施例中,各站点网络的边缘设备能够利用邻居发现过程相互间实现站点网络中的所有MAC地址信息的一次性批量发布、并以此来实现批量的路由学习。如此一来,当各站点网络间的邻居发现过程完成、并由此完成虚拟以太通道的建立时,控制平面的MAC地址信息的发布及路由学习也已完成。相应地,在邻居发现过程完成后,就无需分别通过在已建立的各条虚拟以太通道启用路由协议,而分别发布站点网络中的所有MAC地址信息。其中,本文所述的站点网络中的所有MAC地址信息,包含了站点网络中所有VLAN内的全部MAC地址信息、而不是特指某一个VLAN中的所有MAC地址信息。
[0085]下面,先对站点网络之间的邻居发现过程进行说明。
[0086]每个站点网络的ED在通告本站点网络的MAC地址信息之前,需要先与其他站点网络的ED相互发现并形成EVI邻居关系。其中,上述的邻居发现可以通过EVI邻居发现协议(EVI Neighbor Discovery Protocol, ENDP)来实现。
[0087]具体说,ENDP定义了两种实体,即,EVI邻居发现服务器(EVI Neighbor DiscoverySever,ENDS)和 EVI 邻居发现客户端(EVI Neighbor Discovery Client,ENDC);其中,ENDS用于维护同一个EVI网络中所有ENDC的END信息、并且ENDS自身同时也是ENDC。
[0088]相应地,在一个EVI网络中,至少有一个站点网络的ED被配置为ENDS,其余站点网络的ED则均被配置为ENDC ;并且,作为ENDS的ED只需通过配置使能自身为ENDS,而作为ENDC的ED设备则需要通过配置指定ENDS的地址。其中,本文所述的对ED的配置可以是手工配置、也可以是各ED通过选举而实现的自动配置。
[0089]当一个站点网络新加入已存在ENDS的EVI网络时,其ED仅作为ENDC、并通过发送注册请求报文而向指定的ENDS发起注册请求,并在注册请求报文中携带自身的END信息,该ENDC的END信息中包括作为该ENDC的ED的IP地址、以及作为该ENDC的ED所在站点网络的站点标识,用于其他ED (ENDS及其他ENDC)与其建立虚拟以太通道。
[0090]当ENDS接收到ENDC的注册请求时,会保存该ENDC的END信息、并通过注册应答报文对该ENDC进行注册应答,其中,由于ENDS同时也是ENDC,因而ENDS发出的注册应答报文中会携带有ENDS的END信息,该ENDS的END信息中包括作为该ENDS的ED的IP地址、以及作为该ENDS的ED所在站点网络的站点标识,用于其他ED (ENDC)与其建立虚拟以太通道;
[0091]与此同时,若ENDS此前还通过其他ENDC的注册而保存了其他ENDC的END信息,则ENDS还会同时将其他ENDC的END信息一并携带于注册应答报文发送至当前发起注册请求的ENDC。
[0092]此后,发起注册请求的ENDC在接收到ENDS表示注册成功的注册应答之后,依据ENDS在注册应答报文中携带的ENDS的END信息、或者有可能同时携带的其他ENDC的END信息,该ENDC与ENDS以及其他ENDC即可通过交互中间系统到中间系统(IntermediateSystem-to-1ntermediate System, IS-1S)协议的招呼(Hello)报文实现相互间的邻居发现、并建立彼此间的虚拟以太通道。当然,对于先完成注册的ENDC来说,虽然其无法从ENDS获知后注册的ENDC的END信息,但后注册的ENDC能够依据其从ENDS得到的END信息准确找到先注册的ENDC、并首先发送Hello报文来触发先注册的ENDC与其邻居发现以及建立虚拟以太通道。
[0093]如上述的邻居发现过程可知,ENDC在注册请求时具有向ENDS发布自身信息的能力、以及在虚拟以太通道建立之前依据END信息准确找到邻居的能力,ENDS在注册应答时具有向ENDC发布自身信息和其他ENDC的信息的能力。
[0094]因此,本发明实施例借助这样的能力,在邻居发现过程中实现MAC地址信息的一次性批量发布,具体说:
[0095]当ENDC向ENDS发起注册请求时,携带在注册请求报文中的该ENDC的END信息可以同时包括该ENDC所在站点网络中的所有MAC地址信息;
[0096]当ENDS对ENDC反馈表示注册成功的注册应答时,携带在注册应答报文中的ENDS的END信息可以同时包括ENDS所在站点网络中的所有MAC地址信息;其中,若此时已有其他ENDC在ENDS成功注册,则ENDS还会再注册应答报文中携带其他ENDC的END信息,由于其他这些ENDC在发起注册请求时上报给ENDS的ENDC必然也会包括其所在站点网络中的所有MAC地址信息,因此,ENDS在注册应答报文中携带的其他ENDC的END信息中当然也包括其他ENDC所在站点网络中的所有MAC地址信息;
[0097]当ENDC接收到ENDS表示注册成功的注册应答时,至少能够从ENDS的END信息中得到ENDS所在站点网络中的所有MAC地址信息,若注册应答报文中还携带有此前已完成注册的其他ENDC的END信息,则ENDC还能够从其他ENDC的END信息中得到在其之前成功注册的其他ENDC所在站点网络中的所有MAC地址信息;
[0098]另外,对于先完成注册的ENDC来说,其无法从ENDS获知后注册的ENDC的END信息(其中包括后注册的ENDC所在站点的MAC地址信息),因此,当后注册的ENDC能够依据其从ENDS得到的END信息准确找到先注册的ENDC之后,后注册的ENDC除了需要首先发送Hello报文来触发先注册的ENDC与其邻居发现以及建立虚拟以太通道之外,还可以进一步在虚拟以太通道的建立过程中发送IS-1S链路状态协议数据单元(Link State PDUs,LSP)报文来通告其所在站点网络中的所有MAC地址信息。
[0099]请参见图2,假设有三台ED、即EDO?ED2,其中,EDO为ENDS、EDI和ED2均为ENDC,并且,EDl和ED2与EDO希望实现彼此间的二层互连:
[0100]S201,EDI首先向EDO发起注册、并在注册请求报文中携带EDI的END信息,其中,EDl的END信息中除了包括EDl的IP地址及所在站点网络的站点标识之外,还包括EDl所在站点网络中的所有MAC地址信息、以实现EDl向EDO的MAC地址信息批量发布;
[0101]S202,ED0在接收到EDl的注册请求报文时,能够得到EDl所在站点网络中的所有MAC地址信息、并予以保存;
[0102]S203,ED0对EDl进行注册应答、并在注册应答报文中携带EDO的END信息,其中,EDO的END信息中除了包括EDO的IP地址及所在站点网络的站点标识之外,还包括EDO所在站点网络中的当前所有MAC地址信息、以实现EDO向EDl的MAC地址信息批量发布;但由于此时只有EDl这一个ENDC向EDO发起了注册,因而EDO不会向EDl发布其他ED的END
信息;
[0103]S204,ED1在接收到EDO的注册应答报文(表示注册成功)时,能够得到EDO所在站点网络中的所有MAC地址信息、并予以保存;
[0104]S205, EDl依据EDO的END信息与EDO交互Hello报文、以建立虚拟以太通道;
[0105]S206, EDO和EDl在彼此之间的虚拟以太通道建立完成后依据对方所在站点网络中的所有MAC地址信息建立对应的MAC地址转发项;[0106]S207,ED2在EDI之后向EDO发起注册、并在注册请求报文中携带ED2的END信息,其中,ED2的END信息中除了包括ED2的IP地址及所在站点网络的站点标识之外,还包括ED2所在站点网络中的所有MAC地址信息、以实现ED2向EDO的MAC地址信息批量发布;
[0107]S208,ED0在接收到ED2的注册请求报文时,能够得到ED2所在站点网络中的所有MAC地址信息、并予以保存;
[0108]S209,ED0对ED2进行注册应答、并在注册应答报文中携带EDO的END信息,其中,EDO的END信息除了包括EDO的IP地址及所在站点网络的站点标识之外,还包括EDO所在站点网络中的当前所有MAC地址信息、以实现EDO向EDl的MAC地址信息批量发布;并且,由于此时已有作为ENDC的EDl在ED2在EDO完成了注册,因而EDO还会向ED2发布EDl的END信息,其中,EDl的END信息与S201相同;
[0109]S210,ED2在接收到EDO的注册应答报文(表示注册成功)时,能够同时得到EDO和EDl所在站点网络中的所有MAC地址信息、并予以保存;
[0110]S211, ED2依据EDO的END信息与EDO交互Hello报文、以建立虚拟以太通道;
[0111]S212,EDO和ED2在彼此之间的虚拟以太通道建立完成后依据对方所在站点网络中的所有MAC地址信息建立对应的MAC地址转发项;
[0112]S213,ED2还依据EDl的END信息与EDl交互Hello报文、以建立虚拟以太通道,并且,在建立虚拟以太通道的过程中,ED2还向EDl发送携带有ED2的END信息的LSP报文、以向EDl发布ED2所在站点网络中的所有MAC地址信息;
[0113]S214,EDl和ED2在彼此之间的虚拟以太通道建立完成后依据对方所在站点网络中的所有MAC地址信息建立对应的MAC地址转发项。
[0114]如上可见,后发起注册的ENDC (ED2)会通过ENDS (EDO)的注册应答得到ENDS(EDO)以及在其之前注册的其他ENDC (EDl)所在站点网络中的所有MAC地址信息;先注册的ENDC (EDl)会通过ENDS (EDO)的注册应答得到ENDS (EDO)所在站点网络中的所有MAC地址信息、并通过后注册的ENDC (ED2)发起的虚拟以太通道的建立过程获得在其之后注册的ENDC (ED2)所在站点网络中的所有MAC地址信息;而ENDS (EDO)则会通过注册请求过程得到向其发起注册的所有ENDC (EDl和ED2)所在站点网络中的所有MAC地址信息。
[0115]从而,通过上述在邻居发现过程中的MAC地址信息的异步批量发布,EVI网络中的每个ED都能够在完成虚拟以太通道的建立时得到虚拟以太通道对端ED所在站点网络的MAC地址信息、并完成相应的路由学习,从而,就无需在虚拟以太通道完成建立之后为了本端在控制平面的MAC地址信息发布和对端ED的路由学习而在虚拟以太通道启用路由协议。
[0116]需要说明的是:
[0117]本发明实施例将ED发布的所在站点网络中的所有MAC地址信息作为END信息的扩展,这样只是为了减少对ENDP常规流程的改动,但在实际应用中,也可以将站点网络中的所有MAC地址信息作为一种独立于END信息之外的信息类型予以批量发布;
[0118]本发明实施例将由ENDC向ENDS发布的END信息携带于注册请求报文中、并将由ENDS向ENDC发布的END信息携带于注册应答报文中,这样只是为了减少对ENDP常规流程的改动,但在实际应用中,也可以采用独立于注册请求报文和注册应答报文之外的其他报文来携带批量发布的MAC地址信息;
[0119]以及,本发明实施例将在ENDC之间发布的END信息携带于LSP报文中,这样只是为了利用LSP报文可携带MAC地址信息的特性,但在实际应用中,由于LSP报文的惯有发送时机并不是在虚拟以太通道建立过程中,因此,ENDC之间在建立虚拟以太通道过程中也可以利用引入的其他报文、或改进的Hello报文来携带批量发布的MAC地址信息。
[0120]相应地,基于上述原理,本发明实施例提供了一种在虚拟二层互联中学习路由的方法,该方法可以应用在EVI站点网络中被配置为ENDC或ENDS的ED。
[0121]请先参见图3a,当本发明实施例中在虚拟二层互联中学习路由的方法应用于EVI站点网络中被配置为ENDC的ED (对应图2中的ED2)时,该方法可以包括:
[0122]步骤311,当本机向ENDS发起注册时,将本机所在站点网络中的所有MAC地址信息发布至ENDS ;
[0123]步骤312,当本机接收到ENDS的注册应答时,接收ENDS在注册应答时发布的ENDS所在站点网络中的所有MAC地址信息;其中,若ENDS在本机发起注册之前还接收到其他ENDC所在站点网络中的所有MAC地址信息,则本机还会接收ENDS在注册应答时发布的其他ENDC所在站点网络中的所有MAC地址信息;
[0124]步骤313,当本机在ENDS注册成功后,本机与ENDS建立虚拟转发通道、并在虚拟转发通道建立完成后依据ENDS所在站点网络中的所有MAC地址信息建立对应的MAC地址转发项;
[0125]步骤314,若ENDS在注册应答时还发布了其他ENDC所在站点网络中的所有MAC地址信息,则本机还发起建立与该其他ENDC之间的虚拟转发通道、并在建立虚拟转发通道的过程中将本机所在站点网络中的所有MAC地址信息发布至该其他ENDC,以及,在虚拟转发通道建立完成后依据该其他ENDC所在站点网络中的所有MAC地址信息建立对应的MAC地址转发项。
[0126]至此,被配置为ENDC的ED的MAC地址信息发布、及相应的路由学习过程结束。
[0127]请参见图3b,当本发明实施例中在虚拟二层互联中学习路由的方法应用于EVI站点网络中被配置为ENDC的ED (对应图2中的EDl)时,该方法还可以包括:
[0128]步骤321,当本机向ENDS发起注册时,将本机所在站点网络中的所有MAC地址信息发布至ENDS ;
[0129]步骤322,当本机接收到ENDS的注册应答时,接收ENDS在注册应答时发布的ENDS所在站点网络中的所有MAC地址信息;
[0130]步骤323,当本机在ENDS注册成功后,与ENDS建立虚拟转发通道、并在虚拟转发通道建立完成后依据ENDS所在站点网络中的所有MAC地址信息建立对应的MAC地址转发项;
[0131]步骤324,当其他ENDC发起与本机建立虚拟转发通道时,在建立虚拟转发通道的过程中接收该其他ENDC发布的该其他ENDC所在站点网络中的所有MAC地址信息,以及,在虚拟转发通道建立完成后依据该其他ENDC所在站点网络中的所有MAC地址信息建立对应的MAC地址转发项。
[0132]至此,被配置为ENDC的ED的MAC地址信息发布、及相应的路由学习过程结束。
[0133]请参见图3c,当本发明实施例中在虚拟二层互联中学习路由的方法应用于EVI站点网络中被配置为ENDS的ED (对应图2中的EDO)时,该方法可以包括:
[0134]步骤331,当ENDC向本机发起注册时,接收该ENDC发布的该ENDC所在站点网络中的所有MAC地址信息;
[0135]步骤332,当本机向ENDC进行注册应答时,将本机所在站点网络中的所有MAC地址信息发布至该ENDC ;其中,若本机在该ENDC发起注册之前还接收到其他ENDC所在站点网络中的所有MAC地址信息,则还向该ENDC发布其他ENDC所在站点网络中的所有MAC地址
信息;
[0136]步骤333,当本机完成对ENDC的注册应答、并表示注册成功后,与该ENDC建立虚拟转发通道、并在虚拟转发通道建立完成后依据该ENDC所在站点网络中的所有MAC地址信息建立对应的MAC地址转发项。
[0137]至此,被配置为ENDS的ED的MAC地址信息发布、及相应的路由学习过程结束。
[0138]如上可见,基于本发明实施例中在虚拟二层互联中学习路由的方法,无论ED被配置为ENDC还是ENDS,该ED都能够在邻居发现过程中与其他ED实现相互间批量发布各自站点网络中的所有MAC地址信息、并进行路由学习,因此,当各站点网络间的邻居发现过程完成、并由此完成虚拟以太通道的建立时,控制平面的MAC地址信息的发布及路由学习也已完成,从而,ED就无需为了控制平面的MAC地址信息发布而在虚拟以太通道启用路由协议。
[0139]其中,实际应用中,对于任意一个被配置为ENDC的ED来说,其在某一时刻有可能是执行如图3a所示的流程、但在另一时刻又可能执行如图3b所示的流程;而对于被配置为ENDS的ED来说,其通常会执行如图3c所示的流程。并且,当存在一种特例时,即EVI网络中只存在两个ED,且其中一个被配置为ENDS、另一个被配置为ENDC,被配置为ENDC的ED来说,只会执行如图3a所示的流程和如图3b所示流程所共有的与ENDS交互的步骤、而不会执行任何涉及其他ENDC的步骤,相应地,被配置为ENDS的ED也只会执行如图3c所示流程中与先注册的一个ED (即EDl)交互的步骤、而不会执行与其他ED (ED2)交互的步骤。
[0140]另外,在批量发布MAC地址信息之后的正常运行中,站点网络内的MAC地址信息也有可能发生变更,例如站点网络中有新增的VLAN、或有VLAN被删除、或发生VLAN迁移等,再例如站点网络中有Host新加入站点网络、或离开站点网络等,对于这种情况,本发明实施例中在虚拟二层互联中学习路由的方法可以使ED通过数据平面通告其他站点网络、而无需在控制平面启用路由协议予以发布。
[0141]为此,本发明实施例首先提供一种用于通告MAC地址信息变更的数据平面报文,如图4所示,该数据平面报文采用类似于EVI IS-1S的封装结构,自外层至内层依次包括以太头、IP头、GRE头、EVI头、MAC地址数量(MAC_Count)、以及MAC地址列表(MAC_AddressList),其中:
[0142]EVI头中标识有MAC地址列表中的MAC地址为增加或删除,该EVI头具体包括版本号(Version)字段、操作类型(Type)字段、第一保留字段、用于标识一个隔离域的网络标识符(Network-1D)字段、以及第二保留字段。
[0143]相应地,对于被配置为ENDC或ENDS的每个ED来说:
[0144]当本机所在站点网络发生MAC地址变更时,通过已建立的虚拟转发通道向ENDS或其他ENDC发布携带有MAC地址变更信息的数据平面报文;
[0145]当本机接收到ENDS或其他ENDC发布的携带有MAC地址变更信息的数据平面报文时,依照MAC地址变更信息更新本机的MAC地址转发项。
[0146]以上是对本发明实施例中在虚拟二层互联中学习路由的方法的详细说明。由于该方法能够以承载于硬件的计算机程序来实现,因此,本发明实施例还对应地提供了一种在虚拟二层互联中学习路由的装置,该装置可以应用于EVI站点网络中被配置为ENDC或ENDS的ED中。
[0147]当本发明实施例中在虚拟二层互联中学习路由的装置应用与EVI站点网络中被配置为ENDC的ED (对应于图2中的EDl)中时,该装置可以包括:
[0148]第一地址发布模块,当本机向邻居发现服务器发起注册时,将本机所在站点网络中的所有MAC地址信息发布至邻居发现服务器;
[0149]第一地址接收模块,当本机接收邻居发现服务器的注册应答时,接收邻居发现服务器所在站点网络中的所有MAC地址信息;
[0150]第一通道建立模块,当本机在邻居发现服务器注册成功后,与邻居发现服务器建立虚拟转发通道;
[0151]第一表项创建模块,当本机与邻居发现服务器之间的虚拟转发通道建立完成后,依据邻居发现服务器所在站点网络中的所有MAC地址信息建立对应的MAC地址转发项。
[0152]上述的第一地址发布模块、第一地址接收模块、第一通道建立模块、以及第一表项创建模块至少能够满足EVI网络中只存在两个ED的情况,即一个ENDS和一个ENDC。
[0153]可选地,当EVI网络中的ENDC多于一个时,该装置进一步包括:
[0154]第二地址接收模块,当本机(对应图2中的ED2)接收邻居发现服务器的注册应答时,从邻居发现服务器接收在本机之前注册的其他邻居发现客户端所在站点网络中的所有MAC地址信息;
[0155]第二通道建立模块,当本机从邻居发现服务器接收到其他邻居发现客户端所在站点网络中的所有MAC地址信息后,发起建立与该其他邻居发现客户端之间的虚拟转发通道;
[0156]第二地址发布模块,当本机发起建立虚拟转发通道后,在建立虚拟转发通道的过程中将本机所在站点网络中的所有MAC地址信息发布至该其他邻居发现客户端;
[0157]第二表项创建模块,当本机与在本机之前注册的其他邻居发现客户端的虚拟转发通道建立完成后,依据该其他邻居发现客户端所在站点网络中的所有MAC地址信息建立对应的MAC地址转发项。
[0158]可选地,当EVI网络中的ENDC多于一个时,该装置也可以进一步包括:
[0159]第三地址接收模块,当本机(对应图2中的EDl)感知到在本机之后注册的其他邻居发现客户端向本机发起建立虚拟转发通道后,在建立虚拟转发通道的过程中从该其他邻居发现客户端接收该其他邻居发现客户端所在站点网络中的所有MAC地址信息;
[0160]第三表项创建模块,当本机与在本机之后注册的其他邻居发现客户端的虚拟转发通道建立完成后,依据该其他邻居发现客户端所在站点网络中的所有MAC地址信息建立对应的MAC地址转发项。
[0161]另外,可选地,为了实现ED所在站点网络的MAC地址变更发布,该装置还可以进一步包括:
[0162]第一更新发布模块,当本机所在站点网络发生MAC地址变更时,通过已建立的虚拟转发通道发布携带有MAC地址变更信息的数据平面报文;
[0163]第一更新接收模块,当本机接收到邻居发现服务器或其他邻居发现客户端发布的携带有MAC地址变更信息的数据平面报文时,依照MAC地址变更信息更新本机的MAC地址转发项。
[0164]当本发明实施例中在虚拟二层互联中学习路由的装置应用与EVI站点网络中被配置为ENDS的ED (对应于图2中的EDO)中时,该装置可以包括:
[0165]第四地址接收模块,当有邻居发现客户端向本机发起注册时,接收该邻居发现客户端发布的该邻居发现客户端所在站点网络中的所有MAC地址信息;
[0166]第四地址发布模块,当本机向邻居发现客户端进行注册应答时,将本机所在站点网络中的所有MAC地址信息发布至该邻居发现客户端;
[0167]第四通道建立模块,当本机对邻居发现客户端的注册应答成功后,与该邻居发现客户端建立虚拟转发通道;
[0168]第四表项创建模块,当本机与邻居发现客户端之间的虚拟转发通道建立完成后,依据该邻居发现客户端所在站点网络中的所有MAC地址信息建立对应的MAC地址转发项。
[0169]上述的第四地址接收模块、第四地址发布模块、第四通道建立模块、以及第四表项创建模块至少能够满足EVI网络中只存在两个ED的情况,即一个ENDS和一个ENDC。
[0170]可选地,当EVI网络中的ENDC多于一个时,该装置进一步包括:
[0171]第五地址发布模块,当本机向邻居发现客户端(对应图2中的ED2)进行注册应答时,将在该邻居发现客户端之前完成注册的其他邻居发现客户端(对应图2中的EDl)所在站点网络中的所有MAC地址信息发布至该邻居发现客户端。
[0172]同样地,为了实现ED所在站点网络的MAC地址变更发布,该装置此时也可以进一步包括:
[0173]第二更新发布模块,当本机所在站点网络发生MAC地址变更时,通过已建立的虚拟转发通道发布携带有MAC地址变更信息的数据平面报文;
[0174]第二更新接收模块,当本机接收到邻居发现客户端发布的携带有MAC地址变更信息的数据平面报文时,依照MAC地址变更信息更新本机的MAC地址转发项。
[0175]以上的说明仅仅是以EVI网络为例。对于除EVI网络之外的其他实现虚拟二层互联的网络,本发明实施例中中在虚拟二层互联中学习路由的方法和装置也同样适用。
[0176]并且,由CPU从磁盘等存储介质上读取实现上述方法或装置的计算机程序到内存当中,在内存中形成用于完成上述方法的步骤或用于完成上述装置的功能模块,通过CPU运行内存中的机器可读指令,来完成上述方法或装置中与所划分的与所述步骤或所述功能模块对应的程序步骤,从而实现上述方法或装置所完成的功能。
[0177]以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。
【权利要求】
1.一种在虚拟二层互联中学习路由的方法,其特征在于,该方法应用于虚拟二层互联的站点网络中被配置为邻居发现客户端的边缘设备、并包括: 当本机向邻居发现服务器发起注册时,将本机所在站点网络中的所有MAC地址信息发布至邻居发现服务器; 当本机接收邻居发现服务器的注册应答时,接收邻居发现服务器所在站点网络中的所有MAC地址信息; 当本机在邻居发现服务器注册成功后,与邻居发现服务器建立虚拟转发通道; 当本机与邻居发现服务器之间的虚拟转发通道建立完成后,依据邻居发现服务器所在站点网络中的所有MAC地址信息建立对应的MAC地址转发项。
2.根据权利要求1所述的方法,其特征在于,该方法进一步包括: 当本机接收邻居发现服务器的注册应答时,从邻居发现服务器接收在本机之前注册的其他邻居发现客户端所在站点网络中的所有MAC地址信息; 当本机从邻居发现服务器接收到其他邻居发现客户端所在站点网络中的所有MAC地址信息后,发起建立与该其他邻居发现客户端之间的虚拟转发通道; 当本机发起建立虚拟转发通道后,在建立虚拟转发通道的过程中将本机所在站点网络中的所有MAC地址信息发布至该其他邻居发现客户端; 当本机与在本机之前注册的其他邻居发现客户端的虚拟转发通道建立完成后,依据该其他邻居发现客户端所在站点网络中的所有MAC地址信息建立对应的MAC地址转发项。
3.根据权利要求1所述的方法,其特征在于,该方法进一步包括:`` 当本机感知到在本机之后注册的其他邻居发现客户端向本机发起建立虚拟转发通道后,在建立虚拟转发通道的过程中从该其他邻居发现客户端接收该其他邻居发现客户端所在站点网络中的所有MAC地址信息; 当本机与在本机之后注册的其他邻居发现客户端的虚拟转发通道建立完成后,依据该其他邻居发现客户端所在站点网络中的所有MAC地址信息建立对应的MAC地址转发项。
4.根据权利要求2或3所述的方法,其特征在于,所述站点网络中的所有MAC地址信息包括在邻居发现信息进行发布,以及,在邻居发现客户端之间发布的邻居发现信息携带于链路状态协议数据单元LSP报文中。
5.根据权利要求1至3中任一项所述的方法,其特征在于,该方法进一步包括: 当本机所在站点网络发生MAC地址变更时,通过已建立的虚拟转发通道发布携带有MAC地址变更信息的数据平面报文; 当本机接收到邻居发现服务器或其他邻居发现客户端发布的携带有MAC地址变更信息的数据平面报文时,依照MAC地址变更信息更新本机的MAC地址转发项。
6.一种在虚拟二层互联中学习路由的方法,其特征在于,该方法应用于虚拟二层互联的站点网络中被配置为邻居发现服务器的边缘设备、并包括: 当有邻居发现客户端向本机发起注册时,接收该邻居发现客户端发布的该邻居发现客户端所在站点网络中的所有MAC地址信息; 当本机向邻居发现客户端进行注册应答时,将本机所在站点网络中的所有MAC地址信息发布至该邻居发现客户端; 当本机对邻居发现客户端的注册应答成功后,与该邻居发现客户端建立虚拟转发通道; 当本机与邻居发现客户端之间的虚拟转发通道建立完成后,依据该邻居发现客户端所在站点网络中的所有MAC地址信息建立对应的MAC地址转发项。
7.根据权利要求6所述的方法,其特征在于,该方法进一步包括: 当本机向邻居发现客户端进行注册应答时,将在该邻居发现客户端之前完成注册的其他邻居发现客户端所在站点网络中的所有MAC地址信息发布至该邻居发现客户端。
8.根据权利要求6或7所述的方法,其特征在于,所述站点网络中的所有MAC地址信息包括在邻居发现信息进行发布。
9.根据权利要求6或7所述的方法,其特征在于,该方法进一步包括: 当本机所在站点网络发生MAC地址变更时,通过已建立的虚拟转发通道发布携带有MAC地址变更信息的数据平面报文; 当本机接收到邻居发现客户端发布的携带有MAC地址变更信息的数据平面报文时,依照MAC地址变更信息更新本机的MAC地址转发项。
10.一种在虚拟二层互联中学习路由的装置,其特征在于,该装置应用于虚拟二层互联的站点网络中被配置为邻居发现客户端邻居发现客户端的边缘设备、并包括: 第一地址发布模块,当本机向邻居发现服务器发起注册时,将本机所在站点网络中的所有MAC地址信息发布至邻 居发现服务器; 第一地址接收模块,当本机接收邻居发现服务器的注册应答时,接收邻居发现服务器所在站点网络中的所有MAC地址信息; 第一通道建立模块,当本机在邻居发现服务器注册成功后,与邻居发现服务器建立虚拟转发通道; 第一表项创建模块,当本机与邻居发现服务器之间的虚拟转发通道建立完成后,依据邻居发现服务器所在站点网络中的所有MAC地址信息建立对应的MAC地址转发项。
11.根据权利要求10所述的装置,其特征在于,该装置进一步包括: 第二地址接收模块,当本机接收邻居发现服务器的注册应答时,从邻居发现服务器接收在本机之前注册的其他邻居发现客户端所在站点网络中的所有MAC地址信息; 第二通道建立模块,当本机从邻居发现服务器接收到其他邻居发现客户端所在站点网络中的所有MAC地址信息后,发起建立与该其他邻居发现客户端之间的虚拟转发通道;第二地址发布模块,当本机发起建立虚拟转发通道后,在建立虚拟转发通道的过程中将本机所在站点网络中的所有MAC地址信息发布至该其他邻居发现客户端; 第二表项创建模块,当本机与在本机之前注册的其他邻居发现客户端的虚拟转发通道建立完成后,依据该其他邻居发现客户端所在站点网络中的所有MAC地址信息建立对应的MAC地址转发项。
12.根据权利要求10所述的装置,其特征在于,该装置进一步包括: 第三地址接收模块,当本机感知到在本机之后注册的其他邻居发现客户端向本机发起建立虚拟转发通道后,在建立虚拟转发通道的过程中从该其他邻居发现客户端接收该其他邻居发现客户端所在站点网络中的所有MAC地址信息; 第三表项创建模块,当本机与在本机之后注册的其他邻居发现客户端的虚拟转发通道建立完成后,依据该其他邻居发现客户端所在站点网络中的所有MAC地址信息建立对应的MAC地址转发项。
13.根据权利要求11或12所述的装置,其特征在于,所述站点网络中的所有MAC地址信息包括在邻居发现信息进行发布,以及,在邻居发现客户端之间发布的邻居发现信息携带于链路状态协议数据单元LSP报文中。
14.根据权利要求10至12中任一项所述的装置,其特征在于,该装置进一步包括: 第一更新发布模块,当本机所在站点网络发生MAC地址变更时,通过已建立的虚拟转发通道发布携带有MAC地址变更信息的数据平面报文; 第一更新接收模块,当本机接收到邻居发现服务器或其他邻居发现客户端发布的携带有MAC地址变更信息的数据平面报文时,依照MAC地址变更信息更新本机的MAC地址转发项。
15.一种在虚拟二层互联中学习路由的装置,其特征在于,该装置应用于虚拟二层互联的站点网络中被配置为邻居发现服务器的边缘设备、并包括: 第四地址接收模块,当有邻居发现客户端向本机发起注册时,接收该邻居发现客户端发布的该邻居发现客户端所在站点网络中的所有MAC地址信息; 第四地址发布模块,当本机向邻居发现客户端进行注册应答时,将本机所在站点网络中的所有MAC地址信 息发布至该邻居发现客户端; 第四通道建立模块,当本机对邻居发现客户端的注册应答成功后,与该邻居发现客户端建立虚拟转发通道; 第四表项创建模块,当本机与邻居发现客户端之间的虚拟转发通道建立完成后,依据该邻居发现客户端所在站点网络中的所有MAC地址信息建立对应的MAC地址转发项。
16.根据权利要求15所述的装置,其特征在于,该装置进一步包括: 第五地址发布模块,当本机向邻居发现客户端进行注册应答时,将在该邻居发现客户端之前完成注册的其他邻居发现客户端所在站点网络中的所有MAC地址信息发布至该邻居发现客户端。
17.根据权利要求15或16所述的装置,其特征在于,所述站点网络中的所有MAC地址信息包括在邻居发现信息进行发布。
18.根据权利要求15或16所述的装置,其特征在于,该装置进一步包括: 第二更新发布模块,当本机所在站点网络发生MAC地址变更时,通过已建立的虚拟转发通道发布携带有MAC地址变更信息的数据平面报文; 第二更新接收模块,当本机接收到邻居发现客户端发布的携带有MAC地址变更信息的数据平面报文时,依照MAC地址变更信息更新本机的MAC地址转发项。
【文档编号】H04L12/751GK103763200SQ201410025939
【公开日】2014年4月30日 申请日期:2014年1月21日 优先权日:2014年1月21日
【发明者】杨超 申请人:杭州华三通信技术有限公司