CN104935516A - 基于软件定义网络的通信***及方法 - Google Patents
基于软件定义网络的通信***及方法 Download PDFInfo
- Publication number
- CN104935516A CN104935516A CN201510337341.2A CN201510337341A CN104935516A CN 104935516 A CN104935516 A CN 104935516A CN 201510337341 A CN201510337341 A CN 201510337341A CN 104935516 A CN104935516 A CN 104935516A
- Authority
- CN
- China
- Prior art keywords
- virtual machine
- address
- message
- vtep
- arp
- 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
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L45/00—Routing or path finding of packets in data switching networks
- H04L45/74—Address processing for routing
- H04L45/745—Address table lookup; Address filtering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L12/00—Data switching networks
- H04L12/28—Data switching networks characterised by path configuration, e.g. LAN [Local Area Networks] or WAN [Wide Area Networks]
- H04L12/46—Interconnection of networks
- H04L12/4641—Virtual LANs, VLANs, e.g. virtual private networks [VPN]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L61/00—Network arrangements, protocols or services for addressing or naming
- H04L61/09—Mapping addresses
- H04L61/10—Mapping addresses of different types
- H04L61/103—Mapping addresses of different types across network layers, e.g. resolution of network layer into physical layer addresses or address resolution protocol [ARP]
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/50—Reducing energy consumption in communication networks in wire-line communication networks, e.g. low power modes or reduced link rate
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种基于软件定义网络的通信***,其用于在虚拟机之间进行报文转发,该通信***包括上报模块及控制模块,上报模块在每个虚拟机加入VXLAN网络时获取并上报虚拟机的IP地址、MAC地址、VNI编号及虚拟机所在VETP的IP地址,控制模块接收上报的虚拟机IP地址、MAC地址、VNI编号及虚拟机所在VTEP的IP地址并存储至ARP表,并在请求虚拟机发送报文时根据目的虚拟机MAC地址及目的虚拟机所在VTEP的IP地址在所存储的ARP表中查找并在查到时根据所查地址发送报文。该通信***获取虚拟机的IP地址、MAC地址以及虚拟机所在VTEP的IP地址上报至控制模块,避免了组播协议的复杂,并利用控制模块中存储的ARP表进行ARP解析,避免了ARP洪泛引起的带宽浪费。本发明还提供了一种通信方法。
Description
技术领域
本发明涉及网络通信技术领域,尤其涉及一种基于软件定义网络的通信***及方法。
背景技术
目前,虚拟扩展局域网(Virtual eXtensible Local Area Network,VXLAN)是一种进行大二层虚拟网络扩展的隧道封装技术,这个技术在IETF已经是标准草案,并已经成为业界主流的虚拟网络技术之一,VXLAN定义了一个VXLAN隧道终点(VXLAN Tunnel End Point,VTEP)的实体,VTEP将虚拟机产生的数据封装到用户数据包协议(User Datagram Protocol,UDP)包头内再发送出去,虚拟机本身的媒介访问控制(Media Access Control,MAC)地址和VLAN信息在经过封装后已经不作为数据转发的依据。VXLAN为虚拟机的数据包加上了层层包头,这些新的包头只有在数据到达目的地后才会被去掉。中间路径的网络设备只会根据外层包头内的目的地址进行数据转发,对于转发路径上的网络设备来说,一个VXLAN数据包跟一个普通数据包没有区别。由于虚拟机本身的VLAN信息对外已不可见,VXLAN添加了一个新的标签VXLAN网络标识符(VXLAN NetworkIdentifier,VNI),VNI取代VLAN用来表示不同的VXLAN网段,只有具有相同VNI,处于同一VXLAN网段内的虚拟机才能互相通信。
VXLAN在学习地址的时候仍然保存着二层协议的特征,节点之间不会周期性地交换各自掌握的路由表,对于不认识的MAC地址,VXLAN仍然依靠类似广播的行为来获取路径信息。由于VXLAN是一个基于IP传输的协议,VXLAN选择了使用IP组播来承载二层的广播流量。每一个VXLAN节点都会加入一个特定的组播组,这个组播组就好像以太网环境中的广播域。当一个虚拟机发出地址解析协议(Address Resolution Protocol,ARP)请求,这个请求通过VXLAN封装后被发送到这个组播组内,只有加入这个组的VTEP才会收到这个ARP请求,继而完成二层的地址学习过程。
然而,VXLAN这种类似传统二层协议的控制平面存在着以下问题:需要节点支持组播协议,并且必须加入组播组,在大规模部署时显得过于复杂,现在云数据中心的环境中已经趋向于采用在控制模块的层面采用软件定义网络(Software Defined Networking,SDN)的方式来进行网络的控制,SDN网络中由一个SDN控制模块对网络设备如交换机进行集中控制,比较典型的是OpenFlow(开放流网络),而VXLAN这种类似传统二层协议的控制平面无法有效的和现在的控制模块进行融合,不能实现软件定义的数据中心网络的需求,也没有解决VXLAN之间路由的问题。
发明内容
有鉴于此,本发明提供一种能避免组播协议的复杂的通信***及方法。
一种基于软件定义网络的通信***,其用于在虚拟机之间进行报文转发,所述基于软件定义网络的通信***包括一个上报模块及一个控制模块,所述上报模块用于在每个虚拟机加入VXLAN网络时获取并上报虚拟机的IP地址、MAC地址、VNI编号及虚拟机所在VETP的IP地址,所述控制模块用于接收上报的虚拟机的IP地址、MAC地址、VNI编号及虚拟机所在VTEP的IP地址并存储至ARP表,并在一个请求虚拟机发送报文至一个目的虚拟机时根据目的虚拟机的MAC地址及目的虚拟机所在的VTEP的IP地址在所存储的ARP表中进行查找并在查找到时根据所查找的目的虚拟机的MAC地址及目的虚拟机所在VTEP的IP地址发送报文。
一种基于软件定义网络的通信方法,其用于在虚拟机之间进行报文转发,所述基于软件定义网络的通信方法包括以下步骤:
在每个虚拟机加入VXLAN网络时获取并上报虚拟机的IP地址、MAC地址、VNI编号及虚拟机所在VTEP的IP地址;
接收上报的虚拟机的IP地址、MAC地址、VNI编号及虚拟机所在的VTEP的IP地址并存储至ARP表;
在一个请求虚拟机发送报文至一个目的虚拟机时根据目的虚拟机的MAC地址及目的虚拟机所在的VTEP的IP地址在所存储的ARP表中进行查找并在查找到时根据所查找的目的虚拟机的MAC地址及目的虚拟机所在的VTEP的IP地址发送报文。
与现有技术相比,本发明提供的基于软件定义网络的通信***及方法中,采用软件定义网络的方式获取虚拟机的IP地址、MAC地址以及虚拟机所在VTEP的IP地址并上报至控制模块,避免了组播协议的复杂,使不支持组播的节点加入到云网络,同时利用控制模块中的ARP表进行ARP地址解析,避免了ARP洪泛引起的带宽浪费。
附图说明
图1是本发明第一实施方式提供的VXLAN组网示意图。
图2是本发明第一实施方式提供的基于软件定义网络的通信***的模块示意图。
图3是本发明第二实施方式提供的VXLAN组网示意图。
图4是本发明第二实施方式提供的基于软件定义网络的通信***的模块示意图。
图5是图2的基于软件定义网络的通信***的通信方法流程图。
图6是图4的基于软件定义网络的通信***的通信方法流程图。
主要元件符号说明
基于软件定义网络的通信*** 100、200
第一上报模块 110
第一请求模块 120
第二请求模块 140
第一控制模块 160
ARP响应模块 180
第一发送模块 190
第二上报模块 210
配置模块 220
第二控制模块 240
报文发送模块 250
查找模块 260
ARP请求模块 270
第二发送模块 280
如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
请参阅图1及图2,其为本发明第一实施方式提供的一种基于软件定义网络的通信***100,其用于在虚拟机之间进行报文转发,本实施方式中,基于软件定义网络的通信***100在相同虚拟扩展局域网(Virtual eXtensible Local Area Network,VXLAN)的虚拟机之间进行报文转发,也即请求虚拟机VM1与目的虚拟机VM2的VXLAN网络标识符(VXLAN Network Identifier,VNI)相同,如VNI为8001。
所述基于软件定义网络的通信***100包括一个第一上报模块110、一个第一请求模块120、一个第二请求模块140、一个第一控制模块160、一个ARP响应模块180及一个第一发送模块190。
所述第一上报模块110设置在请求虚拟机中用于在每个虚拟机加入VXLAN网络时获取虚拟机的网际协议地址(Internet ProtocolAddress,IP)、介质访问控制地址(Media Access Control,MAC)、VNI编号及虚拟机所在VXLAN隧道终点(VXLAN Tunnel End Point,VTEP)的IP地址并上报至所述第一控制模块160,本实施方式中,请求虚拟机VM1与目的虚拟机VM2加入VNI 8001的VXLAN网络时需上报各自的虚拟机的IP地址、MAC地址、VNI编号及虚拟机所在VETP的IP地址,如VM1上报192.10.10.10、MAC1、8001、10.10.10.10到第一控制模块160,VM2上报192.10.10.11、MAC2、8001、20.20.20.20到第一控制模块160。
所述第一请求模块120设置在请求虚拟机中用于根据发送报文的目的虚拟机MAC地址及目的虚拟机所在VTEP的IP地址发送ARP请求至请求虚拟机所在的VTEP,本实施方式中,请求虚拟机所在的VTEP为VTEP1,目的虚拟机所在VTEP为VTEP2,VM1需发送报文至VM2时,第一请求模块120根据VM2的MAC地址MAC2及VM2所在的VTEP的IP地址20.20.20.20发送ARP请求到VTEP1。
所述第二请求模块140设置在请求虚拟机所在VTEP中用于根据所述ARP请求发送ARP消息至第一控制模块160,本实施方式中,第二请求模块140根据第一请求模块120发送过来的ARP请求发送ARP消息到第一控制模块160。
第一控制模块160包括一个第一接收单元162、一个第一查找单元164及一个第一响应单元166,所述第一接收单元162用于接收第一上报模块110上报的虚拟机的IP地址、MAC地址、VNI编号及虚拟机所在VTEP的IP地址并存储至ARP表,所述第一查找单元164用于根据所发送的ARP消息在第一接收单元162中存储的ARP表中查找目的虚拟机MAC地址及目的虚拟机所在VTEP的IP地址,所述第一响应单元166用于在查找到时根据目的虚拟机的MAC地址及目的虚拟机所在VTEP的IP地址发送ARP响应到VTEP1以记录存储。
本实施方式中,第一查找单元164在第一接收单元162中查找,第一响应单元166在查找到后根据找到的VM2的MAC2及VTEP2的IP地址20.20.20.20发送ARP响应到VTEP1的IP地址10.10.10.10。
所述ARP响应模块180设置在请求虚拟机所在的VTEP中并用于根据ARP响应发送一个代表目的虚拟机的ARP响应消息,也即源地址为目的虚拟机的MAC地址的ARP响应消息至请求虚拟机,本实施方式中,ARP响应模块180发送一个源地址为MAC2的ARP响应到VM1,也即VM1认为ARP响应从VM2发送过来。
所述第一发送模块190用于根据所响应的目的虚拟机的MAC地址及目的虚拟机所在VTEP的IP地址发送报文,本实施方式中,第一发送模块190根据响应的MAC2及VTEP2的IP地址20.20.20.20将报文从VM1发送至VM2。
请参阅图3及图4,其为本发明第二实施方式提供的基于软件定义网络的通信***200,基于软件定义网络的通信***200在不同VXLAN的虚拟机之间进行报文转发,也即请求虚拟机VM3与目的虚拟机VM2的VNI不相同,如VM3的VNI为8001,VM4的VNI为8002。
所述基于软件定义网络的通信***200包括一个第二上报模块210、一个配置模块220、一个第二控制模块240、一个报文发送模块250、一个查找模块260、一个ARP请求模块270及一个第二发送模块280。
所述第二上报模块210设置在请求虚拟机中用于在每个虚拟机加入VXLAN网络时获取虚拟机的IP地址、MAC地址、VNI编号及虚拟机所在VETP的IP地址并上报至所述第二控制模块240,本实施方式中,请求虚拟机所在VETP为VTEP3,目的虚拟机所在VTEP为VTEP4,请求虚拟机VM3加入VNI为8001的VXLAN网络时需上报请求虚拟机的IP地址、MAC地址、VNI编号及VETP3的IP地址,如VM3上报192.10.10.10、MAC3、8001、10.10.10.10到第一控制模块160,目的虚拟机VM4加入VNI为8002的VXLAN网络时需上报目的虚拟机的IP地址、MAC地址、VNI编号及VETP4的IP地址,如VM4上报192.20.20.20、MAC4、8002、20.20.20.20到第二控制模块240。
所述配置模块220用于分别为两个不同的VNI配置两个对应的缺省网关并将所配置的每个缺省网关的对应的子网地址、所对应VNI及缺省网关接口信息上报至第二控制模块240。本实施方式中,配置模块220为VM3所在的VNI 8001配置的子网地址为192.10.10.0,缺省网关为LIF1,配置模块220为VM4所在的VNI 8002配置的子网地址为192.20.20.0,缺省网关为LIF2。
所述控制模块240包括一个第二接收单元242、一个第三接收单元244、一个下发单元246,一个第二查找单元248及一个第二响应单元249。
所述第二接收单元242用于接收第二上报模块210上报的虚拟机的IP地址、MAC地址、VNI编号及虚拟机所在VTEP的IP地址并存储至ARP表,所述第三接收单元244用于接收配置模块220上报的每个缺省网关对应的子网地址、所对应VNI及缺省网关接口信息并存储至路由表,所述下发单元246用于下发路由表至配置的每个缺省网关。本实施方式中,第三接收单元244接收配置模块220为VM3配置的192.10.10.0、VNI 8001、LIF1及配置模块220为VM4配置的192.20.20.0、VNI 8002、LIF2并存储至路由表,也即路由表中包括了所有缺省网关的子网地址、对应的VNI编号及对应缺省网关接口信息。
所述报文发送模块250设置在请求虚拟机中并在请求虚拟机VM3发送报文到VM4时先将报文发送至请求虚拟机所在VTEP对应的缺省网关,查找模块260在请求虚拟机对应的缺省网关的路由表中按照目的子网地址进行查找并在查找到时根据目的子网地址对应的ARP表查找目的虚拟机的MAC地址及目的虚拟机所在VTEP的IP地址,本实施方式中,VM3先将报文发送至子网LIF1,查找模块260在子网LIF1的路由表中查找目的子网地址192.20.20.0,并在查找到时根据192.20.20.0对应的ARP表中查找VM4的MAC4及VTEP4的IP地址20.20.20.20。可以理解的是,查找模块260未查找到VM3对应的路由表时说明目的子网不可达。
若目的虚拟机VM4是在第二控制模块240下发路由表后重新加入到VNI 8002的VXLAN中,此时查找模块260无法在目的子网地址对应的ARP表中找到目的虚拟机的MAC地址及目的虚拟机所在VTEP的IP地址时,所述ARP请求模块270发送ARP请求到第二控制模块240的第二查找单元248,所述第二查找单元248根据ARP请求在第二接收单元242接收并存储的虚拟机的IP地址、MAC地址、VNI编号及虚拟机所在的VTEP的IP地址的ARP表中查找,所述第二响应单元249在查找到时发送ARP响应信息到第二发送模块280。
第二发送模块280用于在查找模块260查找到目的虚拟机的MAC地址及目的虚拟机所在VTEP的IP地址时根据目的虚拟机的MAC地址及目的虚拟机所在VTEP的IP地址发送报文,第二发送模块280还包括一个判断单元282、一个封装单元284、一个解封装单元286及一个发送单元288。
所述判断单元283用于判断第二查找单元248所查找的目的虚拟机所在VTEP的IP地址是否为本地的请求虚拟机所在的VTEP的IP地址,若是,则发送单元288将报文直接发送至本地请求虚拟机,若否,则所述封装单元284将目的虚拟机的MAC地址作为内层目的MAC地址且将目的虚拟机所在的VTEP的IP地址作为外层隧道的目的IP地址封装后发送到传送平面,封装后的数据包在传输平面被发送到目的虚拟机所在的VTEP的IP地址,所述解封装单元286将解封装后通过发送单元288先将数据包发送到目的虚拟机所对应VNI,并将包按照内层目的IP地址发送。
本实施方式中,封装单元284将目的虚拟机VM4的IP地址192.20.20.20作为MAC4的内层目的地址,将VTEP4的IP地址20.20.20.20外层隧道的目的IP地址进行封装,解封装单元286解封装后先将包发送到VNI 8002,然后剥掉外层包头将包安装内层目的IP地址192.20.20.20发送到VM4。
请参阅图5,其为本发明提供的基于软件定义网络的通信***100的通信方法,所述基于软件定义网络的通信方法包括以下步骤:
S110:在每个虚拟机加入VXLAN网络时获取并上报虚拟机的IP地址、MAC地址、VNI编号及虚拟机所在VTEP的IP地址;
S120:接收上报的虚拟机的IP地址、MAC地址、VNI编号及虚拟机所在的VTEP的IP地址并存储至ARP表;
S130:根据报文对应的目的虚拟机MAC地址及目的虚拟机所在VTEP的IP地址发送ARP请求;
S140:发送ARP消息;
S150:在所存储的ARP表中查找并在查找到时根据目的虚拟机的MAC地址及目的虚拟机所在VTEP的IP地址发送ARP响应;
S160:根据ARP响应发送一个源地址为目的虚拟机的MAC地址的ARP响应消息;
S170:请求虚拟机根据所响应的目的虚拟机的MAC地址及目的虚拟机所在VTEP的IP地址发送报文。
在步骤S110中,利用第一上报模块110在每个虚拟机加入VXLAN网络时获取虚拟机的IP地址、MAC地址、VNI编号及虚拟机所在VTEP的IP地址并上报至第一控制模块160的第一接收单元162。
在步骤S120中,利用第一接收单元162接收第一上报模块110上报的虚拟机的IP地址、MAC地址、VNI编号及虚拟机所在VTEP的IP地址并存储至ARP表。
在步骤S130中,在请求虚拟机发送报文到目的虚拟机时请求虚拟机根据利用第一请求模块120根据发送报文的目的虚拟机MAC地址及目的虚拟机所在VTEP的IP地址发送ARP请求至请求虚拟机所在的VTEP。
在步骤S140中,利用第二请求模块140用于根据所述ARP请求发送ARP消息至第一控制模块160的第一查找单元164。
在步骤S150中,利用第一查找单元164根据所发送的ARP消息在第一接收单元162中存储的ARP表中查找目的虚拟机MAC地址及目的虚拟机所在VTEP的IP地址,第一响应单元166在查找到时根据目的虚拟机的MAC地址及目的虚拟机所在VTEP的IP地址发送ARP响应到所述请求虚拟机所在的VTEP以记录存储。
在步骤S160中,利用ARP响应模块180根据ARP响应发送一个源地址为目的虚拟机的MAC地址的ARP响应消息至请求虚拟机。
在步骤S170中,利用第一发送模块190用于根据所响应的目的虚拟机的MAC地址及目的虚拟机所在VTEP的IP地址发送报文。
请参阅图6,其为本发明提供的基于软件定义网络的通信***200的通信方法,所述基于软件定义网络的通信方法包括以下步骤:
S210:在每个虚拟机加入VXLAN网络时获取并上报虚拟机的IP地址、MAC地址、VNI编号及虚拟机所在VTEP的IP地址;
S220:接收上报的虚拟机的IP地址、MAC地址、VNI编号及虚拟机所在的VTEP的IP地址并存储至ARP表;
S230:分别为两个不同的VNI配置两个对应的缺省网关并上报所配置的每个缺省网关的对应的子网地址、所对应VNI及缺省网关接口信息;
S240:接收所上报的每个缺省网关的对应的子网地址、所对应VNI及缺省网关接口信息并存储至路由表;
S250:下发所述路由表至每个缺省网关;
S260:请求虚拟机发送报文时先将报文发送至请求虚拟机所在VTEP对应的缺省网关;
S270:缺省网关在对应路由表中查找报文的目的子网地址并根据目的子网地址对应的ARP表查找目的虚拟机的MAC地址及目的虚拟机所在VTEP的IP地址,若在ARP表中未查找到,则进入步骤S280;若在ARP表中查找到,则进入步骤S290;
S280:发送ARP请求查找,并在查找到后进入步骤S290。
S290:根据目的虚拟机的MAC地址及目的虚拟机所在VTEP的IP地址发送报文。
在步骤S210中,利用第二上报模块210在每个虚拟机加入VXLAN网络时获取虚拟机的IP地址、MAC地址、VNI编号及虚拟机所在VETP的IP地址并上报至所述第二控制模块240的第二接收单元242。
在步骤S220中,利用第二接收单元242接收第二上报模块210上报的虚拟机的IP地址、MAC地址、VNI编号及虚拟机所在VTEP的IP地址并存储至ARP表。
在步骤S230中,利用配置模块220分别为两个不同的VNI配置两个对应的缺省网关并将所配置的每个缺省网关的对应的子网地址、所对应VNI及缺省网关接口信息上报至第二控制模块240的第三接收单元244。
在步骤S240中,利用第三接收单元244接收配置模块220上报的每个缺省网关对应的子网地址、所对应VNI及缺省网关接口信息并存储至路由表。
在步骤S250中,利用下发单元246下发存储的路由表至每个缺省网关,也即路由表中包括了所有缺省网关的子网地址、对应的VNI编号及对应缺省网关接口信息。
在步骤S260中,利用报文发送模块250先将报文从请求虚拟机发送至请求虚拟机所在VTEP对应的缺省网关。
在步骤S270中,利用查找模块260在请求虚拟机对应的缺省网关的路由表中按照目的子网地址进行查找并在查找到时根据目的子网地址对应的ARP表查找目的虚拟机的MAC地址及目的虚拟机所在VTEP的IP地址。
在步骤S280中,利用ARP请求模块270发送ARP请求到第二控制模块240的第二查找单元248,第二查找单元248根据ARP请求在第二接收单元242接收并存储的虚拟机的IP地址、MAC地址、VNI编号及虚拟机所在的VTEP的IP地址的ARP表中查找,所述第二响应单元249在查找到时发送ARP响应信息到第二发送模块280进行报文发送。
在步骤S290中包括以下步骤:
S291:判断所查找的目的虚拟机所在VTEP的IP地址是否为本地的所述请求虚拟机所在的VTEP的IP地址,若是,则进入步骤S292,若否,则进入步骤S293;
S292:将报文发送至所述请求虚拟机;
S293:将所述目的虚拟机的MAC地址作为内层目的MAC地址且将所述目的虚拟机所在的VTEP的IP地址作为外层隧道的目的IP地址封装后发送;
S294:解封装并将报文发送至外层隧道的目的IP地址对应的VNI并按内层MAC地址发送报文。
在步骤S291中,利用判断单元283判断第二查找单元248所查找的目的虚拟机所在VTEP的IP地址是否为本地的请求虚拟机所在的VTEP的IP地址。
在步骤S292中,利用发送单元288将报文直接发送至本地请求虚拟机。
在步骤S293中,利用封装单元284将目的虚拟机的MAC地址作为内层目的MAC地址且将目的虚拟机所在的VTEP的IP地址作为外层隧道的目的IP地址封装后发送。
在步骤S293中,利用解封装单元286将发送过来的数据包解封装后通过发送单元288先将数据包发送到目的虚拟机所对应VNI,并将包按照内层目的IP地址发送。
本发明提供的基于软件定义网络的通信***及方法中,采用软件定义网络的方式通过第一上报模块110及第二上报模块210获取虚拟机的IP地址、MAC地址以及虚拟机所在VTEP的IP地址上报至第一控制模块160及第二控制模块240,避免了组播协议的复杂,使不支持组播的节点加入到云网络中,同时利用第一控制模块160及第二控制模块240中存储的ARP表进行ARP地址解析,避免了ARP洪泛引起的带宽浪费,通信***与第一控制模块160及第二控制模块240很好的进行融合,实现软件定义的数据中心网络的需求,同时采用了基于第一控制模块160及第二控制模块240的分布式路由技术,使得VXLAN之间的三层路由更加高效。
可以理解的是,对于本领域的普通技术人员来说,可以根据本发明的技术构思做出其他各种相应的改变与变形,而所有这些改变与变形都应属于本发明权利要求的保护范围。
Claims (10)
1.一种基于软件定义网络的通信***,其用于在虚拟机之间进行报文转发,所述基于软件定义网络的通信***包括:
一个上报模块,其用于在每个虚拟机加入VXLAN网络时获取并上报虚拟机的IP地址、MAC地址、VNI编号及虚拟机所在VETP的IP地址;
一个控制模块,其用于接收上报的虚拟机的IP地址、MAC地址、VNI编号及虚拟机所在VTEP的IP地址并存储至ARP表,并在一个请求虚拟机发送报文至一个目的虚拟机时根据目的虚拟机的MAC地址及目的虚拟机所在的VTEP的IP地址在所存储的ARP表中进行查找并在查找到时根据所查找的目的虚拟机的MAC地址及目的虚拟机所在VTEP的IP地址发送报文。
2.如权利要求1所述的基于软件定义网络的通信***,其特征在于,在两个相同的VNI之间通信时,所述控制模块包括一个第一接收单元、一个第一查找单元及一个第一响应单元,所述通信***还包括一个第一请求模块、一个第二请求模块、一个ARP响应模块及一个第一发送模块,所述第一请求模块用于根据发送报文对应的目的虚拟机MAC地址及目的虚拟机所在VTEP的IP地址发送ARP请求至所述请求虚拟机所在的VTEP,所述第二请求模块用于根据所述ARP请求发送ARP消息至所述控制模块,所述第一接收单元用于接收所述上报模块上报的虚拟机的IP地址、MAC地址、VNI编号及虚拟机所在VTEP的IP地址并存储至ARP表,所述第一查找单元用于根据所发送的ARP消息在所述第一接收单元中存储的ARP表中查找目的虚拟机MAC地址及目的虚拟机所在VTEP的IP地址,所述第一响应单元用于在查找到时根据所述目的虚拟机的MAC地址及目的虚拟机所在VTEP的IP地址发送ARP响应到所述请求虚拟机所在的VTEP,所述ARP响应模块用于根据ARP响应发送一个源地址为目的虚拟机的MAC地址的ARP响应消息至所述请求虚拟机,所述第一发送模块用于根据所响应的目的虚拟机的MAC地址及目的虚拟机所在VTEP的IP地址发送报文。
3.如权利要求1所述的基于软件定义网络的通信***,其特征在于,在两个不同的VNI之间通信时,所述通信***还包括一个配置模块、一个报文发送模块、一个查找模块及一个第二发送模块,所述控制模块包括一个第二接收单元、一个第三接收单元及一个下发单元,所述配置模块用于分别为两个不同的VNI配置两个对应的缺省网关并将所配置的每个缺省网关的对应的子网地址、所对应VNI及缺省网关接口信息上报至所述控制模块,所述第二接收单元用于接收所述上报模块上报的虚拟机的IP地址、MAC地址、VNI编号及虚拟机所在VTEP的IP地址并存储至ARP表,所述第三接收单元用于接收所述配置模块上报的每个缺省网关的对应的子网地址、所对应VNI及缺省网关接口信息并存储至路由表,所述下发单元用于下发所述路由表至所述每个缺省网关,所述报文发送模块用于在所述请求虚拟机发送报文时将报文发送至所述请求虚拟机所在VTEP对应的缺省网关,所述查找模块用于在缺省网关对应的路由表中查找报文的目的子网地址并根据目的子网地址对应的ARP表查找目的虚拟机的MAC地址及目的虚拟机所在VTEP的IP地址,所述第二发送模块用于在查找到时根据目的虚拟机的MAC地址及目的虚拟机所在VTEP的IP地址发送报文。
4.如权利要求3所述的基于软件定义网络的通信***,其特征在于,所述通信***还包括一个ARP请求模块,所述控制模块还包括一个第二查找单元及一个第二响应单元,所述ARP请求单元在目的子网地址对应的ARP表中未找到目的虚拟机的MAC地址及目的虚拟机所在VTEP的IP地址时发送ARP请求到所述控制模块,所述第二查找单元根据ARP请求在所述第三接收单元接收并存储的虚拟机的IP地址、MAC地址、VNI编号及虚拟机所在的VTEP的IP地址的ARP表中查找,所述第二响应单元在查找到时发送ARP响应信息到所述第二发送模块。
5.如权利要求3所述的基于软件定义网络的通信***,其特征在于,所述第二发送模块还包括一个判断单元、一个封装单元、一个解封装单元及一个发送单元,所述判断单元用于判断所查找的目的虚拟机所在VTEP的IP地址是否为本地的请求虚拟机所在的VTEP的IP地址,若是,则所述发送单元将报文发送至所述请求虚拟机,若否,则所述封装单元将所述目的虚拟机的MAC地址作为内层目的MAC地址且将所述目的虚拟机所在的VTEP的IP地址作为外层隧道的目的IP地址封装后发送,所述解封装单元将所述封装单元发送的地址解封装后通过所述发送单元将报文发送至内层MAC地址。
6.一种基于软件定义网络的通信方法,其用于在虚拟机之间进行报文转发,所述基于软件定义网络的通信方法包括以下步骤:
在每个虚拟机加入VXLAN网络时获取并上报虚拟机的IP地址、MAC地址、VNI编号及虚拟机所在VTEP的IP地址;
接收上报的虚拟机的IP地址、MAC地址、VNI编号及虚拟机所在的VTEP的IP地址并存储至ARP表;
在一个请求虚拟机发送报文至一个目的虚拟机时根据目的虚拟机的MAC地址及目的虚拟机所在的VTEP的IP地址在所存储的ARP表中进行查找并在查找到时根据所查找的目的虚拟机的MAC地址及目的虚拟机所在的VTEP的IP地址发送报文。
7.如权利要求6所述的基于软件定义网络的通信方法,其特征在于,在两个相同的VNI之间通信时,在所述请求虚拟机发送报文至所述目的虚拟机的步骤中包括以下步骤:
发送报文对应的目的虚拟机MAC地址及目的虚拟机所在VTEP的IP地址发送ARP请求;
根据ARP请求发送ARP消息;
在所存储的ARP表中查找并在查找到时根据所述目的虚拟机的MAC地址及目的虚拟机所在VTEP的IP地址发送ARP响应;
根据ARP响应发送一个源地址为目的虚拟机的MAC地址的ARP响应消息;
根据所响应的目的虚拟机的MAC地址及目的虚拟机所在VTEP的IP地址发送报文。
8.如权利要求6所述的基于软件定义网络的通信方法,其特征在于,在两个不同的VNI之间通信时,在所述请求虚拟机发送报文至所述目的虚拟机的步骤中还包括以下步骤:
分别为两个不同的VNI配置两个对应的缺省网关并上报所配置的每个缺省网关的对应的子网地址、所对应VNI及缺省网关接口信息;
接收所上报的每个缺省网关的对应的子网地址、所对应VNI及缺省网关接口信息并存储至路由表;
下发所述路由表至所述每个缺省网关;
发送报文至所述请求虚拟机所在VTEP对应的缺省网关;
缺省网关在路由表中查找报文的目的子网地址并根据目的子网地址对应的ARP表查找目的虚拟机的MAC地址及目的虚拟机所在VTEP的IP地址;
在查找到时根据目的虚拟机的MAC地址及目的虚拟机所在VTEP的IP地址发送报文。
9.如权利要求8所述的基于软件定义网络的通信方法,其特征在于,在根据目的子网地址对应的ARP表查找步骤中包括以下步骤:若在目的子网地址对应的ARP表中未找到目的虚拟机的MAC地址及目的虚拟机所在VTEP的IP地址,则在所上报并存储的虚拟机的IP地址、MAC地址、VNI编号及虚拟机所在的VTEP的IP地址中查找。
10.如权利要求8所述的基于软件定义网络的通信方法,其特征在于,在根据目的虚拟机的MAC地址及目的虚拟机所在VTEP的IP地址发送报文步骤中包括以下步骤:
判断所查找的目的虚拟机所在VTEP的IP地址是否是本地的所述请求虚拟机所在的VTEP的IP地址,若是,则将报文发送至所述请求虚拟机,若否,则将所述目的虚拟机的MAC地址作为内层目的MAC地址且将所述目的虚拟机所在的VTEP的IP地址作为外层隧道的目的IP地址封装成数据包后发送,接收数据包并解封装后将报文发送至外层隧道的目的IP地址对应的VNI并按内层MAC地址发送报文。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510337341.2A CN104935516B (zh) | 2015-06-17 | 2015-06-17 | 基于软件定义网络的通信***及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510337341.2A CN104935516B (zh) | 2015-06-17 | 2015-06-17 | 基于软件定义网络的通信***及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104935516A true CN104935516A (zh) | 2015-09-23 |
CN104935516B CN104935516B (zh) | 2018-05-11 |
Family
ID=54122490
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510337341.2A Active CN104935516B (zh) | 2015-06-17 | 2015-06-17 | 基于软件定义网络的通信***及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104935516B (zh) |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105554182A (zh) * | 2016-01-27 | 2016-05-04 | 联想(北京)有限公司 | 信息处理方法及电子设备 |
CN106209616A (zh) * | 2016-07-06 | 2016-12-07 | 杭州华三通信技术有限公司 | 一种泛洪抑制方法及装置 |
WO2017113231A1 (zh) * | 2015-12-30 | 2017-07-06 | 华为技术有限公司 | 一种报文传输的方法、装置和*** |
CN107147580A (zh) * | 2017-06-23 | 2017-09-08 | 北京佰才邦技术有限公司 | 一种隧道建立的方法及通信*** |
CN107294743A (zh) * | 2016-03-30 | 2017-10-24 | 华为技术有限公司 | 一种网络路径探测方法、控制器及网络设备 |
WO2017197885A1 (zh) * | 2016-05-19 | 2017-11-23 | 华为技术有限公司 | 用于虚拟可扩展局域网的通信方法和装置 |
WO2017206076A1 (zh) * | 2016-05-31 | 2017-12-07 | 华为技术有限公司 | 一种多网关扩容方法及装置 |
CN107786677A (zh) * | 2016-08-24 | 2018-03-09 | 迈普通信技术股份有限公司 | 一种arp表项更新方法及vtep设备 |
CN107800625A (zh) * | 2016-08-30 | 2018-03-13 | 新华三技术有限公司 | 一种报文转发方法及装置 |
CN107846290A (zh) * | 2016-09-18 | 2018-03-27 | 中兴通讯股份有限公司 | 一种拓补关系管理方法和管理设备 |
CN108270878A (zh) * | 2016-12-31 | 2018-07-10 | ***通信集团江西有限公司 | 在vxlan中发送arp报文的方法、vtep设备 |
CN108322393A (zh) * | 2017-01-18 | 2018-07-24 | 阿里巴巴集团控股有限公司 | 路由链路管理方法和***、虚拟路由网关和宿主机网关 |
CN108667735A (zh) * | 2017-03-29 | 2018-10-16 | 中兴通讯股份有限公司 | 一种组播数据的转发方法和装置 |
CN108900414A (zh) * | 2018-06-08 | 2018-11-27 | 新华三技术有限公司 | 转发表生成方法及装置 |
CN109040160A (zh) * | 2017-06-12 | 2018-12-18 | 中兴通讯股份有限公司 | 标识获取方法及装置 |
CN109257265A (zh) * | 2018-08-10 | 2019-01-22 | 锐捷网络股份有限公司 | 一种泛洪抑制方法、vxlan网桥、网关及*** |
CN109842560A (zh) * | 2019-04-17 | 2019-06-04 | 中国联合网络通信集团有限公司 | 一种发送VxLAN报文的方法及装置 |
CN110620715A (zh) * | 2018-06-20 | 2019-12-27 | 中国电信股份有限公司 | 虚拟扩展局域网通信方法、隧道端点和控制器 |
CN107770072B (zh) * | 2016-08-18 | 2021-01-08 | 阿里巴巴集团控股有限公司 | 一种发送和接收报文的方法和设备 |
CN112383645A (zh) * | 2020-11-02 | 2021-02-19 | 中国联合网络通信集团有限公司 | 一种arp代理方法、设备及装置 |
CN112702252A (zh) * | 2019-10-23 | 2021-04-23 | 华为技术有限公司 | 一种报文处理方法、***及相关设备 |
CN113794615A (zh) * | 2021-08-05 | 2021-12-14 | 新华三信息安全技术有限公司 | 一种报文转发方法及设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102857416A (zh) * | 2012-09-18 | 2013-01-02 | 中兴通讯股份有限公司 | 一种实现虚拟网络的方法和虚拟网络 |
CN103503413A (zh) * | 2012-12-28 | 2014-01-08 | 华为技术有限公司 | 传输网络信息的方法及装置 |
CN104320267A (zh) * | 2014-10-29 | 2015-01-28 | 武汉绿色网络信息服务有限责任公司 | 基于SDN框架实现VxLAN的ARP广播抑制***及方法 |
US20150063353A1 (en) * | 2013-09-04 | 2015-03-05 | Cisco Technology, Inc. | Implementation of virtual extensible local area network (vxlan) in top-of-rack switches in a network environment |
-
2015
- 2015-06-17 CN CN201510337341.2A patent/CN104935516B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102857416A (zh) * | 2012-09-18 | 2013-01-02 | 中兴通讯股份有限公司 | 一种实现虚拟网络的方法和虚拟网络 |
CN103503413A (zh) * | 2012-12-28 | 2014-01-08 | 华为技术有限公司 | 传输网络信息的方法及装置 |
US20150063353A1 (en) * | 2013-09-04 | 2015-03-05 | Cisco Technology, Inc. | Implementation of virtual extensible local area network (vxlan) in top-of-rack switches in a network environment |
CN104320267A (zh) * | 2014-10-29 | 2015-01-28 | 武汉绿色网络信息服务有限责任公司 | 基于SDN框架实现VxLAN的ARP广播抑制***及方法 |
Cited By (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108293022A (zh) * | 2015-12-30 | 2018-07-17 | 华为技术有限公司 | 一种报文传输的方法、装置和*** |
WO2017113231A1 (zh) * | 2015-12-30 | 2017-07-06 | 华为技术有限公司 | 一种报文传输的方法、装置和*** |
US10757072B2 (en) | 2015-12-30 | 2020-08-25 | Huawei Technologies Co., Ltd. | Packet transmission method, apparatus, and system |
CN105554182A (zh) * | 2016-01-27 | 2016-05-04 | 联想(北京)有限公司 | 信息处理方法及电子设备 |
CN107294743B (zh) * | 2016-03-30 | 2020-02-14 | 华为技术有限公司 | 一种网络路径探测方法、控制器及网络设备 |
CN107294743A (zh) * | 2016-03-30 | 2017-10-24 | 华为技术有限公司 | 一种网络路径探测方法、控制器及网络设备 |
WO2017197885A1 (zh) * | 2016-05-19 | 2017-11-23 | 华为技术有限公司 | 用于虚拟可扩展局域网的通信方法和装置 |
WO2017206076A1 (zh) * | 2016-05-31 | 2017-12-07 | 华为技术有限公司 | 一种多网关扩容方法及装置 |
CN106209616A (zh) * | 2016-07-06 | 2016-12-07 | 杭州华三通信技术有限公司 | 一种泛洪抑制方法及装置 |
CN106209616B (zh) * | 2016-07-06 | 2020-11-06 | 新华三技术有限公司 | 一种泛洪抑制方法及装置 |
CN107770072B (zh) * | 2016-08-18 | 2021-01-08 | 阿里巴巴集团控股有限公司 | 一种发送和接收报文的方法和设备 |
CN107786677A (zh) * | 2016-08-24 | 2018-03-09 | 迈普通信技术股份有限公司 | 一种arp表项更新方法及vtep设备 |
CN107786677B (zh) * | 2016-08-24 | 2021-06-22 | 迈普通信技术股份有限公司 | 一种arp表项更新方法及vtep设备 |
CN107800625A (zh) * | 2016-08-30 | 2018-03-13 | 新华三技术有限公司 | 一种报文转发方法及装置 |
CN107846290A (zh) * | 2016-09-18 | 2018-03-27 | 中兴通讯股份有限公司 | 一种拓补关系管理方法和管理设备 |
CN108270878A (zh) * | 2016-12-31 | 2018-07-10 | ***通信集团江西有限公司 | 在vxlan中发送arp报文的方法、vtep设备 |
CN108322393A (zh) * | 2017-01-18 | 2018-07-24 | 阿里巴巴集团控股有限公司 | 路由链路管理方法和***、虚拟路由网关和宿主机网关 |
CN108322393B (zh) * | 2017-01-18 | 2021-03-16 | 阿里巴巴集团控股有限公司 | 路由链路管理方法和***、虚拟路由网关和宿主机网关 |
CN108667735A (zh) * | 2017-03-29 | 2018-10-16 | 中兴通讯股份有限公司 | 一种组播数据的转发方法和装置 |
CN108667735B (zh) * | 2017-03-29 | 2021-03-16 | 中兴通讯股份有限公司 | 一种组播数据的转发方法和装置 |
CN109040160A (zh) * | 2017-06-12 | 2018-12-18 | 中兴通讯股份有限公司 | 标识获取方法及装置 |
CN107147580B (zh) * | 2017-06-23 | 2020-09-25 | 北京佰才邦技术有限公司 | 一种隧道建立的方法及通信*** |
CN107147580A (zh) * | 2017-06-23 | 2017-09-08 | 北京佰才邦技术有限公司 | 一种隧道建立的方法及通信*** |
CN108900414A (zh) * | 2018-06-08 | 2018-11-27 | 新华三技术有限公司 | 转发表生成方法及装置 |
CN110620715B (zh) * | 2018-06-20 | 2021-10-22 | 中国电信股份有限公司 | 虚拟扩展局域网通信方法、隧道端点和控制器 |
CN110620715A (zh) * | 2018-06-20 | 2019-12-27 | 中国电信股份有限公司 | 虚拟扩展局域网通信方法、隧道端点和控制器 |
CN109257265A (zh) * | 2018-08-10 | 2019-01-22 | 锐捷网络股份有限公司 | 一种泛洪抑制方法、vxlan网桥、网关及*** |
CN109257265B (zh) * | 2018-08-10 | 2021-04-20 | 锐捷网络股份有限公司 | 一种泛洪抑制方法、vxlan网桥、网关及*** |
CN109842560A (zh) * | 2019-04-17 | 2019-06-04 | 中国联合网络通信集团有限公司 | 一种发送VxLAN报文的方法及装置 |
CN112702252A (zh) * | 2019-10-23 | 2021-04-23 | 华为技术有限公司 | 一种报文处理方法、***及相关设备 |
CN112702252B (zh) * | 2019-10-23 | 2024-02-02 | 华为云计算技术有限公司 | 一种报文处理方法、***及相关设备 |
CN112383645A (zh) * | 2020-11-02 | 2021-02-19 | 中国联合网络通信集团有限公司 | 一种arp代理方法、设备及装置 |
CN113794615A (zh) * | 2021-08-05 | 2021-12-14 | 新华三信息安全技术有限公司 | 一种报文转发方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN104935516B (zh) | 2018-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104935516A (zh) | 基于软件定义网络的通信***及方法 | |
EP2600573B1 (en) | Method for transmitting addresses correspondence relationship in second-layer protocol using link status routing | |
US10050840B2 (en) | Method and system for an internet of things (IOT) device access in a software-defined networking (SDN) system | |
CN104283980B (zh) | 一种地址解析协议代答方法和装置 | |
US9281955B2 (en) | Interoperability of data plane based overlays and control plane based overlays in a network environment | |
US8724583B2 (en) | Neighbor discovery message handling to support roaming of wireless mobile client devices | |
CN103944826B (zh) | Spbm网络中的表项聚合方法及设备 | |
US20170208032A1 (en) | Method and apparatus for forwarding generic routing encapsulation packets at a network address translation gateway | |
US20120287932A1 (en) | Label Switched Routing To Connect Low Power Network Domains | |
CN104871495A (zh) | 用于叠加网络的虚拟叠加网关 | |
CN111541616A (zh) | 一种流量控制方法及装置 | |
CN106209616B (zh) | 一种泛洪抑制方法及装置 | |
WO2020220459A1 (zh) | 基于VXLAN和OpenFlow的虚拟家庭网络共享方法及*** | |
CN113271255A (zh) | 一种网络地址转换回环的方法、装置 | |
CN105227466A (zh) | 通信处理方法和装置 | |
WO2014132958A1 (ja) | 通信システム、制御装置、通信方法およびプログラム | |
di Lallo et al. | How to handle ARP in a software-defined network | |
US20150032898A1 (en) | Method for establishing a virtual community network connection and a system for implementing said method | |
CN104378302B (zh) | 地址对应关系发送方法和路由桥设备 | |
JP2017229027A (ja) | スイッチ装置および中継システム | |
CN110620715B (zh) | 虚拟扩展局域网通信方法、隧道端点和控制器 | |
CN107547691B (zh) | 地址解析协议报文代理方法和装置 | |
CN112995038A (zh) | Profinet协议在工业sdn中的接入方法 | |
CN104468305B (zh) | 实现三层虚拟专用网方法和设备 | |
Menachi et al. | Scalable, hierarchical, Ethernet transport network architecture (HETNA) |
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 | ||
CP01 | Change in the name or title of a patent holder | ||
CP01 | Change in the name or title of a patent holder |
Address after: 430074, No. 88, postal academy road, Hongshan District, Hubei, Wuhan Patentee after: Wuhan post and Telecommunications Science Research Institute Co., Ltd. Address before: 430074, No. 88, postal academy road, Hongshan District, Hubei, Wuhan Patentee before: Wuhan Inst. of Post & Telecom Science |