CN106899706B - 一种泛洪抑制方法及装置 - Google Patents

一种泛洪抑制方法及装置 Download PDF

Info

Publication number
CN106899706B
CN106899706B CN201710018228.7A CN201710018228A CN106899706B CN 106899706 B CN106899706 B CN 106899706B CN 201710018228 A CN201710018228 A CN 201710018228A CN 106899706 B CN106899706 B CN 106899706B
Authority
CN
China
Prior art keywords
arp
address
table entry
request message
vtep
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201710018228.7A
Other languages
English (en)
Other versions
CN106899706A (zh
Inventor
吴云
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou H3C Technologies Co Ltd
Original Assignee
Hangzhou H3C Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hangzhou H3C Technologies Co Ltd filed Critical Hangzhou H3C Technologies Co Ltd
Priority to CN201710018228.7A priority Critical patent/CN106899706B/zh
Publication of CN106899706A publication Critical patent/CN106899706A/zh
Application granted granted Critical
Publication of CN106899706B publication Critical patent/CN106899706B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L61/00Network arrangements, protocols or services for addressing or naming
    • H04L61/09Mapping addresses
    • H04L61/10Mapping addresses of different types
    • H04L61/103Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L12/00Data switching networks
    • H04L12/28Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
    • H04L12/46Interconnection of networks
    • H04L12/4641Virtual LANs, VLANs, e.g. virtual private networks [VPN]

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Small-Scale Networks (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明实施例提供了一种泛洪抑制方法及装置,应用于可扩展虚拟局域网络VXLAN中,所述VXLAN网络包括隧道节点设备VTEP和虚拟机VM,所述的方法包括:VTEP接收VM发送的地址解析协议ARP请求报文并解析;依据所述解析后的ARP请求报文,向所述VM单播免费ARP报文;当接收到所述VM针对所述免费ARP报文的应答时,建立第一ARP泛洪抑制表项;将所述ARP请求报文封装为VXLAN封装的ARP请求报文,发送到所述VXLAN网络内的其他VTEP;其中,所述第一ARP泛洪抑制表项包括所述ARP请求报文对应的源IP地址和源MAC地址。从而保证了建立的ARP表项的正确性,防止了流量被错误的转发。

Description

一种泛洪抑制方法及装置
技术领域
本发明涉及通信技术领域,特别是涉及一种泛洪抑制方法和一种泛洪抑制装置。
背景技术
由于可扩展虚拟局域网络(Virtual eXtensible LAN,VXLAN)可以按照需要进行虚拟网络部署,而无需对物理网络进行重新配置;还可以支持多租户环境下的大规模网络部署,因此,VXLAN网络被广泛应用。
VXLAN网络中的虚拟机(Virtual Machine,VM)向其他VM发送数据报文时,会向与其连接的隧道端点设备(VXLAN Tunnel End Point,VTEP)发送请求目的MAC的地址解析协议(Address Resolution Protocol,ARP)报文,VTEP在接收到ARP请求报文后,会向VXLAN网络中的其他VTEP或本地站点广播该ARP请求报文;为了避免广播发送的ARP请求报文占用核心网络带宽,现有技术中,VTEP从本地站点或VXLAN隧道接收到ARP请求和ARP应答报文后,根据该报文在本地建立ARP泛洪抑制表项。后续当VTEP收到本站点内VM请求其它VM的MAC地址的ARP请求时,优先根据ARP泛洪抑制表项进行代答。如果没有对应的ARP泛洪抑制表项,则将ARP请求泛洪到核心网。ARP泛洪抑制功能可以大大减少ARP泛洪的次数。
但当VM使用某个伪造IP地址作为源IP构造发送ARP报文时,由于VTEP无法区分该伪造的IP地址是不是VM自身的IP地址,因此,VTEP同样也会为该伪造的源IP地址建立相应的ARP泛洪抑制表项,从而造成目的IP为此地址的数据报文被错误地转发到该VM。
发明内容
本发明实施例所要解决的技术问题是提供一种泛洪抑制方法,以防止VM通过伪造源IP发送ARP使VTEP建立错误的ARP泛洪抑制表项,造成流量被错误的转发。
相应的,本发明实施例还提供了一种泛洪抑制装置,用以保证上述方法的实现及应用。
为了解决上述问题,本发明实施例公开了一种泛洪抑制方法,应用于可扩展虚拟局域网络VXLAN中,所述VXLAN网络包括隧道节点设备VTEP和虚拟机VM,所述的方法具体包括:VTEP接收VM发送的地址解析协议ARP请求报文并解析;依据所述解析后的ARP请求报文,向所述VM单播免费ARP报文;当接收到所述VM针对所述免费ARP报文的应答时,建立第一ARP泛洪抑制表项;将所述ARP请求报文封装为VXLAN封装的ARP请求报文,发送到所述VXLAN网络内的其他VTEP;其中,所述第一ARP泛洪抑制表项包括所述ARP请求报文对应的源IP地址和源MAC地址。
本发明实施例还公开了一种泛洪抑制装置,应用于可扩展虚拟局域网络VXLAN中的VTEP上,所述的装置具体包括:报文接收模块,用于调用VTEP接收VM发送的地址解析协议ARP请求报文并解析;报文单播模块,用于依据所述解析后的ARP请求报文,向所述VM单播免费ARP报文;第一表项建立模块,用于当接收到所述VM针对所述免费ARP报文的应答时,建立第一ARP泛洪抑制表项;以及将所述ARP请求报文封装为VXLAN封装的ARP请求报文,发送到所述VXLAN网络内的其他VTEP;其中,所述第一ARP泛洪抑制表项包括所述ARP请求报文对应的源IP地址和源MAC地址。
与现有技术相比,本发明实施例包括以下优点:
本发明实施例所述的泛洪抑制方法,应用于VXLAN网络中,所述VXLAN网络包括VTEP和VM,在VTEP接收到VM发送的ARP请求报文后,即向所述VM单播免费ARP报文,当接收到VM针对该单播的ARP报文的应答时,再建立一个与源IP地址对应的表项;从而,使得VTEP可以依据VM针对单播的ARP报文进行应答,建立源IP地址对应的表项;从而保证了VTEP建立ARP泛洪抑制表项的正确性,防止了由于建立错误的ARP泛洪抑制表项而造成的流量被错误的转发。
附图说明
图1是本发明的一种泛洪抑制方法实施例的步骤流程图;
图2是是本发明的VXLAN网络中VTEP组网示意图;
图3是本发明的另一种泛洪抑制方法实施例的步骤流程图;
图4是本发明一种泛洪抑制装置实施例的结构框图;
图5是本发明另一种泛洪抑制装置实施例的结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式对本发明作进一步详细的说明。
本发明实施例的核心构思之一在于,提出一种泛洪抑制方法和泛洪抑制装置,以防止VM通过伪造源IP发送ARP使VTEP建立错误的ARP泛洪抑制表项,造成流量被错误的转发。其中,所述的泛洪抑制方法应用于VXLAN网络中,所述VXLAN网络包括VTEP和VM,具体的,在VTEP接收到VM发送的ARP请求报文后,即向所述VM单播免费的ARP报文,当接收到VM针对该单播的ARP报文的应答时,再在其一类ARP泛洪抑制表中建立一个与源IP地址对应的表项;从而,使得VTEP可以依据VM针对单播的ARP报文进行应答,在一类ARP泛洪抑制表中建立源IP地址对应的表项;从而保证了VTEP建立ARP泛洪抑制表项的正确性,防止了由于建立错误的ARP泛洪抑制表项而造成的流量被错误的转发。
参照图1,示出了本发明的一种泛洪抑制方法实施例的步骤流程图,具体可以包括如下步骤:
步骤102、VTEP接收VM发送的地址解析协议ARP请求报文并解析。
步骤104、依据所述解析后的ARP请求报文,向所述VM单播免费ARP报文。
步骤106、当接收到所述VM针对所述免费ARP报文的应答时,建立第一ARP泛洪抑制表项;其中,所述第一ARP泛洪抑制表项包括所述ARP请求报文对应的源IP地址和源MAC地址。
步骤108、将所述ARP请求报文封装为VXLAN封装的ARP请求报文,发送到所述VXLAN网络内的其他VTEP。
本发明实施例提出的泛洪抑制方法,是用于VXLAN网络中的VTEP在接收VM发送的ARP请求报文时,建立其一类ARP泛洪抑制表中的泛洪抑制表项的方法,其中,所述的一类ARP泛洪抑制表是以ARP请求报文的源IP地址建立的,其中的每个表项均包括ARP请求报文的源IP地址和源MAC地址。
由于在VM向目的IP地址发送流量时,VM需要知道目的IP对应的MAC地址,即目的VM的MAC地址;因此,VM会向VXLAN网络中的各VTEP广播一个ARP请求报文,以获取该目的IP地址对应的目的MAC地址。具体的,所述VM在向目的IP地址发送流量之前,向与该VM连接的VTEP发送一个ARP请求报文,再由该VTEP将所述ARP请求报文泛洪至VXLAN网络中的其他的VTEP上,然后再由其他各VTEP将所述ARP请求报文下发至各自的下挂VM中,以找到所述ARP请求报文中目的IP地址对应的目的VM,从而可以根据VM的应答获取到目的MAC地址。VETP接收到VM发送的ARP请求报文后,对所述ARP请求报文进行解析,得到ARP请求报文数据;所述ARP请求报文数据中包括发送ARP请求报文设备的IP地址和MAC地址,即源IP地址和源MAC地址,以及目的IP地址;VTEP可以根据所述源IP地址和源MAC地址,在其一类ARP泛洪抑制表中建立与源IP地址对应的第一ARP泛洪抑制表项。
由于VM可能使用伪造的IP地址发送所述ARP请求报文,使得VTEP上建立的第一ARP泛洪抑制表项是错误的,从而导致了流量的错误转发,因此,在VTEP在建立第一ARP泛洪抑制表项之前,可以先判断所述ARP请求报文数据中的源IP地址,是否是发送所述ARP请求报文的VM的真实IP地址;当所述源IP地址是所述VM的真实IP地址时,VTEP才执行建立第一ARP泛洪抑制表项的操作;当所述源IP地址不是所述VM的真实IP地址时,VTEP则无需建立第一ARP泛洪抑制表项。具体的,由于VM接收到所述免费ARP报文后,对所述免费ARP报文进行解析;当所述免费ARP报文中的目的IP地址和目的MAC地址,分别与VM的IP地址和MAC地址都相同时,VM将返回VTEP一条ARP应答报文。而当所述免费ARP报文中的目的IP地址与VM的IP地址,或者,免费ARP报文中目的MAC地址与VM的MAC不相同时,则不会向所述VETP返回应答。因此,判断ARP请求报文数据中的源IP地址是否是VM真实的IP地址的方法是,VTEP向VM单播一条免费ARP报文,其中,生成免费ARP报文的方式是,从解析后的ARP请求报文中获取源IP地址和源MAC地址;将所述源IP地址和源MAC地址,分别作为免费ARP报文的目的IP地址和目的MAC地址。当VTEP接收到VM针对所述免费ARP报文的应答时,则可以确定VM真实的IP地址是所述ARP请求报文数据中的源IP地址;此时,VTEP可以在所述一类ARP泛洪抑制表中,以所述ARP报文数据中的源IP地址为依据,建立包含源IP地址和源MAC地址的第一ARP泛洪抑制表项;因此,所述第一ARP泛洪抑制表项为正确的ARP泛洪抑制表项。在建立所述第一ARP泛洪抑制表项之后,将所述ARP请求报文为VXLAN封装的ARP请求报文,再将所述ARP请求报文发送至VXLAN网络内的其他的VTEP上,从而其他的VTEP上建立的第一ARP泛洪抑制表项也是正确的。而当VTEP没有接收到VM针对所述免费ARP报文的应答时,则可以确定所述ARP请求报文数据中的源IP地址是VM伪造的地址;此时,VTEP无需建立所述第一ARP泛洪抑制表项,为了使得其他的VTEP上同样不建立所述第一ARP泛洪抑制表项,VTEP在没接收到VM的应答后,除了不建立所述第一ARP泛洪抑制表项外,也不向其他的VTEP泛洪所述ARP请求报文,以防止其他的VTEP上建立错误的第一ARP泛洪抑制表项。
此外,VTEP在未接收到VM针对所述免费ARP报文的应答时,除了不建立所述第一ARP泛洪抑制表项外,还需判断在预设时间内接收到的VM发送的所述ARP请求报文的数量是否超过阈值,其中,预设时间和阈值可以根据实际情况设置,如预设时间为5s,阈值为5个;若未超过阈值,则向所述VTEP下挂的其他VM发送所述ARP请求报文,而不向VXLAN网络内其他的VTEP发送所述ARP请求报文;若超过阈值,则VTEP不向其他任何设备泛洪所述ARP请求报文;且在预设时间如30s内不处理所述VM发送的ARP请求报文,以防止ARP的恶意攻击。
为了更清楚的说明本发明的实施例,可以结合参照图2,对所述泛洪抑制方法的具体步骤进行详细的说明。图2示出了本发明的VXLAN网络中VTEP组网示意图,图2中,VTEP1、VTEP2和VTEP3通过核心网络互联,VTEP1、VTEP2和VTEP3下挂的虚拟设备分别为VM1、VM2和VM3,VM1、VM2和VM3属于同一个VXLAN,其中,VTEP1的IP地址为IP1、MAC地址为MAC1,VTEP2的IP地址为IP2、MAC地址为MAC2,VTEP3的IP地址为IP3、MAC地址为MAC3。以下以VM1为例,对VM不使用伪造IP地址和使用伪造IP地址两种情况下,发送ARP请求报文后VTEP1的处理方法进行说明。其中,在VM不使用伪造IP地址的情况下,VTEP对接收的所述ARP请求报文的处理方法是:VM1使用自身IP地址IP1,以IP2为目的IP地址,向VTEP1发送ARP请求报文;VTEP1接收到所述ARP请求报文并解析后,以IP1、MAC1分别为免费ARP报文得目的IP地址和目的MAC地址,向VM1单播所述免费单播报文;VM1会向VTEP1回复应答,VTEP1接收到VM1的应答后,建立IP1、MAC1对应的第一ARP泛洪抑制表项,并将所述ARP请求报文泛洪至VTEP2和VTPE3上,VTEP2和VTPE3均建立IP1、MAC1对应的第一ARP泛洪抑制表项。在VM使用伪造IP地址的情况下,VTEP对接收的所述ARP请求报文的处理方法是:VM1使用伪造IP地址IP3,以IP2为目的IP地址,向VTEP1发送ARP请求报文;VTEP1接收到所述ARP请求报文并解析后,以IP3、MAC1分别为免费ARP报文的目的IP地址和目的MAC地址,向VM1单播所述免费单播报文;由于IP3不是VM1的IP地址,因此,VM1不会向VTEP1回复应答,使得VTEP1、VTEP2和VTEP3均不会建立IP3、MAC1对应的ARP泛洪抑制表项,从而避免了VM2向IP3发送流量时,不会根据IP3、MAC1对应的ARP泛洪抑制表项,将流量转发至VM1上。
本发明实施例所述的泛洪抑制方法,应用于VXLAN网络中,所述VXLAN网络包括VTEP和VM,在VTEP接收到VM发送的ARP请求报文后,即向所述VM单播免费ARP报文,当接收到VM针对该单播的ARP报文的应答时,再建立一个与源IP地址对应的表项;从而,使得VTEP可以依据VM针对单播的ARP报文进行应答,建立源IP地址对应的表项;从而保证了VTEP建立ARP泛洪抑制表项的正确性,防止了由于建立错误的ARP泛洪抑制表项而造成的流量被错误的转发。
在所述VTEP泛洪所述ARP请求报文后,当所述ARP请求报文中目的IP对应的目的VM在线时,目的VM会回复对应的应答报文;当VTEP接收所述应答报文后,在其一类ARP泛洪抑制表中,建立应答报文的源IP地址对应的表项,包括所述应答报文的源IP地址和源MAC地址,所述表项中的源IP地址即为所述ARP请求报文中的目的地址;此时,VTEP会告知对应的VM已经获取到所述ARP请求报文请求的目的MAC地址,则VM不再向该VTEP发送所述ARP请求报文。但当该目的VM不在线时,例如,目的VM不存在或出现故障时,VTEP无法收到对应的应答报文,使得VTEP的一类ARP泛洪抑制表中,无法建立ARP请求报文中目的IP地址对应的ARP泛洪抑制表项;此时VTEP不会向对应的VM发送消息;从而,VM会多次向VTEP发送所述ARP请求报文,而VTEP则会将该ARP请求报文泛洪发往其他所有的VTEP,占用核心网络带宽并且增加其他VETP的处理负担。因此,本发明实施例,提出一种防止由于目的VM不在线时,VTEP向网络中所有的VTEP泛洪所述ARP请求报文,而造成的占用核心网络带宽并且增加其他VETP的处理负担的方法。参照图3,示出了本发明另一种泛洪抑制方法实施例的步骤流程图,具体步骤如下:
步骤302、VTEP接收VM发送的地址解析协议ARP请求报文并解析。
步骤304、依据所述解析后的ARP请求报文,向所述VM单播ARP报文。
步骤306、当接收到所述VM针对所述免费ARP报文的应答时,建立第一ARP泛洪抑制表项。
步骤302-步骤306与上述步骤102-步骤106类似,在此不再赘述。
步骤308、建立第二ARP泛洪抑制表项,并将所述第二ARP泛洪抑制表项标记为未激活状态,其中,所述第二ARP泛洪抑制表项与所述ARP请求报文中目的IP地址对应。
VTEP在接收VM的针对所述免费ARP报文的应答时,除了在一类ARP泛洪抑制表中建立第一ARP泛洪抑制表项外,还可以在二类ARP泛洪抑制表中建立第二ARP泛洪抑制表项,其中,所述二类ARP泛洪抑制表是依据ARP请求报文的目的IP地址建立的,其中的每个表项均包括目的IP地址,和所述目的IP地址对应的隧道口,每个表项对应有两个状态:未激活状态和激活状态;此时,所述第二ARP泛洪抑制表项的隧道口对应的内容为空;并将所述第二ARP泛洪抑制表项标记为未激活状态,即不将所述第二ARP泛洪抑制表项下发硬件,接收的ARP请求报文不按照所述第二ARP泛洪抑制表项进行转发。
步骤310、将所述ARP请求报文封装为VXLAN封装的ARP请求报文,发送到所述VXLAN网络内的其他VTEP。
VTEP在建立上述第一ARP泛洪抑制表项和第二ARP泛洪抑制表项后,将所述ARP请求报文封装为VXLAN封装的ARP请求报文,再将ARP请求报文发送至VXLAN网络中的其他VTEP上,以获取所述ARP请求报文中目的IP地址对应的目的MAC地址。当所述目的IP对应的VM在线时,则VTEP可以收到所述目的VM的应答;而当所述目的IP对应的VM不在线时,则VTEP无法收到所述目的VM的应答。
步骤312、判断在第一预设时间内是否再次接收到所述ARP请求报文;若是,则执行步骤314;若否,则执行步骤322。
VTEP未收到所述目的VM的应答后,VM可能不再向VTEP发送的ARP请求报文,也可能向VTEP发送多次ARP请求报文;对于两种不同的情况,VTEP的处理方式是不同的,因此,当VTEP在泛洪所述ARP请求报文后,需要判断在第一预设时间内是否再次接收到所述ARP请求报文,当在第一预设时间内再次接收到所述ARP请求报文时,执行步骤314-320;而当在第一预设时间内没有再次接收到所述ARP请求报文时,执行步骤322。其中,第一预设时间是根据实际VTEP组网、网络状况等等因素确定的。
步骤314、依据所有的ARP泛洪抑制表,计算目标隧道口。
当在第一预设时间内再次接收到所述ARP请求报文时,为了不让VTEP将所述ARP请求报文,发送至VXLAN网络中的所有VTEP;可以计算出一个或几个目标隧道口,通过所述目标隧道口,将所述ARP请求报文发送至VXLAN网络中的一个或几个VTEP上,以减少占用核心网络带宽,和减少其他VETP的处理负担;其中,所述目标隧道口是VTEP上可能将所述ARP报文,发送至目标IP地址对应目标VM的隧道口。具体的计算目标隧道口的方法是,由于此时不在线的目的IP地址对应的目的VM,是某个VTEP下挂的VM中的其中一个,因此,可以先依据VTEP上所有的ARP泛洪抑制表项,计算出VXLAN网络中各远端VTEP下所有下挂的VM的最小网段。其中,所述所有的ARP泛洪抑制表项是VTEP上一类ARP泛洪抑制表中的各ARP泛洪抑制表项。将接收到VM发送的所述ARP请求报文的VTEP,确定为本地VTEP;将VXLAN网络中除本地VTEP外的其他VTEP确定为远端VTEP。然后再判断计算的各最小网段中,是否存在包含所述ARP请求报文中目的IP地址对应的最小网段;若存在包含所述目的IP地址的最小网段,则将该最小网段对应的远端VTEP确定为目标VTEP;由于可能存在多个最小网段包含目标IP地址,因此,目标VTEP也可能存在多个。本地VTEP与各远端VTEP之间,均存在一条VXLAN隧道,每条VXLAN隧道在本地VTEP上都存在一个隧道口;在确定目标VTEP后,将本地VTEP与目标VTEP之间的VXLAN隧道对应的隧道口,确定为目标隧道口。
步骤316、将所述目标隧道口添加至所述第二ARP泛洪抑制表项中,并将所述第二ARP泛洪抑制表项标记为激活状态。
步骤318、通过所述第二ARP泛洪抑制表项中的目标隧道口转发所述ARP请求报文。
在计算出目标隧道口后,即可以将所述目标隧道口添加到VTEP的二类ARP泛洪抑制表中,具体的,将计算出的所有的目标隧道口,添加到所述第二ARP泛洪抑制表项中,然后将所述第二ARP泛洪抑制表项标记为激活状态,即将所述第二ARP泛洪抑制表项标下发硬件,所述第二ARP泛洪抑制表项生效;VTEP将本次接收到的所述ARP请求通过所述第二ARP泛洪抑制表项中的目标隧道口,转发至对应的远端VTEP上。此外,当所述第二ARP泛洪抑制表项为激活状态时,VTEP对在第二次后接收到的所有的所述ARP请求报文,按照第二ARP泛洪抑制表项中的目标隧道口转发。
步骤320、当第二预设时间内未接收到所述ARP请求报文时,删除所激活状态的第二ARP泛洪抑制表项。
由于VM发送所述ARP请求报文至VTEP一段时间后,可能不再向VTEP发送所述ARP请求报文,因此,VTEP在第二预设时间内未接收到所述ARP请求报文时,由于VETP无需再向远端VTEP泛洪所述ARP请求报文,从而也不会造成占用网络带宽并且增加其他VETP的处理负担;因此,可以将所述激活状态的第二ARP泛洪抑制表项删除;具体的,可以先将所述第二ARP泛洪抑制表项的状态更新为未激活状态,然后在一定时间内如5秒,若仍未接收到所述ARP请求报文,则将未激活状态的第二ARP泛洪抑制表项删除;其中,所述第二预设时间是从VTEP未接收到VM的ARP请求报文开始后的一段时间,可以根据时间情况设置如30分钟。
步骤322、删除未激活状态的第二ARP泛洪抑制表项。
当在第一预设时间内未再次接收到所述ARP请求报文时,即VM不再向VTEP发送所述ARP请求报文,此时,VTEP的二类ARP泛洪抑制表中建立的第二ARP泛洪抑制表项是无用的,因此,可以删除所述二类ARP泛洪抑制表中未激活状态的第二ARP泛洪抑制表项。
步骤324、当所述目的IP地址对应的VM上线时,建立第三ARP泛洪抑制表项,所述第三ARP泛洪抑制表项包括所述目的IP地址和所述目的IP地址对应的MAC地址。
步骤326、删除第二ARP泛洪抑制表项。
当所述目的IP地址对应的目的VM上线时,目的VM会向VXLAN网络中的VTEP广播一条ARP报文,以告知各VTEP目的VM的IP地址和MAC地址;各VTEP在接收到所述广播的ARP报文后,在其一类ARP泛洪抑制表中,以该广播的ARP报文的源IP地址和源MAC地址为依据,建立第三ARP泛洪抑制表项,所述第三ARP泛洪抑制表项中包括广播的ARP报文的源IP地址和源MAC地址。由于建立了VM发送的ARP请求报文中目的IP地址对应的第三ARP泛洪抑制表项,因此,无论第二ARP泛洪抑制表项是激活状态还是未激活状态,都将第二ARP泛洪抑制表项删除。
本发明实施例在VTEP接收到VM的应答后,在二类ARP泛洪抑制表项中建立ARP请求报文的目标IP地址对应的第二ARP泛洪抑制表项,并标记未为激活状态;当在第一预设时间内未再次接收到VM的ARP请求报文时,则删除该第二ARP泛洪抑制表项,以便于VTEP管理其ARP泛洪抑制表;当在第一预设时间内再次接收到VM的ARP请求报文时,则计算对应的目标隧道口,并标记所述第二ARP泛洪抑制表项为激活状态,从而使得VTEP在接收到VM多次发送的ARP请求报文时,通过目标隧道口将所述ARP请求报文,转发至对应的一个或几个远端VTEP上,使得VTEP在多次泛洪ARP请求报文时,不占用核心网络带宽,以及不增加其他VETP的处理负担。
在上述实施例的基础上,本实施还提供了一种泛洪抑制装置,以保证上述方法的实施。
参照图4,示出了本发明一种泛洪抑制装置实施例的结构框图,具体可以包括如下模块:报文接收模块402、报文单播模块404和第一表项建立模块406,其中,
报文接收模块402,用于调用VTEP接收VM发送的地址解析协议ARP请求报文并解析。
报文单播模块404,用于依据所述解析后的ARP请求报文,向所述VM单播免费ARP报文。
第一表项建立模块406,用于当接收到所述VM针对所述免费ARP报文的应答时,建立第一ARP泛洪抑制表项;以及将所述ARP请求报文封装为VXLAN封装的ARP请求报文,发送到所述VXLAN网络内的其他VTEP;其中,所述第一ARP泛洪抑制表项包括所述ARP请求报文对应的源IP地址和源MAC地址。
在上述实施例的基础上,对本发明实施例还包括的模块,以及所述模块包括的子模块进行说明。参照图5,示出了本发明一种泛洪抑制装置实施例的结构框图,所述的装置包括:报文接收模块502、报文单播模块504和第一表项建立模块506,上述已经论述,在此不再赘述,所述的装置还包括:第二表项建立模块508、目的隧道口计算模块510、信息添加模块512、报文转发模块514、第二表项删除模块516和第三表项建立模块518,其中,
第二表项建立模508,用于建立第二ARP泛洪抑制表项,并将所述第二ARP泛洪抑制表项标记为未激活状态,其中,所述第二ARP泛洪抑制表项与所述ARP请求报文中目的IP地址对应。
目的隧道口计算模块510,用于当在第一预设时间内再次接收到所述ARP请求报文时,依据所有的ARP泛洪抑制表项,计算目标隧道口。
信息添加模块512,用于将所述目标隧道口添加至所述第二ARP泛洪抑制表项中,并将所述第二ARP泛洪抑制表项标记为激活状态。
报文转发模块514,用于通过所述第二ARP泛洪抑制表项中的目标隧道口转发所述ARP请求报文。
第二表项删除模块516,用于当在第一预设时间内未再次接收到所述ARP请求报文时,删除未激活状态的第二ARP泛洪抑制表项。
第三表项建立模块518,用于当所述目的IP地址对应的VM上线时,在建立第三ARP泛洪抑制表项,所述第三ARP泛洪抑制表项包括所述目的IP地址和所述目的IP地址对应的MAC地址。
所述第二表项删除模块516,还用于当第二预设时间内未接收到所述ARP请求报文时,删除激活状态的第二ARP泛洪抑制表项。
所述第二表项删除模块516,还用于删除所述第二ARP泛洪抑制表项。
本发明实施例的所述报文单播模块504包括:地址获取子模块5042、地址确定子模块5044和报文发送子模块5046,其中,
地址获取子模块5042,用于从解析后的ARP请求报文中获取源IP地址和源MAC地址。
地址确定子模块5044,用于将所述源IP地址和源MAC地址,分别作为所述免费ARP报文的目的IP地址和目的MAC地址。
报文发送子模块5046,用于向所述VM单播所述免费ARP报文。
本发明实施例的目的隧道口计算模块510包括:最小网段计算子模块5102、目标VTEP确定子模块5104和目标隧道口确定子模块5106,其中,
最小网段计算子模块5102,用于依据所有的ARP泛洪抑制表项,计算各远端VTEP下挂所有的VM的最小网段。
目标VTEP确定子模块5104,用于将包含所述目的IP地址的最小网段对应的远端VTEP确定为目标VTEP;
目标隧道口确定子模块5106,用于将本地VTEP中与目标VTEP对应的隧道口确定为目标隧道口;其中,所述本地VTEP为接收VM发送的所述ARP请求报文的VTEP,所述远端VTEP为VXLAN网络中除本地VTEP外的所有VTEP。
本发明实施例所述的泛洪抑制方法,应用于VXLAN网络中,所述VXLAN网络包括VTEP和VM,在VTEP接收到VM发送的ARP请求报文后,即向所述VM单播免费ARP报文,当接收到VM针对该单播的ARP报文的应答时,再建立一个与源IP地址对应的表项;从而,使得VTEP可以依据VM针对单播的ARP报文进行应答,建立源IP地址对应的表项;从而保证了VTEP建立ARP泛洪抑制表项的正确性,防止了由于建立错误的ARP泛洪抑制表项而造成的流量被错误的转发。
对于装置实施例而言,由于其与方法实施例基本相似,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。
本领域内的技术人员应明白,本发明实施例的实施例可提供为方法、装置、或计算机程序产品。因此,本发明实施例可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明实施例可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明实施例是参照根据本发明实施例的方法、终端设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理终端设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理终端设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理终端设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理终端设备上,使得在计算机或其他可编程终端设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程终端设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明实施例的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明实施例范围的所有变更和修改。
最后,还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者终端设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者终端设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者终端设备中还存在另外的相同要素。
以上对本发明所提供的一种泛洪抑制方法和一种泛洪抑制装置,进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。

Claims (14)

1.一种泛洪抑制方法,其特征在于,应用于可扩展虚拟局域网络VXLAN中,所述VXLAN网络包括隧道节点设备VTEP和虚拟机VM,所述的方法包括:
VTEP接收VM发送的地址解析协议ARP请求报文并解析;
依据所述解析后的ARP请求报文,向所述VM单播免费ARP报文;
当接收到所述VM针对所述免费ARP报文的应答时,建立第一ARP泛洪抑制表项;其中,当VTEP接收到VM针对所述免费ARP报文的应答时,则确定VM真实的IP地址是所述ARP请求报文数据中的源IP地址;VTEP在一类ARP泛洪抑制表中,以所述ARP报文数据中的源IP地址为依据,建立包含源IP地址和源MAC地址的第一ARP泛洪抑制表项;所述第一ARP泛洪抑制表项为正确的ARP泛洪抑制表项;
其中,所述一类ARP泛洪抑制表是以ARP请求报文的源IP地址建立的,其中的每个表项均包括ARP请求报文的源IP地址和源MAC地址;
将所述ARP请求报文封装为VXLAN封装的ARP请求报文,发送到所述VXLAN网络内的其他VTEP;
其中,所述第一ARP泛洪抑制表项包括所述ARP请求报文对应的源IP地址和源MAC地址。
2.根据权利要求1所述的方法,其特征在于,在所述建立第一ARP泛洪抑制表项的步骤之后,还包括:
建立第二ARP泛洪抑制表项,并将所述第二ARP泛洪抑制表项标记为未激活状态,其中,所述第二ARP泛洪抑制表项与所述ARP请求报文中目的IP地址对应;
其中,VTEP在接收VM的针对所述免费ARP报文的应答时,除了在所述一类ARP泛洪抑制表中建立第一ARP泛洪抑制表项外,还可以在二类ARP泛洪抑制表中建立第二ARP泛洪抑制表项,其中,所述二类ARP泛洪抑制表是依据ARP请求报文的目的IP地址建立的,其中的每个表项均包括目的IP地址,和所述目的IP地址对应的隧道口,每个表项对应有两个状态:未激活状态和激活状态;所述第二ARP泛洪抑制表项的隧道口对应的内容为空;并将所述第二ARP泛洪抑制表项标记为未激活状态,不将所述第二ARP泛洪抑制表项下发硬件,接收的ARP请求报文不按照所述第二ARP泛洪抑制表项进行转发。
3.根据权利要求2所述的方法,其特征在于,还包括:
当在第一预设时间内再次接收到所述ARP请求报文时,依据所有的ARP泛洪抑制表项,计算目标隧道口;
将所述目标隧道口添加至所述第二ARP泛洪抑制表项中,并将所述第二ARP泛洪抑制表项标记为激活状态;
通过所述第二ARP泛洪抑制表项中的目标隧道口转发所述ARP请求报文。
4.根据权利要求3所述的方法,其特征在于,所述依据所有的泛洪抑制表,计算目标隧道口的步骤,包括:
依据所有的ARP泛洪抑制表项,计算各远端VTEP下挂所有的VM的最小网段;
将包含所述目的IP地址的最小网段对应的远端VTEP确定为目标VTEP;
将本地VTEP中与目标VTEP对应的隧道口确定为目标隧道口;
其中,所述本地VTEP为接收VM发送的所述ARP请求报文的VTEP,所述远端VTEP为所述VXLAN网络中除本地VTEP外的所有VTEP。
5.根据权利要求3所述的方法,其特征在于,在泛洪所述ARP请求报文的步骤之后,还包括:
当在第一预设时间内未再次接收到所述ARP请求报文时,删除未激活状态的第二ARP泛洪抑制表项。
6.根据权利要求3所述的方法,其特征在于,在通过所述第二ARP泛洪抑制表项中的目标隧道口转发将所述ARP请求报文的步骤之后,还包括:
当第二预设时间内未接收到所述ARP请求报文时,删除激活状态的第二ARP泛洪抑制表项。
7.根据权利要求3所述的方法,其特征在于,还包括:
当所述目的IP地址对应的VM上线时,建立第三ARP泛洪抑制表项,所述第三ARP泛洪抑制表项包括所述目的IP地址和所述目的IP地址对应的MAC地址;
删除所述第二ARP泛洪抑制表项。
8.一种泛洪抑制装置,其特征在于,应用于可扩展虚拟局域网络VXLAN中的VTEP上,所述的装置包括:
报文接收模块,用于调用VTEP接收VM发送的地址解析协议ARP请求报文并解析;
报文单播模块,用于依据所述解析后的ARP请求报文,向所述VM单播免费ARP报文;
第一表项建立模块,用于当接收到所述VM针对所述免费ARP报文的应答时,建立第一ARP泛洪抑制表项;以及将所述ARP请求报文封装为VXLAN封装的ARP请求报文,发送到所述VXLAN网络内的其他VTEP;其中,所述第一ARP泛洪抑制表项包括所述ARP请求报文对应的源IP地址和源MAC地址;
其中,当VTEP接收到VM针对所述免费ARP报文的应答时,则确定VM真实的IP地址是所述ARP请求报文数据中的源IP地址;VTEP在一类ARP泛洪抑制表中,以所述ARP报文数据中的源IP地址为依据,建立包含源IP地址和源MAC地址的第一ARP泛洪抑制表项;所述第一ARP泛洪抑制表项为正确的ARP泛洪抑制表项;
其中,所述一类ARP泛洪抑制表是以ARP请求报文的源IP地址建立的,其中的每个表项均包括ARP请求报文的源IP地址和源MAC地址。
9.根据权利要求8所述的装置,其特征在于,还包括:
第二表项建立模块,用于建立第二ARP泛洪抑制表项,并将所述第二ARP泛洪抑制表项标记为未激活状态,其中,所述第二ARP泛洪抑制表项与所述ARP请求报文中目的IP地址对应;
其中,VTEP在接收VM的针对所述免费ARP报文的应答时,除了在所述一类ARP泛洪抑制表中建立第一ARP泛洪抑制表项外,还可以在二类ARP泛洪抑制表中建立第二ARP泛洪抑制表项,其中,所述二类ARP泛洪抑制表是依据ARP请求报文的目的IP地址建立的,其中的每个表项均包括目的IP地址,和所述目的IP地址对应的隧道口,每个表项对应有两个状态:未激活状态和激活状态;所述第二ARP泛洪抑制表项的隧道口对应的内容为空;并将所述第二ARP泛洪抑制表项标记为未激活状态,不将所述第二ARP泛洪抑制表项下发硬件,接收的ARP请求报文不按照所述第二ARP泛洪抑制表项进行转发。
10.根据权利要求9所述的装置,其特征在于,还包括:
目的隧道口计算模块,用于当在第一预设时间内再次接收到所述ARP请求报文时,依据所有的ARP泛洪抑制表项,计算目标隧道口;
信息添加模块,用于将所述目标隧道口添加至所述第二ARP泛洪抑制表项中,并将所述第二ARP泛洪抑制表项标记为激活状态;
报文转发模块,用于通过所述第二ARP泛洪抑制表项中的目标隧道口转发所述ARP请求报文。
11.根据权利要求10所述的装置,其特征在于,所述目的隧道口计算模块包括:
最小网段计算子模块,用于依据所有的ARP泛洪抑制表项,计算各远端VTEP下挂所有的VM的最小网段;
目标VTEP确定子模块,用于将包含所述目的IP地址的最小网段对应的远端VTEP确定为目标VTEP;
目标隧道口确定子模块,用于将本地VTEP中与目标VTEP对应的隧道口确定为目标隧道口;其中,所述本地VTEP为接收VM发送的所述ARP请求报文的VTEP,所述远端VTEP为所述VXLAN网络中除本地VTEP外的所有VTEP。
12.根据权利要求10所述的装置,其特征在于,还包括:
第二表项删除模块,用于当在第一预设时间内未再次接收到所述ARP请求报文时,删除未激活状态的第二ARP泛洪抑制表项。
13.根据权利要求10所述的装置,其特征在于,所述第二表项删除模块,还用于当第二预设时间内未接收到所述ARP请求报文时,删除激活状态的第二ARP泛洪抑制表项。
14.根据权利要求10所述的装置,其特征在于,还包括:
第三表项建立模块,用于当所述目的IP地址对应的VM上线时,建立第三ARP泛洪抑制表项,所述第三ARP泛洪抑制表项包括所述目的IP地址和所述目的IP地址对应的MAC地址;
所述第二表项删除模块,还用于删除所述第二ARP泛洪抑制表项。
CN201710018228.7A 2017-01-11 2017-01-11 一种泛洪抑制方法及装置 Active CN106899706B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710018228.7A CN106899706B (zh) 2017-01-11 2017-01-11 一种泛洪抑制方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710018228.7A CN106899706B (zh) 2017-01-11 2017-01-11 一种泛洪抑制方法及装置

Publications (2)

Publication Number Publication Date
CN106899706A CN106899706A (zh) 2017-06-27
CN106899706B true CN106899706B (zh) 2020-04-17

Family

ID=59198441

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710018228.7A Active CN106899706B (zh) 2017-01-11 2017-01-11 一种泛洪抑制方法及装置

Country Status (1)

Country Link
CN (1) CN106899706B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113472912B (zh) * 2021-06-10 2022-08-26 中国联合网络通信集团有限公司 一种arp缓存表项的更新方法、vtep、vm及装置
CN113794615B (zh) * 2021-08-05 2023-04-25 新华三信息安全技术有限公司 一种报文转发方法及设备
CN113489812B (zh) * 2021-09-08 2021-11-12 军事科学院系统工程研究院网络信息研究所 基于ip地址相似性的地址解析协议洪范抑制方法和装置
CN116055398A (zh) * 2022-12-29 2023-05-02 天翼云科技有限公司 一种vxlan集群系统的转发方法和系统节点

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1870627A (zh) * 2005-08-09 2006-11-29 华为技术有限公司 Arp缓存表防攻击方法
CN101562542A (zh) * 2009-05-21 2009-10-21 杭州华三通信技术有限公司 免费arp请求的响应方法和网关设备
CN104168213A (zh) * 2014-08-18 2014-11-26 福建星网锐捷网络有限公司 二层互联网络中数据报文处理方法、装置及网络设备
CN106209616A (zh) * 2016-07-06 2016-12-07 杭州华三通信技术有限公司 一种泛洪抑制方法及装置

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8767731B2 (en) * 2010-05-19 2014-07-01 Alcatel Lucent Method and apparatus for MPLS label allocation for a BGP MAC-VPN

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1870627A (zh) * 2005-08-09 2006-11-29 华为技术有限公司 Arp缓存表防攻击方法
CN101562542A (zh) * 2009-05-21 2009-10-21 杭州华三通信技术有限公司 免费arp请求的响应方法和网关设备
CN104168213A (zh) * 2014-08-18 2014-11-26 福建星网锐捷网络有限公司 二层互联网络中数据报文处理方法、装置及网络设备
CN106209616A (zh) * 2016-07-06 2016-12-07 杭州华三通信技术有限公司 一种泛洪抑制方法及装置

Also Published As

Publication number Publication date
CN106899706A (zh) 2017-06-27

Similar Documents

Publication Publication Date Title
CN106899706B (zh) 一种泛洪抑制方法及装置
US10263808B2 (en) Deployment of virtual extensible local area network
US10122548B2 (en) Services execution
US8842577B2 (en) Enabling media access control address mobility in an ethernet virtual private network
US10461958B2 (en) Packet transmission method and apparatus
CN106161253B (zh) 一种报文处理方法及装置
JP6633775B2 (ja) パケット伝送
CN106878288B (zh) 一种报文转发方法及装置
CN106921578B (zh) 一种转发表项的生成方法和装置
US9756148B2 (en) Dynamic host configuration protocol release on behalf of a user
WO2018033153A1 (zh) Evpn中ip地址冲突的处理方法及装置
JP2019521619A (ja) パケット転送
CN104363243A (zh) 一种防网关欺骗的方法及装置
CN111193756B (zh) 一种vxlan隧道负载均衡方法及相关设备
US20190215191A1 (en) Deployment Of Virtual Extensible Local Area Network
JPWO2012014509A1 (ja) 不正アクセス遮断制御方法
US10050932B2 (en) Method, user node and remote access server for releasing address
US9985926B2 (en) Address acquiring method and network virtualization edge device
CN112152928A (zh) 一种邻居表项学习方法、装置及路由设备
CN109831378B (zh) 一种报文超时回应方法及装置
CN112511401B (zh) 一种网络连接方法、装置、设备及介质
US20170070473A1 (en) A switching fabric including a virtual switch
US9912557B2 (en) Node information detection apparatus, node information detection method, and program
CN109462609B (zh) 一种arp抑制表项生成方法和装置
CN107707480B (zh) 一种报文转发方法及装置

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant