一种ARP抑制表项生成方法和装置与流程

文档序号:17089018发布日期:2019-03-13 23:13阅读:222来源:国知局
一种ARP抑制表项生成方法和装置与流程
本申请涉及互联网
技术领域
,特别是涉及一种arp抑制表项生成方法和装置。
背景技术
:vxlan(virtualextensiblelan,可扩展虚拟局域网络)组网可以包括多个vtep(vxlantunnelendpoint,可扩展虚拟局域网络隧道的端点),vtep可以连接有vm(virtualmachine,虚拟机)。参见图1,该组网包括vtep1、vtep2、vm1、vm2、vm3和vm4。vtep1与vm1和vm2相连,vtep2与vm3和vm4相连,vm1、vm2和vm3属于同一vxlan。当vm1需要获取vm3的mac(mediaaccesscontrol,媒体访问控制)地址时,vm1可以发送携带有vm1的mac地址和ip(internetprotocol,网际协议)地址的arp(addressresolutionprotocol,地址解析协议)请求报文(可以称为第一arp请求报文)。vtep1接收到第一arp请求报文后,可以向vm2和vtep2发送第一arp请求报文。vtep2接收到第一arp请求报文后,可以向vm3发送第一arp请求报文。接收到第一arp请求报文后,vm3可以向vm1发送携带有vm3的mac地址的arp响应报文。组网中较多的arp请求报文会占用较大的网络带宽,进而影响网络的性能。现有技术中,vtep可以根据arp报文(包括arp请求报文和arp响应报文)生成arp抑制表项,以减少组网中的arp请求报文。例如,当vtep1和vtep2接收到第一arp请求报文时,均可以生成arp抑制表项,该arp抑制表项可以包括vm1的mac地址、vm1的ip地址和vm1所属的vxlan的标识等信息。当vm4需要获取vm1的mac地址时,vm4可以发送arp请求报文(可以称为第二arp请求报文)。当vtep2接收到第二arp请求报文时,vtep2可以根据arp抑制表项,向vm4发送携带有vm1的mac地址的arp响应报文,而不需要再向其他设备发送第二arp请求报文,进而减少组网中的arp请求报文。然而,当恶意攻击者通过vm1发送携带有恶意网络地址的arp请求报文时,vtep2则会生成包含恶意网络地址的arp抑制表项,并根据该arp抑制表项向vm4发送arp响应报文。vm4则会获得恶意网络地址,并根据恶意网络地址发送数据报文,导致网络业务出错。技术实现要素:本申请实施例的目的在于提供一种arp抑制表项生成方法和装置,可以在一定程度上避免vm获取到恶意网络地址,进而避免网络业务出错。具体技术方案如下:第一方面,为了达到上述目的,本申请实施例公开了一种arp抑制表项生成方法,所述方法应用于vtep,所述方法包括:获取第一虚拟机vm发送的动态主机配置协议dhcp请求报文,以及所述dhcp请求报文对应的dhcp应答报文;获取所述dhcp请求报文中携带的所述第一vm的媒体访问控制mac地址,根据所述dhcp请求报文,确定所述第一vm所属的可扩展虚拟局域网络vxlan的标识,并获取所述dhcp应答报文中携带的所述第一vm的网际协议ip地址;生成所述第一vm的arp抑制表项,其中,所述arp抑制表项中包含所述第一vm的mac地址、所述第一vm所属的vxlan的标识和所述第一vm的ip地址。可选的,所述方法还包括:当接收到所述第一vm发送的地址撤销报文时,删除所述第一vm的arp抑制表项,其中,所述地址撤销报文为dhcp拒绝报文或dhcp释放报文。可选的,在所述生成所述第一vm的arp抑制表项之前,所述方法还包括:确定是否存储有通过预设方式接收到的,且包含有所述第一vm的ip地址和所述第一vm所属的vxlan的标识的arp抑制表项,其中,所述预设方式包括:静态配置方式、网络配置协议netconf方式或开放流openflow方式;如果未存储有,则执行所述生成所述第一vm的arp抑制表项的步骤;如果存储有,则使能通过所述预设方式接收到的,且包含有所述第一vm的ip地址和所述第一vm所属的vxlan的标识的arp抑制表项。可选的,所述方法还包括:当接收到第二vm发送的arp报文时,获取所述arp报文中携带的源ip地址,作为第一ip地址,并确定所述第二vm所属的vxlan的标识,作为第一vxlan标识;确定是否存储有通过除arp报文外的其他方式获得的,且包含有所述第一ip地址和所述第一vxlan标识的arp抑制表项;如果未存储有,则生成所述arp报文对应的arp抑制表项;如果存储有,则使能通过其他方式获得的,且包含有所述第一ip地址和所述第一vxlan标识的arp抑制表项。可选的,所述方法还包括:当通过预设方式接收到arp抑制表项时,使能通过所述预设方式接收到arp抑制表项,其中,所述预设方式包括:静态配置方式、netconf方式或openflow方式。可选的,所述方法还包括:获取自身连接的vm的待同步路由信息;确定存储的包含有所述待同步路由信息中的ip地址和vxlan标识的arp抑制表项的优先级;其中,根据预设方式获得的arp抑制表项的优先级,高于根据dhcp报文获得的arp抑制表项的优先级,根据dhcp报文获得的arp抑制表项的优先级,高于根据arp报文获得的arp抑制表项的优先级,所述预设方式包括:静态配置方式、netconf方式或openflow方式;向与自身相连的其他vtep,发送携带有确定出的优先级的待同步路由信息。可选的,所述方法还包括:接收与自身相连的其他vtep发送的路由信息,作为待处理路由信息;确定是否存储有包含有所述待处理路由信息中的ip地址和vxlan标识的待匹配arp抑制表项;如果未存储有,生成所述待处理路由信息对应的arp抑制表项;如果存储有,且所述待匹配arp抑制表项的优先级,低于所述待处理路由信息中携带的优先级,则生成并使能所述待处理路由信息对应的arp抑制表项;如果存储有,且所述待匹配arp抑制表项的优先级,不低于所述待处理路由信息中携带的优先级,则使能所述待匹配arp抑制表项;其中,根据预设方式获得的arp抑制表项的优先级,高于根据dhcp报文获得的arp抑制表项的优先级,根据dhcp报文获得的arp抑制表项的优先级,高于根据arp报文获得的arp抑制表项的优先级,所述预设方式包括:静态配置方式、netconf方式或openflow方式。第二方面,为了达到上述目的,本申请实施例公开了一种arp抑制表项生成装置,所述装置应用于vtep,所述装置包括:第一获取模块,用于获取第一虚拟机vm发送的动态主机配置协议dhcp请求报文,以及所述dhcp请求报文对应的dhcp应答报文;第二获取模块,用于获取所述dhcp请求报文中携带的所述第一vm的媒体访问控制mac地址,根据所述dhcp请求报文,确定所述第一vm所属的可扩展虚拟局域网络vxlan的标识,并获取所述dhcp应答报文中携带的所述第一vm的网际协议ip地址;生成模块,用于生成所述第一vm的arp抑制表项,其中,所述arp抑制表项中包含所述第一vm的mac地址、所述第一vm所属的vxlan的标识和所述第一vm的ip地址。可选的,所述装置还包括:删除模块,用于当接收到所述第一vm发送的地址撤销报文时,删除所述第一vm的arp抑制表项,其中,所述地址撤销报文为dhcp拒绝报文或dhcp释放报文。可选的,所述装置还包括:第一处理模块,用于确定是否存储有通过预设方式接收到的,且包含有所述第一vm的ip地址和所述第一vm所属的vxlan的标识的arp抑制表项,其中,所述预设方式包括:静态配置方式、网络配置协议netconf方式或开放流openflow方式;如果未存储有,则触发所述生成模块;如果存储有,则使能通过所述预设方式接收到的,且包含有所述第一vm的ip地址和所述第一vm所属的vxlan的标识的arp抑制表项。可选的,所述装置还包括:第二处理模块,用于当接收到第二vm发送的arp报文时,获取所述arp报文中携带的源ip地址,作为第一ip地址,并确定所述第二vm所属的vxlan的标识,作为第一vxlan标识;确定是否存储有通过除arp报文外的其他方式获得的,且包含有所述第一ip地址和所述第一vxlan标识的arp抑制表项;如果未存储有,则生成所述arp报文对应的arp抑制表项;如果存储有,则使能通过其他方式获得的,且包含有所述第一ip地址和所述第一vxlan标识的arp抑制表项。可选的,所述装置还包括:第三处理模块,用于当通过预设方式接收到arp抑制表项时,使能通过所述预设方式接收到arp抑制表项,其中,所述预设方式包括:静态配置方式、netconf方式或openflow方式。可选的,所述装置还包括:第四处理模块,用于获取自身连接的vm的待同步路由信息;确定存储的包含有所述待同步路由信息中的ip地址和vxlan标识的arp抑制表项的优先级;其中,根据预设方式获得的arp抑制表项的优先级,高于根据dhcp报文获得的arp抑制表项的优先级,根据dhcp报文获得的arp抑制表项的优先级,高于根据arp报文获得的arp抑制表项的优先级,所述预设方式包括:静态配置方式、netconf方式或openflow方式;向与自身相连的其他vtep,发送携带有确定出的优先级的待同步路由信息。可选的,所述装置还包括:第五处理模块,用于接收与自身相连的其他vtep发送的路由信息,作为待处理路由信息;确定是否存储有包含有所述待处理路由信息中的ip地址和vxlan标识的待匹配arp抑制表项;如果未存储有,生成所述待处理路由信息对应的arp抑制表项;如果存储有,且所述待匹配arp抑制表项的优先级,低于所述待处理路由信息中携带的优先级,则生成并使能所述待处理路由信息对应的arp抑制表项;如果存储有,且所述待匹配arp抑制表项的优先级,不低于所述待处理路由信息中携带的优先级,则使能所述待匹配arp抑制表项;其中,根据预设方式获得的arp抑制表项的优先级,高于根据dhcp报文获得的arp抑制表项的优先级,根据dhcp报文获得的arp抑制表项的优先级,高于根据arp报文获得的arp抑制表项的优先级,所述预设方式包括:静态配置方式、netconf方式或openflow方式。另一方面,为达到上述目的,本申请实施例还公开了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;存储器,用于存放计算机程序;处理器,用于执行存储器上所存放的程序时,实现第一方面所述的任一方法步骤。另一方面,为达到上述目的,本申请实施例还公开了一种机器可读存储介质,存储有机器可执行指令,在被处理器调用和执行时,所述机器可执行指令促使所述处理器:实现第一方面所述的任一方法步骤。另一方面,为达到上述目的,本申请实施例还公开了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述第一方面所述的任一方法步骤。本申请实施例提供了一种arp抑制表项生成方法和装置,可以应用于vtep,vtep可以接收第一vm发送的dhcp请求报文,以及该dhcp请求报文对应的dhcp应答报文,并生成第一vm的arp抑制表项,该arp抑制表项可以包括第一vm所属的vxlan的标识、dhcp请求报文中携带的第一vm的mac地址和dhcp应答报文中携带的第一vm的ip地址。由于dhcp报文相对于arp报文,更难构造,恶意攻击者利用dhcp报文发起网络攻击的可能性较小,因此,vtep根据dhcp报文生成arp抑制表项,能够降低arp抑制表项中包含有恶意网络地址的概率,在一定程度上避免vm获取到恶意网络地址,进而避免网络业务出错。当然,实施本申请的任一产品或方法并不一定需要同时达到以上的所有优点。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例提供的一种组网架构的框架图;图2为本申请实施例提供的一种arp抑制表项生成方法的流程图;图3为本申请实施例提供的一种arp抑制表项生成方法示例的流程图;图4为本申请实施例提供的一种arp抑制表项生成装置的结构图;图5为本申请实施例提供的一种电子设备的结构图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本申请实施例提供了一种arp抑制表项生成方法,该方法可以应用于网络中的vtep。参见图1,图1为本申请实施例提供的一种组网架构的框架图,该组网可以包括:vtep1、vtep2、vm1、vm2、vm3和vm4,其中,vtep1与vm1和vm2相连,vtep2与vm3和vm4相连。现有技术中,当vtep1和vtep2接收到vm1发送的arp报文时,均可以获取arp报文中携带的vm1的mac地址和ip地址,并确定vm1所属的vxlan的标识,然后,生成vm1的arp抑制表项。当vm4需要获取vm1的mac地址时,vm4可以发送arp请求报文。当vtep2接收到vm4发送的arp请求报文时,vtep2可以根据arp抑制表项,向vm4发送携带有vm1的mac地址的arp响应报文,而不需要再向其他设备发送arp请求报文,进而减少组网中的arp请求报文。然而,当遭到arp攻击时,vtep2会生成包含恶意网络地址的arp抑制表项,并根据该arp抑制表项向vm4发送arp响应报文。vm4则会获得恶意网络地址,并根据恶意网络地址发送数据报文,导致网络业务出错。为了解决上述问题,本申请基于dhcp(dynamichostconfigurationprotocol,动态主机设置协议)报文生成arp抑制表项。图1组网中的vtep1和vtep2还可以与dhcp服务器相连。当dhcp服务器接收到组网中的vm发送的dhcp请求报文时,dhcp服务器可以向该vm发送地址配置信息(例如,ip地址),以实现vm地址信息的动态配置。一种实现方式中,vm1可以向组网中的dhcp服务器发送dhcp请求报文,以请求获取ip地址。vtep1则可以获取到vm1发送的dhcp请求报文,并将该dhcp请求报文转发至dhcp服务器。dhcp服务器接收到该dhcp请求报文后,dhcp服务器可以为vm1分配ip地址,并向vm1发送dhcp应答报文,该dhcp应答报文中可以携带有dhcp服务器为vm1分配的ip地址。相应的,vtep1则可以获取到dhcp服务器发送的dhcp应答报文,并将该dhcp应答报文转发至vm1。vm1则可以从该dhcp应答报文中获取dhcp服务器为vm1分配的ip地址。在上述处理过程中,vtep1可以获取dhcp请求报文中携带的vm1的mac地址,确定vm1所属的vxlan的标识,并获取dhcp应答报文中携带的dhcp服务器为vm1分配的ip地址。然后,vtep1可以生成vm1的arp抑制表项,该arp抑制表项中可以包含有vm1的mac地址、vm1所属的vxlan的标识和vm1的ip地址。vtep2生成arp抑制表项的方法,与vtep1生成arp抑制表项的方法相同,此处不再赘述。由于dhcp报文(包括dhcp请求报文和dhcp应答报文)相对于arp报文,更难构造,恶意攻击者利用dhcp报文发起网络攻击的可能性较小,因此,vtep1和vtep2根据dhcp报文生成arp抑制表项,能够降低arp抑制表项中包含有恶意网络地址的概率,在一定程度上避免vm获取到恶意网络地址,进而避免网络业务出错。参见图2,图2为本申请实施例提供的一种arp抑制表项生成方法的流程图,该方法可以应用于vtep,该方法可以包括以下步骤:s201:获取第一vm发送的dhcp请求报文,以及dhcp请求报文对应的dhcp应答报文。其中,针对自身连接的每一vm,vtep可以根据本申请的arp抑制表项生成方法,生成该vm的arp抑制表项。第一vm可以是vtep当前连接的任一vm。在申请实施例中,第一vm可以向所属组网中的dhcp服务器发送dhcp请求报文,以请求获取ip地址,该dhcp请求报文中可以携带有第一vm的mac地址。vtep则可以获取到第一vm发送的dhcp请求报文,并将该dhcp请求报文转发至dhcp服务器。dhcp服务器接收到该dhcp请求报文后,dhcp服务器可以为第一vm分配ip地址,并向第一vm发送dhcp应答报文,该dhcp应答报文中可以携带有dhcp服务器为第一vm分配的ip地址。其中,dhcp请求报文可以是dhcprequest(请求)报文,dhcp应答报文可以是dhcpack(acknowledgement,应答)报文,vtep则可以获取到dhcp服务器发送的dhcp应答报文,并将该dhcp应答报文转发至第一vm。第一vm则可以从该dhcp应答报文中获取dhcp服务器为第一vm分配的ip地址。另外,dhcp报文中可以携带有transactionid(事务标识)字段。当vtep接收到dhcp应答报文时,vtep可以判断该dhcp应答报文中携带的transactionid,与接收到的dhcp请求报文中的transactionid是否相同。如果相同,vtep可以判定接收到该dhcp请求报文对应的dhcp应答报文。s202:获取dhcp请求报文中携带的第一vm的mac地址,根据dhcp请求报文,确定第一vm所属的vxlan的标识,并获取dhcp应答报文中携带的第一vm的ip地址。在申请实施例中,在vtep获取到第一vm发送的dhcp请求报文,以及dhcp服务器向第一vm发送的该dhcp请求报文对应的dhcp应答报文后,vtep可以获取该dhcp请求报文中携带的mac地址(即第一vm的mac地址),并根据接收该dhcp请求报文的端口,确定第一vm所属的vxlan的标识。vtep还可以获取该dhcp应答报文中携带的dhcp服务器为第一vm分配的ip地址。本步骤中,在接收到第一vm发送的dhcp请求报文时,vtep可以生成临时表项。当vtep接收到对应的dhcp应答报文时,vtep可以根据该临时表项,生成对应的arp抑制表项,临时表项可以参见表(1)。表(1)ipmacvni/vsi-3-3-31001其中,ip表示第一vm的ip地址,由于当前vtep并未接收到对应的dhcp应答报文,即vtep并未获取到第一vm的ip地址,此时,ip为空。mac表示第一vm的mac地址,vni(vxlannetworkidentifier,vxlan网络标识符)/vsi(virtualswitchinstance,虚拟交换实例)表示第一vm所属的vxlan的标识。vtep可以根据接收第一vm发送的dhcp请求报文的端口,确定第一vm所属的vxlan的标识。另外,该临时表项还可以包含其他信息,参见表(2)。表(2)ipmacvni/vsivlanportagingtime-3-3-3100133tel/0/1no其中,vlan(virtuallocalareanetwork,虚拟局域网)表示vtep上连接第一vm的ac(attachmentcircuit,接入电路)上配置的vlan的标识,port表示该ac连接的物理端口,agingtime(老化时间)表示该临时表项对应的arp抑制表项的老化时长,老化时长可以由技术人员根据业务需求进行设置。agingtime为no,则表示不会发生老化,老化时长的单位可以为分钟。相应的,在接收到dhcp请求报文后的预设时长内,如果vtep未接收到对应的dhcp应答报文,则vtep可以删除该dhcp请求报文对应的临时表项。或者,如果vtep接收到该dhcp请求报文对应的dhcp否定应答报文,vtep也可以删除该dhcp请求报文对应的临时表项,其中,dhcp否定应答报文可以是dhcpnak(negativeacknowledgment,否定应答)报文。s203:生成第一vm的arp抑制表项。其中,arp抑制表项中可以包含有第一vm的mac地址、第一vm所属的vxlan的标识和第一vm的ip地址。在申请实施例中,vtep可以生成包含有第一vm的mac地址、第一vm所属的vxlan的标识和第一vm的ip地址的arp抑制表项。本步骤中,在接收到dhcp请求报文后的预设时长内,如果vtep接收到dhcp应答报文,且该dhcp应答报文中的transactionid,与该dhcp请求报文中的transactionid相同,则vtep可以生成第一vm的arp抑制表项。针对表(2),vtep可以得到表(3)所示的arp抑制表项。表(3)ipmacvni/vsivlanportagingtime3.1.1.13-3-3100133tel/0/1no其中,ip(3.1.1.1)为dhcp应答报文中携带的dhcp服务器为第一vm分配的ip地址。由于表(3)所示的arp抑制表项是根据dhcp报文生成的,而dhcp报文相对于arp报文,更难构造,恶意攻击者利用dhcp报文发起网络攻击的可能性较小,因此,vtep根据该arp抑制表项,向vm发送arp应答报文,在一定程度上可以避免vm获取到恶意网络地址,进而避免网络业务出错。可以理解的是,如果vtep根据本申请的方法生成arp抑制表项,则vtep可以关闭根据arp报文生成arp抑制表项的功能,使得vtep不仅具有生成arp抑制表项的功能,还具有防御arp攻击的功能。可选的,vtep还可以对根据dhcp报文生成的arp抑制表项进行更新,该方法还可以包括以下步骤:当接收到第一vm发送的地址撤销报文时,删除第一vm的arp抑制表项。其中,地址撤销报文可以为dhcp拒绝报文,也可以为dhcp释放报文。dhcp拒绝报文可以为dhcpdecline(拒绝)报文,dhcp释放报文可以为dhcprelease(释放)报文。在申请实施例中,当第一vm接收到dhcp服务器发送的dhcp应答报文时,如果第一vm通过地址冲突检测,确定dhcp服务器分配的ip地址冲突或者其他原因导致ip地址不可用,第一vm则可以向dhcp服务器发送dhcpdecline报文,以通知dhcp服务器ip地址不可用。当第一vm不再需要使用分配的ip地址时,第一vm可以向dhcp服务器发送dhcprelease报文,以通知dhcp服务器释放该ip地址。相应的,当vtep接收到第一vm发送的dhcpdecline报文时,vtep可以删除根据dhcp报文生成的第一vm的arp抑制表项。当vtep接收到第一vm发送的dhcprelease报文时,vtep也可以删除根据dhcp报文生成的第一vm的arp抑制表项。可以理解的是,如果vtep并未关闭根据arp报文生成arp抑制表项的功能,则vtep可能会遭到arp攻击,根据恶意arp报文生成包含有恶意网络地址的arp抑制表项。因此,vtep还可以删除根据arp报文生成的,且包含有恶意网络地址的arp抑制表项。在根据第一vm发送的dhcp请求报文,以及该请求报文对应的dhcp应答报文,生成第一vm的arp抑制表项后,vtep还可以判断是否存储有根据arp报文生成的,且包含有第一vm的ip地址和第一vm所属的vxlan的标识的arp抑制表项(可以称为第一arp抑制表项)。当vtep判定存储有第一arp抑制表项时,由于第一arp抑制表项可能包含有恶意网络地址,因此,vtep可以将第一arp抑制表项从本地删除,进而使得根据dhcp报文生成的,且包含有第一vm的ip地址和第一vm所属的vxlan的标识的arp抑制表项生效,能够实现对arp攻击的防御,避免网络业务出错。另外,当vtep接收到arp报文时,vtep还可以进一步判断是否需要生成对应arp抑制表项,以实现对arp攻击的防御,则该方法还可以包括以下步骤:步骤一,当接收到第二vm发送的arp报文时,获取arp报文中携带的源ip地址,作为第一ip地址,并确定第二vm所属的vxlan的标识,作为第一vxlan标识。其中,arp报文可以为arp请求报文,也可以为arp响应报文。在申请实施例中,第二vm可以是vtep所属组网中的任一vm。当vtep接收到第二vm发送的arp报文时,vtep可以获取该arp报文中携带的源ip地址(即第一ip地址),并确定第二vm所属的vxlan的标识(即第一vxlan标识),以便进行后续处理。本步骤中,如果第二vm为vtep本地连接的vm,则vtep可以根据接收该arp报文的端口,确定第一vxlan标识;如果vtep通过vxlan隧道接收到该arp报文,则vtep可以根据该arp报文中的vxlanid字段,确定第一vxlan标识。步骤二,确定是否存储有通过除arp报文外的其他方式获得的,且包含有第一ip地址和第一vxlan标识的arp抑制表项。在申请实施例中,在获取第一ip地址和第一vxlan标识后,vtep可以判断是否存储有通过除arp报文外的其他方式获得的,且包含有第一ip地址和第一vxlan标识的arp抑制表项(可以称为第二arp抑制表项)。第二arp抑制表项的安全度不低于根据arp报文生成的arp抑制表项的安全度,例如,第二arp抑制表项可以是根据dhcp报文生成的arp抑制表项,也可以是技术人员预先配置的arp抑制表项。步骤三,如果未存储有,则生成arp报文对应的arp抑制表项。在申请实施例中,当vtep判定未存储有第二arp抑制表项时,vtep可以根据arp报文,生成对应的arp抑制表项。vtep根据arp报文,生成对应的arp抑制表项的方法为现有技术,此处不再赘述。步骤四,如果存储有,则使能通过其他方式获得的,且包含有第一ip地址和第一vxlan标识的arp抑制表项。在申请实施例中,由于根据arp报文生成的arp抑制表项的安全度较低,因此,当vtep判定本地已经存储有安全度较高的第二arp抑制表项时,vtep可以使能第二arp抑制表项,即,vtep可以不根据第二vm发送的arp报文生成arp抑制表项。另外,vtep在根据dhcp报文生成arp抑制表项时,还可以进一步判断,以提高生成的arp抑制表项的可靠性。相应的,在s203之前,该方法还可以包括以下步骤:步骤一,确定是否存储有通过预设方式接收到的,且包含有第一vm的ip地址和第一vm所属的vxlan的标识的arp抑制表项。其中,预设方式可以包括:静态配置方式、netconf(网络配置协议)方式或openflow(开放流)方式。技术人员可以基于命令行的静态配置方式向vtep下发配置的arp抑制表项,或者,技术人员也可以通过netconf方式向vtep下发配置的arp抑制表项,或者,技术人员还可以通过openflow方式向vtep下发配置的arp抑制表项。通常,vtep通过上述三种方式接收到的arp抑制表项为技术人员预先配置的表项,因此,其安全度高于根据dhcp报文生成的arp抑制表项的安全度。在申请实施例中,vtep在生成第一vm的arp抑制表项之前,vtep可以在通过预设方式接收到的arp抑制表项中进行查询,判断是否存在包含有第一vm的ip地址和第一vm所属的vxlan的标识的arp抑制表项(可以称为第三arp抑制表项)。步骤二,如果未存储有,则执行s203。在申请实施例中,当vtep判定不存在第三arp抑制表项时,vtep可以根据dhcp报文,生成携带有第一vm的mac地址、第一vm所属的vxlan的标识和第一vm的ip地址的arp抑制表项。步骤三,如果存储有,则使能通过预设方式接收到的,且包含有第一vm的ip地址和第一vm所属的vxlan的标识的arp抑制表项。在申请实施例中,当vtep判定存在第三arp抑制表项时,vtep可以使能第三arp抑制表项。即,vtep可以不根据第一vm的dhcp报文生成arp抑制表项。另外,在通过预设方式接收到arp抑制表项后,vtep还可以对存储的arp抑制表项进行更新,则该方法还可以包括以下步骤:当通过预设方式接收到arp抑制表项时,使能通过预设方式接收到arp抑制表项。其中,预设方式包括:静态配置方式、netconf方式或openflow方式。在申请实施例中,当vtep通过上述预设方式中的任一方式接收到arp抑制表项时,vtep可以使能通过预设方式接收到arp抑制表项。本步骤中,vtep还可以获取接收到的arp抑制表项中的ip地址(可以称为第二ip地址),以及接收到的arp抑制表项中的vxlan标识(可以称为第二vxlan标识),以便进行后续处理。然后,vtep可以在根据dhcp报文和arp报文生成的arp抑制表项中进行查询,判断是否存在包含有第二ip地址和第二vxlan标识的arp抑制表项(可以称为待处理arp抑制表项)。当vtep判定存在待处理arp抑制表项时,vtep可以将待处理arp抑制表项从本地删除。即,针对包含有相同的ip地址和vxlan标识的arp抑制表项,vtep本地只存储有通过预设方式获得的安全度较高的arp抑制表项。可选的,vtep还可以向其他vtep同步本地vm的路由信息,使得其他vtep可以生成对应的arp抑制表项,则该方法还可以包括以下步骤:步骤一,获取自身连接的vm的待同步路由信息。其中,vtep通常可以连接有多个vm,待同步路由信息可以包含vm的ip地址和mac地址。在申请实施例中,vtep可以获取当前需要同步的路由信息(即待同步路由信息)。步骤二,确定存储的包含有待同步路由信息中的ip地址和vxlan标识的arp抑制表项的优先级。其中,根据预设方式获得的arp抑制表项的优先级,高于根据dhcp报文获得的arp抑制表项的优先级,根据dhcp报文获得的arp抑制表项的优先级,高于根据arp报文获得的arp抑制表项的优先级。预设方式可以包括:静态配置方式、netconf方式或openflow方式。在申请实施例中,在获取待同步路由信息后,vtep可以获取待同步路由信息中的ip地址和vxlan标识,然后,vtep可以在存储的arp抑制表项中进行查询,确定包含有待同步路由信息中的ip地址和vxlan标识的arp抑制表项(可以称为待同步arp抑制表项),vtep还可以确定待同步arp抑制表项的优先级。可以理解的是,在生成每一arp抑制表项时,vtep都可以在该arp抑制表项中记录该arp抑制表项的优先级。例如,在表(3)的基础上,vtep可以生成表(4)所示的arp抑制表项。表(4)ipmacvni/vsivlanportagingtimepriority3.1.1.13-3-3100133tel/0/1no3其中,priority(优先权)表示该arp抑制表项的优先级。通常,priority的数值越小,则表示优先级越高,也即,该arp抑制表项的安全度越高;priority的数值越大,则表示优先级越低,也即,该arp抑制表项的安全度越低。例如,通过预设方式获得的arp抑制表项的priority可以为1,通过dhcp报文获得的arp抑制表项的priority可以为3,通过arp报文获得的arp抑制表项的priority可以为5。步骤三,向与自身相连的其他vtep,发送携带有确定出的优先级的待同步路由信息。在申请实施例中,在确定出待同步arp抑制表项的优先级后,vtep可以向与自身相连的其他vtep,发送携带有待同步arp抑制表项的优先级的待同步路由信息,相应的,其他vtep接收到待同步路由信息后,可以根据待同步路由信息中携带的优先级生成arp抑制表项。本步骤中,vtep可以得到表(5)所示的待同步路由信息。表(5)macaddresslengthmacaddressipaddresslengthipaddressvniippriority其中,macaddresslength(媒体访问控制地址长度),表示待同步的mac地址的长度,macaddress表示待同步的mac地址,ipaddresslength(网际协议地址长度),表示待同步的ip地址的长度,ipaddress表示待同步的ip地址,vni表示待同步的vxlan标识,ippriority表示待同步路由信息对应的arp抑制表项的优先级,与该arp抑制表项的获得方式相对应。相应的,vtep还可以接收其他vtep发送的路由信息,以根据该路由信息生成对应的arp抑制表项,该方法还可以包括以下步骤:步骤一,接收与自身相连的其他vtep发送的路由信息,作为待处理路由信息。在申请实施例中,vtep可以接收与自身相连的其他vtep发送的路由信息(即待处理路由信息),待处理路由信息的格式同样可以参见表(5)。步骤二,确定是否存储有包含有待处理路由信息中的ip地址和vxlan标识的待匹配arp抑制表项。在申请实施例中,vtep可以获取待处理路由信息中携带的ip地址(可以称为第三ip地址)、待处理路由信息中携带的vxlan标识(可以称为第三vxlan标识)。然后,vtep可以判断当前是否存储有包含有第三ip地址和第三vxlan标识的arp抑制表项(即待匹配arp抑制表项)。步骤三,如果未存储有,生成待处理路由信息对应的arp抑制表项。在申请实施例中,当vtep判定当前未存储有待匹配arp抑制表项时,vtep则可以根据待处理路由信息,生成对应的arp抑制表项。生成的arp抑制表项中包含有第三ip地址、第三vxlan标识和待处理路由信息中携带的与第三ip地址和第三vxlan标识对应的mac地址。另外,待处理路由信息中携带有用于表示包含有第三ip地址和第三vxlan标识的arp抑制表项的优先级(可以称为目标优先级),因此,vtep生成的arp抑制表项中也可以记录有该目标优先级。步骤四,如果存储有,且待匹配arp抑制表项的优先级,低于待处理路由信息中携带的优先级,则生成并使能待处理路由信息对应的arp抑制表项;如果存储有,且待匹配arp抑制表项的优先级,不低于待处理路由信息中携带的优先级,则使能待匹配arp抑制表项。其中,根据预设方式获得的arp抑制表项的优先级,高于根据dhcp报文获得的arp抑制表项的优先级,根据dhcp报文获得的arp抑制表项的优先级,高于根据arp报文获得的arp抑制表项的优先级。预设方式可以包括:静态配置方式、netconf方式或openflow方式。在申请实施例中,当vtep判定当前存储有待匹配arp抑制表项时,vtep可以进一步判断待匹配arp抑制表项的优先级是否低于目标优先级。当vtep判定待匹配arp抑制表项的优先级低于目标优先级时,vtep可以生成待处理路由信息对应的arp抑制表项,并使能生成的arp抑制表项。生成的arp抑制表项中包含有第三ip地址、第三vxlan标识和待处理路由信息中携带的与第三ip地址和第三vxlan标识对应的mac地址,另外,生成的arp抑制表项中还可以记录有目标优先级。另外,在生成并使能待处理路由信息对应的arp抑制表项时,vtep还可以将待匹配arp抑制表项从本地删除。当vtep判定待匹配arp抑制表项的优先级不低于目标优先级时,vtep可以使能待匹配arp抑制表项,即,vtep可以不生成待处理路由信息对应的arp抑制表项。可见,基于本申请实施例的方法,vtep可以根据arp抑制表项的获得方式,确定arp抑制表项的优先级。不同的获得方式得到的arp抑制表项的安全度不同,且安全度较高的arp抑制表项的优先级,高于安全度较低的arp抑制表项的优先级。另外,当vtep需要生成包含有目标ip地址和目标vxlan标识的目标arp抑制表项时,如果本地存储有包含有目标ip地址和目标vxlan标识,且优先级较高的arp抑制表项,则vtep则不会生成目标arp抑制表项。如果本地存储有包含有目标ip地址和目标vxlan标识,且优先级较低的arp抑制表项,则vtep可以生成优先级较高的目标arp抑制表项,并删除本地的优先级较低的arp抑制表项。基于上述处理,针对包含有相同的ip地址和vxlan标识的arp抑制表项,使优先级较高的arp抑制表项生效,优先级较低的arp抑制表项不生效。同时,还可以使其他设备获取arp抑制表项的优先级,保证整个网络中arp抑制表项的一致性,可以减少vtep本地存储的包含有恶意网络地址的arp抑制表项的数目,在一定程度上避免网络业务出错。参见图3,图3为本申请实施例提供的一种arp抑制表项生成方法示例的流程图,该方法可以应用于vtep,该方法可以包括以下步骤:s301:获取第一vm发送的dhcp请求报文,以及该dhcp请求报文对应的dhcp应答报文。s302:获取该dhcp请求报文中携带的第一vm的mac地址,确定第一vm所属的vxlan的标识,并获取该dhcp应答报文中携带的第一vm的ip地址。s303:判断是否存储有通过预设方式接收到的,且包含有第一vm的ip地址和第一vm所属的vxlan的标识的arp抑制表项。如果未存储有,执行s304。其中,预设方式可以包括:静态配置方式、netconf方式或openflow方式。s304:生成第一vm的arp抑制表项,并删除根据arp报文生成的,且包含有第一vm的ip地址和第一vm所属的vxlan的标识的arp抑制表项。其中,生成的arp抑制表项中包含第一vm的mac地址、第一vm所属的vxlan的标识和第一vm的ip地址。s305:当接收到第二vm发送的arp报文时,获取该arp报文中携带的源ip地址,作为第一ip地址,并确定第二vm所属的vxlan的标识,作为第一vxlan标识。s306:判断是否存储有通过除arp报文外的其他方式获得的,且包含有第一ip地址和第一vxlan标识的arp抑制表项,如果未存储有,执行s307。s307:生成该arp报文对应的arp抑制表项。s308:接收与自身相连的其他vtep发送的路由信息,作为待处理路由信息。s309:判断是否存储有包含有待处理路由信息中的ip地址和vxlan标识的待匹配arp抑制表项,如果未存储有,执行s3010,如果存储有,执行s3011。s3010:生成待处理路由信息对应的arp抑制表项。s3011:判断待匹配arp抑制表项的优先级,是否低于待处理路由信息中携带的优先级,如果是,执行s3012。其中,根据预设方式获得的arp抑制表项的优先级,高于根据dhcp报文获得的arp抑制表项的优先级,根据dhcp报文获得的arp抑制表项的优先级,高于根据arp报文获得的arp抑制表项的优先级,预设方式包括:静态配置方式、netconf方式或openflow方式。s3012:生成待处理路由信息对应的arp抑制表项,并删除待匹配arp抑制表项。与图2的方法实施例相对应,参见图4,图4为本申请实施例提供的一种arp抑制表项生成装置的结构图,该装置可以应用于vtep,该装置可以包括:第一获取模块401,用于获取第一虚拟机vm发送的动态主机配置协议dhcp请求报文,以及所述dhcp请求报文对应的dhcp应答报文;第二获取模块402,用于获取所述dhcp请求报文中携带的所述第一vm的媒体访问控制mac地址,根据所述dhcp请求报文,确定所述第一vm所属的可扩展虚拟局域网络vxlan的标识,并获取所述dhcp应答报文中携带的所述第一vm的网际协议ip地址;生成模块403,用于生成所述第一vm的arp抑制表项,其中,所述arp抑制表项中包含所述第一vm的mac地址、所述第一vm所属的vxlan的标识和所述第一vm的ip地址。可选的,所述装置还包括:删除模块,用于当接收到所述第一vm发送的地址撤销报文时,删除所述第一vm的arp抑制表项,其中,所述地址撤销报文为dhcp拒绝报文或dhcp释放报文。可选的,所述装置还包括:第一处理模块,用于确定是否存储有通过预设方式接收到的,且包含有所述第一vm的ip地址和所述第一vm所属的vxlan的标识的arp抑制表项,其中,所述预设方式包括:静态配置方式、网络配置协议netconf方式或开放流openflow方式;如果未存储有,则触发所述生成模块403;如果存储有,则使能通过所述预设方式接收到的,且包含有所述第一vm的ip地址和所述第一vm所属的vxlan的标识的arp抑制表项。可选的,所述装置还包括:第二处理模块,用于当接收到第二vm发送的arp报文时,获取所述arp报文中携带的源ip地址,作为第一ip地址,并确定所述第二vm所属的vxlan的标识,作为第一vxlan标识;确定是否存储有通过除arp报文外的其他方式获得的,且包含有所述第一ip地址和所述第一vxlan标识的arp抑制表项;如果未存储有,则生成所述arp报文对应的arp抑制表项;如果存储有,则使能通过其他方式获得的,且包含有所述第一ip地址和所述第一vxlan标识的arp抑制表项。可选的,所述装置还包括:第三处理模块,用于当通过预设方式接收到arp抑制表项时,使能通过所述预设方式接收到arp抑制表项,其中,所述预设方式包括:静态配置方式、netconf方式或openflow方式。可选的,所述装置还包括:第四处理模块,用于获取自身连接的vm的待同步路由信息;确定存储的包含有所述待同步路由信息中的ip地址和vxlan标识的arp抑制表项的优先级;其中,根据预设方式获得的arp抑制表项的优先级,高于根据dhcp报文获得的arp抑制表项的优先级,根据dhcp报文获得的arp抑制表项的优先级,高于根据arp报文获得的arp抑制表项的优先级,所述预设方式包括:静态配置方式、netconf方式或openflow方式;向与自身相连的其他vtep,发送携带有确定出的优先级的待同步路由信息。可选的,所述装置还包括:第五处理模块,用于接收与自身相连的其他vtep发送的路由信息,作为待处理路由信息;确定是否存储有包含有所述待处理路由信息中的ip地址和vxlan标识的待匹配arp抑制表项;如果未存储有,生成所述待处理路由信息对应的arp抑制表项;如果存储有,且所述待匹配arp抑制表项的优先级,低于所述待处理路由信息中携带的优先级,则生成并使能所述待处理路由信息对应的arp抑制表项;如果存储有,且所述待匹配arp抑制表项的优先级,不低于所述待处理路由信息中携带的优先级,则使能所述待匹配arp抑制表项;其中,根据预设方式获得的arp抑制表项的优先级,高于根据dhcp报文获得的arp抑制表项的优先级,根据dhcp报文获得的arp抑制表项的优先级,高于根据arp报文获得的arp抑制表项的优先级,所述预设方式包括:静态配置方式、netconf方式或openflow方式。可见,基于本申请实施例提供的arp抑制表项生成装置,vtep可以接收第一vm发送的dhcp请求报文,以及该dhcp请求报文对应的dhcp应答报文,生成第一vm的arp抑制表项,该arp抑制表项包括第一vm所属的vxlan的标识、dhcp请求报文中携带的第一vm的mac地址和dhcp应答报文中携带的第一vm的ip地址。由于dhcp报文相对于arp报文,更难构造,恶意攻击者利用dhcp报文发起网络攻击的可能性较小,因此,vtep根据dhcp报文生成arp抑制表项,能够降低arp抑制表项中包含有恶意网络地址的概率,在一定程度上避免vm获取到恶意网络地址,进而避免网络业务出错。本申请实施例还提供了一种电子设备,如图5所示,包括处理器501、通信接口502、存储器503和通信总线504,其中,处理器501,通信接口502,存储器503通过通信总线504完成相互间的通信,存储器503,用于存放计算机程序;处理器501,用于执行存储器503上所存放的程序时,以使该电子设备执行arp抑制表项生成方法的步骤,该方法包括:获取第一虚拟机vm发送的动态主机配置协议dhcp请求报文,以及所述dhcp请求报文对应的dhcp应答报文;获取所述dhcp请求报文中携带的所述第一vm的媒体访问控制mac地址,根据所述dhcp请求报文,确定所述第一vm所属的可扩展虚拟局域网络vxlan的标识,并获取所述dhcp应答报文中携带的所述第一vm的网际协议ip地址;生成所述第一vm的arp抑制表项,其中,所述arp抑制表项中包含所述第一vm的mac地址、所述第一vm所属的vxlan的标识和所述第一vm的ip地址。可选的,所述方法还包括:当接收到所述第一vm发送的地址撤销报文时,删除所述第一vm的arp抑制表项,其中,所述地址撤销报文为dhcp拒绝报文或dhcp释放报文。可选的,在所述生成所述第一vm的arp抑制表项之前,所述方法还包括:确定是否存储有通过预设方式接收到的,且包含有所述第一vm的ip地址和所述第一vm所属的vxlan的标识的arp抑制表项,其中,所述预设方式包括:静态配置方式、网络配置协议netconf方式或开放流openflow方式;如果未存储有,则执行所述生成所述第一vm的arp抑制表项的步骤;如果存储有,则使能通过所述预设方式接收到的,且包含有所述第一vm的ip地址和所述第一vm所属的vxlan的标识的arp抑制表项。可选的,所述方法还包括:当接收到第二vm发送的arp报文时,获取所述arp报文中携带的源ip地址,作为第一ip地址,并确定所述第二vm所属的vxlan的标识,作为第一vxlan标识;确定是否存储有通过除arp报文外的其他方式获得的,且包含有所述第一ip地址和所述第一vxlan标识的arp抑制表项;如果未存储有,则生成所述arp报文对应的arp抑制表项;如果存储有,则使能通过其他方式获得的,且包含有所述第一ip地址和所述第一vxlan标识的arp抑制表项。可选的,所述方法还包括:当通过预设方式接收到arp抑制表项时,使能通过所述预设方式接收到arp抑制表项,其中,所述预设方式包括:静态配置方式、netconf方式或openflow方式。可选的,所述方法还包括:获取自身连接的vm的待同步路由信息;确定存储的包含有所述待同步路由信息中的ip地址和vxlan标识的arp抑制表项的优先级;其中,根据预设方式获得的arp抑制表项的优先级,高于根据dhcp报文获得的arp抑制表项的优先级,根据dhcp报文获得的arp抑制表项的优先级,高于根据arp报文获得的arp抑制表项的优先级,所述预设方式包括:静态配置方式、netconf方式或openflow方式;向与自身相连的其他vtep,发送携带有确定出的优先级的待同步路由信息。可选的,所述方法还包括:接收与自身相连的其他vtep发送的路由信息,作为待处理路由信息;确定是否存储有包含有所述待处理路由信息中的ip地址和vxlan标识的待匹配arp抑制表项;如果未存储有,生成所述待处理路由信息对应的arp抑制表项;如果存储有,且所述待匹配arp抑制表项的优先级,低于所述待处理路由信息中携带的优先级,则生成并使能所述待处理路由信息对应的arp抑制表项;如果存储有,且所述待匹配arp抑制表项的优先级,不低于所述待处理路由信息中携带的优先级,则使能所述待匹配arp抑制表项;其中,根据预设方式获得的arp抑制表项的优先级,高于根据dhcp报文获得的arp抑制表项的优先级,根据dhcp报文获得的arp抑制表项的优先级,高于根据arp报文获得的arp抑制表项的优先级,所述预设方式包括:静态配置方式、netconf方式或openflow方式。上述电子设备提到的通信总线可以是外设部件互连标准(peripheralcomponentinterconnect,pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,eisa)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。通信接口用于上述电子设备与其他设备之间的通信。存储器可以包括随机存取存储器(randomaccessmemory,ram),也可以包括非易失性存储器(non-volatilememory,nvm),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。上述的处理器可以是通用处理器,包括中央处理器(centralprocessingunit,cpu)、网络处理器(networkprocessor,np)等;还可以是数字信号处理器(digitalsignalprocessing,dsp)、专用集成电路(applicationspecificintegratedcircuit,asic)、现场可编程门阵列(field-programmablegatearray,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。在本申请提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述任一arp抑制表项生成方法的步骤。在本申请提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一arp抑制表项生成方法。在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(dsl))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,dvd)、或者半导体介质(例如固态硬盘solidstatedisk(ssd))等。需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、计算机可读存储介质以及计算机程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。以上所述仅为本申请的较佳实施例而已,并非用于限定本申请的保护范围。凡在本申请的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本申请的保护范围内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1