本申请涉及通信技术,尤其涉及一种报文处理方法及装置。
背景技术:
vxlan(virtualextensiblelan,可扩展虚拟局域网络)是基于因特网互联协议(ip)网络、采用“媒体访问控制在用户数据报协议中(macinudp)”封装形式的二层虚拟专用网络(vpn)技术。vxlan主要应用于数据中心网络。
其中,vxlan的无状态网关组网是非常广泛的一种应用,如图1所示,vxlan的无状态网关组网包括多个vxlan网关(gw),且所有vxlan网关都是无状态网关,即所有vxlan网关的ip地址和媒体访问控制(mediaaccesscontrol,mac)地址完全相同,这样,对于vxlan隧道端点(vxlantunnelingendpoint,vtep)设备来说,所有vxlan网关就相当于一台设备,vtep设备不用区分各vxlan网关。
但是,在图1所示的无状态网关组网中,如果某个虚拟机(vm)受到攻击,发出冒充网关的地址解析协议(arp)广播,则所有其它vm都会收到该arp广播,导致所有发往网关的报文封装错误,致使整个网络故障。
技术实现要素:
有鉴于此,本申请提供一种报文处理方法及装置。
具体地,本申请是通过如下技术方案实现的:
根据本发明实施例的第一方面,提供一种报文处理方法,应用于vtep设备上,所述方法包括:
接收arp报文;
判断所述arp报文的发送端ip地址和预设的网关ip地址以及所述arp报文的发送端mac地址和预设的网关mac地址是否均匹配;
若二者均匹配,则检查所述arp报文的转发方向是否正确,若所述转发方向错误,则丢弃所述arp报文;
若所述发送端ip地址和预设的网关ip地址不匹配,或者所述发送端mac地址和预设的网关mac地址不匹配,则丢弃所述arp报文。
根据本发明实施例的第二方面,提供一种报文处理装置,应用于可扩展虚拟局域网隧道端点vtep设备上,所述装置包括:
接收模块,用于接收arp报文;
匹配模块,用于判断所述接收模块接收的所述arp报文的发送端ip地址和预设的网关ip地址以及所述arp报文的发送端mac地址和预设的网关mac地址是否均匹配;
检查丢弃模块,用于若所述匹配模块的匹配结果为二者均匹配,则检查所述arp报文的转发方向是否正确,若所述转发方向错误,则丢弃所述arp报文;
丢弃模块,用于若所述匹配模块的匹配结果为所述发送端ip地址和预设的网关ip地址不匹配,或者所述发送端mac地址和预设的网关mac地址不匹配,则丢弃所述arp报文。
在本申请实施例中,通过将arp报文的发送端ip地址和预设的网关ip地址以及所述arp报文的发送端mac地址和预设的网关mac地址进行匹配,并根据匹配结果识别出攻击报文,并丢弃属于攻击报文的arp报文,从而可以避免将攻击报文发往网关,减少了网络故障。
附图说明
图1是现有一示例性实施例示出的一种无状态网关组网的示意图;
图2是本申请一示例性实施例示出的一种报文处理方法的流程图;
图3是本申请一示例性实施例示出的另一种报文处理方法的流程图;
图4是本申请一示例性实施例示出的另一种报文处理方法的流程图;
图5是本申请报文处理装置所在vtep设备的一种硬件结构图;
图6是本申请一示例性实施例示出的一种报文处理装置的框图;
图7是本申请一示例性实施例示出的一种报文处理装置的框图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
在本申请实施例中,vtep作为接入设备,负责对南向进入的报文进行封装和南向出去的报文进行解封装处理,因此vm发出去的报文要首先经过vtep进行加vxlan封装处理。有鉴于此,本申请在vtep上对报文进行处理,本申请实施例中,首先在vtep上预设所有vxlan的网关ip地址和mac地址,并将arp报文的发送端ip地址(senderipaddress)和预设的网关ip地址以及arp报文的发送端mac地址(sendermacaddress)和预设的网关mac地址进行匹配,然后根据匹配结果确认报文是否是攻击报文,并丢弃攻击报文,以避免将攻击报文发往网关,从而减少网络故障。下面结合具体实施例对本申请的实现过程进行详细描述。
图2是本申请一示例性实施例示出的一种报文处理方法的流程图,该实施例从vtep侧进行描述。如图2所示,该报文处理方法包括:
步骤s201,接收arp报文。
步骤s202,判断该arp报文的发送端ip地址和预设的网关ip地址以及该arp报文的发送端mac地址和预设的网关mac地址是否均匹配,若均匹配成功,则执行步骤s203,若发送端ip地址和预设的网关ip地址不匹配,或者发送端mac地址和预设的网关mac地址不匹配,则执行步骤s204。
其中,vtep设备可以接收并保存预先设置的网关ip地址和网关mac地址。
步骤s203,检查该arp报文的转发方向是否正确,若转发方向错误,则执行步骤s204。
在该实施例中,若二者均匹配成功,则需要进行一步检查报文的转发方向是否正确,其中,检查报文的转发方向是否正确的方式可以是:检查报文的转发方向是否为发向vtep设备所接入的虚拟机的方向也即从北向南,如果转发方向不是从北向南,则认为是攻击报文。
步骤s204,丢弃该arp报文。
如果只有一个字段信息匹配成功,则认为是攻击报文。在确认该arp报文是攻击报文后,将该arp报文丢弃。
上述实施例,通过将arp报文的发送端ip地址和预设的网关ip地址以及arp报文的发送端mac地址和预设的网关mac地址进行匹配,并根据匹配结果识别出攻击报文,并丢弃属于攻击报文的arp报文,从而可以避免将攻击报文发往网关,减少了网络故障。
图3是本申请一示例性实施例示出的另一种报文处理方法的流程图,如图3所示,在图2中的s204之后,还可以包括:
步骤s205,输出arp报文相关的故障定位信息,以用于定位故障点。
在该实施例中,在确认该报文是攻击报文之后,可以通过日志信息(log)或告警信息等多种方式向网络管理员输出该arp报文相关的故障定位信息,该故障定位信息可以包括但不局限于报文内容和接收该arp报文的物理端口,以方便网络管理员据此快速、有效地定位故障点。
上述实施例,通过向网络管理员输出该arp报文相关的故障定位信息,可以方便网络管理员快速、有效地定位到故障点。
图4是本申请一示例性实施例示出的另一种报文处理方法的流程图,如图4所示,该方法包括:
步骤s401,接收arp报文。
步骤s402,判断该arp报文的发送端ip地址和网关ip地址以及该arp报文的发送端mac地址和网关mac地址是否均匹配,若均不匹配,执行步骤s403,若均匹配,则执行步骤s404,若只有一项匹配成功,则执行步骤s405。
步骤s403,转发该arp报文,操作结束。
若二者均不匹配,则认为该报文是正常报文,按照该报文的原转发规则进行转发。
步骤s404,检查该arp报文的转发方向是否正确,若转发方向正确,则执行步骤s403,若转发方向错误,则执行步骤s405。
步骤s405,丢弃该arp报文,并通知网络管理员进行检查。
上述实施例,通过将arp报文的发送端ip地址和预设的网关ip地址以及arp报文的发送端mac地址和预设的网关mac地址进行匹配,并根据匹配结果转发arp报文或丢弃arp报文,以避免将攻击报文发往网关,从而减少网络故障。
与前述报文处理方法的实施例相对应,本申请还提供了报文处理装置的实施例。
本申请报文处理装置的实施例可以应用在vtep设备上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在vtep设备的处理器将非易失性存储器中对应的计算机程序指令读取到内存中运行形成的。从硬件层面而言,如图5所示,是本申请报文处理装置500所在vtep设备的一种硬件结构图,除了图5所示的处理器510、内存520、网络接口530、以及非易失性存储器540之外,实施例中装置所在的vtep设备通常根据其实际功能,还可以包括其他硬件,对此不再赘述。
图6是本申请一示例性实施例示出的一种报文处理装置的框图,该装置可应用于vtep设备上,如图6所示,该报文处理装置包括:接收模块61、匹配模块62、检查丢弃模块63和丢弃模块64。
接收模块61用于接收arp报文。
匹配模块62用于判断接收模块61接收的arp报文的发送端ip地址和预设的网关ip地址以及arp报文的发送端mac地址和预设的网关mac地址是否均匹配。
检查丢弃模块63用于若匹配模块62的匹配结果为二者均匹配,则检查arp报文的转发方向是否正确,若转发方向错误,则丢弃arp报文。
丢弃模块64用于若匹配模块62的匹配结果为发送端ip地址和预设的网关ip地址不匹配,或者发送端mac地址和预设的网关mac地址不匹配,则丢弃arp报文。
在一个可选的实施方式中,该装置还可以包括:输出模块65。
输出模块65用于在检查丢弃模块63或丢弃模块64丢弃报文之后,输出arp报文相关的故障定位信息,以用于定位故障点。
在另一个可选的实施方式中,该装置还可以包括:第一转发模块66。
第一转发模块66用于在匹配模块62判断arp报文的发送端ip地址和预设的网关ip地址以及arp报文的发送端mac地址和预设的网关mac地址是否均匹配之后,若二者均不匹配,则转发arp报文。
在另一个可选的实施方式中,该装置还可以包括:第二转发模块67。
第二转发模块67用于在检查丢弃模块63检查arp报文的转发方向是否正确之后,若转发方向正确,则转发arp报文。
在另一个可选的实施方式中,如图7所示,检查丢弃模块63可以包括:检查子模块631和确定子模块632。
检查子模块631用于检查arp报文的转发方向是否为发向vtep设备所接入的虚拟机的方向。
确定子模块632用于若检查子模块631检查到arp报文是发向vtep设备所接入的虚拟机的方向,则确定转发方向正确,若检查子模块631检查到arp报文不是发向vtep设备所接入的虚拟机的方向,则确定转发方向错误。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
上述报文处理装置,通过将arp报文的发送端ip地址和预设的网关ip地址以及arp报文的发送端mac地址和预设的网关mac地址进行匹配,并根据匹配结果识别出攻击报文,并丢弃属于攻击报文的arp报文,从而可以避免将攻击报文发往网关,减少了网络故障。
以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。