一种访问控制方法及装置与流程

文档序号:12492690阅读:214来源:国知局
一种访问控制方法及装置与流程
本发明涉及通信控制领域,特别涉及一种访问控制方法及装置。
背景技术
:目前,EVPN(EthernetVPN)网络包含多个VXLAN(VirtualeXtensibleLAN,可扩展虚拟局域网络)子网络,如图1所示,每个VXLAN子网络中包含至少一个Spine设备和至少一个VTEP(VXLANTunnelEndPoint,VXLAN子网络隧道端点),这里,Spine设备是路由反射器,VTEP是VXLAN子网络的边缘设备,Spine设备和VTEP都能够建立IBGP(InternalBorderGatewayProtocol,内部边界网关协议)邻居列表,另外,每个VTEP至少与一个VM(VirtualMachine,虚拟机)通信连接。在构建EVPN网络时,同一EVPN网络内BGP(BorderGatewayProtocol,边界网关协议)AS(AutonomousSystem,自治系统)号相同,当与VM相连的VTEP获得该VM的MAC(MediumAccessControl,媒体访问控制)地址后,该VTEP通过BGP将获得的MAC地址变为MAC/IP(InternetProtocol,互联网协议)地址,并发送给其他VTEP,这样其他VTEP通信连接的VM就可以与该VM进行通信了。另外,VSI(VirtualSwitchingInstance,虚拟交换实例)下,RD(路由标识)和RT(扩展团体属性)都是自动生成的,并且同一VTEP内的每个VSI的RT都是一样的,因此,VTEP通信连接的所有VM的RT也是相同的,一个VTEP可以学习到该VTEP通信连接的其他VM的MAC地址,使得同一VTEP内的VM间可以相互通信。实际应用中,当网络中存在一些VM1是不允许其他VM2访问时,为了保证VM1中的信息的安全,需要在与VM2通信连接的VTEP中将VM1的MAC地址过滤掉,以此来禁止VM2访问VM1。现有技术中,常根据VM的IP前缀、团体属性、扩展团体属性等信息中的一种或多种,对VTEP中的MAC地址进行过滤,而IP前缀或团体属性或扩展团体属性对应的VM并不是唯一的,因此,可能会过滤掉其他能够被VM2访问的VM3的MAC地址,进而导致VM3不能被正常访问,并且若此时VM2仍然向VM1发送报文,与VM2通信连接的VTEP将会以广播的形式发送该报文,这样就会降低网络的稳定性。技术实现要素:本发明实施例的目的在于提供一种访问控制方法及装置,以准确控制虚拟机间的通信,提高网络的稳定性。为达到上述目的,本发明实施例公开了一种访问控制方法,应用于第一网络设备,所述方法包括:接收第一虚拟机发送的报文,其中,所述第一虚拟机与所述第一网络设备通信连接,所述报文中包含第二虚拟机的标识;根据所述第二虚拟机的标识与本地预先存储的针对虚拟机的访问级别信息,获得所述第二虚拟机的访问级别;根据所述第二虚拟机的访问级别,控制向所述第二虚拟机转发所述报文。在本发明的一种具体实现方式中,所述根据所述第二虚拟机的标识与本地预先存储的针对虚拟机的访问级别信息,获得所述第二虚拟机的访问级别,包括:根据所述第二虚拟机的标识,判断所述第二虚拟机是否与所述第一虚拟机位于同一子网络;若为是,则根据预先存储的虚拟机与访问级别的对应关系和所述第二虚拟机的标识,获得所述第二虚拟机的访问级别。在本发明的一种具体实现方式中,所述根据所述第二虚拟机的标识,判断所述第二虚拟机是否与所述第一虚拟机位于同一子网络,若为否,所述方法还包括:根据所述第二虚拟机的标识,获得所述第二虚拟机所属子网络的标识;根据预先存储的子网络与访问级别的对应关系,以及所述第二虚拟机所属子网络的标识,获得所述第二虚拟机的访问级别。在本发明的一种具体实现方式中,所述根据所述第二虚拟机的标识,判断所述第二虚拟机是否与所述第一虚拟机位于同一子网络,若为否,所述方法还包括:根据所述第二虚拟机的标识,获得所述第二虚拟机所属子网络的标识;根据预先存储的子网络、虚拟机与访问级别三者之间的对应关系,以及所述第二虚拟机的标识和所述第二虚拟机所属子网络的标识,获得所述第二虚拟机的访问级别。在本发明的一种具体实现方式中,所述方法还包括:发送更新报文,其中,所述更新报文,用于通知其他网络设备发送应答报文,所述应答报文包含与其他网络设备通信连接的虚拟机的标识;接收其他网络设备根据所述更新报文发送的所述应答报文;判断所述应答报文中包含的第三虚拟机的标识是否在预设的待更新信息中,其中,所述预设的待更新信息,为需要更新访问级别的虚拟机与其待更新访问级别的对应关系;若为是,则根据所述第三虚拟机的标识,从所述预设的待更新信息中获得待更新访问级别;根据所获得的待更新访问级别,更新预先存储的针对所述第三虚拟机的访问级别信息。为达到上述目的,本发明实施例还公开了一种访问控制装置,应用于第一网络设备,所述装置包括:报文接收模块、访问级别获得模块和转发控制模块;所述报文接收模块,用于接收第一虚拟机发送的报文,其中,所述第一虚拟机与所述第一网络设备通信连接,所述报文中包含第二虚拟机的标识;所述访问级别获得模块,用于根据所述第二虚拟机的标识与本地预先存储的针对虚拟机的访问级别信息,获得所述第二虚拟机的访问级别;所述转发控制模块,用于根据所述第二虚拟机的访问级别,控制向所述第二虚拟机转发所述报文。在本发明的一种具体实现方式中,所述访问级别获得模块,包括:子网络判断子模块和第一访问级别获得子模块;所述子网络判断子模块,用于根据所述第二虚拟机的标识,判断所述第二虚拟机是否与所述第一虚拟机位于同一子网络,若为是,则触发所述第一访问级别获得子模块;所述第一访问级别获得子模块,用于根据预先存储的虚拟机与其访问级别的对应关系和所述第二虚拟机的标识,获得所述第二虚拟机的访问级别。在本发明的一种具体实现方式中,所述访问级别获得模块,还包括:第一子网络标识获得子模块、第二访问级别获得子模块;所述第一子网络标识获得子模块,用于在所述子网络判断子模块判断结果为否的情况下,根据所述第二虚拟机的标识,获得所述第二虚拟机所属子网络的标识;所述第二访问级别获得子模块,用于根据预先存储的子网络与其访问级别的对应关系,以及所述第二虚拟机所属子网络的标识,获得所述第二虚拟机的访问级别。在本发明的一种具体实现方式中,其特征在于,所述访问级别获得模块,还包括:第二子网络标识获得子模块和第三访问级别获得子模块;所述第二子网络标识获得子模块,用于在所述子网络判断子模块判断结果为否的情况下,根据所述第二虚拟机的标识,获得所述第二虚拟机所属子网络的标识;所述第三访问级别获得子模块,用于根据预先存储的子网络、虚拟机与访问级别三者之间的对应关系,以及所述第二虚拟机的标识和所述第二虚拟机所属子网络的标识,获得所述第二虚拟机的访问级别。在本发明的一种具体实现方式中,所述装置还包括:更新报文发送模块、应答报文接收模块、标识判断模块、待更新访问级别获得模块和信息更新模块;所述更新报文发送模块,用于发送更新报文,其中,所述更新报文,用于通知其他网络设备发送应答报文,所述应答报文包含与其他网络设备通信连接的所有虚拟机的标识;所述应答报文接收模块,用于接收其他网络设备根据所述更新报文发送的所述应答报文;所述标识判断模块,用于判断所述应答报文中包含的第三虚拟机的标识是否在预设的待更新信息中,若为是,则触发所述待更新访问级别获得模块,其中,所述预设的待更新信息,为需要更新访问级别的虚拟机和其待更新访问级 别的对应关系;所述待更新访问级别获得模块,用于根据所述第三虚拟机的标识,从所述预设的待更新信息中获得待更新访问级别;所述信息更新模块,用于根据所获得待更新访问级别,更新预先存储的针对所述第三虚拟机的访问级别信息。由上可见,本发明实施例中,第一虚拟机需要与第二虚拟机进行通信时,第一虚拟机向与其通信连接的第一网络设备发送报文,该第一网络设备接收到该报文后,根据该报文中包含的第二虚拟机的标识和该第一网络设备中预先存储的针对虚拟机的访问级别信息,获得第二虚拟机的访问级别,根据获得的访问级别中的访问优先级向第二虚拟机转发该报文。本申请中,第一网络设备通过根据虚拟机的标识确定虚拟机的访问级别的方法,来控制虚拟机间的通信,由于虚拟机的标识和虚拟机是一一对应的,因此第一网络设备能够准确控制虚拟机间的通信,进一步的,本申请中第一网络设备未删除记录的虚拟机的MAC地址,因此,第一网络设备不会因自身未存储虚拟机的MAC地址而导致第一网络设备将从虚拟机接收的报文以广播的形式发送,因此提高了网络的稳定性。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为EVPN网络结构示意图;图2为本发明实施例提供的一种访问控制方法的流程示意图;图3为本发明实施例提供的一种访问级别的更新方法的流程示意图;图4为本发明实施例提供的另一种访问控制方法的流程示意图;图5为包含多个子网络的EVPN网络结构示意图;图6为本发明实施例提供的另一种访问控制方法的流程示意图;图7为本发明实施例提供的一种访问控制装置的结构示意图;图8为本发明实施例提供的一种访问级别的更新装置的结构示意图;图9为本发明实施例提供的另一种访问控制装置的结构示意图;图10为本发明实施例提供的另一种访问控制装置的结构示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。下面通过具体实施例,对本发明进行详细说明。参考图2,图2为本发明实施例提供的一种访问控制方法的流程示意图,应用于第一网络设备,该方法可以包括如下步骤:S201:接收第一虚拟机发送的报文;其中,第一虚拟机与第一网络设备通信连接,报文中包含第二虚拟机的标识。这里,第二虚拟机的标识为能够唯一表示第二虚拟机的标识,这样,当第一虚拟机想要向第二虚拟机发送报文时,第一网络设备就不会将报文转发给错误的第三虚拟机;或当第一虚拟机想要向第三虚拟机发送报文时,由于第三虚拟机的标识与第二虚拟机的标识相同,第一网络设备中存储的第二虚拟机的访问级别为拒绝被访问的级别,而导致第三虚拟机不能接收到该报文。实际应用中,上述第一网络设备可以为VTEP,每一虚拟机均与一台VTEP通信连接,而一台VTEP可以与多个虚拟机通信连接,多个虚拟机可以属于同一子网络(即相同VXLAN网络),或者多个虚拟机也可以属于不同子网络(即不同VXLAN网络)。在虚拟机与第一网络设备通信连接后,第一网络设备可以学习到与其通信连接的各个虚拟机的MAC地址,并且第一网络设备可以通过Spine设备(路由反射器)与其他网络设备建立IBGP邻居学习到同一子网络内与其他网络设备通信连接的虚拟机的MAC地址。另外,第一网络设备还可以通过IP网络,学习到不同子网络内与其他网络设备通信连接的虚拟机的MAC地址,这样与第一网络设备通信连接的虚拟机就可以通过第一网络设备和与其他网络设备通信连接的虚拟机进行通信。当然,上述第一网络设备还可以是其他具有网络连接功能的设备,本申请并不对此进行限定。S202:根据所述第二虚拟机的标识与本地预先存储的针对虚拟机的访问级别信息,获得所述第二虚拟机的访问级别;具体地,上述访问级别用于表示第二虚拟机是否能够被访问,进一步的,在第二虚拟机能够被访问的情况下,访问级别还可以包括该第二虚拟机的被访问优先级,进一步的,可以设置被访问优先级为高优先级的优先被访问。例如,若第二虚拟机VM1的访问级别为drop,则表示第二虚拟机VM1拒绝被访问,也就是说,第一网络设备应将向第二虚拟机VM1发送的报文丢弃掉;若第二虚拟机VM1的访问级别为允许被访问,且对应的被访问优先级为最高优先级,则第一网络设备接收到报文后优先向第二虚拟机VM1发送该报文。优选的,上述访问级别还可以分为0、1、2、3……n级等多个访问等级,其中,访问级别为0,表示拒绝访问第二虚拟机;访问级别不为0,表示访问第二虚拟机顺序,其中,访问等级的数值越大,访问等级越高,相应的访问优先级越高。在本申请的一种具体实现方式中,第二虚拟机的访问级别可以通过以下方式获得:方式A、用户根据网络中第二虚拟机的被访问需求,预先配置在第一网络设备中的;方式B、第一网络设备根据第一虚拟机对应第二虚拟机的访问次数,来获得第二虚拟机的访问级别,例如,第一虚拟机访问第二虚拟机的访问次数越多,则第二虚拟机的访问级别越高。在本申请的一种具体实现方式中,在EVPN网络中,针对第二虚拟机的访问级别信息可以存储在VTEP中,这样便于每一VTEP获得第二虚拟机的访问级别;另外,针对第二虚拟机的访问级别信息也可以存储在与VTEP通信连接的路由反射器中,此时,一个路由反射器可以与多个VTEP通信连接,多个VTEP可以共用同一个路由反射器中针对第二虚拟机的访问级别信息,节约了VTEP中的内存空间。需要说明的是,第一网络设备中的访问级别可以包括以下几种形式:1、访问级别为针对第二虚拟机的访问级别,如:第二虚拟机VM1的访问级别为drop,只要第一网络设备接收到的报文中包含的第二虚拟的标识为VM1的标识,就会获得VM1的访问级别为drop;2、访问级别为针对第一虚拟机和第二虚拟机的访问级别,如:该访问级别为针对第一虚拟机VM2和第二虚拟机VM1,具体为第一虚拟机VM2访问第二虚拟机VM1时的访问级别为drop,则当第一网络设备接收到VM2向VM1发送的报文(即VM2访问VM1)时,第一网络设备将VM2向VM1发送的报文丢弃,当第一网络设备接收到与其通信连接的其它虚拟机(所述其它虚拟机为与第一网络设备通信连接的虚拟机,并且不包括第一虚拟机)向VM1发送报文时,由于第一网络设备中的访问级别不包括其它虚拟机访问第二虚拟机VM1的访问级别为drop,因此第一网络设备不丢弃其它虚拟机向第二虚拟机VM1发送的报文;3、当EVPN网络中包含不同子网络时,访问级别还可以为针对子网络的访问级别,此时,可以将子网络的访问级别作为该子网络内所有虚拟机的访问级别。第一网络设备存储了针对虚拟机的访问级别后,就可以根据第二虚拟机的标识直接获得第二虚拟机的访问级别;另外,当EVPN网络中包含不同子网络时,第一网络设备还可以根据第二虚拟机的标识获得第二虚拟机所属子网络的标识,根据该子网络的标识获得第二虚拟机的访问级别。实际应用中,每一虚拟机的访问级别都是可能会变的,因此,本发明提供了一种访问级别的更新方法,参考图3,图3为本发明实施例提供的一种访问级别的更新方法的流程示意图,该方法可以包括:S301:发送更新报文;其中,更新报文,用于通知其他网络设备发送应答报文,应答报文包含与其他网络设备通信连接的虚拟机的标识。具体地,发送更新报文,可以为:第一网络设备定时地发送更新报文,以保证网络中的第三虚拟机的访问级别都是最新的、可靠的;另外,第一网络设备还可以在接收到更新指令时发送更新报文。上述发送更新报文在第一网络设 备中未存储或已存储第三虚拟机的标识的情况下均适用。上述更新指令可以为:当第一网络设备上的第三虚拟机的访问级别发生变化时,该第一网络设备就可以认为接收到了更新指令。这里,第三虚拟机为与第一网络设备通信连接的虚拟机中的任一虚拟机。S302:接收其他网络设备根据所述更新报文发送的所述应答报文;实际应用中,更新第三虚拟机的访问级别的过程可以称为路由策略应用。当EVPN网络中第一网络设备上的第三虚拟机的访问级别发生变化时,该第一网络设备会通过BGP向外发送更新报文(如:refresh报文),接收到该更新报文的其他网络设备向该第一网络设备发送应答报文(如:BGPUPDATE报文),该应答报文中包含与其他网络设备通信连接的第三虚拟机的标识,以重新应用路由策略,更新该第三虚拟机在第一网络设备上的访问级别。S303:判断所述应答报文中包含的第三虚拟机的标识是否在预设的待更新信息中,若为是,则执行步骤S304;其中,预设的待更新信息,为需要更新访问级别的虚拟机和其待更新访问级别的对应关系。在本申请的一种具体实现方式中,所述待更新信息存储于待更新信息表中,管理人员将需要更新访问级别的虚拟机的标识及该虚拟机的待更新访问级别对应的写入预设的待更新信息表,因为第一网络设备中会存储有很多虚拟机及与这些虚拟机对应的访问级别的对应关系,管理人员直接修改对应虚拟机的访问级别十分的不方便,若预先将需要更新第三虚拟机和其待更新访问级别的对应关系存储至待更新信息表中,根据该待更新信息表中存储的信息更新第三虚拟机的访问级别,就不必管理人员直接从众多的虚拟机与其访问级别的对应关系中获得第三虚拟机的的访问级别,操作更为方便。S304:根据所述第三虚拟机的标识,从所述预设的待更新信息中获得待更新访问级别;S305:根据所获得的待更新访问级别,更新预先存储的针对所述第三虚拟机的访问级别信息。实际应用中,当EVPN网络中包含不同子网络时,第一网络设备中可存储子 网络与访问级别间的对应关系,或子网络、虚拟机与访问级别三者间的对应关系等访问级别信息,这种情况下,第一网络设备可以根据第三虚拟机的标识获得该第三虚拟机所属子网络的标识,结合所获得的待更新访问级别,更新对应的访问级别信息。在本发明的一种具体实现方式中,若应答报文中包含的第三虚拟机的标识与预设的待更新信息中需要更新访问级别的虚拟机的标识不一样,则不更新针对该第三虚拟机的访问级别信息。另外,若待更新信息中需要更新访问级别的待更新虚拟机的标识对应的访问级别信息未成功更新,还可以生成提示信息,并输出该提示信息,告知用户待更新信息中需要更新访问级别的待更新虚拟机的标识对应的访问级别信息更新不成功,以便用户及时更改待更新信息中需要更新访问级别的该待更新虚拟机的标识,更新针对该待更新虚拟机的的访问级别信息,进而控制对该待更新虚拟机的访问,以保证虚拟机间的正常通信,例如:待更新虚拟机是不允许第一虚拟机访问的,若在待更新信息中将待更新虚拟机的标识书写错误,不能更新该待更新虚拟机的访问级别,则第一虚拟机会继续访问待更新虚拟机,这将会导致待更新虚拟机的信息泄露,不利于待更新虚拟机的信息安全,另外,假设需将待更新虚拟机不允许第一虚拟机访问的访问级别修改为允许第一虚拟机访问,若在待更新信息表中将该待更新虚拟机的标识书写错误,不能更新该待更新虚拟机的访问级别,则第一虚拟机会继续不能访问该待更新虚拟机,从而导致第一虚拟机不能正常工作。S203:根据所述第二虚拟机的访问级别,控制向所述第二虚拟机转发所述报文。当访问级别为拒绝访问的级别时,拒绝向第二虚拟机转发报文,其中,拒绝访问的级别用于表示第二虚拟机拒绝被访问;当访问级别为优先访问的级别时,按照优先顺序向第二虚拟机转发报文,其中,优先访问的级别用于表示第二虚拟机被访问顺序,例如,按照优先访问的级别控制向所述第二虚拟机转发所述报文,当优先访问的级别为0时,拒绝向第二虚拟机转发报文;当访问级别不为0时,按照优先访问的级别顺序访问第二虚拟机。应用图2所示实施例,第一虚拟机需要与第二虚拟机进行通信时,第一虚拟 机向与其通信连接的第一网络设备发送报文,该第一网络设备接收到该报文后,根据该报文中包含的第二虚拟机的标识和该第一网络设备中预先存储的针对虚拟机的访问级别信息,获得第二虚拟机的访问级别,根据获得的访问级别中的访问优先级向第二虚拟机转发该报文。本申请中,第一网络设备通过根据虚拟机的标识确定虚拟机的访问级别的方法,来控制虚拟机间的通信,由于虚拟机的标识和虚拟机是一一对应的,因此第一网络设备能够准确控制虚拟机间的通信,进一步的,本申请中第一网络设备未删除记录的虚拟机的MAC地址,因此,第一网络设备不会因自身未存储虚拟机的MAC地址而导致第一网络设备将从虚拟机接收的报文以广播的形式发送,因此提高了网络的稳定性。参考图4,图4为本发明实施例提供的另一种访问控制方法的流程示意图,应用于第一网络设备,该方法中,步骤S202具体包括:S2021:根据所述第二虚拟机的标识,判断所述第二虚拟机是否与所述第一虚拟机位于同一子网络,若为是,执行步骤S2022,若为否,执行步骤S2023;实际应用中,若第一虚拟机与第二虚拟机在同一子网络中,两个虚拟机间的数据访问,通过二层转发网络;若第一虚拟机与第二虚拟机不在同一子网络中,两个虚拟机间的数据访问,通过三层转发网络,二层转发网络和三层转发网络在转发报文时是不同的,因此需要判断两个虚拟机是否在同一子网络中。S2022:根据预先存储的虚拟机与其访问级别的对应关系和所述第二虚拟机的标识,获得所述第二虚拟机的访问级别。当然,需要强调的是,第一网络设备可以在不执行步骤S2021的情况下,直接根据第二虚拟机的标识,从预先存储的虚拟机与其访问级别的对应关系中获得第二虚拟机的访问级别。实际应用中,在同一子网络中,第一网络设备根据转发信息表中的信息进行虚拟机间报文的转发,为了便于第一网络设备获得第二虚拟机的访问级别,可以将第二虚拟机与其访问级别的对应关系存储在该转发信息表中,这样,第一网络设备可以从该转发信息表中快速地获得第二虚拟机对应的访问级别。这里,转发信息表,用于存储网络中各个虚拟机间通信的MAC地址、虚拟机的名称等信息。若当前有一EVPN网络,该EVPN网络中包括一个Spine设备(路由反射器), 该Spine设备与3个VTEP通信连接,分别为VTEP1、VTEP2和VTEP3,其中,VTEP1与VM1通信连接,VTEP2与VM2通信连接,VTEP3与VM3通信连接,该3个VM属于同一子网络中,每一VTEP都可以学习到这3个VM的MAC地址,这3个VM的名称与其MAC地址的对应关系如表1所示。表1虚拟机的名称MAC地址VM1MAC1VM2MAC2VM3MAC3在本申请的一种具体实现方式中,预先存储的虚拟机与其访问级别的对应关系可以为第二虚拟机的MAC地址/名称与其访问级别的对应关系,第一网络设备根据第二虚拟机的MAC地址/名称,结合上述表1中存储的内容,获得第二虚拟机的访问级别。S2023:根据所述第二虚拟机的标识,获得所述第二虚拟机所属子网络的标识;S2024:根据预先存储的子网络与访问级别的对应关系,以及所述第二虚拟机所属子网络的标识,获得所述第二虚拟机的访问级别。实际应用中,一个子网络中会包含多个虚拟机,若每个虚拟机的访问级别都是相同的,如:全部都是拒绝被访问,此时,只需要在第一网络设备中设置一个子网络的访问级别就好了,获得该子网络的访问级别,就可以将该获得的访问级别作为在该子网络中任一虚拟机的访问级别,这样可以节约第一网络设备中内存空间。优选的,子网络和其访问级别的对应关系可以预先存储在转发信息中,这样,第一网络设备可以从该转发信息中快速地获得第二虚拟机所属子网络的访问级别。当然,子网络和其访问级别的对应关系也可以存储在其他表中,本申请对此不进行限定。需要一提的是,获得了第二虚拟机所属子网络的访问级别就可以直接将该访问级别确定为该第二虚拟机的访问级别。假设,在一个IT公司中有3个部门,测试部、市场部和开发部,如图5所示,由图5可知,VTEP1的VNI(VXLANNetworkIdentifier,VXLAN网络标识符)为10,VTEP2的VNI为30,VTEP3的VNI为20,不同子网络间VM的通信需要把VTEP当作一个网关,在EVPN网络中,VTEP之间建立BGP邻居,VTEP通过ARP学习到与该VTEP通信连接的VM的MAC地址,再通过BGP向其他VTEP的BGP邻居发送MAC/IP路由,各个VTEP学习到各个VM的MAC地址,在该公司内,开发部的各个虚拟机上的信息都比较重要,不允许其他部门的虚拟机访问,因此,VTEP2所属子网络的访问级别设置为drop,并存储VNI30与drop的对应关系,当市场部或测试部的任一虚拟机访问开发部的任一虚拟机时,假设,VTEP3(第一网络设备)中的VM1(第一虚拟机)向VTEP2中的VM4(第二虚拟机)发送报文,VTEP3获得VM4所在子网络的网络标识VNI为30,从预先存储的子网络的标识和其访问级别的对应关系中获得该VNI30的访问级别为drop,则确定VM4的访问级别为drop,丢弃该报文。应用图4所示实施例,第一网络设备中根据子网络的标识、第二虚拟机的标识,以及预先存储的针对第二虚拟机的访问级别信息,获得同一子网络中或不同子网络中第二第二虚拟机的访问级别,进而控制第一虚拟机对第二虚拟机的访问。由于子网络的标识和第二虚拟机的标识可以唯一确定出一个第二虚拟机,因此第一网络设备能够准确控制虚拟机间的通信,进一步的,本申请中第一网络设备未删除记录的虚拟机的MAC地址,因此,第一网络设备不会因自身未存储虚拟机的MAC地址而导致第一网络设备将从虚拟机接收的报文以广播的形式在不同子网络间和/或同一子网络中发送,因此提高了整个网络的稳定性。参考图6,图6为本发明实施例提供的另一种访问控制方法的流程示意图,应用于第一网络设备,该方法中,若步骤S2021中根据所述第二虚拟机的标识,得到所述第二虚拟机不与所述第一虚拟机位于同一子网络,则还可以执行步骤S2025;S2025:根据所述第二虚拟机的标识,获得所述第二虚拟机所属子网络的标识;实际应用中,步骤S2025所产生的技术效果和步骤S2023相同,此处不再赘述。S2026:根据预先存储的子网络、虚拟机与访问级别三者之间的对应关系,以及所述第二虚拟机的标识和所述第二虚拟机所属子网络的标识,获得所述第二虚拟机的访问级别。这种情况下,若要确定虚拟机的访问级别,需要报文中包含的第二虚拟机的标识、根据第二虚拟机的标识获得的子网络的标识两者,都与预先存储的子网络、虚拟机以及虚拟机的访问级别三者之间的对应关系中的虚拟机和子网络匹配,才能获得该第二虚拟机的访问级别。优选的,子网络、虚拟机以及虚拟机的访问级别三者之间的对应关系可以预先存储在第三设访问信息表,这样,第一网络设备可以从该第三设访问信息表中快速地获得虚拟机的访问级别。实际应用中,一个子网络中并不是每个虚拟机的访问级别都是相同的。为了确保不同子网络中虚拟机间的正常通信,需要针对每一子网络中的每一虚拟机设置一个访问级别。如图5中所示,若仅开发部的codeServer(可以包含多个虚拟机)上存储有重要信息,则只需要禁止其他两个部门的VM访问codeServer即可,也就是说在VTEP1和VTEP3上设置该codeServer的访问级别为drop,也就是在VTEP1和VTEP3均存储VNI30、codeServer的物理地址MAC5和drop三者之间的对应关系,假设,VM1(第一虚拟机)向codeServer(第二虚拟机)发送报文,则VTEP3(第一网络设备)根据报文中包含的codeServer的标识获得codeServer所在子网络的网络标识VNI为30和codeServer的物理地址MAC5,根据所获得子VNI30和codeServer的物理地址MAC5,确定codeServer的访问级别为drop,则丢弃该报文。应用图6所示实施例,第一网络设备同时根据子网络的标识、第二虚拟机的标识来获得第二虚拟机的访问级别,由此来确定的第二虚拟机的访问级别比单独根据子网络的标识或第二虚拟机的标识来确定第二虚拟机的访问级别更为准确。参考图7,图7为本发明实施例提供的一种访问控制装置的结构示意图,应用于第一网络设备,该装置可以包括:报文接收模块701、访问级别获得模块702和转发控制模块703;其中,报文接收模块701,用于接收第一虚拟机发送的报文,其中,第一虚 拟机与第一网络设备通信连接,报文中包含第二虚拟机的标识;访问级别获得模块702,用于根据第二虚拟机的标识与本地预先存储的针对虚拟机的访问级别信息,获得第二虚拟机的访问级别;转发控制模块703,用于根据第二虚拟机的访问级别,控制向第二虚拟机转发报文。实际应用中,每一虚拟机的访问级别都是可能会变的,因此,本申请提供了一种访问级别的更新装置,参考图8,图8为本发明实施例提供的一种访问级别的更新装置的结构示意图,该装置可以包括:更新报文发送模块801、应答报文接收模块802、标识判断模块803、待更新访问级别获得模块804和信息更新模块805;其中,更新报文发送模块801,用于发送更新报文,其中,更新报文,用于通知其他网络设备发送应答报文,应答报文包含与其他网络设备通信连接的虚拟机的标识;应答报文接收模块802,用于接收其他网络设备根据更新报文发送的应答报文;标识判断模块803,用于判断应答报文中包含的第三虚拟机的标识是否在预设的待更新信息中,若为是,则触发待更新访问级别获得模块804,其中,预设的待更新信息,为需要更新访问级别的虚拟机和其待更新访问级别的对应关系;待更新访问级别获得模块804,用于根据第三虚拟机的标识,从预设的待更新信息中获得待更新访问级别;信息更新模块805,用于根据所获得待更新访问级别,更新预先存储的针对所述第三虚拟机的访问级别信息。应用图7所示实施例,第一虚拟机需要与第二虚拟机进行通信时,第一虚拟机向与其通信连接的第一网络设备发送报文,该第一网络设备接收到该报文后,根据该报文中包含的第二虚拟机的标识和该第一网络设备中预先存储的针对虚拟机的访问级别信息,获得第二虚拟机的访问级别,根据获得的访问级别中的访问优先级向第二虚拟机转发该报文。本申请中,第一网络设备通过根据虚拟机的标识确定虚拟机的访问级别的方法,来控制虚拟机间的通信,由于虚拟机 的标识和虚拟机是一一对应的,因此第一网络设备能够准确控制虚拟机间的通信,进一步的,本申请中第一网络设备未删除记录的虚拟机的MAC地址,因此,第一网络设备不会因自身未存储虚拟机的MAC地址而导致第一网络设备将从虚拟机接收的报文以广播的形式发送,因此提高了网络的稳定性。参考图9,图9为本发明实施例提供的另一种访问控制装置的结构示意图,应用于第一网络设备,该装置中,访问级别获得模块702,包括:子网络判断子模块7021、第一访问级别获得子模块7022、第一子网络标识获得子模块7023、第二访问级别获得子模块7024;其中,子网络判断子模块7021,用于根据第二虚拟机的标识,判断第二虚拟机是否与第一虚拟机位于同一子网络,若为是,则触发第一访问级别获得子模块7022,若为否,则触发第一子网络标识获得子模块7023;第一访问级别获得子模块7022,用于根据预先存储的虚拟机与其访问级别的对应关系和第二虚拟机的标识,获得第二虚拟机的访问级别;第一子网络标识获得子模块7023,用于在子网络判断子模块7021判断结果为否的情况下,根据第二虚拟机的标识,获得第二虚拟机所属子网络的标识;第二访问级别获得子模块7024,用于根据预先存储的子网络与访问级别的对应关系,以及所述第二虚拟机所属子网络的标识,获得所述第二虚拟机的访问级别。应用图9所示实施例,第一网络设备中根据子网络的标识、第二虚拟机的标识,以及预先存储的针对第二虚拟机的访问级别信息,获得同一子网络中或不同子网络中第二第二虚拟机的访问级别,进而控制第一虚拟机对第二虚拟机的访问。由于子网络的标识和第二虚拟机的标识可以唯一确定出一个第二虚拟机,因此第一网络设备能够准确控制虚拟机间的通信,进一步的,本申请中第一网络设备未删除记录的虚拟机的MAC地址,因此,第一网络设备不会因自身未存储虚拟机的MAC地址而导致第一网络设备将从虚拟机接收的报文以广播的形式在不同子网络间和/或同一子网络中发送,因此提高了整个网络的稳定性。参考图10,图10为本发明实施例提供的另一种访问控制装置的结构示意图,应用于第一网络设备,该装置中,访问级别获得模块702,还可以包括:第二子网络标识获得子模块7025和第三访问级别获得子模块7026;其中,第二子网络标识获得子模块7025,用于在子网络判断子模块7021判断结果为否的情况下,根据第二虚拟机的标识,获得第二虚拟机所属子网络的标识;第三访问级别获得子模块7026,用于根据预先存储的子网络、虚拟机与访问级别三者之间的对应关系,以及第二虚拟机的标识和第二虚拟机所属子网络的标识,获得第二虚拟机的访问级别。应用图10所示实施例,第一网络设备同时根据子网络的标识、第二虚拟机的标识来获得第二虚拟机的访问级别,由此来确定的第二虚拟机的访问级别比单独根据子网络的标识或第二虚拟机的标识来确定第二虚拟机的访问级别更为准确。对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本领域普通技术人员可以理解实现上述方法实施方式中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,所述的程序可以存储于计算机可读取存储介质中,这里所称得的存储介质,如:ROM/RAM、磁碟、光盘等。以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1