CN111130981B - 一种mac地址的代理应答方法及装置 - Google Patents

一种mac地址的代理应答方法及装置 Download PDF

Info

Publication number
CN111130981B
CN111130981B CN201911348715.5A CN201911348715A CN111130981B CN 111130981 B CN111130981 B CN 111130981B CN 201911348715 A CN201911348715 A CN 201911348715A CN 111130981 B CN111130981 B CN 111130981B
Authority
CN
China
Prior art keywords
host
request message
adj
interface
address
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
CN201911348715.5A
Other languages
English (en)
Other versions
CN111130981A (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.)
Ruijie Networks Co Ltd
Original Assignee
Ruijie Networks 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 Ruijie Networks Co Ltd filed Critical Ruijie Networks Co Ltd
Priority to CN201911348715.5A priority Critical patent/CN111130981B/zh
Publication of CN111130981A publication Critical patent/CN111130981A/zh
Application granted granted Critical
Publication of CN111130981B publication Critical patent/CN111130981B/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
    • 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]
    • 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/4633Interconnection of networks using encapsulation techniques, e.g. tunneling
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/32Flooding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L45/00Routing or path finding of packets in data switching networks
    • H04L45/74Address processing for routing
    • H04L45/745Address table lookup; Address filtering
    • 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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services

Abstract

本申请提供一种MAC地址的代理应答方法及装置。该方法中,首先接收连接的交换机发送的请求报文;然后根据所述请求报文的目的IP地址查询邻接ADJ抑制表;在第一配置条件下,若查询到与目的IP地址对应的表项,对所述请求报文进行代理应答;在第二配置条件下,若查询到与所述目的IP地址对应的表项,比对所述表项中的接口信息和所述请求报文携带的接口信息、以及所述表项中的虚拟局域网标识符VID信息和所述请求报文携带的VID信息是否均相同;若均相同,则丢弃所述请求报文;否则对所述请求报文进行代理应答。上述方法中,用以解决代理应答的请求报文和目的主机应答的报文发生冲突,从而导致二层流量转发路径不受控的问题。

Description

