CN104320267A - 基于SDN框架实现VxLAN的ARP广播抑制系统及方法 - Google Patents

基于SDN框架实现VxLAN的ARP广播抑制系统及方法 Download PDF

Info

Publication number
CN104320267A
CN104320267A CN201410596385.2A CN201410596385A CN104320267A CN 104320267 A CN104320267 A CN 104320267A CN 201410596385 A CN201410596385 A CN 201410596385A CN 104320267 A CN104320267 A CN 104320267A
Authority
CN
China
Prior art keywords
vxlan
arp
vlan
module
packet
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.)
Granted
Application number
CN201410596385.2A
Other languages
English (en)
Other versions
CN104320267B (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.)
Wuhan Greenet Information Service Co Ltd
Original Assignee
Wuhan Greenet Information Service 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 Wuhan Greenet Information Service Co Ltd filed Critical Wuhan Greenet Information Service Co Ltd
Priority to CN201410596385.2A priority Critical patent/CN104320267B/zh
Publication of CN104320267A publication Critical patent/CN104320267A/zh
Application granted granted Critical
Publication of CN104320267B publication Critical patent/CN104320267B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明公开了一种基于SDN框架实现VxLAN的ARP广播抑制系统及方法,涉及数据中心的VxLAN领域。该系统包括SDN控制器、VxLAN Gateway和VLAN交换机;SDN控制器包括顺次相连的SDN OpenFlow接口模块、互通域管理模块、拓扑管理模块、ARP代理模块和IP处理模块;VxLAN Gateway包括顺次相连的配置管理模块、VxLAN OpenFlow接口模块、流表管理模块、隧道封装模块、隧道解封装模块和VxLAN收发包模块;VLAN交换机包括VLAN收发包模块和VLAN ID模块。本发明不仅实现比较容易,能够显著减少ARP广播报文的传递次数,而且能够避免多种场景下的ARP广播,抑制广播的效果较好,便于人们使用。

Description

