本发明涉及计算机应用
技术领域:
,特别是涉及一种arp请求抑制系统、方法、设备及存储介质。
背景技术:
:随着计算机技术的快速发展,虚拟化网络的应用范围越来越广泛。在虚拟化网络环境中,当一个虚拟机要和另一个虚拟机进行通信时,如果没有对方的mac(mediaaccesscontrol,媒体访问控制)地址,则需要先通过arp(addressresolutionprotocol,地址解析协议)请求的广播获取对方的mac地址。由于vxlan(virtualextensiblelan,可扩展虚拟局域网)网络规模较大,大量广播将产生较多流量,浪费较多带宽。从而使得如何抑制arp请求的问题得到越来越多的关注。目前,是基于sdn(networkdefinedsoftware,软定义网络)框架实现vxlan的arp请求抑制。即由sdn控制器收集整个网络拓扑信息,当某个虚拟机有arp请求时,将转发面的arp请求上报给控制面的sdn控制器,sdn控制器根据收集的整个网络拓扑信息,自动代答arp请求给转发面的该虚拟机,不需要进行arp广播。这种方法存在一定的缺点,所有的arp请求都会由转发面发往控制面,arp应答都会由控制面下发到转发面,当arp请求数量较多时,容易造成转发面和控制面通道拥塞,导致响应速度过慢,影响vxlan网络的正常工作。技术实现要素:本发明的目的是提供一种arp请求抑制系统、方法、设备及存储介质,以有效进行arp请求抑制,提高响应速度。为解决上述技术问题,本发明提供如下技术方案:一种arp请求抑制系统,包括部署在第一数据中心的转发面中的arp抑制器和多个虚拟交换机、部署在所述第一数据中心的控制面中的sdn控制器,每个虚拟交换机分别对应一个或多个虚拟机;其中,所述sdn控制器,用于在获得虚拟机配置信息表后,将所述虚拟机配置信息表发送给所述arp抑制器;所述多个虚拟交换机中的第一虚拟交换机,用于根据接收到的第一虚拟机的arp请求报文,生成arp请求消息;将所述arp请求消息发送给所述arp抑制器;在接收到所述arp抑制器返回的arp应答消息时,将所述arp应答消息转发给所述第一虚拟机;所述arp抑制器,用于根据接收到的所述arp请求消息,确定所述第一虚拟机要访问的第二虚拟机;在所述虚拟机配置信息表中查询所述第二虚拟机的映射表项,并生成所述arp应答消息;将所述arp应答消息发送给所述第一虚拟交换机。在本发明的一种具体实施方式中,所述第一虚拟交换机,还用于在接收到所述arp抑制器返回的arp应答消息时,根据所述arp应答消息,更新自身的第一配置信息表。在本发明的一种具体实施方式中,所述第一虚拟交换机,还用于在接收到所述第一虚拟机的arp请求报文时,在所述第一配置信息表中查询是否存在所述第二虚拟机的映射表项,如果否,则执行所述生成arp请求消息的步骤。在本发明的一种具体实施方式中,所述第一虚拟交换机,还用于在确定所述第一配置信息表中存在所述第二虚拟机的映射表项时,生成arp应答报文,返回给所述第一虚拟机。在本发明的一种具体实施方式中,还包括所述arp抑制器的至少一个备用抑制器,所述arp抑制器与每个所述备用抑制器中的信息同步;所述sdn控制器,还用于在监测到所述arp抑制器发生故障时,选择一个所述备用抑制器,接替所述arp抑制器的工作,并通知所述第一数据中心的所有虚拟交换机。在本发明的一种具体实施方式中,还包括部署在所述第一数据中心的控制面中的虚拟专用设备,所述第一数据中心通过所述虚拟专用设备与至少一个第二数据中心相连,所述第一数据中心和每个所述第二数据中心的结构相同;所述sdn控制器,还用于通过所述虚拟专用设备获得每个所述第二数据中心的虚拟机配置信息,基于获得的虚拟机配置信息,更新所述虚拟机配置信息表,并将更新后的所述虚拟机配置信息表发送给所述arp抑制器。一种arp请求抑制方法,应用于部署在第一数据中心的转发面中的arp抑制器,所述第一数据中心的转发面中还部署有多个虚拟交换机,每个虚拟交换机分别对应一个或多个虚拟机,所述arp抑制器预先获得部署在所述第一数据中心的控制面中的sdn控制器发送的虚拟机配置信息表;所述方法包括:接收第一虚拟交换机发送的arp请求消息,所述arp请求消息为所述第一虚拟交换机根据接收到的第一虚拟机的arp请求报文生成的;根据所述arp请求消息,确定所述第一虚拟机要访问的第二虚拟机;在所述虚拟机配置信息表中查询所述第二虚拟机的映射表项,并生成arp应答消息;将所述arp应答消息发送给所述第一虚拟交换机,以通过所述第一虚拟交换机模拟所述第二虚拟机将所述arp应答消息转发给所述第一虚拟机。在本发明的一种具体实施方式中,还包括:接收所述sdn控制器发送的其他数据中心的虚拟机配置信息,并更新自身保存的所述虚拟机配置信息表。一种arp请求抑制设备,应用于部署在第一数据中心的转发面中的arp抑制器,所述第一数据中心的转发面中还部署有多个虚拟交换机,每个虚拟交换机分别对应一个或多个虚拟机,所述arp抑制器预先获得部署在所述第一数据中心的控制面中的sdn控制器发送的虚拟机配置信息表;包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序时实现上述arp请求抑制方法的步骤。一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述arp请求抑制方法的步骤。应用本发明实施例所提供的技术方案,将arp抑制器部署在数据中心的转发面中,将sdn控制器部署在数据中心的控制面中,sdn控制器获得虚拟机配置信息表后将其发送给arp抑制器,arp抑制器在接收到任意一个虚拟交换机发送的arp请求消息时,确定该arp请求消息对应的第一虚拟机要访问的第二虚拟机,在虚拟机配置信息表中查询第二虚拟机的映射表项,生成arp应答消息,通过虚拟交换机返回给第一虚拟机,以使第一虚拟机获得第二虚拟机的mac地址,以基于该mac地址向第二虚拟机发送报文。arp请求消息和arp应答消息都是在数据中心的转发面完成,可以有效进行arp请求抑制,消息的传送不需要经过转发面和控制面的通道,可以避免造成转发面和控制面通道的拥塞,可以提高响应速度,避免影响vxlan网络的正常工作。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本发明实施例中一种arp请求抑制系统的结构示意图;图2为本发明实施例中一种arp请求抑制系统跨集群结构示意图;图3为本发明实施例中一种arp请求抑制方法的实施流程图;图4为本发明实施例中一种arp请求抑制设备的结构示意图。具体实施方式为了使本
技术领域:
的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。参见图1所示,为本发明实施例所提供的一种arp请求抑制系统的结构示意图,该系统包括部署于第一数据中心的转发面中的arp抑制器110和多个虚拟交换机、部署在第一数据中心的控制面中的sdn控制器120,每个虚拟交换机分别对应一个或多个虚拟机。如图1中,虚拟交换机1对应虚拟机1,虚拟交换机2对应虚拟机2和虚拟机3。其中,sdn控制器120,用于在获得虚拟机配置信息表后,将虚拟机配置信息表发送给arp抑制器110;多个虚拟交换机中的第一虚拟交换机,用于根据接收到的第一虚拟机的arp请求报文,生成arp请求消息;将arp请求消息发送给arp抑制器110;在接收到arp抑制器110返回的arp应答消息时,将arp应答消息转发给第一虚拟机;arp抑制器110,用于根据接收到的arp请求消息,确定第一虚拟机要访问的第二虚拟机;在虚拟机配置信息表中查询第二虚拟机的映射表项,并生成arp应答消息;将arp应答消息发送给第一虚拟交换机。在本发明实施例中,第一数据中心可以是指待进行arp请求抑制的任意一个数据中心。一个数据中心可以包括转发面和控制面,转发面也即数据面。arp抑制器部署在数据中心的转发面中,sdn控制器部署在数据中心的控制面中,sdn控制器和arp抑制器之间可以使用设定的通信协议通信。数据中心的虚拟交换机处于转发面中,一个数据中心可以部署有多个虚拟交换机,每个虚拟交换机分别对应一个或多个虚拟机。数据中心的虚拟交换机具体可以是分布式虚拟交换机(dvswitch)。sdn控制器和arp抑制器之间使用的通信协议可以是netconf(networkconfigurationprotocol,网络配置协议)、ovsdb(openvswitchdatabase,开放虚拟交换机数据库)或openflow协议等,根据不同设备可以支持不同协议。在实际应用中,可以通过restapi(rest风格的网络接口,rest描述的是网络中客户端client和服务器server的一种交互形式)接口静态配置虚拟机相关信息,得到虚拟机配置信息表,也即为fdb(forwardingdatabase,转发数据库)表,将虚拟机配置信息表下发给sdn控制器。虚拟机配置信息表中包含数据中心的每个虚拟机的映射表项,如表1所示:vtep1vxlan1vlan1ip1mac1vtep2vxlan1vlan1ip2mac2vtep2vxlan1vlan1ip3mac3表1其中,第一行是ip地址为ip1、mac地址为mac1的虚拟机的映射表项,该虚拟机对应vxlan1、vlan1网络的vtep1端点;第二行是ip地址为ip2、mac地址为mac2的虚拟机的映射表项,该虚拟机对应vxlan2、vlan2网络的vtep2端点。vlan(virtuallocalareanetwork,虚拟局域网)是一组逻辑上的设备和用户,这些设备和用户并不受物理位置的限制,可以根据功能、部门及应用等因素将它们组织起来,如同在同一个网段中一样进行相互之间的通信,所以称为虚拟局域网。vxlan是一种网络虚拟化技术,基于ip网络且采用“macinudp”封装形式的二层vpn技术,是对vlan的一种扩展。vtep(vxlantunnelendpoint,vxlan隧道端点)封装在nve(networkvisibleentities,网络可视实体)中,用于vxlan报文的封装和解封装。sdn控制器获得虚拟机配置信息表后,可以使用设定的通信协议将虚拟机配置信息表发送给arp抑制器。这样,在arp抑制器中即保存了第一数据中心的所有虚拟机配置信息。当数据中心的任意一个虚拟机有对其他虚拟机通信需求时,可以发送arp请求报文。第一虚拟机即为第一数据中心的任意一个虚拟机,第一虚拟机在有与第二虚拟机通信需求时,可以发送arp请求报文。该arp请求报文将到达第一虚拟机对应的第一虚拟交换机。第一虚拟交换机接收到第一虚拟机的arp请求报文后,可以根据arp请求报文,生成arp请求消息。arp请求报文中携带有第一虚拟机要访问的第二虚拟机的ip地址信息。第一虚拟交换机接收到第一虚拟机的arp请求,可以知晓第一虚拟机要访问的第二虚拟机的ip地址,结合第一虚拟机对应的vxlan、vlan、vtep等信息,可以生成arp请求消息。arp请求消息中包含第一虚拟机对应的vxlan、vlan、vetp及第一虚拟机要访问的第二虚拟机的ip地址信息。第一虚拟交换机将生成的arp请求消息进一步发送给arp抑制器。arp抑制器接收到第一虚拟机发送的arp请求消息后,根据该arp请求消息,可以确定第一虚拟机要访问的第二虚拟机,得到第二虚拟机的ip地址。根据第二虚拟机的ip地址,可以在虚拟机配置信息表中查询第二虚拟机的映射表项,基于查询得到的第二虚拟机的映射表项,生成arp应答消息。arp应答消息中可以包含第二虚拟机对应的vxlan、vlan、vtep、mac地址即第一虚拟机的相关信息。arp抑制器生成arp应答消息后,可以将arp应答消息发送给第一虚拟交换机。第一虚拟交换机接收到arp抑制器返回的arp应答消息后,可以将arp应答消息转发给第一虚拟机。具体的,第一虚拟交换机可以模拟第二虚拟机将arp应答消息返回给第一虚拟机,告知第一虚拟机其要访问的第二虚拟机的ip地址对应的mac地址。应用本发明实施例所提供的系统,将arp抑制器部署在数据中心的转发面中,将sdn控制器部署在数据中心的控制面中,sdn控制器获得虚拟机配置信息表后将其发送给arp抑制器,arp抑制器在接收到任意一个虚拟交换机发送的arp请求消息时,确定该arp请求消息对应的第一虚拟机要访问的第二虚拟机,在虚拟机配置信息表中查询第二虚拟机的映射表项,生成arp应答消息,通过虚拟交换机返回给第一虚拟机,以使第一虚拟机获得第二虚拟机的mac地址,以基于该mac地址向第二虚拟机发送报文。arp请求消息和arp应答消息都是在数据中心的转发面完成,可以有效进行arp请求抑制,消息的传送不需要经过转发面和控制面的通道,可以避免造成转发面和控制面通道的拥塞,可以提高响应速度,避免影响vxlan网络的正常工作。在本发明的一个实施例中,第一虚拟交换机还用于在接收到arp抑制器返回的arp应答消息时,根据arp应答消息,更新自身的第一配置信息表。在本发明实施例中,数据中心的各虚拟交换机可以通过与arp抑制器的通信,获得与自身对应的配置信息表。第一虚拟交换机中的配置信息表为第一配置信息表,该第一配置信息表中包含第一虚拟交换机对应的各虚拟机的映射表项。当第一虚拟交换机接收到第一虚拟机的arp请求报文时,可以先在第一配置信息表中查询是否存在第二虚拟机的映射表项。如果存在,则可以直接生成arp应答报文,返回给第一虚拟机,以使第一虚拟机获得第二虚拟机的mac地址。如果不存在,则可以生成arp请求消息发送给arp抑制器,以得到arp抑制器返回的arp应答消息。第一虚拟交换机在接收到arp抑制器返回的arp应答消息时,可以根据arp应答消息,从arp应答消息中提取出第二虚拟机的映射表项,将第二虚拟机的映射表项加入到第一配置信息表中,更新自身的第一配置信息表。即第一配置信息表中既包含第一虚拟交换机对应的各虚拟机的映射表项,还包含从arp应答消息中提取到的虚拟机的映射表项。在第一虚拟交换机中保存并维护第一配置信息表,如果第一配置信息表中存在arp请求报文所请求的虚拟机的映射表项,则可以直接生成arp应答报文,返回给arp请求报文的发送者,不需要虚拟交换机与arp抑制器交互,可以提高响应速度。在本发明的一个实施例中,该系统还可以包括arp抑制器的至少一个备用抑制器,arp抑制器与每个备用抑制器中的信息同步;sdn控制器,还用于在监测到arp抑制器发生故障时,选择一个备用抑制器,接替arp抑制器的工作,并通知第一数据中心的所有交换机。在本发明实施例中,可以为arp抑制器配置一个或多个备用抑制器,sdn控制器在向arp抑制器下发虚拟机配置信息表时,同时下发给每个备用抑制器,以使arp抑制器与每个备用抑制器中的信息同步。当有新的备用抑制器加入时,可以通过与其他备用抑制器、arp抑制器或sdn控制器通信,进行信息同步。初始时,sdn控制器可以指定arp抑制器为主抑制器,当监测到arp抑制器发生故障时,可以选择一个备用抑制器接替arp抑制器的工作,选择出的该备用抑制器即作为主抑制器继续工作。具体的,可以随机选择,或者根据预设的优先级进行选择。同时,sdn控制器需通知第一数据中心的所有虚拟交换机,告知每个虚拟交换机当前主抑制器发生了变化。以使各虚拟交换机将arp请求消息发送给当前主抑制器。通过为arp抑制器配置备用抑制器,可以提高系统的高可用性。在本发明的一个实施例中,该系统还可以包括部署在第一数据中心的控制面中的虚拟专用设备,第一数据中心通过虚拟专用设备与至少一个第二数据中心相连,第一数据中心和每个第二数据中心的结构相同;sdn控制器,还用于通过虚拟专用设备获得每个第二数据中心的虚拟机配置信息,基于获得的虚拟机配置信息,更新虚拟机配置信息表,并将更新后的虚拟机配置信息表发送给arp抑制器。在本发明实施例中,数据中心的控制面可以部署虚拟专用设备。各个数据中心可以通过虚拟专用设备实现互连。具体的,第一数据中心可以通过虚拟专用设备与至少一个第二数据中心相连,第一数据中心和每个第二数据中心的结构相同。sdn控制器在获得自身所在第一数据中心的虚拟机配置信息后,可以将第一数据中心的虚拟机配置信息通过虚拟专用设备发送给其他第二数据中心。也可以通过虚拟专用设备获得每个第二数据中心的虚拟机配置信息。sdn控制器基于获得的虚拟机配置信息,可以更新虚拟机配置信息表,并将更新后的虚拟机配置信息表发送给arp抑制器。在实际应用中,可以仅发送更新信息。这样,arp抑制器可以获得自身所在第一数据中心的虚拟机配置信息,还可以获得与第一数据中心相连的其他第二数据中心的虚拟机配置信息。需要说明的是,这里的第二数据中心可以是多个不同的数据中心。虚拟专用设备可以是evpn(ethernetvirtualprivatenetwork,以太网虚拟专用网)设备,如图2所示。即利用evpn设备作为跨集群间的vxlan控制面,学习集群中的所有虚拟机配置信息。本发明实施例中,arp抑制器部署在转发面,实现arp请求抑制,防止arp泛洪。arp抑制器与evpn设备通过sdn控制器通信,sdn控制器是所有虚拟机配置信息的下发点,实现arp抑制器和evpn设备的解耦,为网络其他功能带来灵活性。以图2为例,对多集群arp抑制过程进行说明。在图2中,数据中心1和数据中心2结构相同,数据中心1的每个虚拟机的映射表项如表1所示,数据中心2的每个虚拟机的映射表项如表2所示:vtep3vxlan2vlan2ip4mac4vtep3vxlan2vlan2ip5mac5vtep4vxlan2vlan2ip6mac6表2数据中心1中的sdn控制器1将表1信息下发给evpn1设备,evpn1设备将相应信息发送给数据中心2的evpn2设备,evpn2设备学习到对端evpn1设备发送过来的虚拟机配置信息,通告给sdn控制器2,sdn控制器2保存本端evpn2设备发送的虚拟机配置信息,并下发给arp抑制器2,同时,sdn控制器2还会将数据中心2的虚拟机配置信息下发给arp抑制器2,从而,arp抑制器2中保存了本端虚拟机配置信息和对端虚拟机配置信息。同样,数据中心1中的arp抑制器1可以获得本端虚拟机配置信息和对端虚拟机配置信息。对于任意一个arp抑制器而言,当其接收到arp请求消息时,可以基于自身存储的虚拟机配置信息表进行相应信息的查询,进而返回arp应答消息。相应于上面的系统实施例,本发明实施例还提供了一种arp请求抑制方法,应用于部署在第一数据中心的转发面中的arp抑制器,第一数据中心的转发面中还部署有多个虚拟交换机,每个虚拟交换机分别对应一个或多个虚拟机,arp抑制器预先获得部署在第一数据中心的控制面中的sdn控制器发送的虚拟机配置信息表,下文描述的一种arp请求抑制方法与上文描述的一种arp请求抑制系统可相互对应参照。参见图3所示,该方法可以包括以下步骤:s310:接收第一虚拟交换机发送的arp请求消息,arp请求消息为第一虚拟交换机根据接收到的第一虚拟机的arp请求报文生成的;s320:根据arp请求消息,确定第一虚拟机要访问的第二虚拟机;s330:在虚拟机配置信息表中查询第二虚拟机的映射表项,并生成arp应答消息;s340:将arp应答消息发送给第一虚拟交换机,以通过第一虚拟交换机模拟第二虚拟机将arp应答消息转发给第一虚拟机。应用本发明实施例所提供的方法,将arp抑制器部署在数据中心的转发面中,将sdn控制器部署在数据中心的控制面中,sdn控制器获得虚拟机配置信息表后将其发送给arp抑制器,arp抑制器在接收到任意一个虚拟交换机发送的arp请求消息时,确定该arp请求消息对应的第一虚拟机要访问的第二虚拟机,在虚拟机配置信息表中查询第二虚拟机的映射表项,生成arp应答消息,通过虚拟交换机返回给第一虚拟机,以使第一虚拟机获得第二虚拟机的mac地址,以基于该mac地址向第二虚拟机发送报文。arp请求消息和arp应答消息都是在数据中心的转发面完成,可以有效进行arp请求抑制,消息的传送不需要经过转发面和控制面的通道,可以避免造成转发面和控制面通道的拥塞,可以提高响应速度,避免影响vxlan网络的正常工作。在本发明的一种具体实施方式中,该方法还可以包括以下步骤:接收sdn控制器发送的其他数据中心的虚拟机配置信息,并更新自身保存的虚拟机配置信息表。相应于上面的方法实施例,本发明实施例还提供了一种arp请求抑制设备,应用于部署在第一数据中心的转发面中的arp抑制器,第一数据中心的转发面中还部署有多个虚拟交换机,每个虚拟交换机分别对应一个或多个虚拟机,arp抑制器预先获得部署在第一数据中心的控制面中的sdn控制器;如图4所示,该设备包括:存储器410,用于存储计算机程序;处理器420,用于执行计算机程序时实现上述arp请求抑制方法的步骤。相应于上面的方法实施例,本发明实施例还提供了一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现上述arp请求抑制方法的步骤。本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或
技术领域:
内所公知的任意其它形式的存储介质中。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的技术方案及其核心思想。应当指出,对于本
技术领域:
的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。当前第1页12