一种报文转发方法及装置与流程

文档序号:12729738阅读:399来源:国知局
一种报文转发方法及装置与流程
本申请涉及网络通信
技术领域
,尤其涉及一种报文转发方法及装置。
背景技术
:VXLAN(VirtualExtensibleLocalAreaNetwork,可扩展虚拟局域网络)是基于IP(InternetProtocol,互联网协议)网络、采用“MAC(MediaAccessControl,媒体访问控制)inUDP(UserDatagramProtocol,用户数据报协议)”封装形式的二层VPN(VirtualPrivateNetwork,虚拟专用网)技术。VXLAN可以基于已有的服务提供商或企业IP网络,为分散的物理站点提供二层互联,并能够为不同的租户提供业务隔离。EVPN(EthernetVirtualPrivateNetwork,以太网虚拟专用网络)是一种二层VPN技术,控制平面采用MP-BGP(MultiprotocolBorderGatewayProtocol,多协议边界网关协议)通告EVPN路由信息,数据平面采用VXLAN封装方式转发报文。技术实现要素:本申请提供一种转发表项更新方法及装置,以解决现有技术中由ARP攻击等造成的转发表项反复切换,进而导致业务无法正常运行的问题。根据本申请实施例的第一方面,提供一种转发表项更新方法,应用于以太网虚拟专用网EVPN组网中的目标虚拟可扩展局域网隧道端点VTEP设备,所述方法包括:当接收到远端VTEP设备同步的目标转发表项时,根据所述目标转发表项查询本地保存的转发表项;若本地存在与所述目标转发表项匹配的转发表项,且所述目标转发表项未设置预设标记,而本地保存的与所述目标转发表项匹配的转发表项设置有所述预设标记,则拒绝根据所述目标转发表项进行转发表项更新;其中,设置有所述预设标记的转发表项的优先级高于未设置所述预设标记的转发表项的优先级。根据本申请实施例的第二方面,提供一种转发表项更新装置,应用于以太网虚拟专用网EVPN组网中的目标虚拟可扩展局域网隧道端点VTEP设备,其特征在于,所述装置包括:接收单元,用于接收远端VTEP设备同步的目标转发表项;查询单元,用于当所述接收单元接收到远端VTEP设备同步的目标转发表项时,根据所述目标转发表项查询本地保存的转发表项;更新单元,用于若本地存在与所述目标转发表项匹配的转发表项,且所述目标转发表项未设置预设标记,而本地保存的与所述目标转发表项匹配的转发表项设置有所述预设标记,则拒绝根据所述目标转发表项进行转发表项更新;其中,设置有所述预设标记的转发表项的优先级高于未设置所述预设标记的转发表项的优先级。应用本申请实施例,当接收到远端VTEP设备同步的目标转发表项时,根据该目标转发表项查询本地保存的转发表项;若本地存在与该目标转发表项匹配的转发表项,且该目标转发表项未设置预设标记,而本地保存的与该目标转发表项匹配的转发表项设置有该预设标记,则拒绝根据该目标转发表项进行转发表项更新,从而避免了由于ARP攻击等造成的转发表项反复切换,保证相应业务正常运行。附图说明图1是一种EVPN组网的架构示意图;图2是本申请实施例提供的一种转发表项更新方法的流程示意图;图3是本申请实施例提供的一种转发表项更新装置的结构示意图;图4是本申请实施例提供的另一种转发表项更新装置的结构示意图;图5是本申请实施例提供的另一种转发表项更新装置的结构示意图。具体实施方式为了使本
技术领域
的人员更好地理解本申请实施例中的技术方案,并使本申请实施例的上述目的、特征和优点能够更加明显易懂,下面结合附图对本申请实施例中技术方案作进一步详细的说明。目前EVPN网络通过BGP协议来进行转发表项的同步,包括MAC(MediaAccessControl,媒体访问控制)和ARP(AddressResolutionProtocol,地址解析协议)表项,从而可以避免IP(InternetProtocol,互联网协议)核心网络中泛洪报文太多。以图1所示EVPN组网为例,当VM(VirtualMachine,虚拟机)1在VTEP(VXLANTunnelingEndPoint,VXLAN隧道端点)1处上线之后,VTEP1会将VM1的ARP表项和MAC表项同步给VTEP2;同理,VM2在VTEP2处上线之后,VTEP2会将VM2的ARP表项和MAC表项同步给VTEP1,进而,当VM2和VM1需要通信时,可以直接在VTEP2和VTEP1上查询到对应的转发表项,而不需要向公网侧泛洪广播报文。在图1所示的EVPN组网中,当VM1从VTEP1迁移到VTEP3下面时,VTPE3会向VTEP2同步VM1的ARP表项和MAC表项,VTEP2接收到VTEP3同步的VM1的ARP表项和MAC表项时,会将本地对应VM1的转发表项的下一跳从VXLAN隧道1切换到VXLAN隧道3,完成VM1的迁移。但,现有EVPN组网中可能会存在ARP等类型的攻击,导致EVPN组网内转发表项地反复切换,可能会导致业务无法运行。请参见图2,为本申请实施例提供的一种转发表项更新方法的流程示意图,其中,该转发表项更新方法可以应用于EVPN组网中的目标VTEP设备,如图2所示,该转发表项更新方法可以包括以下步骤:步骤201、当接收到远端VTEP设备同步的目标转发表项时,根据该目标转发表项查询本地保存的转发表项。本申请实施例中,目标VTEP设备并不特指某一固定的VTEP设备,而是可以指代EVPN组网中的任一VTEP设备,本申请实施例后续不再复述。本申请实施例中,当目标VTEP设备本地VM(virtualMachine,虚拟机)上线时,目标VTEP设备需要在本地生成该VM的转发表项(包括ARP表项以及MAC表项等),并将该转发表项同步给远端VTEP设备。同理,目标VTEP设备也会接收到远端VTEP设备同步的转发表项。本申请实施例中,当目标VTEP设备接收到远端VTEP设备同步的转发表项(本文中称为目标转发表项)时,目标VTEP设备可以根据该目标转发表项查询本地保存的转发表项,以确定本地是否存在有与该目标转发表项匹配的转发表项。其中,在本申请实施例中,转发表项匹配可以包括MAC地址相同,即当本地保存的转发表项中存在与目标转发表项中MAC地址相同的转发表项时,确定本地存在与该目标转发表项匹配的转发表项。步骤202、若本地存在与目标转发表项匹配的转发表项,且目标转发表项未设置预设标记,而本地保存的与目标转发表项匹配的转发表项设置有该预设标记,则拒绝根据该目标转发表项进行转发表项更新。本申请实施例中,为了避免ARP攻击等导致VTEP设备转发表项的频繁切换,对于特定业务(本文中可以称为关键业务)对应的转发表项,可以为其设置预设标记,其中,设置有该预设标记的转发表项的优先级高于未设置有该预设标记的转发表项的优先级,未设置有该预设标记的转发表项无法触发设置有该预设标记的转发表项的更新。为了便于描述和理解,以下以该预设标记为静态标记,设置有该预设标记的转发表项为静态表项,未设置该预设标记的转发表项为非静态表项为例进行说明。相应地,在本申请实施例中,当目标VTEP设备接收到远端VTEP设备同步的目标转发表项,并确定本地存在与该目标转发表项匹配的转发表项时,目标VTEP设备需要进一步判断该远端VTEP设备同步的目标转发表项是否为静态表项,以及本地保存的与该目标转发表项匹配的转发表项是否为静态表项。当目标VTEP设备确定目标转发表项为非静态表项,且本地保存的与该目标转发表项匹配的转发表项为静态表项时,目标VTEP设备可以拒绝根据该目标转发表项进行转发表项更新。进一步地,在本申请实施例中,当目标VTEP设备确定目标转发表项为非静态表项,且本地保存的与该目标转发表项匹配的转发表项也为非静态表项,即目标转发表项以及本地保存的与该目标转发表项匹配的转发表项均为非静态表项时,目标VTEP设备可以根据该目标转发表项进行转发表项更新,例如,将本地保存的与目标转发表项匹配的转发表项中的下一跳更新为接收到该目标转发表项的VXLAN隧道。当目标VTEP设备确定目标转发表项为静态表项,且本地保存的与该目标转发表项匹配的转发表项也为静态表项,即目标转发表项以及本地保存的与该目标转发表项匹配的转发表项均为静态表项时,目标VTEP设备可以根据该目标转发表项进行转发表项更新。当目标VTEP设备确定目标转发表项为静态表项,且本地保存的与该目标转发表项匹配的转发表项为非静态表项时,目标VTEP设备可以根据该目标转发表项进行转发表项更新。其中,在该情况下,目标VTEP设备除了需要更新本地保存的与目标转发表项匹配的转发表项的下一跳之外,还可以将本地保存的该转发表项设置为静态表项。进一步地,在本申请实施例中,当目标VTEP设备中不存在与目标转发表项匹配的转发表项,且该目标转发表项为静态表项时,目标VTEP设备可以将目标转发表项在本地保存为静态表项。在本申请实施例中,当目标VTEP设备接收到远端VTEP设备同步的目标转发表项,且在本地保存的转发表项中未查询到与该目标转发表项匹配的转发表项时,目标VTEP设备可以进一步判断该转发表项是否为静态表项,若该转发表项为静态表项,则目标VTEP设备可以将该转发表项在本地保存为静态表项。值得说明的是,在本申请实施例中,若目标VTEP设备在本地保存的转发表项中未查询到与目标转发表项匹配的转发表项,且该转发表项为非静态表现时,目标VTEP设备可以按照现有相关流程中的处理方式进行处理,本申请实施例对此不做赘述。本申请实施例中,关键业务可以由用户(如管理员)手动配置,也可以根据业务流量的转发需求来确定。举例来说,以关键业务由用户手动配置为例,假设用户在VTEP1上配置关键业务的IP地址为IP1,MAC地址为MAC1,则当VTEP1检测到IP地址为IP1,MAC地址为MAC1的VM上线时,可以将本地生成的该VM的转发表项设置为静态表项,并将其同步给远端VTEP设备。又举例来说,以关键业务根据业务流量的转发需求来确定为例,假设某业务在指定时间段内业务流量转发需求超过预设阈值,则VTEP设备可以在该指定时间段内将该业务设置为关键业务,相应地,该关键业务对应的转发表项可以设置为静态表项。在本申请实施例中,还可以包括以下步骤:11)、当检测到虚拟机上线时,在本地生成该虚拟机对应的转发表项;12)、当该虚拟机满足预设条件时,为该转发表项设置所述预设标记,并将该设置有所述预设标记的转发表项同步给远端VTEP设备。具体地,在本申请实施例中,当目标VTEP设备检测到VM上线时,需要在本地生成该VM对应的转发表项。目标VTEP设备生成该VM对应的转发表项之后,需要判断该VM是否满足预设条件,例如,该VM的IP地址和MAC地址是否属于预先配置的关键业务的IP地址和MAC地址,或者,该VM是否属于预先配置的需要进行防ARP攻击保护的VM(可以根据VM的IP地址和MAC地址确定),若目标VTEP设备确定该VM满足预设条件,例如,该VM的IP地址和MAC地址属于预先配置的关键业务的IP地址和MAC地址,或者,该VM属于预先配置的需要进行防ARP攻击保护的VM等,目标VTEP设备可以确定该VM的转发表项为静态表项(即为该转发表项设置上述预设标记),并将该静态表项(即设置有预设标记的转发表项)同步给远端VTEP设备,以指示远端VTEP设备该VM的转发表项为静态表项。其中,远端VTEP设备接收到目标VTEP设备同步的该VM的转发表项时,可以将该转发表项下发为静态表项。值得说明的是,在该实施例中,当目标VTEP设备确定该VM对应的转发表项为非静态转发表项时,目标VTEP设备可以按照现有方案中的相关流程进行处理,本申请实施例在此不做赘述。进一步地,在本申请实施例中,对于目标VTEP设备本地保存的任一静态表项,当在预设时长内不存在该静态表项对应的流量时,将该静态表项转换为非静态表项,即删除该转发表项对应的预设标记。具体地,在本申请实施例中,对于静态表项,可以预先设定对应的老化时间(或者称为固化时间),对于任一静态表项,目标VTEP设备可以监测在该静态表项的老化时间之内是否存在对应的流量,若存在,则重置该静态表项的老化时间;若在该静态表项对应的老化时间内不存在该静态表项对应的流量,则目标VTEP设备可以将该静态表项转换为非静态表项。可见,在图2所示的方法流程中,通过将特定业务对应的转发表项设置为静态表项,且非静态表项无法触发静态表项,从而能够避免ARP攻击等造成特定业务对应的转发表项的反复切换,保证了特定业务的正常运行。为了使本领域技术人员更好地理解本申请实施例提供的技术方案,下面结合具体应用场景对本申请实施例提供的技术方案进行描述。以图1所示EVPN组网为例,假设VM1的IP地址为10.1.1.2,MAC地址为1-1-1,VTEP1上配置关键业务的IP地址为10.1.1.2,MAC地址为1-1-1。基于该应用场景,本申请实施例提供的转发表项更新方案实现如下:1、当VM1上线时,VTEP1在本地生成VM1的转发表项,下一跳指向VM1。2、VTEP1根据本地配置的关键业务的IP地址和MAC地址,确定VM1对应的转发表项为静态表项,从而,VTEP1将本地生成的VM1对应的ARP表项和MAC表项设置为静态表项,并通过EVPN2类路由将该ARP表项和MAC表项同步给VTEP2,其中,该EVPN2类路由中携带有针对该ARP表项和MAC表项的静态标记,该静态标记用于标识该ARP表项和MAC表项为静态表项;此外,该EVPN2类路由中还可以携带静态表项对应的固化时间,该固化时间可以根据实际需求设定,在该实施例中以600秒为例。3、VTEP2接收到VTEP1发送的同步消息时,发现其中携带有静态标记,因此,VTEP2可以将VM1对应的转发表项下发为静态表项,该转发表项的下一跳为VXLAN隧道1,同时建立VM1对应的ARP和MAC的静态标记表格,并从报文中解析出固化时间,下发如下所示的静态标记表格:业务IP业务MAC静态标记固化时间10.1.1.21-1-11600S其中,静态标记为1表明对应的转发表项为静态表项。4、当VTEP2接收到其它远端VTEP设备,如VTEP3同步过来的ARP表项和MAC表项,且本地存在匹配的转发表项,若VTEP3同步的该ARP表项和MAC表项为非静态表项,而VTEP2上对应的转发表项为静态表项,则VTEP2直接忽略该同步消息。若VTEP2对应的转发表项为非静态表项,或者VTEP3同步的ARP表项和MAC表项为静态表项,则VTEP2实施VM迁移,将VM1对应的转发表项的下一跳切换为VXLAN隧道3。5、当VTEP2在静态表项对应的固化时间内,一直未接收到发向10.1.1.2\1-1-1的业务流量,则VTEP2可以将10.1.1.2/1-1-1对应的转发表项转换为非静态表项。通过以上描述可以看出,在本申请实施例提供的技术方案中,当接收到远端VTEP设备同步的目标转发表项时,根据该目标转发表项查询本地保存的转发表项;若本地存在与该目标转发表项匹配的转发表项,且该目标转发表项未设置预设标记,而本地保存的与该目标转发表项匹配的转发表项设置有该预设标记,则拒绝根据该目标转发表项进行转发表项更新,从而避免了由于ARP攻击等造成的转发表项反复切换,保证相应业务正常运行。请参见图3,为本申请实施例提供的一种转发表项更新装置的结构示意图,其中,所述转发表项更新装置可以应用于上述方法实施例中的目标VTEP设备,如图3所示,该转发表项更新装置可以包括:接收单元310,用于接收远端VTEP设备同步的目标转发表项;查询单元320,用于当所述接收单元310接收到远端VTEP设备同步的目标转发表项时,根据所述目标转发表项查询本地保存的转发表项;更新单元330,用于若本地存在与所述目标转发表项匹配的转发表项,且所述目标转发表项未设置预设标记,而本地保存的与所述目标转发表项匹配的转发表项设置有所述预设标记,则拒绝根据所述目标转发表项进行转发表项更新;其中,设置有所述预设标记的转发表项的优先级高于未设置所述预设标记的转发表项的优先级。在可选实施例中,所述更新单元330,还用于若本地存在与所述目标转发表项匹配的转发表项,且所述目标转发表项以及本地保存的与所述目标转发表项匹配的转发表项均设置有所述预设标记,或者,所述目标转发表项以及本地保存的与所述目标转发表项匹配的转发表项均未设置所述预设标记,或者,所述目标转发表项设置有所述预设标记,但本地保存的与所述目标转发表项匹配的转发表项未设置所述预设标记,则根据所述目标转发表项进行转发表项更新。请一并参见图4,为本申请实施例提供的另一种转发表项更新装置的结构示意图,如图4所示,在图3所示转发表项更新装置的基础上,图4所示的转发表项更新装置还包括:保存单元340,用于若本地不存在与所述目标转发表项匹配的转发表项,且所述目标转发表项设置有所述预设标记时,将所述目标转发表项在本地保存,并设置所述预设标记。请一并参见图5,为本申请实施例提供的另一种转发表项更新装置的结构示意图,如图5所示,在图3所示转发表项更新装置的基础上,图5所示的转发表项更新装置还包括:生成单元350,用于当检测到虚拟机上线时,在本地生成该虚拟机对应的转发表项;设置单元360,用于当该虚拟机满足预设条件时,为该转发表项设置所述预设标记;发送单元370,用于将该设置有所述预设标记的转发表项同步给远端VTEP设备。在可选实施例中,所述更新单元330,还用于对于本地保存的任一设置有所述预设标记的转发表项,当在预设时长内不存在该转发表项对应的流量时,删除该转发表项对应的所述预设标记。上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。由上述实施例可见,当接收到远端VTEP设备同步的目标转发表项时,根据该目标转发表项查询本地保存的转发表项;若本地存在与该目标转发表项匹配的转发表项,且该目标转发表项未设置预设标记,而本地保存的与该目标转发表项匹配的转发表项设置有该预设标记,则拒绝根据该目标转发表项进行转发表项更新,从而避免了由于ARP攻击等造成的转发表项反复切换,保证相应业务正常运行。本领域技术人员在考虑说明书及实践这里公开的申请后,将容易想到本申请的其它实施方案。本申请旨在涵盖本申请的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本申请的一般性原理并包括本申请未公开的本
技术领域
中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本申请的真正范围和精神由下面的权利要求指出。应当理解的是,本申请并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本申请的范围仅由所附的权利要求来限制。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1