基于SDN框架实现VxLAN的ARP广播抑制系统及方法
技术领域
本发明涉及数据中心的VxLAN(Virtual extensible LAN,虚拟可扩展局域网)领域,具体涉及一种基于SDN(Software DefinedNetwork,软件定义网关)框架实现VxLAN的ARP(Address ResolutionProtocol,地址解析协议)广播抑制系统及方法。
背景技术
VxLAN是一种可扩展的虚拟局域网,VxLAN在扩展性方面优于VLAN(Virtual Local Area Network,虚拟局域网)技术。VxLAN应用于数据中心内部,VxLAN使得虚拟机能够在不需要改变IP地址和MAC(Media Access Control,媒体访问控制)地址的条件下,互相连通的三层网络范围内迁移,进而保证业务的连续性。
VxLAN采用24bit(位)的网络标识,使用户能够创建16M相互隔离的虚拟网络,突破了目前广泛采用的VLAN所能表示的4K个隔离网络的限制,进而使得大规模多租户的云环境中具有了充足的虚拟网络分区资源。
目前,最新的VxLAN标准文档建议使用VTEP(VXLAN TunnelEndpoint,VxLAN隧道终端)代理ARP应答的方式来减少ARP广播报文。
但是,由于单个VTEP没有全局的拓扑信息,因此单个VTEP只能通过组播的方式将报文发送给其他VTEP,以获取要访问终端的MAC地址。使用组播VTEP替代ARP广播不仅实现角度比较复杂,而且组播报文是一种变相的广播,实际上并没有减少广播报文,不便于人们使用。
申请号为CN201310646140.1的发明专利申请《一种在VxLAN中发送ARP报文发送方法、VTEP及VxLAN控制器》公开了在VxLAN中发送ARP报文的发送方法,但是该发明专利申请存在以下缺陷:
(1)该发明专利申请通过组播代替广播发送ARP报文,实现比较困难,不便于人们使用。
(2)该发明专利申请只能代理应答ARP,不代理ARP的请求,当在同一个VLAN交换机下的2台虚拟机进行互相通讯,且不和另一侧的VxLAN Gateway下的终端进行互通时,该发明专利申请中的所述两个终端每发送一次ARP广播请求就会造成全网组播该ARP广播。例如:该发明专利申请的附图1中的2台VM(Virtual Machine,虚拟机)存在于同一个非SDN交换机之下,当2台VM不主动和其他设备进行通信时,只要1台VM发起ARP请求,学习另一台VM的MAC地址,就会引发全网的ARP广播。因此,该发明专利申请抑制广播的效果较差。
发明内容
针对现有技术中存在的缺陷,本发明的目的在于提供一种基于SDN框架实现VxLAN的ARP广播抑制系统及方法,不仅实现比较容易,能够显著减少ARP广播报文的传递次数,而且能够避免多种场景下的ARP广播,抑制广播的效果较好,便于人们使用。
为达到以上目的,本发明提供的一种基于SDN框架实现VxLAN的ARP广播抑制系统,包括软件定义网关SDN框架,SDN框架包括SDN控制器、若干可扩展局域网网关VxLAN Gateway和若干VLAN交换机,SDN控制器与所有VxLAN Gateway相连,每台VxLAN Gateway分别与若干台VLAN交换机相连;
所述SDN控制器包括顺次相连的SDN网络交换模型OpenFlow接口模块、互通域管理模块、拓扑管理模块、地址解析协议ARP代理模块和IP处理模块;
所述VxLAN Gateway包括顺次相连的配置管理模块、VxLANOpenFlow接口模块、流表管理模块、隧道封装模块、隧道解封装模块和VxLAN收发包模块;
所述VLAN交换机包括VLAN收发包模块和VLAN ID模块;
所述SDN控制器的SDN OpenFlow接口模块用于:接收并处理VxLAN OpenFlow接口模块上报至SDN控制器的流;下发SDN控制器的处理数据包至VxLAN OpenFlow接口模块;
所述SDN控制器的互通域管理模块用于:接收并读取SDN控制器与所有VxLAN Gateway之间的通讯配置,转发通讯配置至拓扑管理模块;
所述SDN控制器的拓扑管理模块包括VxLAN Gateway管理子模块、VLAN交换机管理子模块和用户管理子模块,VxLAN Gateway管理子模块、VLAN交换机管理子模块和用户管理子模块通过一个链表相互关联;
所述VxLAN Gateway管理子模块用于:根据通讯配置保存所有VxLAN Gateway的VxLAN通信信息;
所述VLAN交换机管理子模块用于:保存所有VLAN交换机的VLAN通信信息,VLAN通信信息包括VLAN交换机的VLAN ID、互通域VNI值、以及VLAN交换机所属的VxLAN Gateway的WAN口IP地址;
所述用户管理子模块用于:保存所有VLAN交换机下的用户信息,用户信息包括:用户的IP地址、MAC地址、用户所属VxLANGateway的WAN口IP地址;
所述SDN控制器的ARP代理模块用于:为SDN控制器代理请求ARP消息,为SDN控制器代理ARP请求会在源VxLAN Gateway的LAN口重新广播代理查询;为SDN控制器代理应答ARP消息;
所述SDN控制器的IP处理模块用于:根据通讯配置获取所有VxLan Gateway上报的ARP数据类型之外的流的处理流程,处理流程包括VLAN ID的修改、隧道的封装和隧道的解封装;
所述VxLAN Gateway的配置管理模块用于:读取VxLANGateway程序运行后的参数信息,通过参数获取VxLAN Gateway需要连接的SDN控制器IP地址和OpenFlow端口;
所述VxLAN Gateway的VxLAN OpenFlow接口模块采用OpenFlow协议标准,其用于:在VxLAN Gateway和SDN控制器之间建立连接;上报VxLAN Gateway在流表管理模块中未找到的流至SDN控制器;接收并处理SDN控制器下发的处理流程;
所述VxLAN Gateway的流表管理模块用于:保存SDN控制器对VxLAN Gateway上报的流的处理流程;
所述VxLAN Gateway隧道封装模块用于:VxLAN Gateway接收到上行流后,通过流表管理模块获取当前上行流的处理流程,根据处理流程为当前上行流添加VxLAN隧道,形成封装数据包,以使得当前上行流能够在三层网络中通讯;
所述VxLAN Gateway的隧道解封装模块用于:VxLAN Gateway接收到下行流后,通过流表管理模块获取当前下行流的处理流程,根据处理流程为当前下行流去除VxLAN隧道、并修改VLAN ID,形成解封数据包,以使得当前下行流能够在二层网络中通讯;
所述VxLAN Gateway的VxLAN收发包模块包括VxLAN收包子模块和VxLAN发包子模块;
所述VxLAN收包子模块用于:接收VxLAN Gateway的每一个网口的数据包;
所述VxLAN发包子模块用于:将封装数据包和解封数据包通过SDN控制器要求的网口转发,封装数据包通过VxLAN Gateway的WAN口转发,解封数据包通过VxLAN Gateway的LAN口转发;
所述VLAN交换机的VLAN收发包模块包括VLAN收包子模块和VLAN发包子模块;
所述VLAN收包子模块用于:接收VLAN的每一个网口的数据包;
所述VLAN发包子模块用于:将接收的上行数据包发送至VxLAN Gateway;将接收的下行数据包发送至所属于VLAN的用户;
所述VLAN交换机的VLAN ID模块包括VLAN ID添加子模块和VLAN ID删除子模块;
所述VLAN ID添加子模块用于:为VLAN交换机接收的上行数据包添加VLAN头部,VLAN头部包括VLAN ID信息;
VLAN ID删除子模块用于:为VLAN交换机接收的下行数据包去除VLAN头部。
在上述技术方案的基础上,所述互通域管理模块中的通讯配置通过web界面配置或配置文件配置,通讯配置包括VxLAN Gateway的IP地址、局域网LAN口值、LAN口的媒体访问控制MAC地址、广域网WAN口值、WAN口的MAC地址、WAN口下一跳路由IP地址和MAC地址。
在上述技术方案的基础上,所述ARP代理模块为SDN控制器代理请求ARP消息时,SDN控制器收到SDN OpenFlow的OpenFlow协议中交换机上报至控制器的信息OFPT_PACKET_IN打包的ARP请求后,若未查询到请求目的IP的MAC地址记录,则虚拟一个虚拟机VM IP地址,并代理VM查询VM IP的MAC地址;
所述ARP代理模块为SDN控制器代理应答ARP消息的过程时,SDN控制器收到OFPT_PACKET_IN打包的ARP请求后,若查询到请求目的IP的MAC地址,则直接代理该目的IP回复ARP应答,将ARP应答通过SDN OpenFlow的OpenFlow协议中控制器下发至交换机策略信息OFPT_PACKET_OUT打包形成ARP回复REPLY信息,将ARP REPLY信息通过VxLAN Gateway转发给请求者。
在上述技术方案的基础上,所述VxLAN Gateway的流表管理模块保存SDN控制器对VxLAN Gateway上报流的处理流程时,VxLANGateway接收到上行流或下行流后,流表管理模块查找当前上行流或下行流是否存在,若是,确定当前上行流或下行流不是首次发送,按照当前上行流或下行流处理流程处理并发送当前上行流或下行流;否则确定当前上行流或下行流为首次发送,将当前上行流或下行流通过VxLAN OpenFlow接口模块发送至SDN控制器OpenFlow接口模块。
本发明提供的一种用于上述广播抑制系统的基于SDN框架实现VxLAN的ARP广播抑制方法,包括以下步骤:
S1:在SDN控制器的互通域管理模块预设所有VxLAN Gateway的互通域配置,转到步骤S2;
S2:定义发出ARP请求的用户为请求用户HostA,HostA使用的VLAN交换机为VLANA,VLANA所属的VxLAN Gateway为VxLAN GatewayA;与HostA不同VLAN、且为HostA发送ARP请求包的用户为目的用户HostB,HostB使用的VLAN交换机为VLANB,VLANB的VxLAN Gateway为VxLAN GatewayB;
HostA请求HostB的ARP请求时,HostA向VLANA的VLAN收包子模块发送ARP请求包,VLANA的VLAN ID添加子模块为ARP请求包添加VLAN头部,转到步骤S3;
S3:VLANA的发包子模块将当前ARP请求包发送至VxLANGateway A的VxLAN收发包模块,VxLAN收发包模块通过当前ARP请求包的五元组组成一条流,所述五元组包括当前ARP请求包的源IP地址、目的IP地址、源MAC地址、目的MAC地址和数据类型;
VxLAN GatewayA的流表管理模块查看当前流不存在时,将当前ARP请求包通过VxLAN GatewayA的VxLAN OpenFlow接口模块上报至SDN控制器的SDN OpenFlow接口模块,转到步骤S4;
S4:SDN OpenFlow接口模块判断当前ARP请求包是否属于ARP类型,若是,将当前ARP请求包转发至ARP代理模块,转到步骤S6,否则确定当前ARP请求包为非ARP数据包,将当前非ARP数据包转发至IP处理模块,转到步骤S5;
S5:对当前非ARP数据包进行处理,结束;
S6:ARP代理模块确定当前ARP请求包的数据类型为请求时,转到步骤S7;
S7:用户管理子模块查询HostA的用户信息是否存在,若是,转到步骤S9,否则转到步骤S8;
S8:用户管理子模块通过当前ARP请求包中的VxLAN GatewayIP地址确定HostB所属的VxLAN Gateway;通过当前ARP请求包VLAN头部中的VLAN ID确定HostB的VLAN和VNI值,保存HostB的用户信息,转到步骤S9;
S9:用户管理子模块查询HostB是否存在,若是,转到步骤S10,否则转到步骤S12;
S10:SDN OpenFlow接口模块中的OFPT_PACKET_OUT直接代理HostB的IP向HostA回复ARP应答,构建应答ARP应答数据包;SDN OpenFlow接口模块中的OFPT_PACKET_OUT将ARP应答数据包发送至VxLAN GatewayA,VxLAN GatewayA将ARP应答数据包通过LAN口转发至VLANA,转到步骤S11;
S11:VLANA的VLAN ID删除子模块删除当前ARP应答数据包的VLAN ID头部后,VLAN发包子模块将没有VLAN ID头部的ARP应答数据包发送至HostA,结束;
S12:ARP代理模块根据HostB的VNI值,代理HostA请求HostB的MAC地址,形成修改数据包;ARP代理模块将修改数据包通过SDN OpenFlow接口模块中的OFPT_PACKET_OUT发送给所有VxLAN Gateway,所有VxLAN Gateway将修改数据包通过LAN口转发;拓扑管理模块保存HostA的VxLAN通信信息、VLAN通信信息和用户信息,HostB的VxLAN通信信息、VLAN通信信息和用户信息,转到步骤S13;
S13:VLANB的VLAN ID删除子模块删除当前修改数据包的VLAN ID头部后,VLAN发包子模块将没有VLAN ID头部的修改数据包发送至VLANB,转到步骤S14;
S14:VLANB的VLAN ID添加子模块给为当前修改数据包添加VLAN头部,形成ARP请求包,VLAN发包子模块将ARP请求包发送至VxLAN GatewayB;VxLAN GatewayB的VxLAN收包子模块通过当前ARP请求包的五元组组成一条流,VxLAN GatewayB的流表管理模块查看当前流存在时,按照当前流的处理流程处理,结束。
在上述技术方案的基础上,步骤S3中所述VxLAN收发包模块通过当前ARP请求包的五元组组成一条流之后,还包括以下步骤:VxLAN GatewayA的流表管理模块查看当前流存在时,按照当前流的处理流程处理,结束。
在上述技术方案的基础上,步骤S14中所述VxLAN GatewayB的VxLAN收包子模块通过当前ARP请求包的五元组组成一条流之后,还包括以下步骤:VxLAN GatewayB的流表管理模块查看当前流不存在时,否则将当前ARP请求包通过VxLAN GatewayB的VxLANOpenFlow接口模块上报至SDN控制器的SDN OpenFlow接口模块,转到步骤S4。
在上述技术方案的基础上,步骤S5具体包括以下步骤:
S501:拓扑管理模块中的用户管理子模块查询到HostA、HostB同时存在时,判断当前非ARP数据包是否带有VNI值,若是,确定当前非ARP数据包来自VxLAN GatewayA WAN口、且含有VxLAN头部,需要解封装,转到步骤S502;否则确定当前非ARP数据包来自VxLAN GatewayA的LAN口、且不含有VxLAN头部,需要封装VxLAN头部,转到步骤S503;
S502:VxLAN Gateway管理子模块查询当前非ARP数据包的VxLAN GatewayA的IP地址,通过IP地址值查找VxLAN GatewayA下的所有VLAN交换机;
VLAN交换机管理子模块通过当前非ARP数据包的VNI值查找VLANA;SDN OpenFlow接口模块通过OFPT_PACKET_OUT告知VxLAN GatewayA解封装VxLAN头部并修改VLAN ID值,通过OFPT_PACKET_OUT实现解封装流程,形成解封装数据包,流表管理模块保存解封装流程;VxLAN GatewayA将解封装数据包通过LAN口转发至VLANA,转到步骤S12;
S503:VxLAN Gateway管理子模块查询当前非ARP数据包的VxLAN GatewayA的IP地址,获取VxLAN GatewayA的通信信息;SDN OpenFlow接口模块通过OFPT_PACKET_OUT告知VxLANGatewayA封装VxLAN头部,通过OFPT_PACKET_OUT实现封装流程,形成封装数据包;流表管理模块保存封装流程,VxLAN GatewayA将封装数据包从WAN口转发至VxLAN GatewayB,转到步骤S504;
S504:VxLAN GatewayB的VxLAN OpenFlow接口模块将当前非ARP数据包上报至SDN控制器的SDN OpenFlow接口模块,转到步骤S4,步骤S4中的非ARP数据包即为封装数据包,步骤S4之后的VxLAN GatewayA与VxLAN GatewayB互换,VLANA与VLANB互换,HostA与HostB互换;
步骤S503中所述通过OFPT_PACKET_OUT告知VxLANGatewayA封装VxLAN头部,通过OFPT_PACKET_OUT实现封装流程,形成封装数据包,包括以下步骤:封装VxLAN头部的源MAC地址、目的MAC地址、以太网类型、源IP地址、目的IP地址、IP层下一类型、VNI值。
在上述技术方案的基础上,步骤S6还包括以下步骤:ARP代理模块确定当前ARP请求包的数据类型为回复时,拓扑管理模块的用户管理子模块判断当前ARP请求包的HostB的用户信息,与用户管理子模块保存的HostB的用户信息是否相同,若是,转到步骤S10;否则结束。
在上述技术方案的基础上,步骤S12中所述ARP代理模块根据HostB的VNI值,代理HostA请求HostB的MAC地址,形成修改数据包包括以下步骤:
S1201:互通域管理模块根据HostB的VNI值,查询与当前VNI值相等的所有VxLAN Gateway,互通域管理模块根据HostB的VNI值,在VLAN交换机管理子模块查询与VNI值对应的查询VLAN ID;
S1202:ARP代理模块将当前ARP请求包的源IP地址修改为0.0.0.0;将当前ARP请求包的源MAC地址修改为当前所有VxLANGateway的LAN口的MAC地址;将当前ARP请求包的VLAN ID修改为查询VLAN ID,形成修改数据包。
与现有技术相比,本发明的优点在于:
(1)本发明使用SDN架构,与现有技术中无法得知全局拓扑信息的单个VTEP相比,本发明中SDN架构的SDN控制器能够从全局获知全网的拓扑信息,进而采用单播的方式实现ARP的代理请求,其实现方式比较容易。与此同时,本发明使用时,能够在2个VTEP没有交互过报文的情况下代理应答ARP的广播请求,显著减少了ARP广播报文的传递次数,便于人们使用。
(2)与现有技术中采用组播的方式处理ARP的请求相比,本发明能够通过SDN控制器采用单播的方式处理ARP的请求,不仅处理过程简单有效,而且本发明使用代理请求和应答ARP,能够避免多种场景下的ARP广播,抑制广播的效果较好。
附图说明
图1为本发明实施例中SDN框架的结构示意图;
图2为本发明实施例中SDN控制器的结构框图;
图3为本发明实施例中VxLAN Gateway的结构框图;
图4为本发明实施例中基于SDN框架实现VxLAN的ARP广播抑制方法的流程图。
具体实施方式
以下结合附图及实施例对本发明作进一步详细说明。
本发明实施例中的基于SDN(Software Defined Network,软件定义网关)框架实现VxLAN的ARP(Address Resolution Protocol,地址解析协议)广播抑制系统,包括SDN框架,参见图1所示,SDN框架包括SDN控制器、若干VxLAN Gateway(可扩展局域网网关)和若干VLAN交换机,SDN控制器与所有VxLAN Gateway相连(本实施例中VxLAN Gateway为2台:VxLAN Gateway1和VxLANGateway2),每台VxLAN Gateway分别与若干台VLAN交换机相连(本实施例中每台VxLAN Gateway分别1台VLAN交换机相连:VLAN交换机1、其用户为Host1;VLAN交换机2、其用户为Host2)。
参见图2所示,SDN控制器包括顺次相连的SDN OpenFlow(网络交换模型)接口模块、互通域管理模块、拓扑管理模块、ARP代理模块和IP处理模块。参见图3所示,VxLAN Gateway包括顺次相连的配置管理模块、VxLAN OpenFlow接口模块、流表管理模块、隧道封装模块、隧道解封装模块和VxLAN收发包模块。VLAN交换机包括VLAN收发包模块和VLAN ID模块。
SDN控制器的SDN OpenFlow接口模块用于:接收并处理VxLAN OpenFlow接口模块上报至SDN控制器的流;下发SDN控制器的处理数据包至VxLAN OpenFlow接口模块。
SDN控制器的互通域管理模块用于:接收并读取SDN控制器与所有VxLAN Gateway之间的通讯配置,转发通讯配置至拓扑管理模块。通讯配置可通过web界面配置,也可以从配置文件配置。通讯配置包括VxLAN Gateway的IP地址、LAN(Local Area Network,局域网)口值、LAN口的MAC地址、WAN(WIDe Area Network,广域网)口值、WAN口的MAC地址、WAN口下一跳路由IP地址和MAC地址。通过配置VxLAN Gateway的WAN口IP地址和下一跳路由IP地址能够实现指定VxLAN Gateway之间的互通。
SDN控制器的拓扑管理模块包括VxLAN Gateway管理子模块、VLAN交换机管理子模块和用户管理子模块,VxLAN Gateway管理子模块、VLAN交换机管理子模块和用户管理子模块通过一个链表相互关联(VxLAN Gateway结构体下有VLAN交换机结构体,VLAN交换机结构体下有用户结构体),VxLAN Gateway管理子模块、VLAN交换机管理子模块和用户管理子模块能够通过链表互相查找。
VxLAN Gateway管理子模块用于:根据通讯配置保存所有VxLAN Gateway的VxLAN通信信息。
VLAN交换机管理子模块用于:保存所有VLAN交换机的VLAN通信信息,VLAN通信信息包括VLAN交换机的VLAN ID、VNI(Vxlan Network Identifier,互通域)值、VLAN交换机所属的VxLANGateway的WAN口IP地址。
用户管理子模块用于:保存所有VLAN交换机下的用户信息,用户信息包括:用户的IP地址、MAC地址、用户所属VxLAN Gateway的WAN口IP地址。
SDN控制器的ARP代理模块用于:为SDN控制器代理请求ARP消息,为SDN控制器代理ARP请求会在源VxLAN Gateway的LAN口重新广播代理查询;为SDN控制器代理应答ARP消息。
为SDN控制器代理请求ARP消息的过程为:SDN控制器收到SDN OpenFlow的OFPT_PACKET_IN(OpenFlow协议中交换机上报至控制器的信息)打包的ARP请求后,若未查询到请求目的IP的MAC地址记录,则虚拟一个VM IP(Virtual Machine IP,虚拟机IP)地址,并代理VM查询VM IP的MAC地址。
为SDN控制器代理应答ARP消息的过程为:SDN控制器收到OFPT_PACKET_IN打包的ARP请求后,若查询到请求目的IP的MAC地址,则直接代理该目的IP回复ARP应答,将ARP应答通过SDNOpenFlow的OFPT_PACKET_OUT(OpenFlow协议中控制器下发至交换机策略信息)打包形成ARP REPLY信息(ARP回复信息),将ARP REPLY信息通过VxLAN Gateway转发给请求者。
SDN控制器的IP处理模块用于:根据通讯配置获取所有VxLanGateway上报的ARP数据类型之外的流的处理流程,处理流程包括VLAN ID的修改、隧道的封装和隧道的解封装。
VxLAN Gateway的配置管理模块用于:读取VxLAN Gateway程序运行后的参数信息,通过参数获取VxLAN Gateway需要连接的SDN控制器IP地址和OpenFlow端口。
VxLAN Gateway的VxLAN OpenFlow接口模块采用OpenFlow协议标准,其用于:在VxLAN Gateway和SDN控制器之间建立连接;上报VxLAN Gateway在流表管理模块中未找到的流至SDN控制器;接收并处理SDN控制器下发的处理流程。
VxLAN Gateway的流表管理模块用于:保存SDN控制器对VxLAN Gateway上报的流的处理流程。
保存SDN控制器对VxLAN Gateway上报流的处理流程包括以下步骤:VxLAN Gateway接收到上行流或下行流时,流表管理模块查找当前上行流或下行流是否存在,若是,确定当前上行流或下行流不是首次发送,按照当前上行流或下行流处理流程处理并发送当前上行流或下行流;否则确定当前上行流或下行流为首次发送,将当前上行流或下行流通过VxLAN OpenFlow接口模块发送至SDN控制器OpenFlow接口模块。
VxLAN Gateway隧道封装模块用于:VxLAN Gateway接收到上行流后,通过流表管理模块获取当前上行流的处理流程,根据处理流程为当前上行流添加VxLAN隧道,形成封装数据包,以使得当前上行流能够在三层网络中通讯。
VxLAN Gateway的隧道解封装模块用于:VxLAN Gateway接收到下行流后,通过流表管理模块获取当前下行流的处理流程,根据处理流程为当前下行流去除VxLAN隧道、并修改VLAN ID,形成解封数据包,以使得当前下行流能够在二层网络中通讯。
VxLAN Gateway的VxLAN收发包模块包括VxLAN收包子模块和VxLAN发包子模块。
VxLAN收包子模块用于:接收VxLAN Gateway的每一个网口的数据包。
VxLAN发包子模块用于:将封装数据包和解封数据包通过SDN控制器要求的网口转发(封装数据包通过VxLAN Gateway的WAN口转发,解封数据包通过VxLAN Gateway的LAN口转发)。
VLAN交换机的VLAN收发包模块包括VLAN收包子模块和VLAN发包子模块。
VLAN收包子模块用于:接收VLAN的每一个网口的数据包。
VLAN发包子模块用于:将接收的上行数据包发送至VxLANGateway;将接收的下行数据包发送至所属于VLAN的用户。
VLAN交换机的VLAN ID模块包括VLAN ID添加子模块和VLAN ID删除子模块。
VLAN ID添加子模块用于:为VLAN交换机接收的上行数据包添加VLAN头部,VLAN头部包括VLAN ID信息。
VLAN ID删除子模块用于:为VLAN交换机接收的下行数据包去除VLAN头部。
参见图4所示,本发明实施例中的用于上述系统的基于SDN框架实现VXLAN的ARP广播抑制方法,包括以下步骤:
S1:在SDN控制器的互通域管理模块预设所有VxLAN Gateway的互通域配置,转到步骤S2。互通域配置包括所有VxLAN Gateway的WAN口IP和下一跳路由IP地址配置、属于同一个互通域的VxLAN Gateway信息。本实例中VxLAN GatewayA和VxLANGatewayB在同一个互通域中(即VNI的值一样)。
S2:定义发出ARP请求的用户为HostA(请求用户),HostA使用的VLAN交换机为VLANA,VLANA所属的VxLAN Gateway为VxLAN GatewayA。与HostA不同VLAN、且为HostA发送ARP请求包的用户为HostB(目的用户),HostB使用的VLAN交换机为VLANB,VLANB的VxLAN Gateway为VxLAN GatewayB。
HostA请求HostB的ARP请求时,HostA向VLANA的VLAN收包子模块发送ARP请求包,VLANA的VLAN ID添加子模块为ARP请求包添加VLAN头部,转到步骤S3。
S3:VLANA的发包子模块将当前ARP请求包发送至VxLANGateway A的VxLAN收发包模块,VxLAN收发包模块通过当前ARP请求包的五元组(当前ARP请求包的源IP地址、目的IP地址、源MAC地址、目的MAC地址和数据类型)组成一条流。VxLANGatewayA的流表管理模块查看当前流是否存在,若是,按照当前流的处理流程处理,结束;否则将当前ARP请求包通过VxLANGatewayA的VxLAN OpenFlow接口模块上报至SDN控制器的SDNOpenFlow接口模块,转到步骤S4。
S4:SDN OpenFlow接口模块判断当前ARP请求包是否属于ARP类型,若是,将当前ARP请求包转发至ARP代理模块,转到步骤S6,否则确定当前ARP请求包为非ARP数据包,将当前非ARP数据包转发至IP处理模块,转到步骤S5。
S5:对当前非ARP数据包进行处理,结束。
S6:ARP代理模块确定当前ARP请求包的数据类型,若当前ARP请求包的数据类型为请求,转到步骤S7。若当前ARP请求包数据类型为回复,拓扑管理模块的用户管理子模块判断源IP用户(即HostB)的用户信息,与用户管理子模块已经保存的HostB的用户信息是否相同,若是,转到步骤S10;否则结束。
S7:用户管理子模块查询HostA的用户信息是否存在(查询是否存在HostA的MAC地址和IP地址),若是,转到步骤S9,否则转到步骤S8。
S8:用户管理子模块通过当前ARP请求包中的VxLAN GatewayIP地址确定HostB所属的VxLAN Gateway;通过当前ARP请求包VLAN头部中的VLAN ID确定HostB的VLAN和VNI值,保存HostB的用户信息,转到步骤S9。
S9:用户管理子模块查询HostB是否存在,若是,转到步骤S10,否则转到步骤S12。
S10:SDN OpenFlow接口模块中的OFPT_PACKET_OUT直接代理HostB的IP向HostA回复ARP应答,构建应答ARP应答数据包。SDN OpenFlow接口模块中的OFPT_PACKET_OUT将ARP应答数据包发送至VxLAN GatewayA,VxLAN GatewayA将ARP应答数据包通过LAN口转发至VLANA,转到步骤S11。
步骤S10中ARP应答数据包的源IP地址为HostB的IP地址,源MAC地址为HostB的MAC地址,目的IP地址为HostA的IP地址,目的MAC地址为HostA的MAC地址。
S11:VLANA的VLAN ID删除子模块删除当前ARP应答数据包的VLAN ID头部后,VLAN发包子模块将没有VLAN ID头部的ARP应答数据包发送至HostA,结束。
S12:ARP代理模块根据HostB的VNI值,代理HostA请求HostB的MAC地址,形成修改数据包;ARP代理模块将修改数据包通过SDN OpenFlow接口模块中的OFPT_PACKET_OUT发送给所有VxLAN Gateway,所有VxLAN Gateway将修改数据包通过LAN口转发。拓扑管理模块保存HostA的VxLAN通信信息、VLAN通信信息和用户信息,HostB的VxLAN通信信息、VLAN通信信息和用户信息,转到步骤S13。
S13:VLANB的VLAN ID删除子模块删除当前修改数据包的VLAN ID头部后,VLAN发包子模块将没有VLAN ID头部的修改数据包发送至VLANB,转到步骤S14。
S14:VLANB的VLAN ID添加子模块给为当前修改数据包添加VLAN头部,形成ARP请求包,VLAN发包子模块将ARP请求包发送至VxLAN GatewayB。VxLAN GatewayB的VxLAN收包子模块通过当前ARP包的五元组组成一条流,VxLAN GatewayB的流表管理模块查看当前流是否存在,若是,按照当前流的处理流程处理,结束;否则将当前ARP包通过VxLAN GatewayB的VxLAN OpenFlow接口模块上报至SDN控制器的SDN OpenFlow接口模块,转到步骤S4。
步骤S12中ARP代理模块根据HostB的VNI值,代理HostA请求HostB的MAC地址,形成修改数据包包括以下步骤:
S1201:互通域管理模块根据HostB的VNI值,查询与当前VNI值相等的所有VxLAN Gateway,互通域管理模块根据HostB的VNI值,在VLAN交换机管理子模块查询与VNI值对应的查询VLAN ID。
S1202:ARP代理模块将当前ARP请求包的源IP地址修改为0.0.0.0;将当前ARP请求包的源MAC地址修改为当前所有VxLANGateway的LAN口的MAC地址;将当前ARP请求包的VLAN ID修改为查询VLAN ID,形成修改数据包。
步骤S5具体包括以下步骤:
S501:拓扑管理模块中的用户管理子模块查询到HostA、HostB同时存在时,判断当前非ARP数据包是否带有VNI值,若是,确定当前非ARP数据包来自VxLAN GatewayA WAN口、且含有VxLAN头部,需要解封装,转到步骤S502;否则确定当前非ARP数据包来自VxLAN GatewayA的LAN口、且不含有VxLAN头部,需要封装VxLAN头部,转到步骤S503。
S502:VxLAN Gateway管理子模块查询当前非ARP数据包的VxLAN GatewayA的IP地址,通过IP地址值查找VxLAN GatewayA下的所有VLAN交换机。
VLAN交换机管理子模块通过当前非ARP数据包的VNI值查找VLANA。SDN OpenFlow接口模块通过OFPT_PACKET_OUT告知VxLAN GatewayA解封装VxLAN头部并修改VLAN ID值,通过OFPT_PACKET_OUT消息中的ACTION操作实现解封装流程,形成解封装数据包,流表管理模块保存解封装流程。VxLAN GatewayA将解封装数据包通过LAN口转发至VLANA,转到步骤S12。
S503:VxLAN Gateway管理子模块查询当前非ARP数据包的VxLAN GatewayA的IP地址,获取VxLAN GatewayA的通信信息。SDN OpenFlow接口模块通过OFPT_PACKET_OUT告知VxLANGatewayA封装VxLAN头部,通过OFPT_PACKET_OUT消息中的ACTION操作实现封装流程,形成封装数据包。流表管理模块保存封装流程,VxLAN GatewayA将封装数据包从WAN口转发至VxLANGatewayB,转到步骤S504。
步骤S503中通过OFPT_PACKET_OUT告知VxLAN GatewayA封装VxLAN头部,通过OFPT_PACKET_OUT消息中的ACTION操作实现封装流程,形成封装数据包,包括以下步骤:封装VxLAN头部的源MAC地址、目的MAC地址、以太网类型、源IP地址、目的IP地址、IP层下一类型、VNI值。
源MAC地址为VxLAN GatewayA的WAN口MAC地址,目的MAC地址为VxLAN GatewayA的下一跳路由MAC地址,以太网类型为IP(0x0800),源IP地址为VxLAN GatewayA的WAN口IP地址,目的IP地址为VxLAN GatewayA的下一跳路由IP地址,IP层下一类型为UDP,UDP源端口和目的端口为4789,VNI值为通过VLANID查找的VLAN交换机下的VNI值。
S504:VxLAN GatewayB的VxLAN OpenFlow接口模块将当前非ARP数据包上报至SDN控制器的SDN OpenFlow接口模块,转到步骤S4,步骤S4中的非ARP数据包即为封装数据包,步骤S4之后的VxLAN GatewayA与VxLAN GatewayB互换,VLANA与VLANB互换,HostA与HostB互换。
本发明实际使用时的工作方法包括以下步骤:
A、准备五台操作系统为linux的硬件设备(例如电脑、虚拟机等),五台设备中一台为SDN控制器,两台为VxLAN Gateway,两台为VLAN交换机。分别为五台设备设置相应的IP地址,VxLANGateway的WAN口IP地址和下一跳路由需要配置好,让VxLANGateway WAN数据包可以发送到公网中。
B、编写VxLAN Gateway的配置管理模块,编写配置管理模块主要是为VxLAN Gateway中的VxLAN OpenFlow接口模块服务,VxLAN Gateway通过OpenFlow协议连接到SDN控制器,VxLANGateway需要知道SDN控制器的IP地址以及OpenFlow端口。在现实中为了增加项目灵活性,连接的SDN控制器IP地址不能在程序中写死,可以通过程序运行后的参数进行配置,配置管理模块能够参数,获取SDN控制器IP地址和OpenFlow端口。
C、编写SDN控制器的SDN OpenFlow接口模块和VxLANGateway的VxLAN OpenFlow接口模块,OpenFlow接口能够分离交换机处理数据和转发数据的能力,实现SDN环境。
D、编写SDN控制器的互通域管理模块,因为一台VLAN交换机下的VLAN id有4096个值,在现实中需要实现一个VxLANGateway和另一个VxLAN Gateway通讯,为了隔离每一组的通讯,需要用VNI来区别,用户需要配置互通域。
互通域的配置能够通过应用层的界面配置互通域,然后把该配置写入SDN控制器的数据库或者通过应用层接口发送互通域配置信息给SDN控制器或者在SDN控制器上创建互通域配置文件。
E、编写SDN控制器的拓扑管理模块,拓扑管理模块实现SDN控制器具有全局的拓扑信息,拓扑管理模块是通过Hash链表的方式保存拓扑信息。
F、编写SDN控制器的ARP代理模块,ARP代理模块主要实现抑制ARP广播。
G、编写SDN控制器的IP处理模块,IP处理模块主要实现除去ARP类型的其他类型数据的处理,主要是告知VxLAN Gateway如何封装VxLAN头部、去除VxLAN头部和VLAN ID值的修改。
H、编写VxLAN Gateway中的VxLAN Gateway流表管理模块。用户的上行流量通过5元组来确定流是否存在,根据自己的情况可以自己定,例如OpenFlow协议1.0版本是11元组。
I、编写VxLAN Gateway中的隧道解封装模块,隧道解封装模块主要实现将二层网络数据包发送到三层网络中,再逆向把三层网络发送到二层网络中。
J、编写VxLAN Gateway中的收发包模块,收发包模块主要实现可以抓取用户的上行和下行数据包,转交数据包给其他模块进行处理。
本发明不局限于上述实施方式,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也视为本发明的保护范围之内。本说明书中未作详细描述的内容属于本领域专业技术人员公知的现有技术。