一种MAC地址的代理应答方法及装置
技术领域
本申请涉及计算机通信技术领域,尤其涉及一种MAC地址的代理应答方法及装置。
背景技术
VXLAN(Virtual eXtensible LAN,虚拟可扩展局域网),是一种overlay的网络技术,建立在物理IP(Internet Protocol,互联网协议)(underlay)网络之上的虚拟以太网,使用MAC(Media Access Control,媒体访问控制)in UDP(User Datagram Protocol,用户数据报协议)的方法进行封装,共50字节的封装报文头,具备24位VXLAN标识符VNI(VXLANNetwork Identifier,虚拟扩展本地网络标识符),打破目前广泛采用的VLAN(VirtualLocal Area Network,虚拟局域网)所能表示的4096个隔离网络的限制,使用户可以创建16777216个相互隔离的虚拟网络,满足多租户环境和规模扩展的需求,是一种大二层虚拟网络扩展的隧道封装技术。
在多台主机通过一台二层交换机接入VTEP(VXLAN Tunnel End Point,虚拟可扩展局域网隧道端点)的场景下,若请求主机和目的主机属于同一VXLAN子网下的同一VLAN域,则会出现VTEP代理应答的请求报文与主机真实应答的应答报文发生冲突的问题。
相关技术中,解决代理应答报文冲突的问题采用的方法是,网关在一定时间内周期性发送代理的应答报文,即靠网关在一定时间内多次发送应答报文,确保主机最后学到的ADJ表项是网关应答的,而不是目标主机真实应答的,其中,ADJ表项在IPv4(InternetProtocol version 4,互联网协议第四版)网络中为ARP表项,在IPv6(Internet Protocolversion 6,互联网协议第六版)网络中为ND(Neighbor Discovery,邻居发现)表项。然而,发明人发现,该技术存在的问题包括:(1)在可靠性和易用性方面较差。具体的,开启地址解析代理功能的网关,需要配置代理应答的发送周期和发送总时长,而这些时间参数的设定要根据具体的网络拓扑和网络性能进行实验后靠经验获取。(2)初期可能发生流量震荡。具体的,因为主机依然可能进行真实的应答,所以初期流量可能发生短暂的直通,绕过了网关的监控。(3)无法适用于VXLAN的所用场景。具体的,该方法若应用到VXLAN,则同一VXLAN子网下的所有二层流量均需经过网关绕行,无法满足差异性需求。例如,同一VXLAN子网下有多个VLAN域,同一VTEP接口下同一VLAN域内的二层流量需要直通,不同VTEP接口或不同VLAN域内的二层流量需要导向网关进行监控。
发明内容
本申请提供一种MAC地址的代理应答方法及装置,以至少解决相关技术中对于请求报文的应答发生冲突的问题。本申请的技术方案如下:
根据本申请实施例的第一方面,提供一种MAC地址的代理应答方法,应用于VXLAN的接入VTEP中,包括:
接收连接的交换机发送的请求报文;其中,所述请求报文是所述交换机连接的第一主机请求第二主机的MAC地址而广播的;
根据所述请求报文的目的互联网协议IP地址查询邻接ADJ抑制表,所述ADJ抑制表在互联网通信协议第四版IPv4网络中为地址解析协议ARP抑制表,在互联网通信协议第六版IPv6网络中为邻居发现ND抑制表;
在第一配置条件下,若查询到与所述目的IP地址对应的表项,对所述请求报文进行代理应答;所述第一配置条件为在所述交换机上配置开启同虚拟局域网VLAN的主机接口间的二层流量隔离功能时,配置在进行代理应答前不启动同接口且同VLAN的检查功能;
在第二配置条件下,若查询到与所述目的IP地址对应的表项,比对所述表项中的接口信息和所述请求报文携带的接口信息、以及所述表项中的虚拟局域网标识符VID信息和所述请求报文携带的VID信息是否均相同;若均相同,则丢弃所述请求报文;否则对所述请求报文进行代理应答;所述第二配置条件为在所述交换机上配置关闭同VLAN的主机接口间的二层流量隔离功能时,配置在进行代理应答前启动同接口且同VLAN的检查功能。
可选的,在根据所述请求报文的目的IP地址查询ADJ抑制表之前,所述方法还包括:
若所述VXLAN为集中式网络且所述VTEP为网桥,则通过以太虚拟专用网络EVPN接收所述集中式网络中的网关学习到的ADJ表项,并根据所述ADJ表项和学习到的MAC表项生成所述ADJ抑制表;其中,所述ADJ表项在IPv4网络中为ARP表项,在IPv6中为ND表项;在所述集中式网络中网桥之间通过EVPN同步网桥各自学习到的MAC表项;
若所述VXLAN为分布式网络且所述VTEP为分布式网关,则通过EVPN将学习到的ADJ表项和MAC表项同步给所述分布式网络中除所述VTEP之外的其他分布式网关,以使其他分布式网关生成所述ADJ抑制表。
可选的,所述方法还包括:
在所述第一配置条件下,若未查询到与所述目的IP地址对应的表项,则存储所述请求报文,触发打通所述第二主机的打通请求,并基于所述打通请求生成第一广播请求报文,并在所述VXLAN中泛洪所述第一广播请求报文;
确定所述请求报文的存储时长是否达到预设时长;
若确定所述存储时长达到所述预设时长,则根据所述请求报文中的目的IP地址重新查询所述ADJ抑制表,若查询到与所述目的IP地址对应的表项,则对所述请求报文进行代理应答,否则丢弃所述请求报文;
若确定所述存储时长未达到所述预设时长,且接收到所述请求报文对应的响应消息,则根据所述响应消息更新所述ADJ抑制表,并根据所述请求报文中的目的IP地址重新查询更新后的ADJ抑制表,若查询到与所述目的IP地址对应的表项,则对所述请求报文进行代理应答。
可选的,所述方法还包括:
在所述第二配置条件下,若未查询到与所述目的IP地址对应的表项,则存储所述请求报文,触发打通所述第二主机的打通请求,并基于所述打通请求生成第二广播请求报文,并在所述VXLAN中泛洪所述第二广播请求报文;
确定所述请求报文的存储时长是否达到预设时长;
若确定所述存储时长达到所述预设时长,则根据所述请求报文中的目的IP地址重新查询所述ADJ抑制表,若查询到与所述目的IP地址对应的表项,则比对所述表项中的接口信息和所述请求报文携带的接口信息、以及所述表项中的VID信息和所述请求报文携带的VID信息是否均相同,若均相同,则丢弃所述请求报文,否则对所述请求报文进行代理应答;若未重新查询到与所述目的IP地址对应的表项,则丢弃所述请求报文;
若确定所述存储时长未达到所述预设时长,且接收到所述请求报文对应的响应消息,则根据所述响应消息更新所述ADJ抑制表,并根据所述请求报文中的目的IP地址重新查询更新后的ADJ抑制表;若查询到与所述目的IP地址对应的表项,则比对所述表项中的接口信息和所述请求报文携带的接口信息、以及所述表项中的VID信息和所述请求报文携带的VID信息是否均相同,若均相同,则丢弃所述请求报文,否则对所述请求报文进行代理应答。
可选的,所述方法还包括:
接收所述第一广播请求报文或者所述第二广播请求报文对应的单播应答报文;
若根据所述ADJ抑制表查询到所述单播应答报文的目的IP地址是所述VXLAN的网关的IP地址;则,
若所述VXLAN为集中式网络且所述网关为集中式网关,则将所述单播应答报文发送给所述集中式网关;
若所述VXLAN为分布式网络且所述网关为分布式网关,则学习所述单播应答报文中的表项内容并将所述表项内容同步给其他分布式网关。
可选的,所述方法还包括:
接收到第三主机的上线通知后,根据所述上线通知学习所述第三主机对应的表项;其中,所述上线通知是所述第三主机迁入到所述VTEP管理的网络中之后发出的、且用于请求所述VXLAN的网关的MAC地址;
根据所述学习到的表项更新所述ADJ抑制表。
可选的,在接收到第三主机的上线通知后,所述方法还包括:
检查所述VXLAN是否开启了同接口且同VLAN的检查功能;
若检查到所述VXLAN开启了同接口且同VLAN的检查功能,则检查所述第三主机当前接入的接口是否为预设接口,所述预设接口为用于连接本地设备的接口;
若检查到所述第三主机当前接入的接口为所述预设接口,则比对所述第三主机当前接入的接口与所述ADJ抑制表中记录的所述第三主机对应的接口是否不同,或比对所述第三主机当前所在的VLAN与所述ADJ抑制表中记录的所述第三主机的VLAN是否不同;
若至少一个不同,则更新所述ADJ抑制表,并向所述第三主机当前接入的接口所属VLAN内的其他主机发送第一指定报文,以使所述其他主机更新各自的ADJ抑制表,所述第一指定报文在IPv4网络中为免费ARP报文、在IPv6网络中为非请求邻居公告NA报文;
向所述第三主机当前接入的接口所属VLAN内发送请求所述第三主机应答的报文,以触发所述第三主机发送应答报文。
可选的,在根据所述上线通知学习所述第三主机的表项内容之后,所述方法还包括:
将所述表项同步给所述VXLAN中除所述接入VTEP之外的其他VTEP,以使其他VTEP更新各自的ADJ抑制表。
可选的,所述方法还包括:
接收所述VXLAN中除所述接入VTEP之外的其他VTEP同步的表项内容,所述表项内容用于更新所述接入VTEP上的ADJ抑制表。
可选的,所述方法还包括:
检查所述接入VTEP是否开启了同接口且同VLAN的检查功能;
若检查到所述VXLAN开启了所述同接口且同VLAN的检查功能,则检查原ADJ抑制表中记录的所述第三主机的接口是否为预设接口,所述预设接口为用于连接本地设备的接口;
若检查到所述原ADJ抑制表中记录的所述第三主机的接口为所述预设接口,则比对所述第三主机当前接入的接口与所述原ADJ抑制表中记录的所述第三主机的接口是否不同,或比对所述第三主机当前所在的VLAN与所述原ADJ抑制表中记录的所述第三主机的VLAN是否不同;
若至少一个不同,则更新所述原ADJ抑制表,并向所述原ADJ抑制表中记录的所述第三主机的接口下的同VLAN内的其他主机发送第二指定报文,以使所述其他主机更新各自的ADJ抑制表,所述第一指定报文在IPv4网络中为免费ARP报文,在IPv6网络中为非请求邻居公告NA报文。
根据本申请实施例的第二方面,提供一种MAC地址的代理应答装置,应用于VXLAN的接入VTEP中,包括:
接收模块,被配置为执行接收连接的交换机发送的请求报文;其中,所述请求报文是所述交换机连接的第一主机请求第二主机的MAC地址而广播的;
查询模块,被配置为执行根据所述请求报文的目的互联网协议IP地址查询邻接ADJ抑制表,所述ADJ抑制表在互联网通信协议第四版IPv4网络中为地址解析协议ARP抑制表,在互联网通信协议第六版IPv6网络中为邻居发现ND抑制表;
第一代理应答模块,被配置为执行在第一配置条件下,若查询到与所述目的IP地址对应的表项,对所述请求报文进行代理应答;所述第一配置条件为在所述交换机上配置开启同虚拟局域网VLAN的主机接口间的二层流量隔离功能时,配置在进行代理应答前不启动同接口且同VLAN的检查功能;
第二代理应答模块,被配置为执行在第二配置条件下,若查询到与所述目的IP地址对应的表项,比对所述表项中的接口信息和所述请求报文携带的接口信息、以及所述表项中的虚拟局域网标识符VID信息和所述请求报文携带的VID信息是否均相同;若均相同,则丢弃所述请求报文;否则对所述请求报文进行代理应答;所述第二配置条件为在所述交换机上配置关闭同VLAN的主机接口间的二层流量隔离功能时,配置在进行代理应答前启动同接口且同VLAN的检查功能。
可选的,所述装置还包括:
第一同步模块,被配置为在根据所述请求报文的目的IP地址查询ADJ抑制表之前,执行若所述VXLAN为集中式网络且所述VTEP为网桥,则通过以太虚拟专用网络EVPN接收所述集中式网络中的网关学习到的ADJ表项,并根据所述ADJ表项和学习到的MAC表项生成所述ADJ抑制表;其中,所述ADJ表项在IPv4网络中为ARP表项,在IPv6中为ND表项;在所述集中式网络中网桥之间通过EVPN同步网桥各自学习到的MAC表项;
第二同步模块,被配置为在根据所述请求报文的目的IP地址查询ADJ抑制表之前,执行若所述VXLAN为分布式网络且所述VTEP为分布式网关,则通过EVPN将学习到的ADJ表项和MAC表项同步给所述分布式网络中除所述VTEP之外的其他分布式网关,以使其他分布式网关生成所述ADJ抑制表。
可选的,所述装置还包括:
第一泛洪模块,被配置为执行在所述第一配置条件下,若未查询到与所述目的IP地址对应的表项,则存储所述请求报文,触发打通所述第二主机的打通请求,并基于所述打通请求生成第一广播请求报文,并在所述VXLAN中泛洪所述第一广播请求报文;
第一确定模块,被配置为执行确定所述请求报文的存储时长是否达到预设时长;
第一查询模块,被配置为执行若确定所述存储时长达到所述预设时长,则根据所述请求报文中的目的IP地址重新查询所述ADJ抑制表,若查询到与所述目的IP地址对应的表项,则对所述请求报文进行代理应答,否则丢弃所述请求报文;
第二查询模块,被配置为执行若确定所述存储时长未达到所述预设时长,且接收到所述请求报文对应的响应消息,则根据所述响应消息更新所述ADJ抑制表,并根据所述请求报文中的目的IP地址重新查询更新后的ADJ抑制表,若查询到与所述目的IP地址对应的表项,则对所述请求报文进行代理应答。
可选的,所述装置还包括:
第二泛洪模块,被配置为执行在所述第二配置条件下,若未查询到与所述目的IP地址对应的表项,则存储所述请求报文,触发打通所述第二主机的打通请求,并基于所述打通请求生成第二广播请求报文,并在所述VXLAN中泛洪所述第二广播请求报文;
第二确定模块,被配置为执行确定所述请求报文的存储时长是否达到预设时长;
第三查询模块,被配置为执行若确定所述存储时长达到所述预设时长,则根据所述请求报文中的目的IP地址重新查询所述ADJ抑制表,若查询到与所述目的IP地址对应的表项,则比对所述表项中的接口信息和所述请求报文携带的接口信息、以及所述表项中的VID信息和所述请求报文携带的VID信息是否均相同,若均相同,则丢弃所述请求报文,否则对所述请求报文进行代理应答;若未重新查询到与所述目的IP地址对应的表项,则丢弃所述请求报文;
第四查询模块,被配置为执行若确定所述存储时长未达到所述预设时长,且接收到所述请求报文对应的响应消息,则根据所述响应消息更新所述ADJ抑制表,并根据所述请求报文中的目的IP地址重新查询更新后的ADJ抑制表;若查询到与所述目的IP地址对应的表项,则比对所述表项中的接口信息和所述请求报文携带的接口信息、以及所述表项中的VID信息和所述请求报文携带的VID信息是否均相同,若均相同,则丢弃所述请求报文,否则对所述请求报文进行代理应答。
可选的,所述装置还包括:
第二接收模块,被配置为执行接收所述第一广播请求报文或者所述第二广播请求报文对应的单播应答报文;
发送模块,被配置为执行若根据所述ADJ抑制表查询到所述单播应答报文的目的IP地址是所述VXLAN的网关的IP地址;则,
若所述VXLAN为集中式网络且所述网关为集中式网关,则将所述单播应答报文发送给所述集中式网关;
若所述VXLAN为分布式网络且所述网关为分布式网关,则学习所述单播应答报文中的表项内容并将所述表项内容同步给其他分布式网关。
可选的,所述装置还包括:
学习模块,被配置为执行接收到第三主机的上线通知后,根据所述上线通知学习所述第三主机对应的表项;其中,所述上线通知是所述第三主机迁入到所述VTEP管理的网络中之后发出的、且用于请求所述VXLAN的网关的MAC地址;
更新模块,被配置为执行根据所述学习到的表项更新所述ADJ抑制表。
可选的,所述装置还包括:
第一检查模块,被配置为在接收到第三主机的上线通知后,执行检查所述VXLAN是否开启了同接口且同VLAN的检查功能;
若检查到所述VXLAN开启了同接口且同VLAN的检查功能,则检查所述第三主机当前接入的接口是否为预设接口,所述预设接口为用于连接本地设备的接口;
若检查到所述第三主机当前接入的接口为所述预设接口,则比对所述第三主机当前接入的接口与所述ADJ抑制表中记录的所述第三主机对应的接口是否不同,或比对所述第三主机当前所在的VLAN与所述ADJ抑制表中记录的所述第三主机的VLAN是否不同;
若至少一个不同,则更新所述ADJ抑制表,并向所述第三主机当前接入的接口所属VLAN内的其他主机发送第一指定报文,以使所述其他主机更新各自的ADJ抑制表,所述第一指定报文在IPv4网络中为免费ARP报文、在IPv6网络中为非请求邻居公告NA报文;
向所述第三主机当前接入的接口所属VLAN内发送请求所述第三主机应答的报文,以触发所述第三主机发送应答报文。
可选的,所述装置还包括:
第三同步模块,被配置为在根据所述上线通知学习所述第三主机的表项内容之后,执行将所述表项同步给所述VXLAN中除所述接入VTEP之外的其他VTEP,以使其他VTEP更新各自的ADJ抑制表。
可选的,所述装置还包括:
接收同步模块,被配置为执行接收所述VXLAN中除所述接入VTEP之外的其他VTEP同步的表项内容,所述表项内容用于更新所述接入VTEP上的ADJ抑制表。
可选的,所述装置还包括:
第二检查模块,被配置为执行检查所述接入VTEP是否开启了同接口且同VLAN的检查功能;
若检查到所述VXLAN开启了所述同接口且同VLAN的检查功能,则检查原ADJ抑制表中记录的所述第三主机的接口是否为预设接口,所述预设接口为用于连接本地设备的接口;
若检查到所述原ADJ抑制表中记录的所述第三主机的接口为所述预设接口,则比对所述第三主机当前接入的接口与所述原ADJ抑制表中记录的所述第三主机的接口是否不同,或比对所述第三主机当前所在的VLAN与所述原ADJ抑制表中记录的所述第三主机的VLAN是否不同;
若至少一个不同,则更新所述原ADJ抑制表,并向所述原ADJ抑制表中记录的所述第三主机的接口下的同VLAN内的其他主机发送第二指定报文,以使所述其他主机更新各自的ADJ抑制表,所述第一指定报文在IPv4网络中为免费ARP报文,在IPv6网络中为非请求邻居公告NA报文。
根据本申请实施例的第三方面,提供一种电子设备,包括至少一个处理器;以及与所述至少一个处理器通信连接的存储器;其中,所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行本申请实施例提供的任一MAC地址的代理应答方法。
根据本申请实施例的第四方面,提供一种存储介质,其中,所述存储介质存储有计算机可执行指令,所述计算机可执行指令用于使计算机执行本申请实施例中的任一MAC地址的代理应答方法。
根据本申请实施例的第五方面,提供一种程序产品,其包括程序代码,当所述程序产品在计算机设备上运行时,所述程序代码用于使所述计算机设备执行本申请实施例中的任一MAC地址的代理应答的方法。
本申请实施例提供的MAC地址的代理应答的方法和装置,该方法中,首先VXLAN中的接入VTEP接收连接的交换机发送的请求报文;然后根据所述请求报文的目的IP地址查询邻接ADJ抑制表;在第一配置条件下,若查询到与所述目的IP地址对应的表项,对所述请求报文进行代理应答;在第二配置条件下,若查询到与所述目的IP地址对应的表项,比对所述表项中的接口信息和所述请求报文携带的接口信息、以及所述表项中的虚拟局域网标识符VID信息和所述请求报文携带的VID信息是否均相同;若均相同,则丢弃所述请求报文;否则对所述请求报文进行代理应答。上述方法中,用以解决代理应答的请求报文和目的主机应答的报文发生冲突,从而导致二层流量转发路径不受控的问题。
通过本申请的提供的方法,首先配置固定,不需要经验参数,因此不需要考虑网络可靠性和易用性方面的问题;进一步的,在解决VXLAN中的关于地址解析的代理冲突问题时,无震荡期;并且,可满足同一VXLAN子网内,VLAN域内和域间关于地址解析的代理各种场景的差异性需求。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。
本申请的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本申请而了解。本申请的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理,并不构成对本申请的不当限定。
图1为本申请一示例性实施方式的一种VXLAN的示意图;
图2为本申请一示例性实施方式的一种VXLAN为集中式网络的部署架构的示意图;
图3为本申请一示例性实施方式的一种VXLAN为分布式网络的部署架构的示意图;
图4为本申请一示例性实施方式的一种VXLAN主机间ARP代理前后二层流量对比示意图;
图5为本申请一示例性实施方式的一种VXLAN中ARP代理冲突的示意图;
图6为本申请一示例性实施方式的一种VXLAN中ARP代理的流程示意图;
图7为本申请一示例性实施方式的一种VXLAN分布式网络主机表项学习与同步的示意图;
图8为本申请一示例性实施方式的一种VXLAN集中式网络主机表项学习与同步的示意图;
图9为本申请一示例性实施方式的一种MAC地址的代理应答方法的流程示意图;
图10为本申请一示例性实施方式的一种VXLAN在第一配置条件下ARP代理的示意图;
图11为本申请一示例性实施方式的一种VXLAN在第二配置条件下ARP代理的示意图;
图12为本申请一示例性实施方式的一种VXLAN分布式网络主机泛洪的示意图;
图13为本申请一示例性实施方式的一种VXLAN集中式网络主机泛洪的示意图;
图14为本申请一示例性实施方式的一种VXLAN主机迁入导致流量黑洞的示意图;
图15为本申请一示例性实施方式的一种VXLAN主机迁入处理方式的示意图;
图16为本申请一示例性实施方式的一种VXLAN主机迁入检查的流程示意图;
图17为本申请一示例性实施方式的一种VXLAN主机迁出导致流量绕行的示意图;
图18为本申请一示例性实施方式的一种VXLAN主机迁出处理方式的示意图;
图19为本申请一示例性实施方式的一种VXLAN主机迁出检查的流程示意图;
图20为本申请一示例性实施方式的一种MAC地址的代理应答装置的流程示意图;
图21为本申请一示例性实施方式的电子设备示意图。
具体实施方式
为了使本领域普通人员更好地理解本申请的技术方案,下面将结合附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的描述在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。
以下,对本申请实施例中VXLAN中的部分结构以及用语进行解释说明,以便于本领域技术人员理解。参阅图1,为本申请一示例性实施方式的一种VXLAN的示意图,包括:
(1)VXLAN隧道:在两个VTEP之间完成VXLAN封装报文传输的逻辑隧道。业务报文在进入隧道时进行VXLAN头、UDP头以及IP头封装后,通过三层转发透明地将封装后的报文传输给远端VTEP,远端VTEP对其进行出隧道解封装处理。
(2)EVPN:全称Ethernet Virtual Private Network,以太虚拟专用网络,是RFC7432(IETF组织的EVPN标准)定义的一种网络技术,它使用BGP(Border GatewayProtocol,边界网关协议)作为上层控制协议,使得VPN(Virtual Private Network,虚拟专用网络)的拓扑更加具有灵活性。
其中,在VXLAN中,VTEP可以利用EVPN协议进行VXLAN隧道的建立与维护,并学习远端设备地址信息。EVPN协议通过BGP互相同步EVPN路由,其中常用的几种EVPN路由类型包括:
1)、EVPN 3类路由:VTEP设备使用EVPN 3类路由互相感知,并建立VXLAN隧道。
2)、EVPN 2类路由:VTEP设备使用EVPN 2类路由在VTEP之间互相同步本地学到的VM相关信息,例如MAC表项、ARP表项。
进一步的,以下,对本申请实施例中的所涉及到的应用背景进行解释说明,以便于本领域技术人员理解。其中,VXLAN有两种不同的部署架构,以下对两个不同的部署架构分别进行说明:
(一)、VXLAN集中式网络部署架构
VXLAN集中式网络部署架构,类似传统以太网络部署架构,将overlay网络中的VTEP设备区分为两层:VXLAN网桥和VXLAN网关。参阅图2,为本申请一示例性实施方式的一种VXLAN集中式网络部署架构示意图,包括:
(1)VXLAN网桥:如图2所示,VXLAN网桥(如图2中的TOR-1和TOR-2设备)是VM(Virtual Machine,虚拟机或虚拟服务器)接入的首台VTEP设备。此外,VXLAN网桥上配置了VNI,能够将VM通过接入的端口和VLAN映射到VNI,其中图2中的VM可选的为HOST主机。VM发送的报文都将在VXLAN网桥封装成VXLAN报文,通过VXLAN隧道转发到其他VTEP设备,例如VXLAN网桥或VXLAN网关。同underlay网络中的网桥类似,VXLAN网桥只能进行VXLAN二层转发,即:基于VXLAN MAC地址表,在同一个VNI内进行二层转发。VXLAN网桥上无法进行VXLAN三层转发。
(2)VXLAN网关:VXLAN网关是用于部署网关的VTEP设备。如图2所示,VXLAN网关(如图2中的CORE-1和CORE-2设备)一般不直接和VM直连,VXLAN网关和所有VXLAN网桥互联并建立VXLAN隧道。来自VM设备的报文需要通过VXLAN网桥封装成VXLAN报文,经过VXLAN隧道转发后,到达VXLAN网关。同underlay网络中的核心网关相同,VXLAN网关可以进行VXLAN报文的三层转发,即:基于VXLAN路由表和ARP邻接表,进行跨VNI的三层转发。
(3)VRF:全称是Virtual Routing Forwarding,虚拟路由转发,是一项计算机网络中使用的技术。
(二)、VXLAN分布式网络部署架构
在VXLAN分布式网络部署架构中,overlay网络摒弃了传统网络的分层架构,通过将VTEP设备配置为IRB分布式网关,实现网桥和网关功能的融合。参阅图3,为本申请一示例性实施方式的一种VXLAN分布式网络部署架构的示意图,包括:
IRB网关:Integrated Router&Bridge Gateway,综合路由器桥接网关,如图3所示,IRB网关设备(如图3中的TOR-1和TOR-2设备)既有VXLAN网桥功能,又有VXLAN网关功能。VM只要接入IRB网关设备,就能通过IRB网关设备之间建立的VXLAN隧道进行二、三层转发。
分布式网关:IRB网关部署在多台VTEP设备上,这些VTEP设备下可能接入了相同VNI的VM。因此在这些IRB网关设备上部署了相同VNI的网关,这种将网关分布式部署在多台设备上的方式,称为分布式网关。分布式网关一般都是VXLAN多活网关。
需要说明的是,为便于理解,以下以IPv4网络中的ARP代理的相关知识为例对本申请进行说明;在IPv6网络中为ND代理的相关知识,对应的实施例和实施方式同样适用,实施例中不同的地方将进行补充说明。因此对于在IPv6网络中应用本申请实施例的实施方式也在本申请的保护范围之内。
(三)、ARP泛洪
在VXLAN中,由于网络拓扑架构具有大二层的特点,每个VNI的广播域将扩展到部署该VNI的所有VTEP设备上。由此将带来ARP泛洪问题:例如,当某台主机发出二层广播的ARP请求报文请求另一台主机的MAC地址时,该ARP请求报文将被泛洪到这台主机所属的VNI广播域内所有VTEP设备上。对于一个大型数据中心网络,VTEP设备数量多达数百台,因此一个ARP请求报文将被复制数百份泛洪到VXLAN中,从而对网络造成重大负担。
需要说明的是,上述的ARP泛洪是在IPv4网络中发生的,对应的在IPv6网络中存在对应的ND泛洪。
(四)、ARP代理
为了解决ARP泛洪问题,同时避免同一个VXLAN子网内的主机直接通信,一种实施方式为将流量全部引到对应连接的网关上进行监控管理,因此ARP代理技术应运而生。其中,ARP代理是指,开启ARP代理功能的设备对主机之间的ARP请求报文进行截获并代理目标主机应答ARP应答报文,应答的源MAC是网关MAC,从而将主机之间的二层流量全部引导到网关。
在一个实施例中,参阅图4,为本申请一示例性实施方式的一种VXLAN主机间ARP代理前后二层流量对比示意图;VTEP上开启ARP代理功能后,HOST-1发出二层ARP请求报文请求HOST-2的MAC地址,经VTEP1上的VXLAN网关代理应答后(源MAC:VTEP1,目的MAC:HOST-1,源IP:HOST-2,目的IP:HOST-1),HOST-1会学到一条ARP表项为(IP:HOST-2,MAC:VTEP1)。此后,HOST-1发往HOST-2的二层流量,其目的MAC均填写为VTEP1,流量到达L2 Switch时将被转发到VTEP1进行绕行(如图4中线a所示),而不会直接转发给HOST-2(如图4中线b所示)。
需要说明的是,上述的ARP代理是在IPv4网络中应用的,对应的在IPv6网络中存在对应的ND代理。
(五)、ARP代理冲突问题
在多台主机通过一台2层交换机接入VTEP的场景下,若主机属于同一VXLAN子网下的同一VLAN域,则会出现VTEP代理应答的ARP报文与主机真实应答的ARP报文发生冲突的问题。
在一个实施例中,参阅图5,为本申请一示例性实施方式的一种VXLAN中ARP代理冲突的示意图;HOST-1发送2层ARP广播请求HOST-2的MAC,请求报文经L2 Switch广播到VTEP1和HOST-2,如图5中的线a和线b。VTEP1上对应的VXLAN网关会代理应答一个ARP应答报文(源MAC为VTEP1),如图5中的线a1;同时HOST-2也会应答一个ARP应答报文(源MAC为HOST-2),如图5中的线b1。最终导致HOST-1先后学到两条ARP,一条为(IP:HOST-2,MAC:VTEP1),另一条为(IP:HOST-2,MAC:HOST-2)。这两条ARP学习的先后顺序视VTEP1和HOST-2应答报文到达HOST-1的先后顺序而定,先到先学,后到后学,且后学习到的ARP会覆盖先学习到的ARP。最终导致HOST-1后续发往HOST-2的二层流量,可能经过L2 Switch直接转发到HOST-2,也可能经L2 Switch到VTEP1到L2 Switch再到HOST-2,从而出现VTEP代理应答的ARP报文与主机真实应答的ARP报文发生冲突的问题。
需要说明的是,上述的ARP代理冲突问题是在IPv4网络中发生的,对应的在IPv6网络中存在对应的ND代理冲突问题。
相关技术中,解决MAC地址的代理应答问题的方案有,网关在一定时间内周期性发送ARP应答报文:网关靠在一定时间内多次发送ARP应答报文,确保主机最后学到的ARP表项是网关应答的,而不是目标主机真实应答的。需要说明的是,ARP请求报文在IPv6网络中对应的为NS(Neighbor Solicitationh,领居请求)报文,ARP应答报文在IPv6网络中对应的为应答NS的NA(Neighbor Advertisement,邻居公告)报文。
但该方案存在一些缺点,包括:(1)在可靠性和易用性方面较差。开启ARP代理功能的网关,需要配置ARP代理应答的发送周期和发送总时长,而这些时间参数的设定要根据具体的网络拓扑和网络性能进行实验后靠经验获取。(2)初期可能发生流量震荡。因为主机依然可能进行真实的ARP应答,所以初期流量可能发生短暂的直通,绕过了网关的监控。(3)无法适用于VXLAN的所用场景。该方法若应用到VXLAN,则同一VXLAN子网下的所有二层流量均需经过网关绕行,无法满足差异性需求。例如,同一VXLAN子网下有多个VLAN域,同一VTEP接口下同一VLAN域内的二层流量需要直通,不同VTEP接口或不同VLAN域内的二层流量需要导向网关进行监控。
有鉴于此,为解决在VXLAN中进行ARP代理时,代理应答的ARP报文和原始主机应答的ARP报文发生冲突,导致二层流量转发路径不受控的问题,并且不存在相关技术中的缺点。本申请提供的一种MAC地址的代理应答方法,参阅图6,为本申请一示例性实施方式的一种VXLAN中ARP代理的流程示意图,该方法包括:
步骤601:生成ARP抑制表。
因为VXLAN有两种不同的部署架构,以下分别通过两种不同的部署架构进行说明,包括:
(1)VXLAN分布式网络部署架构
实施时,在VXLAN分布式网络中,每台VXLAN分布式网关设备上,同一VXLAN子网内配置相同的网关IP和MAC。当VXLAN分布式网关设备上开启ARP代理时,可生成ARP抑制表。
在一个实施例中,参阅图7,为本申请一示例性实施方式的一种VXLAN分布式网络主机表项学习与同步的示意图;其中,图中的每台接入VTEP代理设备均为VXLAN分布式网关设备,并通过EVPN的3类路由建立VXLAN隧道。
在VXLAN分布式网络中,由于接入VTEP均为分布式网关,则通过EVPN将学习到的ARP表项和MAC表项同步给该分布式网络中除该VTEP之外的其他分布式网关,以使其他分布式网关生成所述ADJ抑制表。具体实施时,每台VTEP各自学习下联主机的ARP表项和MAC表项,例如图中的线a、线b、线c、线d以及线e为各主机上线并发送ARP报文以请求网关的MAC地址;并通过EVPN协议的2类路由进行同步,例如图7中的线f意为通过EVPN网络同步各自学习到的ARP表项和MAC表项。
需要说明的是,ARP抑制表最终由ARP表项和其对应的MAC表项迭代生成,其中,MAC表项提供VID(VLAN Identifier,虚拟局域网标识符)和接口信息。在一个实施例中,例如,图7中的VTEP1最终生成的ARP抑制表项信息如下,其中,表1为学习到的ARP表项,表2为MAC表项,表3为最终迭代生成的ARP抑制表:
表1ARP表项
Figure GDA0003348404800000201
表2MAC表项
Figure GDA0003348404800000202
表3ARP抑制表
Figure GDA0003348404800000211
其中,接口信息为“NA”时表示没有接口信息。需要说明的是,当所述ARP请求报文为网关发送的,则转发所述ARP请求报文给所述代理设备连接的各主机;并,接收各主机对所述ARP请求报文的响应信息。具体实施时,在ARP抑制表中,GW表示是否为网关自身生成的表项,当GW为“false”时表示不是网关生成的表项则进行代理;当GW为“true”时表示是网关生成的表项则进行正常的转发或学习。
需要说明的是,在IPv6网络中开启ND代理时,可通过ND表项和MAC表项迭代生成ND抑制表。
(2)VXLAN集中式网络部署架构
实施时,在VXLAN集中式网络中,每台VXLAN中的网桥设备上开启ARP代理,生成ARP抑制表。
在一个实施例中,参阅图8,为本申请一示例性实施方式的一种VXLAN集中式网络主机表项学习与同步的示意图;其中,图中的VTEP1和VTEP2均为VXLAN网桥设备,无VXLAN网关;VTEP3为VXLAN网关设备,集中部署VXLAN网关。并且各VTEP设备之间通过EVPN的3类路由两两建立VXLAN隧道。
在VXLAN集中式网络中,接入VTEP为网桥,即VTEP1和VTEP2,则通过EVPN接收集中式网络中的网关学习到的ARP表项,并根据该ARP表项和学习到的MAC表项生成ARP抑制表;此外,集中式网络中网桥之间通过EVPN同步网桥各自学习到的MAC表项。具体实施时,VTEP网桥设备各自学习下联主机的MAC表项,并通过EVPN协议的2类路由进行同步,例如图中的线2a和线2b为VTEP网桥设备将MAC表项同步给VTEP网关设备。VTEP网关设备学习全网主机ARP表项,例如图中的线a、线b、线c、线d以及线e为各主机上线并发送ARP报文以请求网关的MAC地址,并通过EVPN协议的2类路由同步给网桥设备,例如图中的线3a和线3b为VTEP网关设备将ARP表项同步给VTEP网桥设备;同时VTEP网关设备自身的ARP表项和MAC表项也会通过EVPN协议的2类路由同步给VTEP网桥设备。此外,各VTEP网桥设备之间也通过EVPN协议的2类路由同步各自学习到的MAC表项。
在一个实施例中,例如,图8中的VTEP1网桥设备最终生成的ARP抑制表项信息如下:
表4ARP表项
Figure GDA0003348404800000221
Figure GDA0003348404800000231
表5MAC表项
Figure GDA0003348404800000232
表6ARP抑制表
Figure GDA0003348404800000233
其中,ARP表项是网关设备学习到的,MAC表项是网桥设备学习到的,ARP抑制表在网桥设备上生成。
步骤602:根据ARP抑制表进行知名主机的代理。
通过步骤601可得到ARP抑制表,当主机以广播形式发送ARP请求报文的时候,可通过查询已得到的ARP抑制表在满足一定条件时进行代理。需要说明的是,本步骤的具体实施在VXLAN分布式网络与VXLAN集中式网络中是相同的,只不过是在VXLAN分布式网络中的代理应答ARP请求报文的接入VTEP为分布式网关,而在VXLAN集中式网络中的代理应答ARP请求报文的接入VTEP为网桥设备。参阅图9,为本申请一示例性实施方式的一种MAC地址的代理应答方法的流程示意图;该方法应用于VXLAN的接入VTEP中,具体实施如下,包括:
步骤602a:接收连接的交换机发送的请求报文;其中,所述请求报文是所述交换机连接的第一主机请求第二主机的MAC地址而广播的;
步骤602b:根据所述请求报文的目的互联网协议IP地址查询邻接ADJ抑制表,所述ADJ抑制表在互联网通信协议第四版IPv4网络中为地址解析协议ARP抑制表,在互联网通信协议第六版IPv6网络中为邻居发现ND抑制表;
步骤602c:在第一配置条件下,若查询到与所述目的IP地址对应的表项,对所述请求报文进行代理应答;所述第一配置条件为在所述交换机上配置开启同虚拟局域网VLAN的主机接口间的二层流量隔离功能时,配置在进行代理应答前不启动同接口且同VLAN的检查功能;
在一个实施例中,参阅图10为本申请一示例性实施方式的一种VXLAN在第一配置条件下ARP代理的示意图;其中,主机-1和主机-5属于同一VLAN域内,且通过同一物理口port1接入VTEP1设备。此时主机-1所连接的L2Switch交换机上开启了同VLAN的主机接口间二层流量隔离功能,并在接入VTEP1的VXLAN 1网关下不启动同接口且同VLAN的检查功能。则主机-1请求主机-2~主机-5的ARP报文路径及处理如下,其中主机-1为第一主机:
(1)报文路径:ARP请求报文在L2 Switch上被VLAN隔离或接口二层流量隔离,只会转发到VTEP1设备。如图10中的线a,只能向接VTEP1发送ARP请求报文,而不能向同VLAN域内的主机-5发送ARP请求报文,因此也只能接收到VTEP1应答的如图中线b所示的ARP应答报文。
(2)VTEP1处理ARP请求报文过程:VTEP1上接收到ARP请求报文后,根据请求的目标IP查询ARP抑制表,如表7所示,若查询到与所述目的IP地址对应的表项记录,则直接代理应答(源MAC:VTEP1 VXLAN 1网关MAC,源IP:请求的目标主机IP;目的MAC:主机-1,目的IP:主机-1)。主机-1上最终得到的ARP表(在IPv6网络中为ND表)如下:
表7
Figure GDA0003348404800000251
步骤602d:在第二配置条件下,若查询到与所述目的IP地址对应的表项,比对所述表项中的接口信息和所述请求报文携带的接口信息、以及所述表项中的虚拟局域网标识符VID信息和所述请求报文携带的VID信息是否均相同;若均相同,则丢弃所述请求报文;否则对所述请求报文进行代理应答;所述第二配置条件为在所述交换机上配置关闭同VLAN的主机接口间的二层流量隔离功能时,配置在进行代理应答前启动同接口且同VLAN的检查功能。
在一个实施例中,参阅图11为本申请一示例性实施方式的一种VXLAN在第二配置条件下ARP代理的示意图;其中,主机-1和主机-5属于同一VLAN,且通过同一物理口接入VTEP设备。此时主机-1所连接的L2 Switch上关闭同VLAN的主机接口间的二层流量隔离功能,并在接入VTEP1的VXLAN 1网关下启动同接口且同VLAN的检查功能。则主机-1请求主机-2~主机-5的ARP广播报文路径及处理如下,其中主机-1为第一主机:
(1)报文路径:ARP请求报文在L2 Switch上不会被VLAN隔离,因此会转发到VTEP1设备和主机-5上。如图11中的线a1和线a2,分别为主机-1向VTEP1设备和主机-5发送ARP请求报文,因此能分别接收到VTEP1应答的如图中线b1和主机-5应答的线b2所示的ARP应答报文。
(2)VTEP1处理ARP请求报文过程:VTEP1上接收到ARP请求报文后,根据请求的目标IP查询ARP抑制表,如表8所示,若查询到与所述目的IP地址对应的表项,比对源主机(主机-1)和目标主机(主机-2~主机-5)的VID和接口信息,若VID和接口完全一致,表明两个主机处于同一VLAN域内可直接进行通信,则直接丢弃报文不予以代理;否则进行代理应答。其中,VID和接口信息完全一致,要求VID和接口必须明确有值,非空值或无效值。
(3)主机-5处理ARP请求报文过程:应答主机-1请求主机-5的ARP报文,忽视主机-1请求主机-2~主机-4的ARP报文。主机-1最终生成的ARP表如下所示:
表8
Figure GDA0003348404800000271
需要说明的是,并不限定步骤602a、步骤602b分别与步骤602c、步骤602d的配置条件之间的执行顺序,即在另一个实施例中可选的在执行步骤602a、步骤602b时已经确定是在第一配置条件下还是在第二配置条件下。
步骤603:根据ARP抑制表进行未知名主机的代理。
实施时,在所述第一配置条件下,若未查询到与所述目的IP地址对应的表项,则存储所述请求报文,触发打通所述第二主机的打通请求,并基于所述打通请求生成第一广播请求报文,并在所述VXLAN中泛洪所述第一广播请求报文;确定所述请求报文的存储时长是否达到预设时长。
若确定所述存储时长达到所述预设时长,则根据所述请求报文中的目的IP地址重新查询所述ADJ抑制表,若查询到与所述目的IP地址对应的表项,则对所述请求报文进行代理应答,否则丢弃所述请求报文;若确定所述存储时长未达到所述预设时长,且接收到所述请求报文对应的响应消息,则根据所述响应消息更新所述ADJ抑制表,并根据所述请求报文中的目的IP地址重新查询更新后的ADJ抑制表,若查询到与所述目的IP地址对应的表项,则对所述请求报文进行代理应答。
实施时,在所述第二配置条件下,若未查询到与所述目的IP地址对应的表项,则存储所述请求报文,触发打通所述第二主机的打通请求,并基于所述打通请求生成第二广播请求报文,并在所述VXLAN中泛洪所述第二广播请求报文;确定所述请求报文的存储时长是否达到预设时长。
若确定所述存储时长达到所述预设时长,则根据所述请求报文中的目的IP地址重新查询所述ADJ抑制表,若查询到与所述目的IP地址对应的表项,则比对所述表项中的接口信息和所述请求报文携带的接口信息、以及所述表项中的VID信息和所述请求报文携带的VID信息是否均相同,若均相同,则丢弃所述请求报文,否则对所述请求报文进行代理应答;若未重新查询到与所述目的IP地址对应的表项,则丢弃所述请求报文。
若确定所述存储时长未达到所述预设时长,且接收到所述请求报文对应的响应消息,则根据所述响应消息更新所述ADJ抑制表,并根据所述请求报文中的目的IP地址重新查询更新后的ADJ抑制表;若查询到与所述目的IP地址对应的表项,则比对所述表项中的接口信息和所述请求报文携带的接口信息、以及所述表项中的VID信息和所述请求报文携带的VID信息是否均相同,若均相同,则丢弃所述请求报文,否则对所述请求报文进行代理应答。
此外,接收所述第一广播请求报文或者所述第二广播请求报文对应的单播应答报文;若根据所述ADJ抑制表查询到所述单播应答报文的目的IP地址是所述VXLAN的网关的IP地址;则,若所述VXLAN为集中式网络且所述网关为集中式网关,则将所述单播应答报文发送给所述集中式网关;若所述VXLAN为分布式网络且所述网关为分布式网关,则学习所述单播应答报文中的表项内容并将所述表项内容同步给其他分布式网关。
其中,步骤602是当查询ARP抑制表能查询到的情况,即知名主机的代理过程。而本步骤是当需要查询ARP抑制表获取源主机或目标主机的表项时,若无法获取到,则不能进行ARP代理,此时会存储ARP请求报文,转而进行网关打通主机的动作。本步骤具体实施将从VXLAN分布式网络和VXLAN集中式网络分别进行阐述,具体实施如下,包括:
(一)VXLAN分布式网络部署架构
在一个实施例中,参阅图12,为本申请一示例性实施方式的一种VXLAN分布式网络主机泛洪的示意图;其中两台VTEP设备上的VXLAN 1分布式网关配置相同的IP和MAC地址。在一个实施例中,假设主机-4未主动上线。此时当主机-1发送给主机-4的ARP请求报文到达VTEP1后,如图中的线a,VXLAN 1分布式网关查询ARP抑制表无法获取主机-4的信息,则将ARP请求报文存储预设时长,即存储到VXLAN 1分布式网关设备下一定的时间,并同时触发分布式网关打通主机-4的操作,并生成网关请求打通主机-4的ARP广播请求报文。
具体实施时,网关请求打通主机-4的ARP广播请求报文进行全网泛洪,如图中的线b1、线b2、线b3、线b4、以及线b5,最终被目标主机-4接收并应答到VTEP2,如图中的线c。由于在分布式网络中,各分布式网关配置有相同的IP和MAC地址,因此VTEP2接收到广播请求报文对应的单播应答报文,则学习所述单播应答报文中的表项内容并将所述表项内容同步给其他分布式网关,如图中的线d。
在一个实施例中,VTEP1上ARP请求报文存储达到预设时长后,重新进行ARP抑制表查询,查询得到主机-4信息则根据同接口且同VLAN的检查开关和ARP抑制表项的信息进行ARP代理应答处理;依然查询不到则丢弃报文,由主机-1超时后再次发起ARP请求。其中,根据同接口且同VLAN的检查开关判断是在第一配置条件下,还是在第二配置条件下,进而根据不同的配置条件执行如前述的操作。
在另一个实施例中,VTEP1上ARP请求报文存储并未达到预设时长,但VTEP1已经接收到VTEP2通过EVPN网络同步的主机-4的MAC表项和ARP表项,并得到更新的ARP抑制表,则VTEP1可直接根据更新的ARP抑制表执行如前述的操作。
(二)VXLAN集中式网络部署架构
在一个实施例中,参阅图13,为本申请一示例性实施方式的一种VXLAN集中式网络主机泛洪的示意图;假设主机-4未主动上线。此时主机-1发送主机-4的ARP请求报文到达VTEP1,如图中的线a,查询ARP抑制表无法获取主机-4的信息,则将ARP请求报文存储一定时间,同时将ARP请求报文单播给VTEP3上的VXLAN 1网关处理,如图中的线b所示。
VXLAN 1上的网关收到主机-1发送主机-4的ARP请求报文,若没有查询到主机-4的ARP表项,则触发网关打通主机-4的操作,并生成网关请求打通主机-4的ARP广播请求报文。
具体实施时,网关打通主机-4的ARP广播请求报文进行全网泛洪,如图中的线c1、线c2、线c3、线c4、以及线c5,最终被目标主机-4接收并应答到VTEP3,途经VTEP2,如图中的线e。其中,针对网关打通主机的ARP广播请求报文的主机ARP单播应答报文经过VTEP1和VTEP2时,VTEP1和VTEP2根据ARP抑制表查询到报文源IP或目的IP是网关,则不做代理处理,继续发送给集中式网关。
VTEP2学习主机-4的MAC表项,并同步到VTEP1和VTEP3;VTEP3学习主机-4的ARP表项,并同步到VTEP1和VTEP2,如图中的线f1、线f2以及线f3。
在一个实施例中,VTEP1上ARP请求报文存储到预设时长后,重新进行ARP抑制表查询,查询得到主机-4信息,则根据同接口且同VLAN的检查开关和ARP抑制表项的信息进行ARP代理应答处理;依然查询不到则丢弃报文,由主机-1超时后再次发起ARP请求。其中,根据同接口且同VLAN的检查功能是否启动而判断是在第一配置条件下,还是在第二配置条件下,进而根据不同的配置条件执行如前述的操作。
在另一个实施例中,VTEP1上ARP请求报文存储并未到达预设时长,但VTEP1已经接收到VTEP2通过EVPN网络同步的主机-4的MAC表项和VTEP3通过EVPN网络同步的主机-4的ARP表项,并得到更新的ARP抑制表,则VTEP1可直接根据更新的ARP抑制表执行如前述的操作。
步骤604:解决主机变更导致的流量丢失或绕行问题。
当在同一VTEP接口下同一VLAN域内的主机可直接二层通信时,即在所述交换机上配置关闭同VLAN的主机接口间的二层流量隔离功能时,配置在进行代理应答前启动同接口且同VLAN的检查功能的第二配置条件下,VXLAN网关不代理应答同VLAN域内的主机ARP请求报文时,若发生主机从该VLAN域迁入迁出,会导致迁移的主机ARP无法及时更新,短时间内影响二层流量的转发。该场景下,同一接口下且同一VLAN域内的主机属于同一个VLAN二层直通域。该步骤下,在VXLAN分布式网络部署架构和VXLAN集中式网络部署架构的处理过程同理,因此以VXLAN分布式网络进行举例说明,具体的实施方式包括:
(一)VLAN二层直通域内主机迁入
接收到第三主机的上线通知后,根据该上线通知学习第三主机的关于ARP抑制表中对应的表项;其中,该上线通知是第三主机迁入到VTEP管理的网络中之后发出的、且用于请求VXLAN的网关的MAC地址;然后VTEP可根据学习到的表项更新ARP抑制表。
在一个实施例中,参阅图14,为本申请一示例性实施方式的一种VXLAN主机迁入导致流量绕行的示意图;主机-4迁移到L2 Switch下的VLAN 1中。此时主机-1持有的ARP表项依然为(IP:主机-4,MAC:VTEP1 VXLAN 1网关)。在表项老化重新打通或主机-4重新请求主机-1的ARP抑制表前,主机-1发往主机-4的二层流量,目的MAC均会填写成VTEP1 VXLAN 1网关,在L2 Switch被转往VTEP1绕行。
处理方法:参阅图15,为本申请一示例性实施方式的一种VXLAN主机迁入处理方式的示意图;主机-4迁移到L2 Switch下后,重新上线请求网关ARP,如线a所示。
VTEP1上的VXLAN 1网关学习ARP和MAC表项后通过EVPN同步给VTEP2上的VXLAN 1网关,如线c所示。此时两台VTEP的VXLAN 1子网均检查到主机迁移。并执行图16所示的第一检查过程。
根据图16所示的第一检查过程,VTEP1上的VXLAN 1子网,会向port 1下的VLAN 1网络发送免费ARP报文(源IP:主机-4,源MAC:主机-4;目的IP:主机-4,目的MAC:广播),如图15中的线b1、线b2和线b3。主机-1和主机-5更新ARP为(IP:主机-4,MAC:主机-4)。此后主机-1和主机-5发往主机-4的二层流量通过L2 Switch后直接转发到主机-4。主机-4迁移后应主动老化持有的ARP表项,重新打通。此外,为解决因免费ARP报文的影响而导致的MAC迁移的问题,本申请在发送免费ARP报文后,请求第三主机的ARP表项(源IP和源MAC均为网关),如图15中的线d所示;当接收到第三主机的应答报文(如图15中的线e所示)后,第三主机的MAC迁移将纠正。
在一个实施例中,第一检查过程,具体地,包括:
步骤1601:检查该VXLAN是否开启了同接口且同VLAN的检查功能;
若检查到该VXLAN开启了同接口且同VLAN的检查功能,则继续执行步骤1602;
步骤1602:检查所述第三主机当前接入的接口是否为预设接口,所述预设接口为用于连接本地设备的接口;
若检查到所述第三主机当前接入的接口为预设接口,则继续执行步骤1603;
步骤1603:比对所述第三主机当前接入的接口与所述ADJ抑制表中记录的所述第三主机对应的接口是否不同,或比对所述第三主机当前所在的VLAN与所述ADJ抑制表中记录的所述第三主机的VLAN是否不同;
若至少一个不同,则继续执行步骤1604;
实施时,比对第三主机当前接入的接口与ARP抑制表中记录的第三主机的接口是否不同;若检查到第三主机当前接入的接口与ARP抑制表中记录的第三主机的接口不同;或者,若检查到第三主机当前接入的接口与ARP抑制表中记录的第三主机的接口相同,则比对第三主机当前所在的VLAN与ARP抑制表中记录的第三主机的VLAN,若检查到第三主机当前所在的VLAN与ARP抑制表中记录的第三主机的VLAN不同;则继续执行步骤1604;
步骤1604:更新所述ARP抑制表,并向所述第三主机当前接入的接口所属VLAN内的其他主机发送免费ARP报文。
需要说明的是,在IPv6网络中,向所述第三主机当前接入的接口所属VLAN内的其他主机发送为非请求NA报文,即非应答NS的NA报文。
步骤1605:向所述第三主机当前接入的接口所属VLAN内发送ARP请求所述第三主机应答的报文,以触发所述第三主机发送ARP应答报文。
通过触发所述第三主机发送ARP应答报文,可以纠正因代理设备的免费ARP报文所导致的交换机的MAC迁移。其中,所述免费ARP报文用于指示所述其他主机更新各自的ARP抑制表。
(二)VLAN二层直通域内主机迁出
当主机迁入后,将所述表项同步给所述VXLAN中除所述接入VTEP之外的其他VTEP,以使其他VTEP更新各自的ARP抑制表;或者,VTEP接收所述VXLAN中除所述接入VTEP之外的其他VTEP同步的表项内容,所述表项内容用于更新VTEP上的ARP抑制表。通过其他VTEP的同步,或者是主机内不同的VLAN之间的迁入迁出,VTEP可检测到有主机迁出。
当VTEP检测到有主机迁出后,会根据所述同步请求开启第二检查过程;其中,由于迁入和迁出是从连通域内的迁入或迁出,可以迁到同接口的不同VLAN域中,也可以迁到同台设备的其它接口下,还可以迁到其他设备上;因此代理设备既可识别到主机迁入也可识别到主机的迁出。
在一个实施例中,如图17所示,主机-5迁移到VTEP2下,此时主机-1持有的ARP表项依然为(IP:主机-5,MAC:主机-5)。在表项老化重新打通前,主机-1发往主机-5的二层流量,目的MAC均会填写成主机-5,在L2 Switch被转往主机-5迁移前的接口,导致流量丢失,从而产生黑洞。
处理方法:参阅图18,为本申请一示例性实施方式的一种VXLAN主机迁出处理方式的示意图;主机-5迁移到VTEP2下后,重新上线请求网关ARP,如图中线a所示。
在一个实施例中,VTEP2上的VXLAN 1网关学习ARP和MAC表项后通过EVPN同步给VTEP1上的VXLAN 1网关,如图中线b所示。此时两台VTEP的VXLAN 1子网均检查到主机迁移。并执行图19所示的第二检查过程。
根据图19所示的第二检查过程,VTEP1上的VXLAN 1子网,会向port 1下的VLAN 1网络发送免费ARP报文(源IP:主机-5,源MAC:VTEP1 VXLAN1网关;目的IP:主机-5,目的MAC:广播),如图18中的线c所示。主机-1更新ARP为(IP:主机-5,MAC:VTEP1 VXLAN 1网关)。此后主机-1发往主机-5的流量会被转发到VTEP1,经VXLAN隧道,到达主机-5。主机-5迁移后应主动老化持有的ARP表项,重新打通。
在一个实施例中,第二检查过程,具体地,包括:
步骤1901:检查所述VXLAN是否开启了同接口且同VLAN的检查功能;
若检查到所述VXLAN开启了同接口且同VLAN的检查功能,则继续执行步骤1902;
步骤1902:检查原ARP抑制表中记录的所述第三主机的接口是否为预设接口,所述预设接口为用于连接本地设备的接口;
若检查到原ARP抑制表中记录的所述第三主机的接口为预设接口,则继续执行步骤1903;
步骤1903:比对所述第三主机当前接入的接口与所述原ADJ抑制表中记录的所述第三主机的接口是否不同,或比对所述第三主机当前所在的VLAN与所述原ADJ抑制表中记录的所述第三主机的VLAN是否不同;
若至少一个不同,则继续执行步骤1904;
实施时,比对第三主机当前接入的接口与原ARP抑制表中第三主机的接口是否不同;若检查到第三主机当前接入的接口与原ARP抑制表中第三主机的接口不同;或者,若检查到第三主机当前接入的接口与原ARP抑制表中第三主机的接口相同,则比对第三主机当前所在的VLAN与原ARP抑制表中第三主机的VLAN,若检查到第三主机当前所在的VLAN与原ARP抑制表中第三主机的VLAN不同;则继续执行步骤1904;
步骤1904:更新所述原ARP抑制表,并向所述原ARP抑制表中记录的所述第三主机的接口下的同VLAN内的其他主机发送免费ARP报文。
其中,所述免费ARP报文用于指示所述其他主机更新各自的ARP抑制表。
通过本申请提供的一种MAC地址的代理应答方法,可解决相关技术中的缺点:(1)配置固定,仅需要配置是否开启同接口且同VLAN的检查功能以及是否开启同一VLAN主机接口间的二层流量隔离功能,并不需要经验参数,因此不需要考虑网络可靠性和易用性方面的问题;(2)在解决VXLAN中关于地址解析的代理冲突问题时,无震荡期;根据同接口且同VLAN的检查开关配置和ARP抑制表项的接口与VLAN信息,可以直接控制ARP代理设备对相应VXLAN子网内的ARP请求报文是否进行ARP代理应答,防止出现代理设备和主机同时进行应答的情况。(3)可满足同一VXLAN子网内,VLAN域内和域间ARP代理各种场景的差异性需求。多个VLAN域接入同一个VXLAN子网时,可以满足:在第一配置条件下,VLAN域内域间二层流量均导向VXLAN代理设备监控;或者,在第二配置条件下,同一VTEP接口下VLAN域内二层流量直通,不同VTEP接口下或VLAN域间二层流量导向VXLAN代理设备监控。
基于相同的发明构思,本申请还提供一种MAC地址的代理应答方法的装置。参阅图20,该装置包括:接收模块2001,查询模块2002,第一代理应答模块2003以及第二代理应答模块2004。
接收模块2001,被配置为执行接收连接的交换机发送的请求报文;其中,所述请求报文是所述交换机连接的第一主机请求第二主机的MAC地址而广播的;
查询模块2002,被配置为执行根据所述请求报文的目的互联网协议IP地址查询邻接ADJ抑制表,所述ADJ抑制表在互联网通信协议第四版IPv4网络中为地址解析协议ARP抑制表,在互联网通信协议第六版IPv6网络中为邻居发现ND抑制表;
第一代理应答模块2003,被配置为执行在第一配置条件下,若查询到与所述目的IP地址对应的表项,对所述请求报文进行代理应答;所述第一配置条件为在所述交换机上配置开启同虚拟局域网VLAN的主机接口间的二层流量隔离功能时,配置在进行代理应答前不启动同接口且同VLAN的检查功能;
第二代理应答模块2004,被配置为执行在第二配置条件下,若查询到与所述目的IP地址对应的表项,比对所述表项中的接口信息和所述请求报文携带的接口信息、以及所述表项中的虚拟局域网标识符VID信息和所述请求报文携带的VID信息是否均相同;若均相同,则丢弃所述请求报文;否则对所述请求报文进行代理应答;所述第二配置条件为在所述交换机上配置关闭同VLAN的主机接口间的二层流量隔离功能时,配置在进行代理应答前启动同接口且同VLAN的检查功能。
可选的,所述装置还包括:
第一同步模块,被配置为在根据所述请求报文的目的IP地址查询ADJ抑制表之前,执行若所述VXLAN为集中式网络且所述VTEP为网桥,则通过以太虚拟专用网络EVPN接收所述集中式网络中的网关学习到的ADJ表项,并根据所述ADJ表项和学习到的MAC表项生成所述ADJ抑制表;其中,所述ADJ表项在IPv4网络中为ARP表项,在IPv6中为ND表项;在所述集中式网络中网桥之间通过EVPN同步网桥各自学习到的MAC表项;
第二同步模块,被配置为在根据所述请求报文的目的IP地址查询ADJ抑制表之前,执行若所述VXLAN为分布式网络且所述VTEP为分布式网关,则通过EVPN将学习到的ADJ表项和MAC表项同步给所述分布式网络中除所述VTEP之外的其他分布式网关,以使其他分布式网关生成所述ADJ抑制表。
可选的,所述装置还包括:
第一泛洪模块,被配置为执行在所述第一配置条件下,若未查询到与所述目的IP地址对应的表项,则存储所述请求报文,触发打通所述第二主机的打通请求,并基于所述打通请求生成第一广播请求报文,并在所述VXLAN中泛洪所述第一广播请求报文;
第一确定模块,被配置为执行确定所述请求报文的存储时长是否达到预设时长;
第一查询模块,被配置为执行若确定所述存储时长达到所述预设时长,则根据所述请求报文中的目的IP地址重新查询所述ADJ抑制表,若查询到与所述目的IP地址对应的表项,则对所述请求报文进行代理应答,否则丢弃所述请求报文;
第二查询模块,被配置为执行若确定所述存储时长未达到所述预设时长,且接收到所述请求报文对应的响应消息,则根据所述响应消息更新所述ADJ抑制表,并根据所述请求报文中的目的IP地址重新查询更新后的ADJ抑制表,若查询到与所述目的IP地址对应的表项,则对所述请求报文进行代理应答。
可选的,所述装置还包括:
第二泛洪模块,被配置为执行在所述第二配置条件下,若未查询到与所述目的IP地址对应的表项,则存储所述请求报文,触发打通所述第二主机的打通请求,并基于所述打通请求生成第二广播请求报文,并在所述VXLAN中泛洪所述第二广播请求报文;
第二确定模块,被配置为执行确定所述请求报文的存储时长是否达到预设时长;
第三查询模块,被配置为执行若确定所述存储时长达到所述预设时长,则根据所述请求报文中的目的IP地址重新查询所述ADJ抑制表,若查询到与所述目的IP地址对应的表项,则比对所述表项中的接口信息和所述请求报文携带的接口信息、以及所述表项中的VID信息和所述请求报文携带的VID信息是否均相同,若均相同,则丢弃所述请求报文,否则对所述请求报文进行代理应答;若未重新查询到与所述目的IP地址对应的表项,则丢弃所述请求报文;
第四查询模块,被配置为执行若确定所述存储时长未达到所述预设时长,且接收到所述请求报文对应的响应消息,则根据所述响应消息更新所述ADJ抑制表,并根据所述请求报文中的目的IP地址重新查询更新后的ADJ抑制表;若查询到与所述目的IP地址对应的表项,则比对所述表项中的接口信息和所述请求报文携带的接口信息、以及所述表项中的VID信息和所述请求报文携带的VID信息是否均相同,若均相同,则丢弃所述请求报文,否则对所述请求报文进行代理应答。
可选的,所述装置还包括:
第二接收模块,被配置为执行接收所述第一广播请求报文或者所述第二广播请求报文对应的单播应答报文;
发送模块,被配置为执行若根据所述ADJ抑制表查询到所述单播应答报文的目的IP地址是所述VXLAN的网关的IP地址;则,
若所述VXLAN为集中式网络且所述网关为集中式网关,则将所述单播应答报文发送给所述集中式网关;
若所述VXLAN为分布式网络且所述网关为分布式网关,则学习所述单播应答报文中的表项内容并将所述表项内容同步给其他分布式网关。
可选的,所述装置还包括:
学习模块,被配置为执行接收到第三主机的上线通知后,根据所述上线通知学习所述第三主机对应的表项;其中,所述上线通知是所述第三主机迁入到所述VTEP管理的网络中之后发出的、且用于请求所述VXLAN的网关的MAC地址;
更新模块,被配置为执行根据所述学习到的表项更新所述ADJ抑制表。
可选的,所述装置还包括:
第一检查模块,被配置为在接收到第三主机的上线通知后,执行检查所述VXLAN是否开启了同接口且同VLAN的检查功能;
若检查到所述VXLAN开启了同接口且同VLAN的检查功能,则检查所述第三主机当前接入的接口是否为预设接口,所述预设接口为用于连接本地设备的接口;
若检查到所述第三主机当前接入的接口为所述预设接口,则比对所述第三主机当前接入的接口与所述ADJ抑制表中记录的所述第三主机对应的接口是否不同,或比对所述第三主机当前所在的VLAN与所述ADJ抑制表中记录的所述第三主机的VLAN是否不同;
若至少一个不同,则更新所述ADJ抑制表,并向所述第三主机当前接入的接口所属VLAN内的其他主机发送第一指定报文,以使所述其他主机更新各自的ADJ抑制表,所述第一指定报文在IPv4网络中为免费ARP报文、在IPv6网络中为非请求邻居公告NA报文;
向所述第三主机当前接入的接口所属VLAN内发送请求所述第三主机应答的报文,以触发所述第三主机发送应答报文。
可选的,所述装置还包括:
第三同步模块,被配置为在根据所述上线通知学习所述第三主机的表项内容之后,执行将所述表项同步给所述VXLAN中除所述接入VTEP之外的其他VTEP,以使其他VTEP更新各自的ADJ抑制表。
可选的,所述装置还包括:
接收同步模块,被配置为执行接收所述VXLAN中除所述接入VTEP之外的其他VTEP同步的表项内容,所述表项内容用于更新VTEP上的ADJ抑制表。
可选的,所述装置还包括:
第二检查模块,被配置为执行检查所述接入VTEP是否开启了同接口且同VLAN的检查功能;
若检查到所述VXLAN开启了所述同接口且同VLAN的检查功能,则检查原ADJ抑制表中记录的所述第三主机的接口是否为预设接口,所述预设接口为用于连接本地设备的接口;
若检查到所述原ADJ抑制表中记录的所述第三主机的接口为所述预设接口,则比对所述第三主机当前接入的接口与所述原ADJ抑制表中记录的所述第三主机的接口是否不同,或比对所述第三主机当前所在的VLAN与所述原ADJ抑制表中记录的所述第三主机的VLAN是否不同;
若至少一个不同,则更新所述原ADJ抑制表,并向所述原ADJ抑制表中记录的所述第三主机的接口下的同VLAN内的其他主机发送第二指定报文,以使所述其他主机更新各自的ADJ抑制表,所述第一指定报文在IPv4网络中为免费ARP报文,在IPv6网络中为非请求邻居公告NA报文。
在介绍了本申请示例性实施方式的一种MAC地址的代理应答方法和装置之后,接下来,介绍根据本申请的另一示例性实施方式的电子设备。
所属技术领域的技术人员能够理解,本申请的各个方面可以实现为系统、方法或程序产品。因此,本申请的各个方面可以具体实现为以下形式,即:完全的硬件实施方式、完全的软件实施方式(包括固件、微代码等),或硬件和软件方面结合的实施方式,这里可以统称为“电路”、“模块”或“系统”。
在一些可能的实施方式中,根据本申请的电子设备可以至少包括至少一个处理器、以及至少一个存储器。其中,存储器存储有程序代码,当程序代码被处理器执行时,使得处理器执行本说明书上述描述的根据本申请各种示例性实施方式的MAC地址的代理应答方法中的步骤。例如,处理器可以执行如图6中所示的步骤601-604或者如图9所示的步骤602a-602d。
下面参照图21来描述根据本申请的这种实施方式的电子设备130。图21显示的电子设备130仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图21所示,电子设备130以通用电子设备的形式表现。电子设备130的组件可以包括但不限于:上述至少一个处理器131、上述至少一个存储器132、连接不同系统组件(包括存储器132和处理器131)的总线133。
总线133表示几类总线结构中的一种或多种,包括存储器总线或者存储器控制器、外围总线、处理器或者使用多种总线结构中的任意总线结构的局域总线。
存储器132可以包括易失性存储器形式的可读介质,例如随机存取存储器(RAM)1321和/或高速缓存存储器1322,还可以进一步包括只读存储器(ROM)1323。
存储器132还可以包括具有一组(至少一个)程序模块1324的程序/实用工具1325,这样的程序模块1324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
电子设备130也可以与一个或多个外部设备134(例如键盘、指向设备等)通信,还可与一个或者多个使得用户能与电子设备130交互的设备通信,和/或与使得该电子设备130能与一个或多个其它电子设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口135进行。并且,电子设备130还可以通过网络适配器136与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器136通过总线133与用于电子设备130的其它模块通信。应当理解,尽管图中未示出,可以结合电子设备130使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
在一些可能的实施方式中,本申请提供的一种MAC地址的代理应答方法的各个方面还可以实现为一种程序产品的形式,其包括程序代码,当程序产品在计算机设备上运行时,程序代码用于使计算机设备执行本说明书上述描述的根据本申请各种示例性实施方式的一种MAC地址的代理应答方法的步骤,例如,计算机设备可以执行如图6中所示的步骤601-604或者如图9所示的步骤602a-602d。
程序产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
本申请的实施方式的用于数据处理程序产品可以采用便携式紧凑盘只读存储器(CD-ROM)并包括程序代码,并可以在电子设备上运行。然而,本申请的程序产品不限于此,在本文件中,可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括——但不限于——电磁信号、光信号或上述的任意合适的组合。可读信号介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
可读介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于——无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户电子设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户电子设备上部分在远程电子设备上执行、或者完全在远程电子设备或服务器上执行。在涉及远程电子设备的情形中,远程电子设备可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户电子设备,或者,可以连接到外部电子设备(例如利用因特网服务提供商来通过因特网连接)。
应当注意,尽管在上文详细描述中提及了装置的若干单元或子单元,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本申请的实施方式,上文描述的两个或更多单元的特征和功能可以在一个单元中具体化。反之,上文描述的一个单元的特征和功能可以进一步划分为由多个单元来具体化。
此外,尽管在附图中以特定顺序描述了本申请方法的操作,但是,这并非要求或者暗示必须按照该特定顺序来执行这些操作,或是必须执行全部所示的操作才能实现期望的结果。附加地或备选地,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本申请的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例做出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本申请范围的所有变更和修改。
显然,本领域的技术人员可以对本申请进行各种改动和变型而不脱离本申请的精神和范围。这样,倘若本申请的这些修改和变型属于本申请权利要求及其等同技术的范围之内,则本申请也意图包含这些改动和变型在内。

