基于软件定义数据平面可编程语言的虚拟网络构建方法与流程

文档序号:11524032阅读:509来源:国知局
本发明涉及软件定义网络及网络虚拟化领域,尤其涉及基于软件定义数据平面可编程语言的虚拟网络构建方法。
背景技术
::网络虚拟化技术是通过硬件或者软件虚拟化的技术,这些虚拟网之间相互隔离,但共享底层资源,能够实现对物理链路和交换机等软件定义网络基础设备的资源复用,最大化基础网络设备资源利用率,引起了学术界和业界的广泛关注。为用户构建满足业务需求的虚拟网络的关键在于实现用户需求与底层物理网络资源之间的对应映射,对于目前软件定义网络领域而言,如何在数据平面基础网络设备资源上实现用户需求的映射、构建虚拟网络是软件定义网络中网络虚拟化领域的重要问题。技术实现要素:本发明的目的在于克服现有技术的不足,提供基于软件定义数据平面可编程语言的虚拟网络构建方法,能够借助语言带来的可编程性及运行时命令实现虚拟网络的构建。本发明采用的技术方案是:基于软件定义数据平面可编程语言的虚拟网络构建方法,利用编程语言能够定义交换机处理数据报过程的特点,根据关键字及匹配方法来识别不同租户的业务流,同时下发运行时命令从而实现虚拟网络的划分,其包括如下步骤:s1:使用数据平面可编程语言对交换机内部的数据处理模块以及数据处理模块的流表编写定义程序并编译至交换机,使交换机生成流表;s2:租户向服务提供商提交虚拟网络构建请求,服务提供商将租户请求映射至用于构建虚拟网络的运行时命令,通过将运行时命令部署至交换机从而为交换机内部用于构建租户虚拟网络的流表添加表项,使交换机在“数据报匹配流表项-交换机执行动作”这一阶段实现特定功能;s3:服务提供商通过运行时命令行动态读取交换机状态,根据交换机状态判断不同租户的虚拟网络是否构建成功,若交换机状态正常,则说明构建成功,否则失败。进一步地,所述步骤s1中数据处理模块的定义包括解析模块、入口模块和出口模块的定义,数据处理模块的流表包括用于构建租户虚拟网络的流表。进一步地,所述步骤s1中数据处理模块的流表定义包括对用于匹配租户业务流的关键字定义、对描述数据报如何匹配关键字的方法的定义、对使用相关匹配方法与关键字相匹配的数据报所需执行的交换机处理动作的定义。进一步地,所述步骤s1中所述关键字包括源ip地址、目的ip地址、源mac地址、目的mac地址和端口号;匹配关键字的方法包括最长网络前缀匹配、精确匹配和五元组匹配;交换机处理动作包括丢包、修改数据报首部字段值、将数据报转发到对应输出端口、增添数据报首部、移除数据报首部和计数。进一步地,所述步骤s2中虚拟网络构建请求包括交换机数目、链路数目、租户主机数目、租户主机ip地址和租户主机mac地址。进一步地,所述步骤s2中服务提供者将租户请求映射至用于构建虚拟网络的运行时命令具体包括以下步骤:s2-1:收集实际物理网络拓扑的具体信息,s2-2:依据定义程序、交换机处理动作及收集的物理网络拓扑信息逐一确定实际网络拓扑中每台交换机所有需要实现的交换机处理动作,并将该些处理动作组成动作集合,s2-3:确定动作集合中每一个处理动作对应的若干运行时命令,s2-4:通过命令行将运行时命令部署至交换机从而为构建租户虚拟网络的流表添加表项,并由交换机在“数据报匹配流表项-交换机执行动作”这一阶段实现特定功能,直至完成对物理网络的交换机部署,构建形成虚拟网络。进一步地,所述步骤s2-3中运行时命令包括为数据报增添首部、移除数据报首部、创建多播组、创建多播节点、将多播节点加入多播组、设置流表默认动作、向目的流表下发包含关键字和执行动作的流表项、删除特定流表的流表项、读取计数器信息、重置计数器和读取流表信息。进一步地,所述步骤s2-4中“数据报匹配流表项-交换机执行动作”阶段为交换机内部的数据报处理模型中数据报匹配流表项阶段和交换机执行动作阶段的组合。进一步地,所述交换机实现特定功能包括更新计数器、丢包、根据数据处理模块的流表的匹配关键字及匹配方法识别来自不同租户的数据包以及为每一个租户分配一个用于计数处理租户数据报数目的计数器。进一步地,所述步骤s3中用于判断交换机状态正常的依据包括计数器、交换机工作日志,当计数器正常工作、交换机工作日志记录的数据报处理细节无异常来时,判断交换机状态正常。本发明采用以上技术方案,通过编程手段对交换机处理数据报的过程进行灵活定义并下发运行时命令部署基础网络设备,从而实现软件定义网络数据平面虚拟网络的构建和隔离,该方法简单,实现灵活,并具有较强的实用性。附图说明以下结合附图和具体实施方式对本发明做进一步详细说明;图1为本发明基于软件定义数据平面可编程语言的虚拟网络构建方法的虚拟网络构建框架结构示意图;图2为本发明基于软件定义数据平面可编程语言的虚拟网络构建方法的流程图。具体实施方式如图1或2所示,本发明公开基于软件定义数据平面可编程语言的虚拟网络构建方法,利用编程语言能够定义交换机处理数据报过程的特点,根据关键字及匹配方法来识别不同租户的业务流,同时下发运行时命令从而实现虚拟网络的划分,其包括如下步骤:s1:使用数据平面可编程语言对交换机内部的数据处理模块以及数据处理模块的流表编写定义程序并编译至交换机;具体的所述可编程语言为p4语言,并使用p4语言定义程序程序。进一步地,所述步骤s1中数据处理模块的定义包括解析模块、入口模块和出口模块的定义,数据处理模块的流表包括用于构建租户虚拟网络的流表。进一步地,所述步骤s1中数据处理模块的流表定义包括对用于匹配租户业务流的关键字定义、对描述数据报如何匹配关键字的方法的定义、对使用相关匹配方法与关键字相匹配的数据报所需执行的交换机处理动作的定义。例如,使用p4定义构建租户虚拟网络的流表(tagin,tagout)的代码如下:tabletagin{reads{ethernet.dstaddr:exact;ethernet.srcaddr:exact;}actions{add_flag;_nop;}}其中,流表tagin的关键字为源mac地址和目的mac地址,匹配方法为精确匹配。进一步地,所述步骤s1中所述关键字包括源ip地址、目的ip地址、源mac地址、目的mac地址和端口号;匹配关键字的方法包括最长网络前缀匹配、精确匹配和五元组匹配;交换机处理动作包括丢包、修改数据报首部字段值、将数据报转发到对应输出端口、增添数据报首部、移除数据报首部和计数。s2:租户向服务提供商提交虚拟网络构建请求。例如租户提交虚拟网络构建请求g(h,v,e),其中h为租户主机集合,v为边集合,e为点集合。服务提供者收集具体物理网络拓扑信息,信息包含各台交换机端口信息。服务提供商将租户请求映射至用于构建虚拟网络的运行时命令,将运行时命令部署至交换机,由交换机实现特定功能;进一步地,所述步骤s2中虚拟网络构建请求包括交换机数目、链路数目、租户主机数目、租户主机ip地址和租户主机mac地址。进一步地,所述步骤s2中服务提供者将租户请求映射至用于构建虚拟网络的运行时命令具体包括以下步骤:s2-1:收集实际物理网络拓扑的具体信息,s2-2:依据定义程序、交换机处理动作及收集的物理网络拓扑信息逐一确定实际网络拓扑中每台交换机所有需要实现的交换机处理动作,并将该些处理动作组成动作集合,本发明中动作集合tag_action由处理动作计数、移除首部组成:actiontag_action(index){count(tag_counter,index);remove_header(flag);}s2-3:确定动作集合中每一个处理动作对应的若干运行时命令,进一步地,所述步骤s2-3中运行时命令包括为数据报增添首部、移除数据报首部、创建多播组、创建多播节点、将多播节点加入多播组、设置流表默认动作、向目的流表下发包含关键字和执行动作的流表项、删除特定流表的流表项、读取计数器信息、重置计数器和读取流表信息。例如,动作集合tag_action对应的运行时命令包括:向目的流表下发包含关键字和执行动作的流表项、读取计数器信息、重置计数器。s2-4:通过命令行将运行时命令部署至交换机并由交换机实现特定功能,直至完成对物理网络的交换机部署,构建形成虚拟网络。s3:服务提供商通过运行时命令行动态读取交换机状态,根据交换机状态判断不同租户的虚拟网络是否构建成功,若交换机状态正常,则说明构建成功,否则失败。进一步地,所述交换机实现特定功能包括更新计数器、丢包、根据数据处理模块的流表的匹配关键字及匹配方法识别来自不同租户的数据包以及为每一个租户分配一个用于计数处理租户数据报数目的计数器。进一步地,所述步骤s3中用于判断交换机状态正常的依据包括计数器、交换机工作日志,当计数器正常工作、交换机工作日志记录的数据报处理细节无异常来时,判断交换机状态正常。如图1所示,本发明构建了三个虚拟网络,分别为租户a、b、c所使用;当停止为租户a提供服务时,重置用于计数租户a数据报的计数器a,通过运行时命令动态读取用于计数租户b、c数据报的计数器b、c的信息,若随着时间的推移计数器b和计数器c正常计数且计数器a未工作,则说明租户b、c正常工作,虚拟网络构建成功,否则失败。本发明采用以上技术方案,通过编程手段对交换机处理数据报的过程进行灵活定义并下发运行时命令部署基础网络设备,从而实现软件定义网络数据平面虚拟网络的构建和隔离,该方法简单,实现灵活,并具有较强的实用性。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1