Claims (10)

1.一种基于SDN框架实现VxLAN的ARP广播抑制系统,包括软件定义网关SDN框架,SDN框架包括SDN控制器、若干可扩展局域网网关VxLAN Gateway和若干VLAN交换机,SDN控制器与所有VxLAN Gateway相连,每台VxLAN Gateway分别与若干台VLAN交换机相连;其特征在于:
所述SDN控制器包括顺次相连的SDN网络交换模型OpenFlow接口模块、互通域管理模块、拓扑管理模块、地址解析协议ARP代理模块和IP处理模块;
所述VxLAN Gateway包括顺次相连的配置管理模块、VxLANOpenFlow接口模块、流表管理模块、隧道封装模块、隧道解封装模块和VxLAN收发包模块;
所述VLAN交换机包括VLAN收发包模块和VLAN ID模块;
所述SDN控制器的SDN OpenFlow接口模块用于:接收并处理VxLAN OpenFlow接口模块上报至SDN控制器的流;下发SDN控制器的处理数据包至VxLAN OpenFlow接口模块;
所述SDN控制器的互通域管理模块用于:接收并读取SDN控制器与所有VxLAN Gateway之间的通讯配置,转发通讯配置至拓扑管理模块;
所述SDN控制器的拓扑管理模块包括VxLAN Gateway管理子模块、VLAN交换机管理子模块和用户管理子模块,VxLAN Gateway管理子模块、VLAN交换机管理子模块和用户管理子模块通过一个链表相互关联;
所述VxLAN Gateway管理子模块用于:根据通讯配置保存所有VxLAN Gateway的VxLAN通信信息;
所述VLAN交换机管理子模块用于:保存所有VLAN交换机的VLAN通信信息,VLAN通信信息包括VLAN交换机的VLAN ID、互通域VNI值、以及VLAN交换机所属的VxLAN Gateway的WAN口IP地址;
所述用户管理子模块用于:保存所有VLAN交换机下的用户信息,用户信息包括:用户的IP地址、MAC地址、用户所属VxLANGateway的WAN口IP地址;
所述SDN控制器的ARP代理模块用于:为SDN控制器代理请求ARP消息,为SDN控制器代理ARP请求会在源VxLAN Gateway的LAN口重新广播代理查询;为SDN控制器代理应答ARP消息;
所述SDN控制器的IP处理模块用于:根据通讯配置获取所有VxLan Gateway上报的ARP数据类型之外的流的处理流程,处理流程包括VLAN ID的修改、隧道的封装和隧道的解封装;
所述VxLAN Gateway的配置管理模块用于:读取VxLANGateway程序运行后的参数信息,通过参数获取VxLAN Gateway需要连接的SDN控制器IP地址和OpenFlow端口;
所述VxLAN Gateway的VxLAN OpenFlow接口模块采用OpenFlow协议标准,其用于:在VxLAN Gateway和SDN控制器之间建立连接;上报VxLAN Gateway在流表管理模块中未找到的流至SDN控制器;接收并处理SDN控制器下发的处理流程;
所述VxLAN Gateway的流表管理模块用于:保存SDN控制器对VxLAN Gateway上报的流的处理流程;
所述VxLAN Gateway隧道封装模块用于:VxLAN Gateway接收到上行流后,通过流表管理模块获取当前上行流的处理流程,根据处理流程为当前上行流添加VxLAN隧道,形成封装数据包,以使得当前上行流能够在三层网络中通讯;
所述VxLAN Gateway的隧道解封装模块用于:VxLAN Gateway接收到下行流后,通过流表管理模块获取当前下行流的处理流程,根据处理流程为当前下行流去除VxLAN隧道、并修改VLAN ID,形成解封数据包,以使得当前下行流能够在二层网络中通讯;
所述VxLAN Gateway的VxLAN收发包模块包括VxLAN收包子模块和VxLAN发包子模块;
所述VxLAN收包子模块用于:接收VxLAN Gateway的每一个网口的数据包;
所述VxLAN发包子模块用于:将封装数据包和解封数据包通过SDN控制器要求的网口转发,封装数据包通过VxLAN Gateway的WAN口转发,解封数据包通过VxLAN Gateway的LAN口转发;
所述VLAN交换机的VLAN收发包模块包括VLAN收包子模块和VLAN发包子模块;
所述VLAN收包子模块用于:接收VLAN的每一个网口的数据包;
所述VLAN发包子模块用于:将接收的上行数据包发送至VxLAN Gateway;将接收的下行数据包发送至所属于VLAN的用户;
所述VLAN交换机的VLAN ID模块包括VLAN ID添加子模块和VLAN ID删除子模块;
所述VLAN ID添加子模块用于:为VLAN交换机接收的上行数据包添加VLAN头部,VLAN头部包括VLAN ID信息;
VLAN ID删除子模块用于:为VLAN交换机接收的下行数据包去除VLAN头部。
2.如权利要求1所述的基于SDN框架实现VxLAN的ARP广播抑制系统,其特征在于:所述互通域管理模块中的通讯配置通过web界面配置或配置文件配置,通讯配置包括VxLAN Gateway的IP地址、局域网LAN口值、LAN口的媒体访问控制MAC地址、广域网WAN口值、WAN口的MAC地址、WAN口下一跳路由IP地址和MAC地址。
3.如权利要求1所述的基于SDN框架实现VxLAN的ARP广播抑制系统,其特征在于:所述ARP代理模块为SDN控制器代理请求ARP消息时,SDN控制器收到SDN OpenFlow的OpenFlow协议中交换机上报至控制器的信息OFPT_PACKET_IN打包的ARP请求后,若未查询到请求目的IP的MAC地址记录,则虚拟一个虚拟机VM IP地址,并代理VM查询VM IP的MAC地址;
所述ARP代理模块为SDN控制器代理应答ARP消息的过程时,SDN控制器收到OFPT_PACKET_IN打包的ARP请求后,若查询到请求目的IP的MAC地址,则直接代理该目的IP回复ARP应答,将ARP应答通过SDN OpenFlow的OpenFlow协议中控制器下发至交换机策略信息OFPT_PACKET_OUT打包形成ARP回复REPLY信息,将ARP REPLY信息通过VxLAN Gateway转发给请求者。
4.如权利要求1所述的基于SDN框架实现VxLAN的ARP广播抑制系统,其特征在于:所述VxLAN Gateway的流表管理模块保存SDN控制器对VxLAN Gateway上报流的处理流程时,VxLANGateway接收到上行流或下行流后,流表管理模块查找当前上行流或下行流是否存在,若是,确定当前上行流或下行流不是首次发送,按照当前上行流或下行流处理流程处理并发送当前上行流或下行流;否则确定当前上行流或下行流为首次发送,将当前上行流或下行流通过VxLAN OpenFlow接口模块发送至SDN控制器OpenFlow接口模块。
5.一种用于权利要求1至4任一项所述广播抑制系统的基于SDN框架实现VxLAN的ARP广播抑制方法,其特征在于,包括以下步骤:
S1:在SDN控制器的互通域管理模块预设所有VxLAN Gateway的互通域配置,转到步骤S2;
S2:定义发出ARP请求的用户为请求用户HostA,HostA使用的VLAN交换机为VLANA,VLANA所属的VxLAN Gateway为VxLAN GatewayA;与HostA不同VLAN、且为HostA发送ARP请求包的用户为目的用户HostB,HostB使用的VLAN交换机为VLANB,VLANB的VxLAN Gateway为VxLAN GatewayB;
HostA请求HostB的ARP请求时,HostA向VLANA的VLAN收包子模块发送ARP请求包,VLANA的VLAN ID添加子模块为ARP请求包添加VLAN头部,转到步骤S3;
S3:VLANA的发包子模块将当前ARP请求包发送至VxLANGateway A的VxLAN收发包模块,VxLAN收发包模块通过当前ARP请求包的五元组组成一条流,所述五元组包括当前ARP请求包的源IP地址、目的IP地址、源MAC地址、目的MAC地址和数据类型;
VxLAN GatewayA的流表管理模块查看当前流不存在时,将当前ARP请求包通过VxLAN GatewayA的VxLAN OpenFlow接口模块上报至SDN控制器的SDN OpenFlow接口模块,转到步骤S4;
S4:SDN OpenFlow接口模块判断当前ARP请求包是否属于ARP类型,若是,将当前ARP请求包转发至ARP代理模块,转到步骤S6,否则确定当前ARP请求包为非ARP数据包,将当前非ARP数据包转发至IP处理模块,转到步骤S5;
S5:对当前非ARP数据包进行处理,结束;
S6:ARP代理模块确定当前ARP请求包的数据类型为请求时,转到步骤S7;
S7:用户管理子模块查询HostA的用户信息是否存在,若是,转到步骤S9,否则转到步骤S8;
S8:用户管理子模块通过当前ARP请求包中的VxLAN GatewayIP地址确定HostB所属的VxLAN Gateway;通过当前ARP请求包VLAN头部中的VLAN ID确定HostB的VLAN和VNI值,保存HostB的用户信息,转到步骤S9;
S9:用户管理子模块查询HostB是否存在,若是,转到步骤S10,否则转到步骤S12;
S10:SDN OpenFlow接口模块中的OFPT_PACKET_OUT直接代理HostB的IP向HostA回复ARP应答,构建应答ARP应答数据包;SDN OpenFlow接口模块中的OFPT_PACKET_OUT将ARP应答数据包发送至VxLAN GatewayA,VxLAN GatewayA将ARP应答数据包通过LAN口转发至VLANA,转到步骤S11;
S11:VLANA的VLAN ID删除子模块删除当前ARP应答数据包的VLAN ID头部后,VLAN发包子模块将没有VLAN ID头部的ARP应答数据包发送至HostA,结束;
S12:ARP代理模块根据HostB的VNI值,代理HostA请求HostB的MAC地址,形成修改数据包;ARP代理模块将修改数据包通过SDN OpenFlow接口模块中的OFPT_PACKET_OUT发送给所有VxLAN Gateway,所有VxLAN Gateway将修改数据包通过LAN口转发;拓扑管理模块保存HostA的VxLAN通信信息、VLAN通信信息和用户信息,HostB的VxLAN通信信息、VLAN通信信息和用户信息,转到步骤S13;
S13:VLANB的VLAN ID删除子模块删除当前修改数据包的VLAN ID头部后,VLAN发包子模块将没有VLAN ID头部的修改数据包发送至VLANB,转到步骤S14;
S14:VLANB的VLAN ID添加子模块给为当前修改数据包添加VLAN头部,形成ARP请求包,VLAN发包子模块将ARP请求包发送至VxLAN GatewayB;VxLAN GatewayB的VxLAN收包子模块通过当前ARP请求包的五元组组成一条流,VxLAN GatewayB的流表管理模块查看当前流存在时,按照当前流的处理流程处理,结束。
6.如权利要求5所述的基于SDN框架实现VxLAN的ARP广播抑制方法,其特征在于:步骤S3中所述VxLAN收发包模块通过当前ARP请求包的五元组组成一条流之后,还包括以下步骤:VxLANGatewayA的流表管理模块查看当前流存在时,按照当前流的处理流程处理,结束。
7.如权利要求5所述的基于SDN框架实现VxLAN的ARP广播抑制方法,其特征在于:步骤S14中所述VxLAN GatewayB的VxLAN收包子模块通过当前ARP请求包的五元组组成一条流之后,还包括以下步骤:VxLAN GatewayB的流表管理模块查看当前流不存在时,否则将当前ARP请求包通过VxLAN GatewayB的VxLANOpenFlow接口模块上报至SDN控制器的SDN OpenFlow接口模块,转到步骤S4。
8.如权利要求5所述的基于SDN框架实现VxLAN的ARP广播抑制方法,其特征在于,步骤S5具体包括以下步骤:
S501:拓扑管理模块中的用户管理子模块查询到HostA、HostB同时存在时,判断当前非ARP数据包是否带有VNI值,若是,确定当前非ARP数据包来自VxLAN GatewayA WAN口、且含有VxLAN头部,需要解封装,转到步骤S502;否则确定当前非ARP数据包来自VxLAN GatewayA的LAN口、且不含有VxLAN头部,需要封装VxLAN头部,转到步骤S503;
S502:VxLAN Gateway管理子模块查询当前非ARP数据包的VxLAN GatewayA的IP地址,通过IP地址值查找VxLAN GatewayA下的所有VLAN交换机;
VLAN交换机管理子模块通过当前非ARP数据包的VNI值查找VLANA;SDN OpenFlow接口模块通过OFPT_PACKET_OUT告知VxLAN GatewayA解封装VxLAN头部并修改VLAN ID值,通过OFPT_PACKET_OUT实现解封装流程,形成解封装数据包,流表管理模块保存解封装流程;VxLAN GatewayA将解封装数据包通过LAN口转发至VLANA,转到步骤S12;
S503:VxLAN Gateway管理子模块查询当前非ARP数据包的VxLAN GatewayA的IP地址,获取VxLAN GatewayA的通信信息;SDN OpenFlow接口模块通过OFPT_PACKET_OUT告知VxLANGatewayA封装VxLAN头部,通过OFPT_PACKET_OUT实现封装流程,形成封装数据包;流表管理模块保存封装流程,VxLAN GatewayA将封装数据包从WAN口转发至VxLAN GatewayB,转到步骤S504;
S504:VxLAN GatewayB的VxLAN OpenFlow接口模块将当前非ARP数据包上报至SDN控制器的SDN OpenFlow接口模块,转到步骤S4,步骤S4中的非ARP数据包即为封装数据包,步骤S4之后的VxLAN GatewayA与VxLAN GatewayB互换,VLANA与VLANB互换,HostA与HostB互换;
步骤S503中所述通过OFPT_PACKET_OUT告知VxLANGatewayA封装VxLAN头部,通过OFPT_PACKET_OUT实现封装流程,形成封装数据包,包括以下步骤:封装VxLAN头部的源MAC地址、目的MAC地址、以太网类型、源IP地址、目的IP地址、IP层下一类型、VNI值。
9.如权利要求5至8任一项所述的基于SDN框架实现VxLAN的ARP广播抑制方法,其特征在于:步骤S6还包括以下步骤:ARP代理模块确定当前ARP请求包的数据类型为回复时,拓扑管理模块的用户管理子模块判断当前ARP请求包的HostB的用户信息,与用户管理子模块保存的HostB的用户信息是否相同,若是,转到步骤S10;否则结束。
10.如权利要求5至8任一项所述的基于SDN框架实现VxLAN的ARP广播抑制方法,其特征在于:步骤S12中所述ARP代理模块根据HostB的VNI值,代理HostA请求HostB的MAC地址,形成修改数据包包括以下步骤:
S1201:互通域管理模块根据HostB的VNI值,查询与当前VNI值相等的所有VxLAN Gateway,互通域管理模块根据HostB的VNI值,在VLAN交换机管理子模块查询与VNI值对应的查询VLAN ID;
S1202:ARP代理模块将当前ARP请求包的源IP地址修改为0.0.0.0;将当前ARP请求包的源MAC地址修改为当前所有VxLANGateway的LAN口的MAC地址;将当前ARP请求包的VLAN ID修改为查询VLAN ID,形成修改数据包。
CN201410596385.2A 2014-10-29 2014-10-29 基于SDN框架实现VxLAN的ARP广播抑制系统及方法 Active CN104320267B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410596385.2A CN104320267B (zh) 2014-10-29 2014-10-29 基于SDN框架实现VxLAN的ARP广播抑制系统及方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410596385.2A CN104320267B (zh) 2014-10-29 2014-10-29 基于SDN框架实现VxLAN的ARP广播抑制系统及方法