Claims (13)

1.一种媒体访问控制MAC地址的代理应答方法,应用于虚拟可扩展局域网VXLAN的接入虚拟可扩展局域网隧道端点VTEP中,其特征在于,包括:
接收连接的交换机发送的请求报文;其中,所述请求报文是所述交换机连接的第一主机请求第二主机的MAC地址而广播的;
根据所述请求报文的目的互联网协议IP地址查询邻接ADJ抑制表,所述ADJ抑制表在互联网通信协议第四版IPv4网络中为地址解析协议ARP抑制表,在互联网通信协议第六版IPv6网络中为邻居发现ND抑制表;
在第一配置条件下,若查询到与所述目的IP地址对应的表项,对所述请求报文进行代理应答;所述第一配置条件为在所述交换机上配置开启同虚拟局域网VLAN的主机接口间的二层流量隔离功能时,配置在进行代理应答前不启动同接口且同VLAN的检查功能;
在第二配置条件下,若查询到与所述目的IP地址对应的表项,比对所述表项中的接口信息和所述请求报文携带的接口信息、以及所述表项中的虚拟局域网标识符VID信息和所述请求报文携带的VID信息是否均相同;若均相同,则丢弃所述请求报文;否则对所述请求报文进行代理应答;所述第二配置条件为在所述交换机上配置关闭同VLAN的主机接口间的二层流量隔离功能时,配置在进行代理应答前启动同接口且同VLAN的检查功能。
2.根据权利要求1所述的方法,其特征在于,在根据所述请求报文的目的IP地址查询ADJ抑制表之前,所述方法还包括:
若所述VXLAN为集中式网络且所述VTEP为网桥,则通过以太虚拟专用网络EVPN接收所述集中式网络中的网关学习到的ADJ表项,并根据所述ADJ表项和学习到的MAC表项生成所述ADJ抑制表;其中,所述ADJ表项在IPv4网络中为ARP表项,在IPv6中为ND表项;在所述集中式网络中网桥之间通过EVPN同步网桥各自学习到的MAC表项;
若所述VXLAN为分布式网络且所述VTEP为分布式网关,则通过EVPN将学习到的ADJ表项和MAC表项同步给所述分布式网络中除所述VTEP之外的其他分布式网关,以使其他分布式网关生成所述ADJ抑制表。
3.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述第一配置条件下,若未查询到与所述目的IP地址对应的表项,则存储所述请求报文,触发打通所述第二主机的打通请求,并基于所述打通请求生成第一广播请求报文,并在所述VXLAN中泛洪所述第一广播请求报文;
确定所述请求报文的存储时长是否达到预设时长;
若确定所述存储时长达到所述预设时长,则根据所述请求报文中的目的IP地址重新查询所述ADJ抑制表,若查询到与所述目的IP地址对应的表项,则对所述请求报文进行代理应答,否则丢弃所述请求报文;
若确定所述存储时长未达到所述预设时长,且接收到所述请求报文对应的响应消息,则根据所述响应消息更新所述ADJ抑制表,并根据所述请求报文中的目的IP地址重新查询更新后的ADJ抑制表,若查询到与所述目的IP地址对应的表项,则对所述请求报文进行代理应答。
4.根据权利要求1所述的方法,其特征在于,所述方法还包括:
在所述第二配置条件下,若未查询到与所述目的IP地址对应的表项,则存储所述请求报文,触发打通所述第二主机的打通请求,并基于所述打通请求生成第二广播请求报文,并在所述VXLAN中泛洪所述第二广播请求报文;
确定所述请求报文的存储时长是否达到预设时长;
若确定所述存储时长达到所述预设时长,则根据所述请求报文中的目的IP地址重新查询所述ADJ抑制表,若查询到与所述目的IP地址对应的表项,则比对所述表项中的接口信息和所述请求报文携带的接口信息、以及所述表项中的VID信息和所述请求报文携带的VID信息是否均相同,若均相同,则丢弃所述请求报文,否则对所述请求报文进行代理应答;若未重新查询到与所述目的IP地址对应的表项,则丢弃所述请求报文;
若确定所述存储时长未达到所述预设时长,且接收到所述请求报文对应的响应消息,则根据所述响应消息更新所述ADJ抑制表,并根据所述请求报文中的目的IP地址重新查询更新后的ADJ抑制表;若查询到与所述目的IP地址对应的表项,则比对所述表项中的接口信息和所述请求报文携带的接口信息、以及所述表项中的VID信息和所述请求报文携带的VID信息是否均相同,若均相同,则丢弃所述请求报文,否则对所述请求报文进行代理应答。
5.根据权利要求3或4所述的方法,其特征在于,所述方法还包括:
接收第一广播请求报文或者第二广播请求报文对应的单播应答报文;
若根据所述ADJ抑制表查询到所述单播应答报文的目的IP地址是所述VXLAN的网关的IP地址;则,
若所述VXLAN为集中式网络且所述网关为集中式网关,则将所述单播应答报文发送给所述集中式网关;
若所述VXLAN为分布式网络且所述网关为分布式网关,则学习所述单播应答报文中的表项内容并将所述表项内容同步给其他分布式网关。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收到第三主机的上线通知后,根据所述上线通知学习所述第三主机对应的表项;其中,所述上线通知是所述第三主机迁入到所述VTEP管理的网络中之后发出的、且用于请求所述VXLAN的网关的MAC地址;
根据所述学习到的表项更新所述ADJ抑制表。
7.根据权利要求6所述的方法,其特征在于,在接收到第三主机的上线通知后,所述方法还包括:
检查所述VXLAN是否开启了同接口且同VLAN的检查功能;
若检查到所述VXLAN开启了同接口且同VLAN的检查功能,则检查所述第三主机当前接入的接口是否为预设接口,所述预设接口为用于连接本地设备的接口;
若检查到所述第三主机当前接入的接口为所述预设接口,则比对所述第三主机当前接入的接口与所述ADJ抑制表中记录的所述第三主机对应的接口是否不同,或比对所述第三主机当前所在的VLAN与所述ADJ抑制表中记录的所述第三主机的VLAN是否不同;
若至少一个不同,则更新所述ADJ抑制表,并向所述第三主机当前接入的接口所属VLAN内的其他主机发送第一指定报文,以使所述其他主机更新各自的ADJ抑制表,所述第一指定报文在IPv4网络中为免费ARP报文、在IPv6网络中为非请求邻居公告NA报文;
向所述第三主机当前接入的接口所属VLAN内发送请求所述第三主机应答的报文,以触发所述第三主机发送应答报文。
8.根据权利要求6所述的方法,其特征在于,在根据所述上线通知学习所述第三主机的表项内容之后,所述方法还包括:
将所述表项同步给所述VXLAN中除所述接入VTEP之外的其他VTEP,以使其他VTEP更新各自的ADJ抑制表。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
接收所述VXLAN中除所述接入VTEP之外的其他VTEP同步的表项,所述表项内容用于更新所述接入VTEP上的ADJ抑制表。
10.根据权利要求6或9所述的方法,其特征在于,所述方法还包括:
检查所述接入VTEP是否开启了同接口且同VLAN的检查功能;
若检查到所述VXLAN开启了所述同接口且同VLAN的检查功能,则检查原ADJ抑制表中记录的第三主机的接口是否为预设接口,所述预设接口为用于连接本地设备的接口;
若检查到所述原ADJ抑制表中记录的所述第三主机的接口为所述预设接口,则比对所述第三主机当前接入的接口与所述原ADJ抑制表中记录的所述第三主机的接口是否不同,或比对所述第三主机当前所在的VLAN与所述原ADJ抑制表中记录的所述第三主机的VLAN是否不同;
若至少一个不同,则更新所述原ADJ抑制表,并向所述原ADJ抑制表中记录的所述第三主机的接口下的同VLAN内的其他主机发送第一指定报文,以使所述其他主机更新各自的ADJ抑制表,所述第一指定报文在IPv4网络中为免费ARP报文,在IPv6网络中为非请求邻居公告NA报文。
11.一种MAC地址的代理应答装置,应用于VXLAN的接入VTEP中,其特征在于,包括:
接收模块,被配置为执行接收连接的交换机发送的请求报文;其中,所述请求报文是所述交换机连接的第一主机请求第二主机的MAC地址而广播的;
查询模块,被配置为执行根据所述请求报文的目的互联网协议IP地址查询邻接ADJ抑制表,所述ADJ抑制表在互联网通信协议第四版IPv4网络中为地址解析协议ARP抑制表,在互联网通信协议第六版IPv6网络中为邻居发现ND抑制表;
第一代理应答模块,被配置为执行在第一配置条件下,若查询到与所述目的IP地址对应的表项,对所述请求报文进行代理应答;所述第一配置条件为在所述交换机上配置开启同虚拟局域网VLAN的主机接口间的二层流量隔离功能时,配置在进行代理应答前不启动同接口且同VLAN的检查功能;
第二代理应答模块,被配置为执行在第二配置条件下,若查询到与所述目的IP地址对应的表项,比对所述表项中的接口信息和所述请求报文携带的接口信息、以及所述表项中的虚拟局域网标识符VID信息和所述请求报文携带的VID信息是否均相同;若均相同,则丢弃所述请求报文;否则对所述请求报文进行代理应答;所述第二配置条件为在所述交换机上配置关闭同VLAN的主机接口间的二层流量隔离功能时,配置在进行代理应答前启动同接口且同VLAN的检查功能。
12.一种电子设备,其特征在于,包括:
处理器;
用于存储所述处理器可执行指令的存储器;其中,所述处理器被配置为执行所述指令,以实现如权利要求1-10中任一项所述的MAC地址的代理应答方法。
13.一种存储介质,其特征在于,当所述存储介质中的指令由电子设备的处理器执行时,使得电子设备能够执行如权利要求1-10中任一项所述的MAC地址的代理应答方法。
CN201911348715.5A 2019-12-24 2019-12-24 一种mac地址的代理应答方法及装置 Active CN111130981B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911348715.5A CN111130981B (zh) 2019-12-24 2019-12-24 一种mac地址的代理应答方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911348715.5A CN111130981B (zh) 2019-12-24 2019-12-24 一种mac地址的代理应答方法及装置

