一种基于sdn的网络虚拟化方法_2

文档序号:9633733阅读:来源:国知局
些映射数据结构是虚拟网络映射模块的核心数据结构。
[0012]所述流量隔离模块,用来隔离应用层的特定流量,如HTTP、FTP和P2P流量;虚拟网络创建时如果指定了所需隔离的流量,流量隔离模块处理请求,并在路径上所有交换机安装流表,这些流表只匹配特定的包,实现精确匹配。如精确匹配如下字段:入交换机端口、源MAC地址、目的MAC地址、源IP地址、目的IP地址、源运输层端口、目的运输层端口。
[0013]所述带宽虚拟化路由生成模块,用来完成带宽虚拟化路由的生成,带宽虚拟化意即对于虚拟网络的带宽限定和隔离,一般设置虚拟网络所需占用带宽的最小值或最大值,利用MM_ATT算法为流找到路由,在所有虚拟网络主机所连接的边缘交换机出端口设置若干限速队列,实现流的限速和路由的生成。
[0014]所述的MM_ATT算法的形式化描述为:给定一个网络G (V,E),源节点s e V,目的节点d e V,带宽需求b e R。对于V (i,j) e E,链路容量Cij e R,剩余容量Lij e R,要求找到源节点为S,目的节点为d的路径p,使得路径p的可用带宽available多b,available为路径P上所有链路的最小剩余容量,同时要求P的带宽利用率U(p)最小,即U(p)=minU(pi);其中V代表节点集合,E代表链路集合,R代表正实数集,pi e P,P代表所有从s到d的路径集合;
算法步骤:
(1)删除图G中链路不满足带宽要求的链路,得到新图G2 = (V,E2)。
[0015](2)对图G2中的每条链路计算带宽利用率Uij。
[0016](3)搜索所有从源节点s到目的节点d的所有路径P,同时限制跳数不大于max_hop ο
[0017](4)从步骤(3)中找到的路径中找出一条路径带宽利用率最小的路径。
[0018]所述步骤1进一步包括:
控制器周期性地发送LLDP探测数据包来探测SDN网络中交换机的连接状态,维护SDN网络的拓扑关系。
[0019]所述步骤5进一步包括:
添加主机所属的虚拟网络由虚拟网络的ID标识,同时指定主机和交换机连接的端口。所添加的主机地址以标准的地址格式标识;
所述步骤8进一步包括:
查询数据包是否来自于某一个虚拟网络是由数据包的源地址和目的地址所决定的,若这些地址所代表的主机全部在虚拟网络的主机集合中,则该数据包属于该虚拟网络,否则直接丢弃该数据包;
所述步骤9进一步包括:
虚拟网络映射模块首先查询数据包是否属于某一个虚拟网络,进一步查询虚拟网络的参数属性。具体包括:虚拟网络只承载指定的源和目的地址、应用层流量的隔离、带宽需求。其中“虚拟网络只承载指定的源和目的地址”的流量,只需简单的在网络映射模块判断数据包的源和目的地址是否匹配即可。
[0020]所述步骤10进一步包括:
流量隔离模块隔离指定的应用层流量,包括HTTP、FTP、P2P等流量,这些标准应用层流量所使用的传输层端口已经标准化,流量隔离模块通过数据包的源运输层端口和目的运输层端口确定上层的应用层流量,实现流量隔离的目的。
[0021]所述步骤11进一步包括:
带宽虚拟化路由生成模块生成路由并下发流表后需要设置边缘交换机的端口速率,可以在交换机端口配置若干限速队列,队列指定队列id、队列最小发送速率、队列最大发送速率,然后在边缘交换机添加特殊流表项,该流表项指示从某个端口到达的流导向到之前已经配置好的端口特定队列,达到了流量精确限速的目的。
[0022]与现有技术相比,本发明所达到的有益效果如下:
1、将本方法所形成的系统,可作为控制器上的一个应用模块,以一种可插拔的组件形式,实现了灵活的添加和删除,当不需要虚拟网络功能时,在配置文件中删除该项即可。该方法能够灵活创建虚拟网络,完全由用户需求驱动,具有较好的扩展性。同时对于提升网络的吞吐量和避免热点链路的竞争也提出了较好地解决方案。
[0023]2、本技术方案通过划分虚拟网络的方式,灵活地创建虚拟网络并设置虚拟网络参数,多个虚拟网络共存共享网络资源。本方案不仅可以基于MAC地址创建虚拟网络,还可以基于IP地址创建虚拟网络。虚拟网络可以承载特定的应用层能量或者某些来自/到达主机的流量。
[0024]3、本技术方案采用MM_ATT算法,为有带宽需求的虚拟网络选择一条相对空闲的链路,该算法的选路原则是要找到一条路径带宽利用率最小的路径,从而在保证虚拟网络带宽需求的前提下,使得路径剩余带宽最大,从而网络整体的吞吐量得到有效提升。同时找到路由后在所有虚拟网络主机边缘交换机出端口设置限速队列,注入虚拟网络的流量将不可能大于其所要求的带宽需求,从而很好的控制了突发流量。
【附图说明】
[0025]下面将结合说明书附图和【具体实施方式】对本发明作进一步的详细说明,其中:
图1为本发明一种基于SDN的网络虚拟化方法的模块图。
[0026]图2为本发明实施例基于MAC地址的虚拟网络内主机互相通信流程图。
[0027]图3为本发明实施例基于IP地址的虚拟网络内主机互相通信流程图。
[0028]图4为本发明实施例基于MM_ATT算法寻路拓扑示意图。
【具体实施方式】
[0029]实施例1
作为本技术方案的最佳实施方式,参照图1的网络拓扑和图2的处理流程,本实例首先基于MAC地址建立虚拟网络,设置虚拟网络相关参数并添加若干主机,简要描述虚拟网络内主机相互通信过程,具体步骤如下:
步骤1,新建虚拟网络slicel,指定虚拟网络name和id,指定基于MAC地址建立虚拟网络,指定流量隔离参数为http流量,指定虚拟网络的带宽要求为bandwidth ;
步骤2,向虚拟网络slicel添加主机h1、h3、h4,其mac地址分别为macl、mac3、mac40此时虚拟网络slicel内的主机地址集合为{macl,mac3,mac4};
步骤3,主机hi往h4发送http数据包,该数据包首先到达交换机sl,若交换机si没有可以匹配的流表项,该数据包将转发到控制器,由控制器处理。若交换机sl有匹配的流表项,则直接转发该数据包;
步骤4,控制器的消息拦截模块拦截该数据包,交给消息解析模块处理,转步骤5 ;
步骤5,消息解析模块得到该数据包,开始解析该数据包,若由于任何原因导致解析失败,丢弃该数据包,转步骤9。否则交给虚拟网络映射模块,转步骤6 ;
步骤6,虚拟网络映射模块根据已经存储的相关映射数据结构,查找数据包的源mac地址和目的mac地址是否在同一个虚拟网络内,若在一个虚拟网络内,交给流量隔离模块,转步骤7。否则丢弃数据包,转步骤9。这里macl和mac4属于虚拟网络slicel的主机集合,因此将会转步骤7 ;
步骤7,流量隔离模块通过查找虚拟网络的参数确定该流量是否是虚拟网络需要隔离的流量,若不是则交给带宽虚拟化路由生成模块处理,转步骤8。否则模块需要隔离该流量,丢弃数据包,转步骤9。这里流量隔离模块不需要隔离http流量,因此转步骤8处理;
步骤8,带宽虚拟化路由生成模块查找该虚拟网络是否有带宽要求,若没有带宽要求,直接下发流表,转发即可。否则由带宽虚拟化路由生成模块生成路由,在路径上所有交换机安装流表,并在虚拟网络所在主机所连接的边缘交换机出端口设置限速队列。假设生成的路由为:sl-s6_s5_s4,则会在sl的端口 sl_s6和s4的端口 s4_s5设置限速队列,从hi到h4的数据包会导向到端口 sl_s6已经设置好的限速队列,从h4到hi的数据包会导向到端口
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1