ARP代答方法、装置、设备及存储介质
技术领域
本发明涉及计算机领域,具体而言,涉及一种ARP代答方法、装置、设备及存储介质。
背景技术
作为云计算的核心技术之一,服务器虚拟化凭借其大幅降低IT成本、提高业务部署灵活性、降低运维成本等优势已经得到越来越多的认可和部署。如图1所示,一台服务器可虚拟多台虚拟机,而一台虚拟机相当于一台主机。云计算场景的虚拟网络,主机的数量发生了数量级的变化,但也由此带来了虚拟机规模受网络规格限制的问题。
在大二层网络环境下,数据报文是通过查询MAC地址表进行二层转发,而MAC地址表的容量限制了虚拟机的数量。当前主流的网络隔离技术是VLAN,在大规模的虚拟化网络中部署存在如下限制:
(1)由于IEEE 802.1Q中定义的VLAN Tag域只有12比特,仅支持4094个VLAN,无法满足大二层网络中标识大量用户群的需求;传统二层网络中的VLAN无法满足网络动态调整的需求。
(2)虚拟机迁移范围受网络架构限制,为了保证虚拟机迁移过程中业务不中断,则需要保证虚拟机的IP地址保持不变,这就要求业务网络是一个二层网络,且要求网络本身具备多路径的冗余备份和可靠性。
针对大二层网络,VXLAN的提出很好地解决了上述问题。针对虚拟机规模受网络规格限制,VXLAN将虚拟机发出的数据包封装在UDP中,并使用物理网络的IP、MAC地址作为外层头进行封装,对网络只表现为封装后的参数,大降低了大二层网络对MAC地址规格的需求。
针对网络隔离能力限制,VXLAN引入了类似VLAN ID的用户标识,称为VXLAN网络标识VNI(VXLAN Network Identifier),由24比特组成,支持多达16M的VXLAN段,从而满足了大量的用户标识。针对虚拟机迁移范围受网络架构限制,VXLAN通过采用MAC in UDP封装来延伸二层网络,将以太报文封装在IP报文之上,通过路由在网络中传输,无需关注虚拟机的MAC地址;且路由网络无网络结构限制,具备大规模扩展能力、故障自愈能力、负载均衡能力,通过路由网络,虚拟机迁移不受网络架构限制。随着数据中心在物理网络基础设施上实施服务器虚拟化的快速发展,作为NVO3技术之一的VXLAN,通过24比特的VNI可以支持多达16M的VXLAN段的网络隔离,对用户进行隔离和标识不再受到限制,可满足海量租户。除VXLAN网络边缘设备,网络中的其他设备不需要识别虚拟机的MAC地址,减轻了设备的MAC地址学习压力,提升了设备性能。通过采用MAC in UDP封装来延伸二层网络,实现了物理网络和虚拟网络解耦,租户可以规划自己的虚拟网络,不需要考虑物理网络IP地址和广播域的限制,大大降低了网络管理的难度。
在终端租户初次互通过程中,终端租户会发送ARP请求报文,而ARP请求报文会在二层网络内广播。为了减少ARP广播报文,可以在二层网关上配置ARP二层代答功能。当VXLAN二层网关收到一个ARP请求报文时,会将该报文在BD内广播。如果二层网关在某一时间段内收到大量的ARP请求报文,并将这些报文都进行广播,VXLAN网络中就会出现大量的ARP请求报文,占用过多的网络资源,造成网络拥塞,导致显示网络性能下降,影响用户业务的正常运行。为了解决上述问题,可以在二层网关上配置ARP二层代答功能,如图2所示。ARP二层代答的基本原理是——二层网关设备通过监听ARP请求报文建立记录源用户信息的ARP Snooping表项(包括ARP报文的源IP地址、源MAC地址、报文的入接口等信息),这样在收到ARP请求报文后,二层网关设备优先根据ARP Snooping表项的信息进行本地代答。
在VXLAN网络中,当二层网关收到一个ARP请求报文时,会将该报文在BD内广播。如果二层网关在某一时间段内收到大量的ARP请求报文,并将这些报文都进行广播,VXLAN网络中就会出现大量的ARP请求报文,占用网络资源,造成网络性能下降。为了解决上述问题,可以在二层网关上部署基于BD的ARP二层代答,ARP二层代答可以减少广播报文。使能ARP二层代答之后,二层网关设备在收到ARP请求之后,优先尝试本地代答,只有当本地无法代答时,才会进行广播。
如图2所示,在二层网关设备开启基于BD的ARP二层代答之后,当用户接入侧端口收到ARP报文之后,设备会侦听报文中携带的ARP源信息,并将其中的源IP地址、源MAC地址、报文的入接口等信息记录到本地的ARP Snooping表项中,作为后续ARP二层代答的依据。在采用EBGP组网时,还可以在二层网关上使能BGP EVPN基于BD粒度进行主机信息搜集功能这样还会从各自侦听到的用户ARP信息,然后补充到本地的ARP Snooping表项中,这类信息记录了源IP地址、源MAC地址、报文的源VTEP IP地址。当二层网关设备再收到ARP请求报文时,设备首先根据报文中的目的IP查找本地的ARP Snooping表项(包括本地侦听的和从其他网关同步的)——如果查找成功,则用查找到的信息对ARP请求报文直接进行代答;如果查找失败,则按原有的流程处理该ARP请求报文;这样就可以显著减少VXLAN网络中的ARP广播报文。
上述的机制在一定程度上解决了大量的ARP请求报文的代答问题,但现有的ARP代答是基于单个业务进行配置,多个业务开启了ARP代答,使用的ACL规则条目数与开启ARP代答的业务数目N正相关。
具体地,现有的ARP代答功能需要在AC侧和TUNNEL侧,分别对入方向的报文匹配识别,识别出来ARP请求报文后送交CPU。在AC侧,入方向的ARP请求报文一般是原样的ARP报文,如表1所示,此时根据ARP报文的VLAN封装类型,需下发3条ACL规则实现。在TUNNEL侧,ARP报文已经采用TUNNEL封装,需要匹配TUNNEL封装的类型M,下发4*M条ACL规则。
表1:AC和PW侧ACL规则匹配的额外偏移
与就是说,现有的实现方案中中,需先匹配具体的AC侧和TUNNEL侧的intf(interface,接口)具体信息,再根据预设的偏移识别匹配报文中的ARP特征字段,每条ACL规则仅可匹配开启ARP代答的单一业务,对ACL资源消耗过多,而ACL资源在二层网关中属于比较紧缺的资源,由此产生ACL资源紧张的问题。
发明内容
有鉴于此,本发明的目的在于提供一种ARP代答及存储介质,以改善上述问题。
本发明实施例提供了一种ARP代答方法,其包括:
当检测到业务开启ARP代答功能时,在所述业务对应的AC侧和TUNNEL侧的接口增加可被ACL规则匹配识别的增强属性字段;
通过AC侧或TUNNEL侧的入方向接收ARP请求报文;
在入方向的匹配识别过程中,使用预制的ACL规则先匹配添加了增强属性字段的接口,再匹配ARP请求报文的ARP格式;
根据匹配的结果对所述ARP请求报文进行代答。
优选地,还包括:
当所述业务关闭ARP代答功能,将接口中的增强属性字段清除。
优选地,所述ACL规则由ARP代答功能下发。
优选地,所述ACL规则在二层网关初始化时配置到转发芯片;或者
通过增加全局ARP代答功能开关,在全局ARP代答开关打开后下发到转发芯片。
本发明实施例还提供了一种ARP代答装置,其包括:
字段增加单元,用于当检测到业务开启ARP代答功能时,在所述业务对应的AC侧和TUNNEL侧的接口增加可被ACL规则匹配识别的增强属性字段;
报文接收单元,用于通过AC侧或TUNNEL侧的入方向接收ARP请求报文;
匹配单元,用于在入方向的匹配识别过程中,使用预制的ACL规则先匹配添加了增强属性字段的接口,再匹配ARP请求报文的ARP格式;
代答单元,用于根据匹配的结果对所述ARP请求报文进行代答。
优选地,还包括:
清除单元,用于当所述业务关闭ARP代答功能,将接口中的增强属性字段清除。
优选地,所述ACL规则由ARP代答功能下发。
优选地,所述ACL规则在二层网关初始化时配置到转发芯片;或者
通过增加全局ARP代答功能开关,在全局ARP代答开关打开后下发到转发芯片。
本发明实施例还提供了一种ARP代答设备,其包括存储器以及处理器,所述存储器内存储有计算机程序,所述计算机程序能够被所述处理器执行,以实现如上述的ARP代答方法。
本发明实施例还提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序能够被所述计算机可读存储介质所在设备的处理器执行,以实现如上述的ARP代答方法。
综上所述,本实施例通过在TUNNEL和AC的接口增加可被ACL匹配识别的增强属性字段;若某个业务开启了ARP代答功能,则将业务内的AC侧和TUNNEL侧接口添加增强属性字段,如此可被ARP代答功能下发的ACL规则匹配送交CPU。本实施例使用的ACL资源数目与开启ARP代答功能的业务数目无关,可有效减少ARP代答功能所使用的ACL条目资源。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1是服务器虚拟化示意图。
图2是ARP代答机制原理图。
图3是本发明第一实施例提供的ARP代答方法的流程示意图。
图4是在TUNNEL侧的接口关联增强属性字段的示意图。
图5是在AC侧的接口关联增强属性字段的示意图。
图6是本发明第二实施例提供的ARP代答装置的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了更好的理解本发明的技术方案,下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。
下面结合附图与具体实施方式对本发明作进一步详细描述:
请参阅图3,本发明第一实施例提供了一种ARP代答方法,其可由ARP代答设备来执行,特别的,由所述ARP代答设备内的一个或者多个处理器来执行,实现如下步骤:
S101,当检测到业务开启ARP代答功能时,在所述业务对应的AC侧和TUNNEL侧的接口增加可被ACL规则匹配识别的增强属性字段。
在本实施例中,所述ARP代答设备可为一个二层网关或者相关的网络设备,本发明在此不做赘述。
在本实施例中,在大二层网络环境下,如图4和图5所示,若某个业务开启了ARP代答功能,则在该业务对应的AC侧和TUNNEL侧的接口(interface,intf)增加增强属性字段。该增强属性字段可在ARP报文转发处理过程中被ACL识别。
同时,若某个业务关闭了ARP代答功能,则将该业务对应的AC侧和TUNNEL侧的接口去除增强属性字段。
S102,通过AC侧或TUNNEL侧的入方向接收ARP请求报文。
S103,在入方向的匹配识别过程中,使用预制的ACL规则先匹配添加了增强属性字段的接口,再匹配ARP请求报文的ARP格式。
在本实施例中,ACL使用包过滤技术,在路由器上读取第三层及第四层包头中的信息如源地址、目的地址、源端口、目的端口等,根据预先定义好的规则对包进行过滤,从而达到访问控制的目的。其中,预先定义好的规则即为本实施例的ACL规则。
其中,所述ACL规则由ARP代答功能下发,其可以在二层网关初始化时配置到转发芯片;或者通过增加全局ARP代答功能开关,在全局ARP代答开关打开后下发到转发芯片。
在本实施例中,ACL有3个匹配属性:
(1)匹配转发芯片入方向收到的报文;
(2)匹配intf值的增强属性字段;
(3)匹配报文格式为ARP的ARP请求报文;
具体地,在AC和TUNNEL的入方向的匹配识别过程中,所述ACL规则先匹配添加了增强属性(Enhance Attribute)字段的接口,再匹配ARP格式的ARP请求报文。
可以看出,本实施例由于不匹配具体的接口值,只匹配设置了增强字段的接口,故ACL资源数目与接口的数目无关(也即与业务数目无关),只需在全局设置一条匹配入方向+接口增强字段+arp请求报文格式的ACL接口。
S104,根据匹配的结果对所述ARP请求报文进行代答。
其中,若匹配通过后,所述二层网关根据收到的ARP报文请求进行解析,获取其请求的内容,然后优先尝试本地代答,只有当本地无法代答时,才会进行广播。
综上所述,本实施例通过在TUNNEL侧和AC侧的接口增加可被ACL匹配识别的增强属性字段;若某个业务开启了ARP代答功能,则将业务内的AC侧和TUNNEL侧接口添加增强属性字段,如此可被ARP代答功能下发的ACL规则匹配送交转发芯片。本实施例使用的ACL资源数目与开启ARP代答功能的业务数目无关,可有效减少ARP代答功能所使用的ACL条目资源。
请参阅图6,本发明第二实施例还提供了一种ARP代答装置,其包括:
字段增加单元210,用于当检测到业务开启ARP代答功能时,在所述业务对应的AC侧和TUNNEL侧的接口增加可被ACL规则匹配识别的增强属性字段;
报文接收单元220,用于通过AC侧或TUNNEL侧的入方向接收ARP请求报文;
匹配单元230,用于在入方向的匹配识别过程中,使用预制的ACL规则先匹配添加了增强属性字段的接口,再匹配ARP请求报文的ARP格式;
代答单元240,用于根据匹配的结果对所述ARP请求报文进行代答。
优选地,还包括:
清除单元,用于当所述业务关闭ARP代答功能,将接口中的增强属性字段清除。
优选地,所述ACL规则由ARP代答功能下发。
优选地,所述ACL规则在二层网关初始化时配置到转发芯片;或者
通过增加全局ARP代答功能开关,在全局ARP代答开关打开后下发到转发芯片。
本发明第三实施例还提供了一种ARP代答设备,其包括存储器以及处理器,所述存储器内存储有计算机程序,所述计算机程序能够被所述处理器执行,以实现如上述的ARP代答方法。
本发明第四实施例还提供了一种计算机可读存储介质,其存储有计算机程序,所述计算机程序能够被所述计算机可读存储介质所在设备的处理器执行,以实现如上述的ARP代答方法。
在本发明实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其它的方式实现。以上所描述的装置和方法实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本发明的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,所述模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
另外,在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,电子设备,或者二层网关等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。