基于软件定义网络的通信系统及方法

文档序号:9219704阅读:712来源:国知局
基于软件定义网络的通信系统及方法
【技术领域】
[0001]本发明涉及网络通信技术领域,尤其涉及一种基于软件定义网络的通信系统及方法。
【背景技术】
[0002]目前,虚拟扩展局域网(Virtual extensible Local Area Network, VXLAN)是一种进行大二层虚拟网络扩展的隧道封装技术,这个技术在IETF已经是标准草案,并已经成为业界主流的虚拟网络技术之一,VXLAN定义了一个VXLAN隧道终点(VXLAN Tunnel EndPoint, VTEP)的实体,VTEP将虚拟机产生的数据封装到用户数据包协议(User DatagramProtocol, UDP)包头内再发送出去,虚拟机本身的媒介访问控制(Media Access Control,MAC)地址和VLAN信息在经过封装后已经不作为数据转发的依据。VXLAN为虚拟机的数据包加上了层层包头,这些新的包头只有在数据到达目的地后才会被去掉。中间路径的网络设备只会根据外层包头内的目的地址进行数据转发,对于转发路径上的网络设备来说,一个VXLAN数据包跟一个普通数据包没有区别。由于虚拟机本身的VLAN信息对外已不可见,VXLAN 添加了一个新的标签 VXLAN 网络标识符(VXLAN Network Identifier,VNI),VNI 取代VLAN用来表示不同的VXLAN网段,只有具有相同VNI,处于同一 VXLAN网段内的虚拟机才能互相通信。
[0003]VXLAN在学习地址的时候仍然保存着二层协议的特征,节点之间不会周期性地交换各自掌握的路由表,对于不认识的MAC地址,VXLAN仍然依靠类似广播的行为来获取路径信息。由于VXLAN是一个基于IP传输的协议,VXLAN选择了使用IP组播来承载二层的广播流量。每一个VXLAN节点都会加入一个特定的组播组,这个组播组就好像以太网环境中的广播域。当一个虚拟机发出地址解析协议(Address Resolut1n Protocol,ARP)请求,这个请求通过VXLAN封装后被发送到这个组播组内,只有加入这个组的VTEP才会收到这个ARP请求,继而完成二层的地址学习过程。
[0004]然而,VXLAN这种类似传统二层协议的控制平面存在着以下问题:需要节点支持组播协议,并且必须加入组播组,在大规模部署时显得过于复杂,现在云数据中心的环境中已经趋向于采用在控制模块的层面采用软件定义网络(Software Defined Networking,SDN)的方式来进行网络的控制,SDN网络中由一个SDN控制模块对网络设备如交换机进行集中控制,比较典型的是OpenFlow (开放流网络),而VXLAN这种类似传统二层协议的控制平面无法有效的和现在的控制模块进行融合,不能实现软件定义的数据中心网络的需求,也没有解决VXLAN之间路由的问题。

【发明内容】