Publications (2)

Publication Number Publication Date
CN111130981A CN111130981A (zh) 2020-05-08
CN111130981B true CN111130981B (zh) 2022-05-20

Family

ID=70501834

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911348715.5A Active CN111130981B (zh) 2019-12-24 2019-12-24 一种mac地址的代理应答方法及装置

Country Status (1)

Country Link
CN (1) CN111130981B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111740901B (zh) * 2020-05-20 2022-09-02 北京华三通信技术有限公司 一种建立bgp对等体的方法及装置
CN112351039B (zh) * 2020-11-10 2022-11-15 北京天融信网络安全技术有限公司 一种信息处理方法及电子设备
CN112866113B (zh) * 2020-12-29 2022-11-01 京信网络系统股份有限公司 路由分组转发中arp代理的方法、系统、计算机设备及存储介质
CN112866119B (zh) * 2020-12-30 2022-04-08 迈普通信技术股份有限公司 虚拟可扩展局域网通信方法、装置、电子设备及存储介质
CN112929284A (zh) * 2021-01-29 2021-06-08 烽火通信科技股份有限公司 一种IPv6 VXLAN场景下的ND报文识别方法与系统
CN113794615B (zh) * 2021-08-05 2023-04-25 新华三信息安全技术有限公司 一种报文转发方法及设备
CN114301865B (zh) * 2021-12-29 2023-07-21 迈普通信技术股份有限公司 表项管理方法、装置、网络设备及计算机可读存储介质
CN114520737B (zh) * 2022-01-26 2024-04-02 北京华信傲天网络技术有限公司 一种无线用户的二层数据访问控制方法及系统
CN115242748A (zh) * 2022-07-04 2022-10-25 裕太微电子股份有限公司 一种降低计算机系统功耗的方法及低功耗计算机系统
CN116055398A (zh) * 2022-12-29 2023-05-02 天翼云科技有限公司 一种vxlan集群系统的转发方法和系统节点

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103023818A (zh) * 2012-12-10 2013-04-03 杭州华三通信技术有限公司 媒体接入控制强制转发arp报文的方法及装置
CN103404084A (zh) * 2012-11-21 2013-11-20 华为技术有限公司 Mac地址强制转发装置及方法
CN103814554A (zh) * 2013-12-11 2014-05-21 华为技术有限公司 一种虚拟可扩展局域网的通信方法、装置和系统
CN109257265A (zh) * 2018-08-10 2019-01-22 锐捷网络股份有限公司 一种泛洪抑制方法、vxlan网桥、网关及系统
US10382390B1 (en) * 2017-04-28 2019-08-13 Cisco Technology, Inc. Support for optimized microsegmentation of end points using layer 2 isolation and proxy-ARP within data center

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103404084A (zh) * 2012-11-21 2013-11-20 华为技术有限公司 Mac地址强制转发装置及方法
CN103023818A (zh) * 2012-12-10 2013-04-03 杭州华三通信技术有限公司 媒体接入控制强制转发arp报文的方法及装置
CN103814554A (zh) * 2013-12-11 2014-05-21 华为技术有限公司 一种虚拟可扩展局域网的通信方法、装置和系统
US10382390B1 (en) * 2017-04-28 2019-08-13 Cisco Technology, Inc. Support for optimized microsegmentation of end points using layer 2 isolation and proxy-ARP within data center
CN109257265A (zh) * 2018-08-10 2019-01-22 锐捷网络股份有限公司 一种泛洪抑制方法、vxlan网桥、网关及系统