Publications (2)

Publication Number Publication Date
CN104320267A true CN104320267A (zh) 2015-01-28
CN104320267B CN104320267B (zh) 2017-11-17

Family

ID=52375442

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410596385.2A Active CN104320267B (zh) 2014-10-29 2014-10-29 基于SDN框架实现VxLAN的ARP广播抑制系统及方法

Country Status (1)

Country Link
CN (1) CN104320267B (zh)

Cited By (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104935516A (zh) * 2015-06-17 2015-09-23 武汉邮电科学研究院 基于软件定义网络的通信系统及方法
CN105357099A (zh) * 2015-12-18 2016-02-24 南京优速网络科技有限公司 一种基于sdn的虚拟专用网络的实现方法
CN105897611A (zh) * 2016-06-24 2016-08-24 武汉绿色网络信息服务有限责任公司 一种基于sdn采用dpi技术实现业务识别和流量调度的系统和方法
CN106210157A (zh) * 2015-04-30 2016-12-07 中国电信股份有限公司 抑制地址解析协议消息的方法与系统、控制器
CN106230682A (zh) * 2016-07-15 2016-12-14 浪潮电子信息产业股份有限公司 一种基于openvswitch openflow协议实现的vxlan网络
CN106657442A (zh) * 2017-01-11 2017-05-10 浙江广播电视集团 基于VxLAN实现媒体共享存储网络的系统及其方法
CN107181688A (zh) * 2017-03-31 2017-09-19 武汉绿色网络信息服务有限责任公司 一种sdn网络中实现服务器端跨域数据传输优化的系统和方法
CN107547686A (zh) * 2017-08-29 2018-01-05 新华三技术有限公司 Arp请求报文处理方法和装置
CN107579900A (zh) * 2017-10-13 2018-01-12 锐捷网络股份有限公司 从vlan网络接入vxlan网络的方法、装置及系统
CN108810183A (zh) * 2018-05-04 2018-11-13 新华三技术有限公司 冲突mac地址的处理方法、装置和机器可读存储介质
CN109450794A (zh) * 2018-12-11 2019-03-08 上海云轴信息科技有限公司 一种基于sdn网络的通信方法及设备
CN109547344A (zh) * 2019-01-15 2019-03-29 浙江农林大学暨阳学院 一种基于mspg的以太网帧转发方法及其mspg系统
CN110912797A (zh) * 2019-11-18 2020-03-24 新华三大数据技术有限公司 一种广播报文的转发方法及装置
CN112738165A (zh) * 2020-12-18 2021-04-30 北京中电普华信息技术有限公司 一种基于ovs改造的ovs-dpdk架构以及数据包处理方法
CN112929192A (zh) * 2019-12-06 2021-06-08 西安诺瓦星云科技股份有限公司 模组控制器广播方法及拓扑关系识别方法和显示控制系统

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011140945A1 (zh) * 2010-08-26 2011-11-17 华为技术有限公司 一种业务数据传输方法及装置
US20130322443A1 (en) * 2012-05-29 2013-12-05 Futurewei Technologies, Inc. SDN Facilitated Multicast in Data Center
CN103905283A (zh) * 2012-12-25 2014-07-02 华为技术有限公司 基于可扩展虚拟局域网的通信方法及装置
CN104010049A (zh) * 2014-04-30 2014-08-27 易云捷讯科技(北京)有限公司 基于sdn的以太网ip报文封装方法及网络隔离和dhcp实现方法
CN104115453A (zh) * 2013-12-31 2014-10-22 华为技术有限公司 一种实现虚拟机通信的方法和装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011140945A1 (zh) * 2010-08-26 2011-11-17 华为技术有限公司 一种业务数据传输方法及装置
US20130322443A1 (en) * 2012-05-29 2013-12-05 Futurewei Technologies, Inc. SDN Facilitated Multicast in Data Center
CN103905283A (zh) * 2012-12-25 2014-07-02 华为技术有限公司 基于可扩展虚拟局域网的通信方法及装置
CN104115453A (zh) * 2013-12-31 2014-10-22 华为技术有限公司 一种实现虚拟机通信的方法和装置
CN104010049A (zh) * 2014-04-30 2014-08-27 易云捷讯科技(北京)有限公司 基于sdn的以太网ip报文封装方法及网络隔离和dhcp实现方法

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106210157A (zh) * 2015-04-30 2016-12-07 中国电信股份有限公司 抑制地址解析协议消息的方法与系统、控制器
CN106210157B (zh) * 2015-04-30 2019-07-23 中国电信股份有限公司 抑制地址解析协议消息的方法与系统、控制器
CN104935516B (zh) * 2015-06-17 2018-05-11 武汉邮电科学研究院 基于软件定义网络的通信系统及方法
CN104935516A (zh) * 2015-06-17 2015-09-23 武汉邮电科学研究院 基于软件定义网络的通信系统及方法
CN105357099A (zh) * 2015-12-18 2016-02-24 南京优速网络科技有限公司 一种基于sdn的虚拟专用网络的实现方法
CN105897611A (zh) * 2016-06-24 2016-08-24 武汉绿色网络信息服务有限责任公司 一种基于sdn采用dpi技术实现业务识别和流量调度的系统和方法
CN105897611B (zh) * 2016-06-24 2019-03-29 武汉绿色网络信息服务有限责任公司 一种基于sdn采用dpi技术实现业务识别和流量调度的系统和方法
CN106230682A (zh) * 2016-07-15 2016-12-14 浪潮电子信息产业股份有限公司 一种基于openvswitch openflow协议实现的vxlan网络
CN106657442A (zh) * 2017-01-11 2017-05-10 浙江广播电视集团 基于VxLAN实现媒体共享存储网络的系统及其方法
CN107181688A (zh) * 2017-03-31 2017-09-19 武汉绿色网络信息服务有限责任公司 一种sdn网络中实现服务器端跨域数据传输优化的系统和方法
CN107181688B (zh) * 2017-03-31 2019-12-31 武汉绿色网络信息服务有限责任公司 一种sdn网络中实现服务器端跨域数据传输优化的系统和方法
CN107547686A (zh) * 2017-08-29 2018-01-05 新华三技术有限公司 Arp请求报文处理方法和装置
CN107547686B (zh) * 2017-08-29 2021-05-28 新华三技术有限公司 Arp请求报文处理方法和装置
CN107579900A (zh) * 2017-10-13 2018-01-12 锐捷网络股份有限公司 从vlan网络接入vxlan网络的方法、装置及系统
CN108810183A (zh) * 2018-05-04 2018-11-13 新华三技术有限公司 冲突mac地址的处理方法、装置和机器可读存储介质
CN108810183B (zh) * 2018-05-04 2021-09-07 新华三技术有限公司 冲突mac地址的处理方法、装置和机器可读存储介质
CN109450794A (zh) * 2018-12-11 2019-03-08 上海云轴信息科技有限公司 一种基于sdn网络的通信方法及设备
CN109450794B (zh) * 2018-12-11 2021-02-23 上海云轴信息科技有限公司 一种基于sdn网络的通信方法及设备
CN109547344A (zh) * 2019-01-15 2019-03-29 浙江农林大学暨阳学院 一种基于mspg的以太网帧转发方法及其mspg系统
CN109547344B (zh) * 2019-01-15 2021-06-25 浙江农林大学暨阳学院 一种基于mspg的以太网帧转发方法及其mspg系统
CN110912797A (zh) * 2019-11-18 2020-03-24 新华三大数据技术有限公司 一种广播报文的转发方法及装置
CN112929192A (zh) * 2019-12-06 2021-06-08 西安诺瓦星云科技股份有限公司 模组控制器广播方法及拓扑关系识别方法和显示控制系统
CN112929192B (zh) * 2019-12-06 2023-11-14 西安诺瓦星云科技股份有限公司 模组控制器广播方法及拓扑关系识别方法和显示控制系统
CN112738165A (zh) * 2020-12-18 2021-04-30 北京中电普华信息技术有限公司 一种基于ovs改造的ovs-dpdk架构以及数据包处理方法

Also Published As

Publication number Publication date
CN104320267B (zh) 2017-11-17

Similar Documents

Publication Publication Date Title
CN104320267A (zh) 基于SDN框架实现VxLAN的ARP广播抑制系统及方法
US10050877B2 (en) Packet forwarding method and apparatus
CN104935516B (zh) 基于软件定义网络的通信系统及方法
CN104468384B (zh) 一种实现多业务优先级的系统及方法
US9448821B2 (en) Method and system for realizing virtual machine mobility
CN102025591B (zh) 虚拟专用网络的实现方法及系统
US9397943B2 (en) Configuring virtual media access control addresses for virtual machines
CN108574616A (zh) 一种处理路由的方法、设备及系统
US20150085862A1 (en) Forwarding Multicast Data Packets
CN104468462B (zh) 分布式虚拟交换机系统的报文转发方法及设备
CN105379228B (zh) 实现arp的方法、交换设备及控制设备
CN104486227B (zh) 通过VxLAN技术实现IPv6灵活部署的系统及方法
JPWO2014136864A1 (ja) パケット書換装置、制御装置、通信システム、パケット送信方法及びプログラム
US10652142B2 (en) SDN-based ARP implementation method and apparatus
CN104579894B (zh) 分布式虚拟交换机系统的IGMP Snooping实现方法及装置
TW201541262A (zh) 以軟體定義網路(sdn)支援虛擬機器遷移之方法
TWI759571B (zh) 基於流表的資料傳送方法
CN108429680A (zh) 一种基于虚拟私有云的路由配置方法、系统、介质及设备
CN103916320B (zh) 一种vm设备跨网迁移后的报文处理方法及装置
CN108737183A (zh) 一种转发表项的监测方法及装置
US11997005B2 (en) BIER overlay signaling enhancement
WO2024001701A1 (zh) 数据处理方法、装置及系统
CN103873339A (zh) 一种虚拟网关路由器的分配方法和装置
WO2017036384A1 (zh) 运营商边缘设备及数据转发方法
CN108833284B (zh) 一种云平台和idc网络的通信方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: ARP broadcast suppression system and method of vxlan based on SDN framework

Effective date of registration: 20220307

Granted publication date: 20171117

Pledgee: Industrial Bank Limited by Share Ltd. Wuhan branch

Pledgor: WUHAN GREENET INFORMATION SERVICE Co.,Ltd.

Registration number: Y2022420000052

PE01 Entry into force of the registration of the contract for pledge of patent right
PC01 Cancellation of the registration of the contract for pledge of patent right

Date of cancellation: 20230717

Granted publication date: 20171117

Pledgee: Industrial Bank Limited by Share Ltd. Wuhan branch

Pledgor: WUHAN GREENET INFORMATION SERVICE Co.,Ltd.

Registration number: Y2022420000052

PC01 Cancellation of the registration of the contract for pledge of patent right