[0005]有鉴于此,本发明提供一种能避免组播协议的复杂的通信系统及方法。
[0006]一种基于软件定义网络的通信系统,其用于在虚拟机之间进行报文转发,所述基于软件定义网络的通信系统包括一个上报模块及一个控制模块,所述上报模块用于在每个虚拟机加入VXLAN网络时获取并上报虚拟机的IP地址、MAC地址、VNI编号及虚拟机所在VETP的IP地址,所述控制模块用于接收上报的虚拟机的IP地址、MAC地址、VNI编号及虚拟机所在VTEP的IP地址并存储至ARP表,并在一个请求虚拟机发送报文至一个目的虚拟机时根据目的虚拟机的MAC地址及目的虚拟机所在的VTEP的IP地址在所存储的ARP表中进行查找并在查找到时根据所查找的目的虚拟机的MAC地址及目的虚拟机所在VTEP的IP地址发送报文。
[0007]一种基于软件定义网络的通信方法,其用于在虚拟机之间进行报文转发,所述基于软件定义网络的通信方法包括以下步骤:
[0008]在每个虚拟机加入VXLAN网络时获取并上报虚拟机的IP地址、MAC地址、VNI编号及虚拟机所在VTEP的IP地址;
[0009]接收上报的虚拟机的IP地址、MAC地址、VNI编号及虚拟机所在的VTEP的IP地址并存储至ARP表;
[0010]在一个请求虚拟机发送报文至一个目的虚拟机时根据目的虚拟机的MAC地址及目的虚拟机所在的VTEP的IP地址在所存储的ARP表中进行查找并在查找到时根据所查找的目的虚拟机的MAC地址及目的虚拟机所在的VTEP的IP地址发送报文。
[0011]与现有技术相比,本发明提供的基于软件定义网络的通信系统及方法中,采用软件定义网络的方式获取虚拟机的IP地址、MAC地址以及虚拟机所在VTEP的IP地址并上报至控制模块,避免了组播协议的复杂,使不支持组播的节点加入到云网络,同时利用控制模块中的ARP表进行ARP地址解析,避免了 ARP洪泛引起的带宽浪费。
【附图说明】
[0012]图1是本发明第一实施方式提供的VXLAN组网示意图。
[0013]图2是本发明第一实施方式提供的基于软件定义网络的通信系统的模块示意图。
[0014]图3是本发明第二实施方式提供的VXLAN组网示意图。
[0015]图4是本发明第二实施方式提供的基于软件定义网络的通信系统的模块示意图。
[0016]图5是图2的基于软件定义网络的通信系统的通信方法流程图。
[0017]图6是图4的基于软件定义网络的通信系统的通信方法流程图。
[0018]主要元件符号说明
[0019]基于软件定义网络的通信系统100、200
[0020]第一上报模块110
[0021]第一请求模块120
[0022]第二请求模块140
[0023]第一控制模块160
[0024]ARP响应模块180
[0025]第一发送模块190
[0026]第二上报模块210
[0027]配置模块220
[0028]第二控制模块240
[0029]报文发送模块250
[0030]查找模块260
[0031]ARP请求模块270
[0032]第二发送模块280
[0033]如下【具体实施方式】将结合上述附图进一步说明本发明。
【具体实施方式】
[0034]请参阅图1及图2,其为本发明第一实施方式提供的一种基于软件定义网络的通信系统100,其用于在虚拟机之间进行报文转发,本实施方式中,基于软件定义网络的通信系统 100 在相同虚拟扩展局域网(Virtual extensible Local Area Network, VXLAN)的虚拟机之间进行报文转发,也即请求虚拟机VMl与目的虚拟机VM2的VXLAN网络标识符(VXLAN Network Identifier,VNI)相同,如 VNI 为 8001。
[0035]所述基于软件定义网络的通信系统100包括一个第一上报模块110、一个第一请求模块120、一个第二请求模块140、一个第一控制模块160、一个ARP响应模块180及一个第一发送模块190。
[0036]所述第一上报模块110设置在请求虚拟机中用于在每个虚拟机加入VXLAN网络时获取虚拟机的网际协议地址(Internet Protocol Address,IP)、介质访问控制地址(MediaAccess Control,MAC)、VNI 编号及虚拟机所在 VXLAN 隧道终点(VXLAN Tunnel End Point,VTEP)的IP地址并上报至所述第一控制模块160,本实施方式中,请求虚拟机VMl与目的虚拟机VM2加入VNI 8001的VXLAN网络时需上报各自的虚拟机的IP地址、MAC地址、VNI编号及虚拟机所在VETP的IP地址,如VMl上报192.10.10.10、MAC1、8001、10.10.10.10到第一控制模块 160,VM2 上报 192.10.10.11、MAC2、8001、20.20.20.20 到第一控制模块 160。
[0037]所述第一请求模块120设置在请求虚拟机中用于根据发送报文的目的虚拟机MAC地址及目的虚拟机所在VTEP的IP地址发送ARP请求至请求虚拟机所在的VTEP,本实施方式中,请求虚拟机所在的VTEP为VTEPl,目的虚拟机所在VTEP为VTEP2,VMl需发送报文至
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1