Also Published As

Publication number Publication date
CN111130981A (zh) 2020-05-08

Similar Documents

Publication Publication Date Title
CN111130981B (zh) 一种mac地址的代理应答方法及装置
CN109257265B (zh) 一种泛洪抑制方法、vxlan网桥、网关及系统
US10237230B2 (en) Method and system for inspecting network traffic between end points of a zone
US11546288B2 (en) Techniques for managing software defined networking controller in-band communications in a data center network
CN109155799B (zh) 经由层三通信的子网扩展
EP3133778B1 (en) Method and device for realizing communication between nvo3 network and mpls network
US10666561B2 (en) Virtual machine migration
EP2891277B1 (en) Overlay virtual gateway for overlay networks
EP2974234B1 (en) Generating a host route
US9374323B2 (en) Communication between endpoints in different VXLAN networks
US10673736B2 (en) Traffic reduction in data center fabrics
US10263808B2 (en) Deployment of virtual extensible local area network
CN113261242B (zh) 通信系统和由通信系统实现的方法
CN108199963B (zh) 报文转发方法和装置
RU2601194C2 (ru) Устройства и способ для назначения сетевых адресов
CN107094110B (zh) 一种dhcp报文转发方法及装置
US20170289031A1 (en) Indirect vxlan bridging
US11516184B2 (en) Firewall service insertion across secure fabric preserving security group tags end to end with dual homed firewall
CN105591907B (zh) 一种路由获取方法和装置
CN108337158B (zh) 单播报文转发方法和装置
WO2020212998A1 (en) Network address allocation in a virtual layer 2 domain spanning across multiple container clusters
US20220272033A1 (en) Group-based service insertion for enterprise private networks using locator id / separation protocol (lisp) control plane
US20190215191A1 (en) Deployment Of Virtual Extensible Local Area Network
US20230283589A1 (en) Synchronizing dynamic host configuration protocol snoop information
WO2020117482A1 (en) Method and system for inspecting unicast network traffic between end points residing within a same zone

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