具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面结合附图和具体实施例对本发明进行详细描述。
本发明提供的方法应用于站点网络中的ED,比如,图1所示的ED1至ED3任一ED。其中,为了针对特定数据中心组网需求提供访问控制,本发明需要在组网中根据组网实际应用部署各站点网络中ED的角色,其中,ED的角色主要分为两种:一种为邻居发现服务器(ENDS),另一种为邻居发现客户端(ENDC)。在组网中,ENDS的数量比较少,一般为1个或2个,而ENDC的数量比较多,图2示出了站点网络1中的ED作为ENDS、站点网络2和3中的ED作为ENDC的组网。
基于图2所示的组网,则本发明中,针对每一站点网络的ED,其可执行图3所示的流程:
参见图3,图3为本发明实施例提供的方法流程图。如图3所示,该流程可包括:
步骤301,ED作为ENDS时,接收作为ENDC的ED发起的注册,并将已注册至本ENDS的其他所有ENDC告知给该发起注册的ENDC。
优选地,本发明中,ENDC发起注册可通过ENDC发送注册请求报文实现,而ENDS将已注册至本ENDS的其他所有ENDC告知给该发起注册的ENDC可通过以下步骤实现:ENDS返回针对注册请求报文的应答报文给发送注册请求报文的ENDC,所述应答报文中包含已注册至ENDS的其他所有ENDC。
步骤302,ED作为ENDC时,向作为ENDS的ED发起注册,并从ENDS获知已注册至该ENDS的其他所有ENDC,依据本ENDC的访问控制策略从该获知的所有ENDC中选择出与本ENDC互访的ENDC来建立虚拟转发通道,以通过该虚拟转发通道与该选择的ENDC进行互访。
在步骤302中,作为ENDC的ED在从ENDS获知已注册至该ENDS的其他所有ENDC后,还需要进一步依据本ENDC的访问控制策略确定是否与该ENDS建立虚拟转发通道。比如,若本ENDC的访问控制策略为:允许与所有站点网络互访,或者包含了允许与ENDS所处站点网络的互访的内容,则与该ENDS建立虚拟转发通道,以通过该建立的虚拟转发通道与ENDS互访,否则,禁止与该ENDS建立虚拟转发通道。
其中,基于步骤301描述的注册请求报文和应答报文,本步骤302中,从ENDS获知已注册至该ENDS的其他所有ENDC可为:从ENDS返回的应答报文中获知已注册至ENDS的其他所有ENDC。如此,可以得到上述依据本ENDC的访问控制策略确定是否与该ENDS建立虚拟转发通道是在接收到ENDS返回的应答报文后执行的。
至此,完成图3所示流程。
本发明中,ENDC的访问控制策略可根据组网需求配置,以达到访问控制目的。下面以图2所示的组网为例对图3所示流程进行描述:
假如图2中,ED1为ENDS,ED2、ED3为ENDC,其中,ED1的访问控制策略为:与所有站点网络互访,ED2的访问控制策略为:与除站点网络3之外的所有站点网络互访,ED3的访问控制策略为:仅与站点网络1互访。基于此,则以ED2为例,首先,ED2向ED1发送注册请求报文,该注册请求报文可携带ED1的IP地址和所处的站点网络标识;当ED1收到来自ED2的注册请求报文后返回应答报文给ED2,该应答报文中携带已注册至ED1的其他作为ENDC的ED比如ED3;ED2收到来自ED1返回的应答报文后,发现本ED2的访问控制策略为:与除站点网络3之外的所有站点网络互访,由于应答报文中的ED3属于站点网络3,因此,本ED2不与ED3建立虚拟转发通道,具体如图4所示。同理,ED3向ED1发送注册请求报文时,其处理流程与ED2类似,具体如图4所示。
优选地,由于ED1作为ENDS,ED2、ED3作为ENDC,当ED2或ED3在接收到ED1的应答报文后,可根据自身的访问控制策略决定是否与ED1建立虚拟转发通道。基于上面描述的ED2和ED3的访问控制策略,则可得到ED2、ED3都允许与ED1所处的站点网络互访,因此,ED2、ED3均分别与ED1建立虚拟转发通道,具体如图4所示。
从上面描述可以看出,通过本发明提供的方法,组网中所有站点网络之间并非像现有技术那样一刀切地建立全连接,而是完全从组网需求出发建立连接,比如,组网需求不允许站点网络2和站点网络3互访,如此,基于图3所示流程,则可以得到站点网络2和站点网络3之间没有虚拟转发通道,两者没有任何连接,具体如图4所示。
在两个ED之间建立了虚拟转发通道之后,该两个ED就可以通过该虚拟转发通道互访。以图4所示的ED1与ED2之间的虚拟转发通道为例,则该虚拟转发通道的一端(记为ED1)就可与另一端(记为ED2)进行互访,其中,该互访主要包括以下步骤:
步骤1,ED1与ED2之间通过建立的虚拟转发通道建立邻居关系。
本发明中,ED1与ED2之间的邻居关系可通过运行中间系统-中间系统(IS-IS)协议建立邻居关系,图5示出了邻居关系建立示意图。
如图5所示,ED1与ED2之间的邻居关系通过以下流程建立:
步骤501,ED1通过控制平面上的ISIS进程发送hello协议报文。
优选地,在步骤501中,ISIS进程在发送hello协议报文前可进一步执行以下操作:根据ED1的访问控制策略确定是否允许向ED2发送hello协议报文,如果是,则发送hello协议报文,否则,不发送hello协议报文。
其中,根据ED1的访问控制策略确定是否允许向ED2发送hello协议报文具体为:判断ED1的访问控制策略中是否包含运行与ED2所处站点网络互访的内容,如果是,则确定允许向ED2发送hello协议报文,否则,确定不允许向ED2发送hello协议报文。
步骤502,ED1对该hello协议报文进行封装,并从数据平面单播发送至ED2。
步骤503,ED2对接收的hello协议报文进行解封装,上送控制平面的ISIS进程。
步骤504,ISIS进程根据ED2的访问控制策略,确定是否接受该hello协议报文,在确定接受所述hello协议报文时,触发ED1与ED2之间的邻居关系建立。
本步骤504中,在确定接受所述hello协议报文时,触发ED1与ED2之间的邻居关系建立具体可为:ED2向ED1发送一个hello报文,此时该hello报文携带了ED1的信息,ED1收到hello报文时,发现该hello报文携带的信息为本设备的信息,则激活邻居即邻居UP,并再发送一个hello报文给ED2,此时该发送的hello报文携带了ED2的邻居信息,ED2收到hello报文时,发现该hello报文携带的信息为本设备的信息,则激活邻居即邻居UP,至此,ED1与ED2之间的邻居关系建立。
至此,通过上述步骤501至步骤504实现了步骤1中邻居关系的建立。
步骤2,ED1在学习到ED2发布的新MAC地址时,建立针对该新MAC地址的MAC转发表项,所述MAC转发表项包括:新MAC地址和本ED1上连接ED2的虚拟转发通道接口。
步骤3,ED1在学习到本地新MAC地址时,向ED2发布该新MAC地址,以由ED2按照步骤2中ED1的操作执行。
本步骤3中的本地新MAC地址为ED1所处站点中主机的MAC地址。
优选地,本发明中,步骤2或步骤3的MAC地址可按照IS-IS协议发布,仍以ED1向ED2发布MAC地址为例,则图6示出了MAC地址发布示意图。
如图6所示,该MAC地址发布流程可包括:
步骤601,ED1在VLAN100的内部接口学习到新MAC,则通过ISIS进程将该MAC地址携带在IS-IS协议中的LSP报文。
步骤602,ED1对该LSP报文进行封装并单播发送给ED2。
步骤603,ED2对接收的LSP报文进行解封装并交由控制平面ISIS进程处理。
步骤604,ED2中的ISIS进程学习LSP报文中的MAC地址,将本ED2与ED1之间的虚拟转发通道接口作为出接口,与该学习到的MAC地址一起组成MAC转发表项写入本地MAC转发表中。
至此,完成图6所示的流程。通过图6所示流程能够实现步骤2或步骤3中的MAC地址发布和MAC表项建立操作。
步骤4,ED1或ED2接收到数据帧时,从建立的MAC转发表项中找到包含该数据帧的目的MAC地址的MAC转发表项,利用该找到的MAC转发表项中的出接口转发该数据帧。
以ED1收到发往ED2中一主机的数据帧为例,则图7示出了数据帧处理流程:
如图7所示,该流程可包括:
步骤701,ED1收到数据帧之后,进行源MAC地址学习,并依据该数据帧的目的MAC地址从本地MAC表中查找到包含该数据帧的目的MAC地址的MAC转发表项。
步骤702,如果该找到的MAC转发表项中的出接口不是本地物理接口,而是ED1上的虚拟转发通道接口,则执行步骤703。
如果出接口为虚拟转发通道接口,则说明下一跳与ED1处于异地站点网络、且具有邻居关系。
步骤703,ED1将数据帧进行以下EVI报文封装:外层IP头中的源IP地址为虚拟转发通道接口承载的IP地址(即虚拟转发通道接口被指定的IP地址),目的IP地址是下一跳上虚拟转发通道接口被指定的IP地址。
步骤704,ED1将封装后的报文从找到的出接口发送到核心网,最终到达下一跳比如ED2。
步骤705,ED对接收的报文进行解封装。
步骤706,ED2根据解封装后得到的数据帧的目的MAC地址在本地MAC表查找得到出接口为本地接口,则从本地接口发送该以太帧,最终到达目的主机。
至此,完成图7所示的流程。通过图7实现了两个不同站点网络之间的互访。
需要说明的是,本发明中,组网中的站点网络并非固定不变,其完全可以根据组网需求进行增加或删减。
其中,如图8所示,当在图4所示的组网中增加新站点网络比图站点网络4时,该站点网络4中的ED4作为ENDC向组网中作为ENDS的ED发起注册,组网中作为ENDS的ED还用于接收该新站点网络中的ED作为ENDC发起的注册,并将已注册至本ENDS的所有ENDC告知给该发起注册的ENDC,以由该发起注册的ENDC依据本ENDC的访问控制策略从该获知的所有ENDC中选择出与本ENDC互访的ENDC来建立虚拟转发通道,以通过该建立的虚拟转发通道与该选择的ENDC进行互访,以及,由该发起注册的ENDC依据本ENDC的访问控制策略确定是否与ENDS建立虚拟转发通道,如果是,则与ENDS建立虚拟转发通道,以通过该建立的虚拟转发通道与ENDS互访,如果否,则禁止与ENDS建立虚拟转发通道进行互访。图8以站点网络4仅与站点网络1互访为例示出,其他情况原理类似。
同样,当删减站点网络时,组网中作为ENDS的ED还用于及时通知给已注册至本ENDS的其他所有ENDC,以由其他所有ENDC根据其访问控制策略动态更新其连接的虚拟转发通道,其中,该更新可为删除。
优选地,本发明中,作为ENDS的ED还用于定期向已注册至本ENDS的每一ENDC告知当前已注册至本ENDS的其他所有ENDC,以由该每一ENDC依据本ENDC的访问控制策略动态更新本ENDC与其他ENDC之间的虚拟转发通道,这里,所述更新包括:增加和删除。其中,作为ENDS的ED定期向已注册至本ENDS的每一ENDC告知当前已注册至本ENDS的其他所有ENDC可通过以下操作实现:由已注册至ENDS的每一ENDC定期向ENDC发送注册请求报文,ENDS返回针对该注册请求报文的应答报文,该应答报文携带当前已注册至ENDS的其他所有ENDC。
还需要说明的是,本发明中,每一ED上的访问控制策略并非固定不变,其也完全可以根据组网需求进行修改,其中,当每一ED的访问控制策略发生改变时,根据改变后的访问控制策略更新本ED与其他ED之间的虚拟转发通道,所述更新包括增加和删除。
以图8所示的组网为例,假如站点网络4中ED4的访问控制策略发生改变,比如从原来的允许访问站点网络1修改为不允许访问站点网络1,则ED4根据修改的访问策略删除之前已与站点网络1中ED1之间的虚拟转发通道,具体如图9所示
其中,在删除两个ED之间的虚拟转发通道时,也意味着该两个ED之间停止发布hello协议报文来维持邻居关系、以及停止向对端发布MAC地址。
至此,完成本发明提供的方法描述。
以上对本发明提供的方法进行了描述,下面对本发明提供的设备进行描述:
参见图10,图10为本发明实施例提供的ED结构图。如图10所示,当ED作为ENDS时,包括以下单元:
注册接收单元,用于接收作为邻居发现客户端ENDC的ED发起的注册;
ENDC告知单元,用于将已注册至本ENDS的其他所有ENDC告知给该发起注册的ENDC;
而当ED作为ENDC时包括以下单元:
注册单元,用于向作为ENDS的ED发起注册;
处理单元,用于从ENDS获知已注册至该ENDS的其他所有ENDC,依据本ENDC的访问控制策略从该获知的所有ENDC中选择出与本ENDC互访的ENDC来建立虚拟转发通道,以通过该建立的虚拟转发通道与该选择的ENDC进行互访。
优选地,所述处理单元进一步依据本ENDC的访问控制策略确定是否与ENDS建立虚拟转发通道,如果是,则与ENDS建立虚拟转发通道,以通过该建立的虚拟转发通道与ENDS互访,如果否,则禁止与ENDS建立虚拟转发通道进行互访。
优选地,所述注册接收单元进一步在增加新站点网络时,接收该新站点网络中的ED作为ENDC发起的注册;基于此,所述ENDC告知单元进一步将已注册至本ENDS的所有ENDC告知给该新站点网络中发起注册的ENDC。
本发明中,所述ENDC告知单元进一步定期向已注册至本ENDS的每一ENDC告知已注册至本ENDS的其他所有ENDC;
所述ED作为ENDC进一步包括第一更新单元和第二更新单元;
其中,所述第一更新单元用于接收ENDS定期告知的已注册至该ENDS的其他所有ENDC,并依据本ENDC的访问控制策略动态更新本ENDC与其他ENDC之间的虚拟转发通道,所述更新包括:增加和删除。
所述第二更新单元用于当本ENDC的访问控制策略发生改变时,根据改变后的访问控制策略更新本ENDC与其他ENDC之间的虚拟转发通道,所述更新包括增加和删除。
至此,完成图10所示的ED结构描述。
由以上技术方案可以看出,本发明中,组网中所有站点网络之间并非像现有技术那样一刀切地建立全连接,而是完全从组网需求出发建立连接,比如,组网需求不允许站点网络2和站点网络3互访,如此,就可以针对站点网络2中的ED配置不允许访问站点网络3的访问控制策略,这样,即使站点网络2中的ED从作为ENDS的ED中获知站点网络3中的ED,也不与该站点网络3中的ED建立虚拟转发通道,这实现了站点网络之间的访问控制。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。