软件定义网络中的流表下发方法、报文转发方法及设备技术

技术编号:12699466 阅读:87 留言:0更新日期:2016-01-13 18:45
本发明专利技术提供了一种软件定义网络中的流表下发方法、报文转发方法及设备。本发明专利技术通过在流表的匹配项和指令项中用“偏移量+长度值”的表示方式,直接指示出数据包中需要进行匹配/操作的字段,使得转发设备不需要关心通信协议的具体内容与格式,大大降低了不同数据通信协议扩展的实现复杂度。并且,本发明专利技术拓展后的OpenFlow协议,具有灵活与可延展的特点,其自由配置的匹配域及基于简单指令集的操作域能够轻易的实现对多种ALG需求的支持,并且转发设备无需理解ALG过程,也不需要具备相关智能,全程仅依据流表行动。

【技术实现步骤摘要】

本专利技术涉及软件定义网络(SDN, Software Defined Network)
,具体涉及 一种软件定义网络中的流表下发方法、报文转发方法及设备
技术介绍
软件定义网络(SDN),是由美国斯坦福大学Clean Slate研究组提出的一种新型 网络架构。其核心思想是将网络设备的控制平面和数据转发平面分离,采用统一的控制器 (Controller)控制网络中数据的转发,从而实现网络流量的灵活控制,并为网络及应用的 开发创新提供平台。 开放流(OpenFlow)作为SDN控制平面和转发平面交互的标准化接口,近年来得 到广泛的关注和认可。OpenFlow将网络中的数据流量定义为"流",并通过控制平面增加、 更新、删除转发平面流表的方式控制网络中数据流的走向。流表由流表项组成。各流表 项(Flow Entry)包含头域(Header,也称作匹配域Match Field)用于与特定流匹配,计数 器(Counter)用于记录相应流的个数和上次到达时间,和操作域(Action,也称作指令集 Instructions)用于表达对相应流所做的操作。支持OpenFlow的网络架构图如图1所示, 很多厂商已开发出了支持OpenFlow协议的路由器。路由器分为控制器和转发设备两部分, 转发设备仅负责转发数据,控制器用于分析数据并下发流表。 目前,OpenFlowl. 3版本已定义了大量流表操作,用于完成各类网络服务。通过增 加新的流表项匹配域和指令,可以定义新的网络服务。然而,目前OpenFlow协议指令存在 一定问题,为了适应不同的数据通信协议,需不断在流表增加匹配域和指令,转发设备如需 识别某种数据通信协议的数据包,则需要理解该协议格式,即转发设备必须知道该数据包 中的各个字段的含义,进而根据该通信协议对数据包进行解析,确定各个字段的值。显然, 这种处理方式严重影响了 OpenFlow协议的扩展性。
技术实现思路
本专利技术实施例要解决的技术问题是提供一种软件定义网络中的流表下发方法、 报文转发方法及设备,能够有效降低OpenFlow中数据通信协议扩展的实现复杂度,实现 OpenFlow的扩展应用。 为解决上述技术问题,本专利技术实施例提供的软件定义网络中的流表下发方法,包 括: 控制器接收转发设备发送的未知数据包,所述未知数据包是未能与转发设备的本 地流表匹配上的数据包; 控制器对所述未知数据包进行协议分析,生成对应于所述未知数据包的流表,所 述流表的头域包括有至少一个匹配项,所述匹配项包括有第一偏移量、第一长度值和第一 匹配值,用于表示所述匹配项匹配的数据包中,以所述第一偏移量为起始位、且长度等于所 述第一长度值的第一字段的值为所述第一匹配值; 控制器将所述流表下发至所述转发设备,以供所述转发设备根据所述流表中的匹 配项中的所述第一偏移量、第一长度值和第一匹配值,对所述未知数据包进行流表匹配,并 根据匹配上的流表执行转发处理。 上述方案中,所述流表的操作域包括有至少一个指令项,所述指令项包括有预设 指令、第二偏移量和第二长度值,用于指示所述转发设备对所述流表匹配的数据包中,以所 述第二偏移量为起始位、且长度等于所述第二长度值的第二字段,执行所述预设指令定义 的操作。 上述方案中,所述指令项还包括有第二匹配值,用于指示所述转发设备根据所述 第二匹配值,对所述第二字段执行所述预设指令定义的操作。 上述方案中,所述对所述未知数据包进行协议分析,生成对应于所述未知数据包 的流表,包括 : 判断所述未知数据包是否需要进行应用层网关ALG变换; 在所述未知数据包需要进行ALG变换时,根据预设的ALG变换信息生成对应于所 述未知数据包的流表。 本专利技术实施例还提供了一种软件定义网络中的报文转发方法,包括: 转发设备接收一数据包; 转发设备根据预设的流表匹配顺序,将所述数据包与本地流表逐条进行匹配,其 中,所述本地流表的头域包括有至少一个匹配项,所述匹配项包括有第一偏移量、第一长度 值和第一匹配值,在所述数据包中的以所述第一偏移量为起始位、且长度等于所述第一长 度值的第一字段的值,等于所述匹配项中的第一匹配值时,判断所述数据包与所述匹配项 相匹配; 在所述数据包与当前本地流表的头域中的所有匹配项均匹配时,根据该当前本地 流表对所述数据包进行转发处理; 在所述数据包与当前本地流表的头域中的所有匹配项部分匹配或均不匹配时,继 续将所述数据包与下一条本地流表进行匹配,直至最后一条本地流表。 上述方案中,在所述数据包与最后一条本地流表的所有匹配项部分匹配或均不匹 配时,将所述数据包发送至控制器; 接收控制器下发的针对所述数据包的流表并保存在本地,以及,根据所述针对所 述数据包的流表,对所述数据包进行转发处理。 上述方案中,所述本地流表的操作域包括有至少一个指令项,所述指令项包括有 预设指令、第二偏移量和第二长度值; 所述转发设备在根据该当前本地流表对所述数据包进行转发处理时,对所述数据 包中以所述第二偏移量为起始位、且长度等于所述第二长度值的第二字段,执行所述预设 指令定义的操作。 上述方案中,所述指令项还包括有第二匹配值; 所述转发设备在根据该当前本地流表对所述数据包进行转发处理时,进一步根据 所述第二匹配值,对所述第二字段执行所述预设指令定义的操作。 本专利技术实施例还提供了一种软件定义网络中的控制器,包括: 报文接收单元,用于接收转发设备发送的未知数据包,所述未知数据包是未能与 转发设备的本地流表匹配上的数据包; 流表生成单元,用于对所述未知数据包进行协议分析,生成对应于所述未知数据 包的流表,所述流表的头域包括有至少一个匹配项,所述匹配项包括有第一偏移量、第一长 度值和第一匹配值,用于表示所述匹配项匹配的数据包中,以所述第一偏移量为起始位、且 长度等于所述第一长度值的第一字段的值为所述第一匹配值; 流表下发单元,用于将所述流表下发至所述转发设备,以供所述转发设备根据所 述流表中的匹配项中的所述第一偏移量、第一长度值和第一匹配值,对所述未知数据包进 行流表匹配,并根据匹配上的流表执行转发处理。 上述方案中,所述流表的操作域包括有至少一个指令项,所述指令项包括有预设 指令、第二偏移量和第二长度值,用于指示所述转发设备对所述流表匹配的数据包中,以所 述第二偏移量为起始位、且长度等于所述第二长度值的第二字段,执行所述预设指令定义 的操作。 上述方案中,所述指令项还包括有第二匹配值,用于指示所述转发设备根据所述 第二匹配值,对所述第二字段执行所述预设指令定义的操作。 上述方案中,所述流表生成单元,进一步用于判断所述未知数据包是否需要进行 应用层网关ALG变换;在所述未知数据包需要进行ALG变换时,根据预设的ALG变换信息生 成对应于所述未知数据包的流表。 本专利技术实施例还提供了一种软件定义网络中的转发设备,包括: 报文接收单元,用于接收一数据包; 流表匹配单元,用于根据预设的流表匹配顺序,将所述数据包与本地流表逐条进 行匹配,并在所述数据包与当前本地流表的头域中的所有匹配项部分匹配或均不匹配时, 继续将所述数据包与下一条本地流表进行匹配,直至最后一条本地流表,其中,所述本地流 表的头域包括有至少一个匹配项,所述匹配项本文档来自技高网
...

【技术保护点】
一种软件定义网络中的流表下发方法,其特征在于,包括:控制器接收转发设备发送的未知数据包,所述未知数据包是未能与转发设备的本地流表匹配上的数据包;控制器对所述未知数据包进行协议分析,生成对应于所述未知数据包的流表,所述流表的头域包括有至少一个匹配项,所述匹配项包括有第一偏移量、第一长度值和第一匹配值,用于表示所述匹配项匹配的数据包中,以所述第一偏移量为起始位、且长度等于所述第一长度值的第一字段的值为所述第一匹配值;控制器将所述流表下发至所述转发设备,以供所述转发设备根据所述流表中的匹配项中的所述第一偏移量、第一长度值和第一匹配值,对所述未知数据包进行流表匹配,并根据匹配上的流表执行转发处理。

【技术特征摘要】

【专利技术属性】
技术研发人员:付乔曹振张铖
申请(专利权)人:中国移动通信集团公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1