Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
TUNNEL TYPE SELECTION METHOD AND APPARATUS
Document Type and Number:
WIPO Patent Application WO/2015/161404
Kind Code:
A1
Abstract:
Embodiments of the present invention relating to the field of information technology provide a tunnel type selection method and an apparatus for reducing the complexity of data packet forwarding. The method comprises the following steps: first, a controller combines the code and the label value corresponding to the tunnel type supported by the next-hop switch, generates an OXM_OF_TUNNEL_ID matching field, and sends to the previous-hop Openflow switch a forwarding strategy carrying said OXM_OF_TUNNEL_ID matching field; the previous-hop Openflow switch then extracts the code and label value corresponding to the tunnel type, and encapsulates a data packet according to the code and label value corresponding to the tunnel type; finally, the previous-hop Openflow switch sends the encapsulated data packet to the next-hop switch. Embodiments of the present invention are applicable to data packet forwarding in a hybrid networking environment of Openflow switches and traditional switches.

Inventors:
WANG JIAO (CN)
Application Number:
PCT/CN2014/075788
Publication Date:
October 29, 2015
Filing Date:
April 21, 2014
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
HUAWEI TECH CO LTD (CN)
International Classes:
H04L45/50; H04L45/02; H04L45/74; H04L47/20
Foreign References:
CN103460666A2013-12-18
CN103107934A2013-05-15
CN103607348A2014-02-26
US20130163427A12013-06-27
Other References:
See also references of EP 3119046A4
Attorney, Agent or Firm:
BEIJING ZBSD PATENT & TRADEMARK AGENT LTD. (CN)
北京中博世达专利商标代理有限公司 (CN)
Download PDF:
Claims:
权 利 要 求 书

1、 一种隧道类型的选择方法, 其特征在于, 包括:

控制器确定下一跳交换机支持的隧道类型;

所述控制器在隧道类型编码映射表中获取所述隧道类型对应的编码, 并生成所述隧道类型对应的标签值;

所述控制器将所述隧道类型对应的编码及所述隧道类型对应的标签值 进行组合, 生成 OXM— OF— TUNNEL— ID匹配域;

所述控制器向上一跳 Openflow交换机发送转发策略, 所述转发策略中 携带有所述 OXM— OF— TUNNEL— ID匹配域, 以使得所述上一跳 Openflow交 换机根据所述隧道类型对应的编码及所述隧道类型对应的标签值, 对数据 包进行封装。

2、 根据权利要求 1所述的隧道类型的选择方法, 其特征在于, 所述控 制器确定下一跳交换机支持的隧道类型的步骤之前, 还包括:

所述控制 器确 定所述上一跳 Openflow交换机是否 为 支持

OXM— OF— TUNNEL— ID匹配域的 Openflow交换机;

所述控制器确定下一跳交换机支持的隧道类型的步骤包括:

若所述上一跳 Openflow交换机为支持 OXM— OF— TUNNEL— ID匹配域的

Openflow交换机, 则所述控制器确定所述下一跳交换机支持的隧道类型。

3、 根据权利要求 1或 2所述的隧道类型的选择方法, 其特征在于, 所述 控制器确定交换机支持的隧道类型的步骤之前, 还包括:

所述控制器生成各个隧道类型分别对应的编码;

所述控制器建立所述隧道类型编码映射表, 所述隧道类型编码映射表 中包括所述各个隧道类型及所述各个隧道类型分别对应的编码。

4、 根据权利要求 3所述的隧道类型的选择方法, 其特征在于, 所述控 制器建立所述隧道类型编码映射表的步骤之后, 还包括:

当存在新入网的交换机时, 所述控制器确定所述新入网的交换机支持 的隧道类型; 所述控制器生成所述新入网的交换机支持的隧道类型对应的编码; 所述控制器按照所述新入网的交换机支持的隧道类型对应的编码, 对 所述隧道类型编码映射表进行更新。

5、 根据权利要求 1至 4任一所述的隧道类型的选择方法, 其特征在于, 所述隧道类型编码映射表中包括自定义隧道类型及所述自定义隧道类型对 应的编码。

6、 一种隧道类型的选择方法, 其特征在于, 包括:

Openflow交换机接收控制器发送的转发策略, 所述转发策略中携带有 OXM— OF— TUNNEL— ID匹配域;

所述 Openflow交换机从所述 OXM— OF— TUNNEL— ID匹配域中, 提取下 一跳交换机支持的隧道类型对应的编码及所述隧道类型对应的标签值; 所述 Openflow交换机按照所述隧道类型对应的编码及所述隧道类型对 应的标签值, 对数据包进行封装;

所述 Openflow交换机向所述下一跳交换机发送封装后的数据包。

7、 一种隧道类型的选择装置, 其特征在于, 包括:

确定单元, 用于确定下一跳交换机支持的隧道类型;

获取单元, 用于在隧道类型编码映射表中获取所述确定单元确定的所 述隧道类型对应的编码;

生成单元, 用于生成所述隧道类型对应的标签值, 并将所述获取单元 获取的所述隧道类型对应的编码及所述隧道类型对应的标签值进行组合, 生成 OXM— OF— TUNNEL— ID匹配域;

发送单元, 用于向上一跳 Openflow交换机发送转发策略, 所述转发策 略中携带有所述生成单元生成的所述 OXM— OF— TUNNEL— ID匹配域。

8、 根据权利要求 7所述的隧道类型的选择装置, 其特征在于, 所述确定单元, 还用于确定所述上一跳 Openflow交换机是否为支持 OXM— OF— TUNNEL— ID匹配域的 Openflow交换机;

所述确定单元, 具体用于当所述上一跳 Openflow交换机为支持 OXM— OF— TUNNEL— ID匹配域的 Openflow交换机时, 确定所述下一跳交换 机支持的隧道类型。

9、 根据权利要求 7至 8任一所述的隧道类型的选择装置, 其特征在于, 所述生成单元, 还用于生成各个隧道类型分别对应的编码;

所述装置还包括: 建立单元;

所述建立单元, 还用于建立所述隧道类型编码映射表, 所述隧道类型 编码映射表中包括所述各个隧道类型及所述生成单元生成的所述各个隧道 类型分别对应的编码。

10、 根据权利要求 9所述的隧道类型的选择装置, 其特征在于, 所述确定单元, 还用于当存在新入网的交换机时, 确定所述交换机支 持的隧道类型;

所述生成单元, 还用于生成所述确定单元确定的所述新入网的交换机 支持的隧道类型对应的编码;

所述装置还包括: 更新单元;

所述更新单元, 用于按照所述生成单元生成的所述新入网的交换机支 持的隧道类型对应的编码, 对所述隧道类型编码映射表进行更新。

11、根据权利要求 6至 10任一所述的隧道类型的选择装置,其特征在于, 所述建立单元建立的所述隧道类型编码映射表中包括自定义隧道类型 及所述自定义隧道类型对应的编码。

12、 一种隧道类型的选择装置, 其特征在于, 包括:

接收单元, 用于接收控制器发送的转发策略, 所述转发策略中携带有

OXM— OF— TUNNEL— ID匹配域;

提取单元, 用于从所述接收单元接收的所述 OXM— OF— TUNNEL— ID匹 配域中, 提取下一跳交换机支持的隧道类型对应的编码及所述隧道类型对 应的标签值;

封装单元, 用于按照所述提取单元提取的所述隧道类型对应的编码及 所述隧道类型对应的标签值, 对数据包进行封装; 发送单元, 用于向所述下一跳交换机发送所述封装单元封装后的数据 包。

13、 一种控制器, 其特征在于, 包括:

处理器, 用于首先确定下一跳交换机支持的隧道类型, 然后在隧道类 型编码映射表中获取所述隧道类型对应的编码, 并生成所述隧道类型对应 的标签值, 最后将所述隧道类型对应的编码及所述隧道类型对应的标签值 进行组合, 生成 OXM— OF— TUNNEL— ID匹配域;

发送器, 用于向上一跳 Openflow交换机发送转发策略, 所述转发策略 中携带有所述处理器生成的所述 OXM— OF— TUNNEL— ID匹配域。

14、 根据权利要求 13所述的控制器, 其特征在于,

所述处理器, 还用于确定所述上一跳 Openflow交换机是否为支持 OXM— OF— TUNNEL— ID匹配域的 Openflow交换机;

所述处理器, 具体用于当所述上一跳 Openflow交换机为支持 OXM— OF— TUNNEL— ID匹配域的 Openflow交换机时, 确定所述下一跳交换 机支持的隧道类型。

15、 根据权利要求 13至 14任一所述的控制器, 其特征在于,

所述处理器, 还用于生成各个隧道类型分别对应的编码;

所述处理器, 还用于建立所述隧道类型编码映射表, 所述隧道类型编 码映射表中包括所述各个隧道类型及所述各个隧道类型分别对应的编码。

16、 根据权利要求 15所述的控制器, 其特征在于,

所述处理器, 还用于当存在新入网的交换机时, 确定所述交换机支持 的隧道类型;

所述处理器, 还用于生成所述新入网的交换机支持的隧道类型对应的 编码;

所述处理器, 还用于按照所述新入网的交换机支持的隧道类型对应的 编码, 对所述隧道类型编码映射表进行更新。

17、 根据权利要求 13至 16任一所述的控制器, 其特征在于, 所述处理器建立的所述隧道类型编码映射表中包括自定义隧道类型及 所述自定义隧道类型对应的编码。

18、 一种 Openflow交换机, 其特征在于, 包括:

接收器, 用于接收控制器发送的转发策略, 所述转发策略中携带有 OXM— OF— TUNNEL— ID匹配域;

处理器, 用于从所述接收器接收的所述 OXM— OF— TUNNEL— ID匹配域 中, 提取下一跳交换机支持的隧道类型对应的编码及所述隧道类型对应的 标签值, 并按照所述隧道类型对应的编码及所述隧道类型对应的标签值, 对数据包进行封装;

发送器, 用于向所述下一跳交换机发送所述处理器封装后的数据包。

Description:
隧道类型的选择方法及装置

技术领域

本发明涉及信息技术领域, 特别涉及一种隧道类型的选择方法及装 置。

背景技术

在 SDN ( Software Defined Network, 软件定义的网络)环境下, 其接 口协议 Openflow规范定义了一种将控制平面从转发平面 剥离的技术,在 这种模式下, Openflow交换机需要支持各种隧道类型。 其中, 隧道类型包 括: VLAN ( Virtual Local Area Network, 虚拟局域网)、 VxLAN ( Virtual extensible Local Area Network, 虚拟扩展局域网 )、 GRE ( Generic Routing Encapsulation, 通用路由封装) 等。

目前, 在 Openflow交换机和传统交换机混合组网的环境下 当第一跳 交换机支持的隧道类型与下一跳交换机支持的 隧道类型不同时,需要通过 隧道切换及映射机制,从而实现数据包从第一 跳交换机转发至下一跳交换 机。

然而, 通过 Openflow交换机及传统交换机对数据包进行转发 , 由于 当相邻交换机之间支持的隧道类型不同时, 需要引入隧道切换及映射机 制, 同时需要在网络中引入网关或者网桥, 从而导致数据包的转发复杂度 较高。

发明内容

本发明实施例提供一种隧道类型的选择方法及 装置,可以降低数据包 的转发复杂度。

本发明实施例采用的技术方案为:

第一方面, 本发明实施例提供一种隧道类型的选择方法, 包括: 控制器确定下一跳交换机支持的隧道类型;

所述控制器在隧道类型编码映射表中获取所述 隧道类型对应的编码, 并生成所述隧道类型对应的标签值;

所述控制器将所述隧道类型对应的编码及所述 隧道类型对应的标签 值进行组合, 生成 OXM— OF— TUNNEL— ID匹配域;

所述控制器向上一跳 Openflow交换机发送转发策略,所述转发策略中 携带有所述 OXM— OF— TUNNEL— ID匹配域, 以使得所述上一跳 Openflow 交换机根据所述隧道类型对应的编码及所述隧 道类型对应的标签值,对数 据包进行封装。

结合第一方面, 在第一方面的第一种可能的实现方式中, 所述控制器 确定下一跳交换机支持的隧道类型的步骤之前 , 还包括:

所述控制 器确 定所述上一跳 Openflow交换机是否 为 支持 OXM— OF— TUNNEL— ID匹配域的 Openflow交换机;

所述控制器确定下一跳交换机支持的隧道类型 的步骤包括:

若所述上一跳 Openflow交换机为支持 OXM— OF— TUNNEL— ID匹配域 的 Op enflo w交换机, 则所述控制器确定所述下一跳交换机支持的隧 道类 型。

结合第一方面或者第一方面的第一种可能的实 现方式,在第一方面的 第二种可能的实现方式中,所述控制器确定交 换机支持的隧道类型的步骤 之前, 还包括:

所述控制器生成各个隧道类型分别对应的编码 ;

所述控制器建立所述隧道类型编码映射表,所 述隧道类型编码映射表 中包括所述各个隧道类型及所述各个隧道类型 分别对应的编码。

结合第一方面的第二种可能的实现方式,在第 一方面的第三种可能的 实现方式中, 所述控制器建立所述隧道类型编码映射表的步 骤之后, 还包 括:

当存在新入网的交换机时,所述控制器确定所 述新入网的交换机支持 的隧道类型;

所述控制器生成所述新入网的交换机支持的隧 道类型对应的编码; 所述控制器按照所述新入网的交换机支持的隧 道类型对应的编码,对 所述隧道类型编码映射表进行更新。

结合第一方面或者第一方面的第一种可能的实 现方式,或者第一方面 的第二种可能的实现方式, 或者第一方面的第三种可能的实现方式, 在第 一方面的第四种可能的实现方式中,所述隧道 类型编码映射表中包括自定 义隧道类型及所述自定义隧道类型对应的编码 。 第二方面, 本发明实施例提供一种隧道类型的选择装置, 包括: 确定单元, 用于确定下一跳交换机支持的隧道类型;

获取单元,用于在隧道类型编码映射表中获取 所述确定单元确定的所 述隧道类型对应的编码;

生成单元, 用于生成所述隧道类型对应的标签值, 并将所述获取单元 获取的所述隧道类型对应的编码及所述隧道类 型对应的标签值进行组合, 生成 OXM— OF— TUNNEL— ID匹配域;

发送单元, 用于向上一跳 Openflow交换机发送转发策略, 所述转发策 略中携带有所述生成单元生成的所述 OXM— OF— TUNNEL— ID匹配域。

结合第二方面, 在第二方面的第一种可能的实现方式中,

所述确定单元, 还用于确定所述上一跳 Openflow交换机是否为支持 OXM— OF— TUNNEL— ID匹配域的 Openflow交换机;

所述确定单元, 具体用于当所述上一跳 Openflow交换机为支持 OXM— OF— TUNNEL— ID匹配域的 Openflow交换机时,确定所述下一跳交换 机支持的隧道类型。

结合第二方面或者第二方面的第一种可能的实 现方式,在第二方面的 第二种可能的实现方式中,

所述生成单元, 还用于生成各个隧道类型分别对应的编码;

所述装置还包括: 建立单元;

所述建立单元, 还用于建立所述隧道类型编码映射表, 所述隧道类型 编码映射表中包括所述各个隧道类型及所述生 成单元生成的所述各个隧 道类型分别对应的编码。

结合第二方面的第二种可能的实现方式,在第 二方面的第三种可能的 实现方式中,

所述确定单元, 还用于当存在新入网的交换机时, 确定所述交换机支 持的隧道类型;

所述生成单元,还用于生成所述确定单元确定 的所述新入网的交换机 支持的隧道类型对应的编码;

所述装置还包括: 更新单元;

所述更新单元,用于按照所述生成单元生成的 所述新入网的交换机支 持的隧道类型对应的编码, 对所述隧道类型编码映射表进行更新。

结合第二方面或者第二方面的第一种可能的实 现方式,或者第二方面 的第二种可能的实现方式, 或者第二方面的第三种可能的实现方式, 在第 二方面的第四种可能的实现方式中,

所述建立单元建立的所述隧道类型编码映射表 中包括自定义隧道类 型及所述自定义隧道类型对应的编码。 第三方面, 本发明实施例提供一种控制器, 包括:

处理器, 用于首先确定下一跳交换机支持的隧道类型, 然后在隧道类 型编码映射表中获取所述隧道类型对应的编码 ,并生成所述隧道类型对应 的标签值,最后将所述隧道类型对应的编码及 所述隧道类型对应的标签值 进行组合, 生成 OXM— OF— TUNNEL— ID匹配域;

发送器, 用于向上一跳 Openflow交换机发送转发策略, 所述转发策略 中携带有所述处理器生成的所述 OXM— OF— TUNNEL— ID匹配域。

结合第三方面, 在第三方面的第一种可能的实现方式中,

所述处理器, 还用于确定所述上一跳 Openflow交换机是否为支持

OXM— OF— TUNNEL— ID匹配域的 Openflow交换机; 所述处理器, 具体用于当所述上一跳 Openflow交换机为支持 OXM— OF— TUNNEL— ID匹配域的 Openflow交换机时,确定所述下一跳交换 机支持的隧道类型。

结合第三方面或者第三方面的第一种可能的实 现方式,在第三方面的 第二种可能的实现方式中,

所述处理器, 还用于生成各个隧道类型分别对应的编码;

所述处理器, 还用于建立所述隧道类型编码映射表, 所述隧道类型编 码映射表中包括所述各个隧道类型及所述各个 隧道类型分别对应的编码。

结合第三方面的第二种可能的实现方式,在第 三方面的第三种可能的 实现方式中,

所述处理器, 还用于当存在新入网的交换机时, 确定所述交换机支持 的隧道类型;

所述处理器,还用于生成所述新入网的交换机 支持的隧道类型对应的 编码;

所述处理器,还用于按照所述新入网的交换机 支持的隧道类型对应的 编码, 对所述隧道类型编码映射表进行更新。

结合第三方面或者第三方面的第一种可能的实 现方式,或者第三方面 的第二种可能的实现方式, 或者第三方面的第三种可能的实现方式, 在第 三方面的第四种可能的实现方式中,

所述处理器建立的所述隧道类型编码映射表中 包括自定义隧道类型 及所述自定义隧道类型对应的编码。 第四方面, 本发明实施例提供一种隧道类型的选择方法, 包括:

Openflow交换机接收控制器发送的转发策略,所 转发策略中携带有

OXM— OF— TUNNEL— ID匹配域;

所述 Openflow交换机从所述 OXM— OF— TUNNEL— ID匹配域中,提取下 一跳交换机支持的隧道类型对应的编码及所述 隧道类型对应的标签值; 所述 Openflow交换机按照所述隧道类型对应的编码及 述隧道类型 对应的标签值, 对数据包进行封装;

所述 Openflow交换机向所述下一跳交换机发送封装后 数据包。 第五方面, 本发明实施例提供一种隧道类型的选择装置, 包括: 接收单元, 用于接收控制器发送的转发策略, 所述转发策略中携带有

OXM— OF— TUNNEL— ID匹配域;

提取单元, 用于从所述接收单元接收的所述 OXM— OF— TUNNEL— ID 匹配域中,提取下一跳交换机支持的隧道类型 对应的编码及所述隧道类型 对应的标签值;

封装单元,用于按照所述提取单元提取的所述 隧道类型对应的编码及 所述隧道类型对应的标签值, 对数据包进行封装;

发送单元,用于向所述下一跳交换机发送所述 封装单元封装后的数据 包。 第六方面, 本发明实施例提供一种 Openflow交换机, 包括:

接收器, 用于接收控制器发送的转发策略, 所述转发策略中携带有 OXM— OF— TUNNEL— ID匹配域;

处理器,用于从所述接收器接收的所述 OXM— OF— TUNNEL— ID匹配域 中,提取下一跳交换机支持的隧道类型对应的 编码及所述隧道类型对应的 标签值, 并按照所述隧道类型对应的编码及所述隧道类 型对应的标签值, 对数据包进行封装;

发送器, 用于向所述下一跳交换机发送所述处理器封装 后的数据包。 本发明实施例提供的隧道类型的选择方法及装 置,首先控制器将下一 跳交换机支持的隧道类型对应的编码及标签值 进行组合, 生成 OXM— OF— TUNNEL— ID匹配域,并向上一跳 Openflow交换机发送携带有该 OXM— OF— TUNNEL— ID匹配域的转发策略;然后上一跳 Openflow交换机从 接收到的 OXM— OF— TUNNEL— ID匹配域中,提取隧道类型对应的编码及标 签值, 并按照该隧道类型对应的编码及标签值, 对数据包进行封装; 最后 上一跳 Openflow交换机向下一跳交换机发送封装后的数 包。与目前通过 引入网关或者网桥对数据包进行转发相比,本 发明实施例通过控制器按照 下一跳交换机支持的隧道类型生成 OXM— OF— TUNNEL— ID匹配域,并向上 一跳 Openflow交换机发送携带有该 OXM— OF— TUNNEL— ID匹配域的转发 策略,能够使得上一跳 Openflow交换机按照交换机支持的隧道类型对数 包进行封装, 从而可以避免在数据包的转发过程中引入隧道 切换、 映射机 制、 网关或者网桥, 进而可以降低数据包的转发复杂度。

附图说明

为了更清楚地说明本发明实施例中的技术方案 ,下面将对实施例或现 有技术描述中所需要使用的附图作简单地介绍 , 显而易见地, 下面描述中 的附图仅仅是本发明的一些实施例, 对于本领域普通技术人员来讲, 在不 付出创造性劳动的前提下, 还可以根据这些附图获得其它的附图。

图 1为本发明实施例提供的系统架构示意图;

图 2为本发明实施例提供的一种隧道类型的选择 法流程图; 图 3为本发明实施例提供的又一种隧道类型的选 方法流程图; 图 4为本发明实施例提供的又一种隧道类型的选 方法流程图; 图 5为本发明实施例提供的又一种隧道类型的选 方法流程图; 图 6为本发明实施例提供的一种隧道类型的选择 置的结构示意图; 图 7为本发明实施例提供的又一种隧道类型的选 装置的结构示意 图;

图 8为本发明实施例提供的一种控制器的结构示 图;

图 9为本发明实施例提供的又一种隧道类型的选 装置的结构示意 图;

图 10为本发明实施例提供的一种 Openflow交换机的结构示意图。 具体实施方式

下面将结合本发明实施例中的附图,对本发明 实施例中的技术方案进 行清楚、完整地描述,显然,所描述的实施例 仅仅是本发明一部分实施例, 而不是全部的实施例。 基于本发明中的实施例, 本领域普通技术人员在没 有做出创造性劳动前提下所获得的所有其它实 施例,都属于本发明保护的 范围。

为使本发明技术方案的优点更加清楚,下面结 合附图和实施例对本发 明作详细说明。 本发明实施例提供的技术方案可以用于 Openflow交换机和传统交换 机混合组网的系统架构, 如图 1所示。 SDN ( Software Defined Network, 软件定义网络) 中的控制器集群 (Controller Cluster ) 为本发明实施例中 的控制器; Openflow switch 1及 Openflow switch 2为本发明实施例中的 Openflow交换机, 可以支持 OXM— OF— TUNNEL— ID匹配域, 同时允许支持 自定义隧道类型, Openflow switch 1为本发明实施例中的上一跳 Openflow 交换机; switch为本发明实施例中的下一跳交换机, 可以支持隧道类型 VLAN、 VxLAN及 GRE等; 本发明实施例中的交换机可以为传统交换机, 也可以为 Openflow交换机。在 Openflow交换机和传统交换机混合组网的网 络系统中, 数据包按照图中实线并带有箭头的路径进行转 发, 具体地, 数 据包首先由源端 Op enflow交换机转发至传统交换机,然后由该传统 交换机 转发至目的端 Openflow交换机。 本发明实施例提供一种隧道类型的选择方法, 如图 2所示, 所述方法 包括:

201、 控制器确定下一跳交换机支持的隧道类型。

其中, 下一跳交换机支持的隧道类型包括 VLAN、 VxLAN及 GRE等。 在本发明实施例中, 不同的交换机可以支持不同的隧道类型。 202、 控制器在隧道类型编码映射表中获取隧道类型 对应的编码, 并 生成隧道类型对应的标签值。

对 于 本 发 明 实 施 例 , Openflow 交 换 机 均 为 可 以 支 持 OXM— OF— TUNNEL— ID匹配域的交换机。

其中 , OXM— OF— TUNNEL— ID匹配域可以适用多种不同的隧道类型。 例如, OXM— OF— TUNNEL— ID匹配 i或可以支持: VLAN隧道类型模式、 VxLAN隧道类型模式、 GRE隧道类型模式、 VLAN隧道类型与 VxLAN隧 道类型的混合模式、 VLAN隧道类型与 GRE隧道类型混合模式、 VxLANPi 道类型 与 GRE隧道类型 混合模式等 。 在本发明 实施例 中 , OXM— OF— TUNNEL— ID匹配域还可以适用自定义隧道类型。

对于本发明实施例, 控制器可以在隧道类型编码映射表中, 获取隧道 类型对应的编码。 其中, 隧道类型对应的编码可以通过 8bits (比特)进行 表示, 也可以通过 16bits进行表示, 本发明实施例不做限定。 在本发明实 施例中, 若隧道类型对应的编码通过 8bits进行表示, 此时, 隧道类型编码 映射表可以如下表所示:

其中, 按照该隧道类型编码映射表, 00000000代表自定义隧道类型; 00000001代表 VLAN隧道类型; 00000010代表 VxLAN隧道类型; 00000011 代表 GRE隧道类型; 00000100代表 VLAN隧道类型与 VxLAN隧道类型的混 合模式; 00000101代表 VLAN隧道类型与 GRE隧道类型混合模式; 00000110代表 VxLAN隧道类型与 GRE隧道类型混合模式。

例如步骤 202可以为, 控制器在隧道类型编码映射表中获取的隧道类 型 VLAN对应的编码可以为 00000001 , 生成的隧道类型对应的标签值为 00000000000000000000000000000000000000001111111110001000。

203、 控制器将隧道类型对应的编码及隧道类型对应 的标签值进行组 合, 生成 OXM— OF— TUNNEL— ID匹配域。

例如步骤 203可以为, 控制器可以将隧道类型对应的编码 00000001及

1111111110001000进行组合, 生成的 OXM— OF— TUNNEL— ID匹配域可以为 0。

204、 控制器向上一跳 Openflow交换机发送转发策略。

进一步地, 通过控制器向上一跳 Openflow交换机发送转发策略, 以使 得上一跳 Openflow交换机根据隧道类型对应的编码及隧道 型对应的标 签值, 对数据包进行封装。

其中, 转发策略中携带有 OXM— OF— TUNNEL— ID匹配域。 在本发明实 施例中, 通过控制器向上一跳 Openflow交换机发送转发策略, 以使得该上 一跳 Openflow交换机按照转发策略,对数据包按照下 跳传统交换机支持 的隧道类型进行封装。

对于本发明实施例, 下一跳交换机可以为传统交换机, 也可以为 Op enflow交换机。其中,传统交换机支持的隧道类 型可以为 VLAN、 VxLAN 或者 GRE等, Openflow交换机可以支持 OXM— OF— TUNNEL— ID匹配域。 在 本发明实施例中, 下一跳交换机为上一跳 Openflow交换机的下一跳交换 机; 上一跳 Op enflo w交换机为下一跳交换机的上一跳交换机。

一方面, 当上一跳 Op enflo w交换机的下一跳交换机为传统交换机时, 与目前通过引入网关或者网桥对数据包进行转 发相比,通过本发明实施例 提供的方法,可以按照该下一跳传统交换机支 持的隧道类型的编码及标签 值, 将数据包进行封装, 从而可以实现该数据包直接在上一跳 Openflow 交换机及该下一跳传统交换机之间进行交换, 进而可以避免网关或者网桥 的引入, 可以降低数据包的转发复杂度。

另一方面,当上一跳 Openflow交换机的下一跳交换机为 Openflow交换 机时, 也可以通过本发明实施例提供的方法, 按照下一跳 Openflow交换机 支持的隧道类型, 对来自上一跳 Openflow交换机的数据包进行封装, 从而 可以实现该数据包直接在上一跳 Openflow交换机及下一跳 Openflow交换 机之间进行交换。 在本发明实施例中, Openflow交换机可以支持的隧道类 型可以为任意隧道类型, 即可以同时支持 VLAN、 VxLAN或者 GRE等隧道 类型。

对于本发明实施例, 如图 1所示, 当控制器向 Openflow switch 1发送转 发策略之后, Openflow switchl可以将封装之后的数据包转发给 switch, switch可以根据自身匹配的隧道类型, 将该数据包进一步转发给 Openflow switch2。 在本发明实施例中, Openflow switch2解析接收到的数据包的分 装格式, 从中提取隧道类型的标签值, 并根据该隧道类型的标签值及控制 器预先设定的该隧道类型 的编码, 组合生成该数据包对应的 OXM— OF— TUNNEL— ID匹配域, 同时在其流表中匹配对应的流表项。

本发明实施例提供的隧道类型的选择方法,首 先控制器将下一跳交换 机支持 的 隧道类 型 对应 的 编码及标签值进行组合 , 生 成 OXM— OF— TUNNEL— ID匹配域,并向上一跳 Openflow交换机发送携带有该 OXM— OF— TUNNEL— ID匹配域的转发策略;然后上一跳 Openflow交换机从 接收到的 OXM— OF— TUNNEL— ID匹配域中,提取隧道类型对应的编码及标 签值, 并按照该隧道类型对应的编码及标签值, 对数据包进行封装; 最后 上一跳 Openflow交换机向下一跳交换机发送封装后的数 包。与目前通过 引入网关或者网桥对数据包进行转发相比,本 发明实施例通过控制器按照 下一跳交换机支持的隧道类型生成 OXM— OF— TUNNEL— ID匹配域,并向上 一跳 Openflow交换机发送携带有该 OXM— OF— TUNNEL— ID匹配域的转发 策略,能够使得上一跳 Openflow交换机按照交换机支持的隧道类型对数 包进行封装, 从而可以避免在数据包的转发过程中引入隧道 切换、 映射机 制、 网关或者网桥, 进而可以降低数据包的转发复杂度。 本发明实施例提供又一种隧道类型的选择方法 , 如图 3所示, 所述方 法包括:

301、 控制器生成各个隧道类型分别对应的编码。

例如,控制器可以生成: 自定义隧道类型模式对应的编码为 00000000; VLAN隧道类型模式对应的编码为 00000001; VxLAN隧道类型模式对应的 编码为 00000010; GRE隧道类型模式对应的编码为 00000011 ; VLANPi 道 类型与 VxLAN隧道类型的混合模式对应的编码为 00000100; VLAN隧道类 型与 GRE隧道类型混合模式对应的编码为 00000101; VxLAN隧道类型与 GRE隧道类型混合模式对应的编码为 00000110。

其中, 隧道类型对应的编码可以为 8bits , 也可以为 16bits , 本发明实 施例不做限定。 在本发明实施例中, 对 64b its的 OXM— OF— TUNNEL— ID匹 配域进行拆分, 将其中的部分比特位用作表示隧道类型对应的 编码, 其余 部分比特位用作表示隧道类型对应的标签值。 例如, 若将前 8bits作为隧道 类型标识符 ( tunnel type ), 用作表示隧道类型对应的编码; 则将后 56bits 作为隧道类型标签值 ( tunnel ID ), 用作表示隧道类型对应的标签值。 再 例如, 若将前 16bits作为隧道类型标识符, 用作表示隧道类型对应的编码; 则将后 48bits作为隧道类型标签值, 用作表示隧道类型对应的标签值。

302、 控制器建立隧道类型编码映射表。

其中,隧道类型编码映射表中包括各个隧道类 型及各个隧道类型分别 对应的编码。

对于本发明实施例, 传统交换机支持的隧道类型包括 VLAN、 VxLAN 及 GRE等。 在本发明实施例中, 不同的传统交换机可以支持不同的隧道类 型。

对 于 本 发 明 实 施 例 , Openflow 交 换 机 均 为 可 以 支 持 OXM— OF— TUNNEL— ID匹配域的交换机。 其中, OXM— OF— TUNNEL— ID 匹配域可以适用多种不同的隧道类型。 例如, OXM— OF— TUNNEL— ID匹配 域可以支持: VLAN隧道类型模式、 VxLAN隧道类型模式、 GRE隧道类型 模式、 VLAN隧道类型与 VxLAN隧道类型的混合模式、 VLAN隧道类型与 GRE隧道类型混合模式、 VxLAN隧道类型与 GRE隧道类型混合模式等。 在本发明实施例中, OXM— OF— TUNNEL— ID匹配域还可以适用自定义隧道 类型。

对于本发明实施例, 通过建立隧道类型编码映射表, 能够根据传统交 换机支持的隧道类型获取与其对应的隧道类型 编码, 从而可以实现 Openflow交换机按照传统交换机支持的隧道类型 数据包进行封装。在本 发明实施例中, 若隧道类型对应的编码通过 8bits进行表示, 此时, 隧道类 型编码映射表可以如下表所示:

VxLAN隧道类型与 GRE隧

00000110

道类型混合模式

其中, 按照该隧道类型编码映射表, 00000000代表自定义隧道类型; 00000001代表 VLAN隧道类型; 00000010代表 VxLAN隧道类型; 00000011 代表 GRE隧道类型; 00000100代表 VLAN隧道类型与 VxLAN隧道类型的混 合模式; 00000101代表 VLAN隧道类型与 GRE隧道类型混合模式; 00000110代表 VxLAN隧道类型与 GRE隧道类型混合模式。

可选地,隧道类型编码映射表中可以包括自定 义隧道类型及该自定义 隧道类型对应的编码。

对于本发明实施例,通过在隧道类型映射表中 包括自定义隧道类型及 该自定义隧道类型对应的编码,可以实现 OXM— OF— TUNNEL— ID匹配域支 持自定义隧道类型,从而可以实现 Openflow交换机按照传统交换机支持的 自定义隧道类型进行封装。

对于本发明实施例,当传统交换机支持的隧道 类型为自定义隧道类型 时, 若网络规模较小, 则可以通过较少的比特数表示自定义隧道类型 对应 的标签值, 并按照该自定义隧道类型对应的标签值对数据 包进行封装, 进 行数据转发及隔离等, 例如, 可以通过 24bits表示自定义隧道类型对应的 标签值; 若网络规模较大, 则可以对自定义隧道对应的标签值进行扩容, 例如, 当控制器发现当前网络中自定义隧道类型对应 的标签值不够用时, 可以对自定义隧道类型对应的标签值进行扩容 。

其中,可以通过对当前的全部自定义隧道类型 对应的标签值进行前向 补 0或者前向补 1 ,从而可以保证新的自定义隧道类型与原自定 隧道类型 兼容的同时, 对自定义隧道类型对应的标签值进行扩容。 例如, 若源自定 义隧道类型对应的标签值为 24bits , 则在对前 8bits进行补 0或者补 1之后, 可以将该自定义隧道类型对应的标签值扩展为 32bits。

可选地, 步骤 302之后还可以包括: 当存在新入网的交换机时, 控制 器首先确定该交换机支持的隧道类型,然后生 成该新入网的交换机支持的 隧道类型对应的编码,最后按照该新入网的交 换机支持的隧道类型对应的 编码, 对隧道类型编码映射表进行更新。

其中, 控制器可以通过与新入网的交换机进行能力协 商, 从而确定该 交换机支持的隧道类型, 进而对隧道类型编码表进行实时更新。

对于本发明实施例,通过将新入网的交换机支 持的隧道类型及该隧道 类型对应的编码更新入隧道类型编码映射表中 ,能够保证隧道类型编码表 中包括网络系统中的全部交换机所支持的全部 隧道类型。

303 、 控 制 器 确 定 上 一 跳 Openflow 交换 机是 否 为 支 持 OXM— OF— TUNNEL— ID匹配域的 Openflow交换机。

对于本发明实施例, 若上一 ^兆交换机为支持 OXM— OF— TUNNEL— ID 匹配域的 Openflow交换机, 并且下一跳也为支持 OXM— OF— TUNNEL— ID 匹 配 域 的 Openflow 交 换 机 , 则 二 者 之 间 可 以 直 接 按 照 OXM— OF— TUNNEL— ID匹配域的值进行数据包的转发。

对于本发明实施例, 若上一 ^兆交换机为支持 OXM— OF— TUNNEL— ID 匹配域的 Openflow交换机, 并且下一跳交换机为传统交换机, 则需要首先 在第一跳支持 OXM— OF— TUNNEL— ID匹配域的 Openflow交换机上,按照传 统交换机支持的隧道类型对数据包进行封装, 然后将封装之后的数据包转 发至下一跳传统交换机。

可选地, 步骤 303之前, 还可以包括: 控制器接收上一跳 Openflow交 换机发送的新流转发请求, 并根据新流转发请求, 计算转发路径。

其中 , 通过控制器接收 Openflow交换机发送的新流转发请求 ( packet— in ),从而可以触发控制器按照传统传统交换机 持的隧道类型, 生成 OXM— OF— TUNNEL— ID匹配域。

对于本发明实施例, 新流转发请求中可以携带有用户需求及业务需 求, 以使得控制器可以根据用户需求及业务需求, 计算转发路径, 并确定 该转发路径上各个交换机分别支持的隧道类型 。 在本发明实施例中, 控制 器通过计算转发路径, 从而可以感知当前的网络拓朴, 进而可以动态决策 生成流表项。

304、 若上一跳 Openflow交换机为支持 OXM— OF— TUNNEL— ID匹配域 的 Op enflo w交换机, 则控制器确定下一跳交换机支持的隧道类型。

305、 控制器在隧道类型编码映射表中获取隧道类型 对应的编码, 并 生成隧道类型对应的标签值。

例如, 控制器按照 VLAN隧道类型, 获取的隧道类型对应的编码为 00000001 , 生成的隧道类型对应的标签值可以为 00000000000000 000000000000000000000000001111111110001000 ο

306、 控制器将隧道类型对应的编码及隧道类型对应 的标签值进行组 合, 生成 OXM— OF— TUNNEL— ID匹配域。

例如, 控制器按照 VLAN隧道类型, 获取的隧道类型对应的编码为 00000001 , 生 成 的 隧道类 型 对应 的 标签值 可 以 为 00000000 000000000000000000000000000000001111111110001000 , 最终生 成 的 OXM OF TUNNEL ID 匹 西己 i或 为 0000000100000000000000000000000 000000000000000001111111110001000„

307、 控制器向上一跳 Openflow交换机发送转发策略。

进一步地, 通过控制器向上一跳 Openflow交换机发送转发策略, 以使 得上一跳 Openflow交换机根据隧道类型对应的编码及隧道 型对应的标 签值, 对数据包进行封装。

其中, 转发策略中携带有 OXM— OF— TUNNEL— ID匹配域。 在本发明实 施例中, 通过控制器向上一跳 Openflow交换机发送转发策略, 以使得该上 一跳 Openflow交换机按照转发策略,对数据包按照传 交换机支持的隧道 类型进行封装。

对于本发明实施例, 下一跳交换机可以为传统交换机, 也可以为 Op enflo w交换机。其中,传统交换机支持的隧道类型 以为 VLAN、 VxLAN 或者 GRE等, Openflow交换机可以支持 OXM— OF— TUNNEL— ID匹配域。 在 本发明实施例中, 下一跳交换机为上一跳 Openflow交换机的下一跳交换 机; 上一跳 Op enflo w交换机为下一跳交换机的上一跳交换机。

一方面, 当上一跳 Op enflo w交换机的下一跳交换机为传统交换机时, 与目前通过引入网关或者网桥对数据包进行转 发相比,通过本发明实施例 提供的方法,可以按照该下一跳传统交换机支 持的隧道类型的编码及标签 值, 将数据包进行封装, 从而可以实现该数据包直接在上一跳 Openflow 交换机及该下一跳传统交换机之间进行交换, 进而可以避免网关或者网桥 的引入, 可以降低数据包的转发复杂度。

另一方面,当上一跳 Openflow交换机的下一跳交换机为 Openflow交换 机时, 也可以通过本发明实施例提供的方法, 按照下一跳 Openflow交换机 支持的隧道类型, 对来自上一跳 Openflow交换机的数据包进行封装, 从而 可以实现该数据包直接在上一跳 Openflow交换机及下一跳 Openflow交换 机之间进行交换。 在本发明实施例中, Openflow交换机可以支持的隧道类 型可以为任意隧道类型, 即可以同时支持 VLAN、 VxLAN或者 GRE等隧道 类型。

对于本发明实施例, 如图 1所示, 当控制器向 Openflow switch 1发送转 发策略之后, Openflow switchl可以将封装之后的数据包转发给 switch, switch可以根据自身匹配的隧道类型, 将该数据包进一步转发给 Openflow switch2。 在本发明实施例中, Openflow switch2解析接收到的数据包的分 装格式, 从中提取隧道类型的标签值, 并根据该隧道类型的标签值及控制 器预先设定的该隧道类型 的编码, 组合生成该数据包对应的 OXM— OF— TUNNEL— ID匹配域, 同时在其流表中匹配对应的流表项。

本发明实施例提供的隧道类型的选择方法,首 先控制器将下一跳交换 机支持 的 隧道类 型 对应 的 编码及标签值进行组合 , 生 成 OXM— OF— TUNNEL— ID匹配域,并向上一跳 Openflow交换机发送携带有该 OXM— OF— TUNNEL— ID匹配域的转发策略;然后上一跳 Openflow交换机从 接收到的 OXM— OF— TUNNEL— ID匹配域中,提取隧道类型对应的编码及标 签值, 并按照该隧道类型对应的编码及标签值, 对数据包进行封装; 最后 上一跳 Openflow交换机向下一跳交换机发送封装后的数 包。与目前通过 引入网关或者网桥对数据包进行转发相比,本 发明实施例通过控制器按照 下一跳交换机支持的隧道类型生成 OXM— OF— TUNNEL— ID匹配域,并向上 一跳 Openflow交换机发送携带有该 OXM— OF— TUNNEL— ID匹配域的转发 策略,能够使得上一跳 Openflow交换机按照交换机支持的隧道类型对数 包进行封装, 从而可以避免在数据包的转发过程中引入隧道 切换、 映射机 制、 网关或者网桥, 进而可以降低数据包的转发复杂度。 本发明实施例提供又一种隧道类型的选择方法 , 如图 4所示, 所述方 法包括:

401、 Openflow交换机接收控制器发送的转发策略。

其中, 转发策略中携带有 OXM— OF— TUNNEL— ID匹配域。 在本发明实 施例中, 通过 Openflow交换机接收控制器发送的转发策略, 可以使得该 Openflow交换机按照转发策略,对数据包按照传 交换机支持的隧道类型 进行封装。 在本发明实施例中, 传统交换机支持的隧道类型包括 VLAN、 VxLAN及 GRE等。 其中, 不同的传统交换机可以支持不同的隧道类型。

对于本发明实施例, 传统交换机支持的隧道类型可以包括 V L AN、 VxLAN及 GRE等。 在本发明实施例中, 不同的传统交换机可以支持不同 的隧道类型。

对 于 本 发 明 实 施 例 , Openflow 交 换 机 均 为 可 以 支 持 OXM— OF— TUNNEL— ID匹配域的交换机。 其中, OXM— OF— TUNNEL— ID 匹配域可以适用多种不同的隧道类型。 例如, OXM— OF— TUNNEL— ID匹配 域可以支持: VLAN隧道类型模式、 VxLAN隧道类型模式、 GRE隧道类型 模式、 VLAN隧道类型与 VxLAN隧道类型的混合模式、 VLAN隧道类型与 GRE隧道类型混合模式、 VxLAN隧道类型与 GRE隧道类型混合模式等。 在本发明实施例中, OXM— OF— TUNNEL— ID匹配域还可以适用自定义隧道 类型。 402、 Openflow交换机从 OXM— OF— TUNNEL— ID匹配域中 , 提取下一 跳交换机支持的隧道类型对应的编码及隧道类 型对应的标签值。

例 如 步 骤 402 可 以 为 , Openflow 交 换 机 接 收 到 的 OXM— OF— TUNNEL— ID的值为 : 000000010000000000000000000000000 0000000000000001111111110001000 , 从中提取的下一跳交换机支持的隧 道类型对应的编码为 00000001 ,下一跳交换机支持的隧道类型对应的标签

403、 Openflow交换机按照隧道类型对应的编码及隧道 型对应的标 签值, 对数据包进行封装。

例如步骤 403可以为, Openflow交换机可以按照隧道类型对应的编码 00000001及隧道类型对应的标签值 0000000000000000000000000000000 0000000001111111110001000 , 确定对应的隧道类型为 VLAN隧道类型, 并 按照 V L A N隧道类型对应的格式, 对数据包进行封装。

对于本发明实施例, 隧道类型对应的编码可以通过 8bits (比特)进行 表示, 也可以通过 16bits进行表示, 本发明实施例不做限定。 在本发明实 施例中, 对 64bits的 OXM— OF— TUNNEL— ID匹配域进行拆分, 将其中的部 分比特位用作表示隧道类型对应的编码,其余 部分比特位用作表示隧道类 型对应的标签值。 例如, 若将前 8bits作为隧道类型标识符, 用作表示隧道 类型对应的编码; 则将后 56bits作为隧道类型标签值, 用作表示隧道类型 对应的标签值。 再例如, 若将前 16bits作为隧道类型标识符, 用作表示隧 道类型对应的编码; 则将后 48bits作为隧道类型标签值, 用作表示隧道类 型对应的标签值。

404、 Openflow交换机向下一跳交换机发送封装后的数 包。

对于本发明实施例 ,通过 Openflow交换机向传统交换机发送封装后的 数据包,以使得传统交换机接收到的数据包为 按照该传统交换机支持的隧 道类型进行封装之后的数据包。

对于本发明实施例, 若上一 ^兆交换机为支持 OXM— OF— TUNNEL— ID 匹配域的 Openflow交换机, 并且下一跳也为支持 OXM— OF— TUNNEL— ID 匹 配 域 的 Openflow 交 换 机 , 则 二 者 之 间 可 以 直 接 按 照 OXM— OF— TUNNEL— ID匹配域的值进行数据包的转发。

对于本发明实施例, 若上一 ^兆交换机为支持 OXM— OF— TUNNEL— ID 匹配域的 Openflow交换机, 并且下一跳交换机为传统交换机, 则需要首先 在上一跳支持 OXM— OF— TUNNEL— ID匹配域的 Openflow交换机上,按照传 统交换机支持的隧道类型对数据包进行封装, 然后将封装之后的数据包转 发至下一跳传统交换机。

对于本发明实施例, 下一跳交换机可以为传统交换机, 也可以为 Op enflow交换机。其中,传统交换机支持的隧道类 型可以为 VL AN、 VxLAN 或者 GRE等, Openflow交换机可以支持 OXM— OF— TUNNEL— ID匹配域。 在 本发明实施例中, 下一跳交换机为上一跳 Openflow交换机的下一跳交换 机; 上一跳 Op enflo w交换机为下一跳交换机的上一跳交换机。

一方面, 当上一跳 Op enflo w交换机的下一跳交换机为传统交换机时, 与目前通过引入网关或者网桥对数据包进行转 发相比,通过本发明实施例 提供的方法,可以按照该下一跳传统交换机支 持的隧道类型的编码及标签 值, 将数据包进行封装, 从而可以实现该数据包直接在上一跳 Openflow 交换机及该下一跳传统交换机之间进行交换, 进而可以避免网关或者网桥 的引入, 可以降低数据包的转发复杂度。

另一方面,当上一跳 Openflow交换机的下一跳交换机为 Openflow交换 机时, 也可以通过本发明实施例提供的方法, 按照下一跳 Openflow交换机 支持的隧道类型, 对来自上一跳 Openflow交换机的数据包进行封装, 从而 可以实现该数据包直接在上一跳 Openflow交换机及下一跳 Openflow交换 机之间进行交换。 在本发明实施例中, Openflow交换机可以支持的隧道类 型可以为任意隧道类型, 即可以同时支持 VLAN、 VxLAN或者 GRE等隧道 类型。

对于本发明实施例, 如图 1所示, 当 Openflow switch 1将封装之后的数 据包转发给 switch之后, switch可以根据自身匹配的隧道类型, 将该数据 包进一步转发给 Openflow switch2。 在本发明实施例中, Openflow switch2 解析接收到的数据包的分装格式, 从中提取隧道类型的标签值, 并根据该 隧道类型的标签值及控制器预先设定的该隧道 类型的编码,组合生成该数 据包对应的 OXM— OF— TUNNEL— ID匹配域,同时在其流表中匹配对应的流 表项。

本发明实施例提供的隧道类型的选择方法,首 先控制器将下一跳交换 机支持 的 隧道类 型 对应 的 编码及标签值进行组合 , 生 成 OXM— OF— TUNNEL— ID匹配域,并向上一跳 Openflow交换机发送携带有该 OXM— OF— TUNNEL— ID匹配域的转发策略;然后上一跳 Openflow交换机从 接收到的 OXM— OF— TUNNEL— ID匹配域中,提取隧道类型对应的编码及标 签值, 并按照该隧道类型对应的编码及标签值, 对数据包进行封装; 最后 上一跳 Openflow交换机向下一跳交换机发送封装后的数 包。与目前通过 引入网关或者网桥对数据包进行转发相比,本 发明实施例通过控制器按照 下一跳交换机支持的隧道类型生成 OXM— OF— TUNNEL— ID匹配域,并向上 一跳 Openflow交换机发送携带有该 OXM— OF— TUNNEL— ID匹配域的转发 策略,能够使得上一跳 Openflow交换机按照交换机支持的隧道类型对数 包进行封装, 从而可以避免在数据包的转发过程中引入隧道 切换、 映射机 制、 网关或者网桥, 进而可以降低数据包的转发复杂度。 本发明实施例提供又一种隧道类型的选择方法 , 如图 5所示, 所述方 法包括:

501、 Openflow交换机接收控制器发送的转发策略。

其中, 转发策略中携带有 OXM— OF— TUNNEL— ID匹配域。 在本发明实 施例中, 通过 Openflow交换机接收控制器发送的转发策略, 可以使得该 Openflow交换机按照转发策略,对数据包按照传 交换机支持的隧道类型 进行封装。 可选地, 步骤 501之前, 还可以包括: Openflow交换机向控制器发送 新流转发请求。

其中, 通过 Openflow交换机向控制器发送新流转发请求( packet— in ), 从而可以触发控制器按照传统传统交换机支持 的隧道类型, 生成 OXM— OF— TUNNEL— ID匹配域。 在本发明实施例中, 新流转发请求中可以 携带有用户需求及业务需求, 以使得控制器可以根据用户需求及业务需 求,计算转发路径,并确定该转发路径上各个 交换机分别支持的隧道类型。

对于本发明实施例, 传统交换机支持的隧道类型包括 VLAN、 VxLAN 及 GRE等。 在本发明实施例中, 不同的传统交换机可以支持不同的隧道类 型。

对 于 本 发 明 实 施 例 , Openflow 交 换 机 均 为 可 以 支 持 OXM— OF— TUNNEL— ID匹配域的交换机。 其中, OXM— OF— TUNNEL— ID 匹配域可以适用多种不同的隧道类型。 例如, OXM— OF— TUNNEL— ID匹配 域可以支持: VLAN隧道类型模式、 VxLAN隧道类型模式、 GRE隧道类型 模式、 VLAN隧道类型与 VxLAN隧道类型的混合模式、 VLAN隧道类型与 GRE隧道类型混合模式、 VxLAN隧道类型与 GRE隧道类型混合模式等。 在本发明实施例中, OXM— OF— TUNNEL— ID匹配域还可以适用自定义隧道 类型。

502、 Openflow交换机从 OXM— OF— TUNNEL— ID匹配域中, 提取下一 跳交换机支持的隧道类型对应的编码及隧道类 型对应的标签值。

具体地, Openflow交换机在 OXM— OF— TUNNEL— ID匹配域的部分比特 位中提取隧道类型对应的编码,在 OXM— OF— TUNNEL— ID匹配域的其他比 特位中提取隧道类型对应的标签值。

例如, Openflow交换机接收到的 OXM— OF— TUNNEL— ID的值为:

0 , 从中提取的下一跳交换机支持的隧道类型对应 的编码为 00000001 , 下 一跳交换机支持的隧道类型对应的标签值为 0000000000000000000 0000000000000000000001111111110001000。 进一步地, Openflow交换机 可以确定对应的隧道类型为 VLAN隧道类型。

对于本发明实施例, 隧道类型对应的编码可以通过 8bits (比特)进行 表示, 也可以通过 16bits进行表示, 本发明实施例不做限定。 在本发明实 施例中, 对 64bits的 OXM— OF— TUNNEL— ID匹配域进行拆分, 将其中的部 分比特位用作表示隧道类型对应的编码,其余 部分比特位用作表示隧道类 型对应的标签值。 例如, 若将前 8bits作为隧道类型标识符, 用作表示隧道 类型对应的编码; 则将后 56bits作为隧道类型标签值, 用作表示隧道类型 对应的标签值。 再例如, 若将前 16bits作为隧道类型标识符, 用作表示隧 道类型对应的编码; 则将后 48bits作为隧道类型标签值, 用作表示隧道类 型对应的标签值。

其中, 隧道类型及隧道类型对应的编码之间的对应关 系, 由控制器预 先进行配置, 并存储在隧道类型编码映射表中。 例如, 控制器预先配置的 隧道类型及隧道类型对应的编码之间的对应关 系为: 自定义隧道类型模式 对应的编码为 00000000 ; VLAN隧道类型模式对应的编码为 00000001; VxLAN隧道类型模式对应的编码为 00000010; GRE隧道类型模式对应的 编码为 00000011; VLAN隧道类型与 VxLAN隧道类型的混合模式对应的编 码为 00000100; VLAN隧道类型与 GRE隧道类型混合模式对应的编码为 00000101; VxLAN隧道类型与 GRE隧道类型混合模式对应的编码为 00000110。 此时, 隧道类型编码映射表可以如下表所示:

VL AN隧道类型与 VxL AN

00000100

隧道类型的混合模式

VLAN隧道类型与 GREPi 道

00000101

类型混合模式

VxL AN隧道类型与 GRE隧

00000110

道类型混合模式

可选地,隧道类型编码映射表中可以包括自定 义隧道类型及该自定义 隧道类型对应的编码。

对于本发明实施例,通过在隧道类型映射表中 包括自定义隧道类型及 该自定义隧道类型对应的编码,可以实现 OXM— OF— TUNNEL— ID匹配域支 持自定义隧道类型,从而可以实现 Openflow交换机按照传统交换机支持的 自定义隧道类型进行封装。

对于本发明实施例,当传统交换机支持的隧道 类型为自定义隧道类型 时, 若网络规模较小, 则可以通过较少的比特数表示自定义隧道类型 对应 的标签值, 并按照该自定义隧道类型对应的标签值对数据 包进行封装, 进 行数据转发及隔离等, 例如, 可以通过 24bits表示自定义隧道类型对应的 标签值; 若网络规模较大, 则可以对自定义隧道对应的标签值进行扩容, 例如, 当控制器发现当前网络中自定义隧道类型对应 的标签值不够用时, 可以对自定义隧道类型对应的标签值进行扩容 。

其中,可以通过对当前的全部自定义隧道类型 对应的标签值进行前向 补 0或者前向补 1 ,从而可以保证新的自定义隧道类型与原自定 隧道类型 兼容的同时, 对自定义隧道类型对应的标签值进行扩容。 例如, 若源自定 义隧道类型对应的标签值为 24bits , 则在对前 8bits进行补 0或者补 1之后, 可以将该自定义隧道类型对应的标签值扩展为 32bits。

503、 Openflow交换机按照隧道类型对应的编码及隧道 型对应的标 签值, 对数据包进行封装。

504、 Openflow交换机向下一跳交换机发送封装后的数 包。 对于本发明实施例,通过 Openflow交换机向传统交换机发送封装后的 数据包,以使得传统交换机接收到的数据包为 按照该传统交换机支持的隧 道类型进行封装之后的数据包。

对于本发明实施例, 若上一f兆交换机为支持 OXM— OF— TUNNEL— ID 匹配域的 Openflow交换机, 并且下一跳也为支持 OXM— OF— TUNNEL— ID 匹 配 域 的 Openflow 交 换 机 , 则 二 者 之 间 可 以 直 接 按 照 OXM— OF— TUNNEL— ID匹配域的值进行数据包的转发。

对于本发明实施例, 若上一 ^兆交换机为支持 OXM— OF— TUNNEL— ID 匹配域的 Openflow交换机, 并且下一跳交换机为传统交换机, 则需要首先 在上一跳支持 OXM— OF— TUNNEL— ID匹配域的 Openflow交换机上,按照传 统交换机支持的隧道类型对数据包进行封装, 然后将封装之后的数据包转 发至下一跳传统交换机。

对于本发明实施例, 下一跳交换机可以为传统交换机, 也可以为 Op enflow交换机。其中,传统交换机支持的隧道类 型可以为 VL AN、 VxLAN 或者 GRE等, Openflow交换机可以支持 OXM— OF— TUNNEL— ID匹配域。 在 本发明实施例中, 下一跳交换机为上一跳 Openflow交换机的下一跳交换 机; 上一跳 Op enflo w交换机为下一跳交换机的上一跳交换机。

一方面, 当上一跳 Op enflo w交换机的下一跳交换机为传统交换机时, 与目前通过引入网关或者网桥对数据包进行转 发相比,通过本发明实施例 提供的方法,可以按照该下一跳传统交换机支 持的隧道类型的编码及标签 值, 将数据包进行封装, 从而可以实现该数据包直接在上一跳 Openflow 交换机及该下一跳传统交换机之间进行交换, 进而可以避免网关或者网桥 的引入, 可以降低数据包的转发复杂度。

另一方面,当上一跳 Openflow交换机的下一跳交换机为 Openflow交换 机时, 也可以通过本发明实施例提供的方法, 按照下一跳 Openflow交换机 支持的隧道类型, 对来自上一跳 Openflow交换机的数据包进行封装, 从而 可以实现该数据包直接在上一跳 Openflow交换机及下一跳 Openflow交换 机之间进行交换。 在本发明实施例中, Openflow交换机可以支持的隧道类 型可以为任意隧道类型, 即可以同时支持 VLAN、 VxLAN或者 GRE等隧道 类型。

对于本发明实施例, 如图 1所示, 当 Openflow switch 1将封装之后的数 据包转发给 switch之后, switch可以根据自身匹配的隧道类型, 将该数据 包进一步转发给 Openflow switch2。 在本发明实施例中, Openflow switch2 解析接收到的数据包的分装格式, 从中提取隧道类型的标签值, 并根据该 隧道类型的标签值及控制器预先设定的该隧道 类型的编码,组合生成该数 据包对应的 OXM— OF— TUNNEL— ID匹配域,同时在其流表中匹配对应的流 表项。

本发明实施例提供的隧道类型的选择方法,首 先控制器将下一跳交换 机支持 的 隧道类 型 对应 的 编码及标签值进行组合 , 生 成 OXM— OF— TUNNEL— ID匹配域,并向上一跳 Openflow交换机发送携带有该 OXM— OF— TUNNEL— ID匹配域的转发策略;然后上一跳 Openflow交换机从 接收到的 OXM— OF— TUNNEL— ID匹配域中,提取隧道类型对应的编码及标 签值, 并按照该隧道类型对应的编码及标签值, 对数据包进行封装; 最后 上一跳 Openflow交换机向下一跳交换机发送封装后的数 包。与目前通过 引入网关或者网桥对数据包进行转发相比,本 发明实施例通过控制器按照 下一跳交换机支持的隧道类型生成 OXM— OF— TUNNEL— ID匹配域,并向上 一跳 Openflow交换机发送携带有该 OXM— OF— TUNNEL— ID匹配域的转发 策略,能够使得上一跳 Openflow交换机按照交换机支持的隧道类型对数 包进行封装, 从而可以避免在数据包的转发过程中引入隧道 切换、 映射机 制、 网关或者网桥, 进而可以降低数据包的转发复杂度。 本发明实施例提供一种隧道类型的选择装置, 如图 6所示, 所述装置 的实体可以为控制器, 所述装置包括: 确定单元 61、 获取单元 62、 生成单 元 63、 发送单元 64。 确定单元 61 , 用于确定下一跳交换机支持的隧道类型。

获取单元 62 ,用于在隧道类型编码映射表中获取确定单元 61确定的隧 道类型对应的编码。

生成单元 63 , 用于生成隧道类型对应的标签值, 并将获取单元 62获取 的隧道类型对应的编码及隧道类型对应的标签 值进行组合, 生成 OXM— OF— TUNNEL— ID匹配域。

发送单元 64 , 用于向上一跳 Openflow交换机发送转发策略。

其中, 转发策略中携带有生成单元 63生成的 OXM— OF— TUNNEL— ID 匹配域。

需要说明的是,本发明实施例中提供的隧道类 型的选择装置中各功能 单元所对应的其他相应描述, 可以参考图 2中的对应描述, 在此不再赘述。

确定单元 61 , 还用于确定上一跳 Openflow交换机是否为支持 OXM— OF— TUNNEL— ID匹配域的 Openflow交换机。

确 定单元 61 , 具体用 于 当 上一跳 Openflow交换机为 支持 OXM— OF— TUNNEL— ID匹配域的 Openflow交换机时,确定下一跳交换机支 持的隧道类型。

生成单元 62 , 还用于生成各个隧道类型分别对应的编码。

进一步地, 本发明实施例提供又一种隧道类型的选择装置 , 如图 7所 示, 所述装置还可以包括: 建立单元 65。

建立单元 65 , 还用于建立隧道类型编码映射表。

其中,隧道类型编码映射表中包括各个隧道类 型及生成单元 62生成的 各个隧道类型分别对应的编码。

确定单元 61 , 还用于当存在新入网的交换机时, 确定交换机支持的隧 道类型。

生成单元 62 ,还用于生成确定单元 61确定的新入网的交换机支持的隧 道类型对应的编码。

可选地, 所述装置还可以包括: 更新单元 66。 更新单元 66 ,用于按照生成单元 62生成的新入网的交换机支持的隧道 类型对应的编码, 对隧道类型编码映射表进行更新。

建立单元 65建立的隧道类型编码映射表中包括自定义隧 类型及自 定义隧道类型对应的编码。

需要说明的是,本发明实施例中提供的隧道类 型的选择装置中各功能 单元所对应的其他相应描述, 可以参考图 3中的对应描述, 在此不再赘述。

本发明实施例提供一种控制器, 如图 8所示, 所述控制器可以包括: 处理器 81、 发送器 82、 接收器 83、 存储器 84 , 所述接收器 83及存储器 84 与处理器 81相连接。

处理器 81 , 用于首先确定下一跳交换机支持的隧道类型, 然后在隧道 类型编码映射表中获取隧道类型对应的编码, 并生成隧道类型对应的标签 值, 最后将隧道类型对应的编码及隧道类型对应的 标签值进行组合, 生成 OXM— OF— TUNNEL— ID匹配域。

发送器 82 , 用于向上一跳 Openflow交换机发送转发策略。

其中 ,转发策略中可以携带有处理器 81生成的 OXM— OF— TUNNEL— ID 匹配域。

需要说明的是,本发明实施例中提供的控制器 中各设备所对应的其他 相应描述, 可以参考图 2中的对应描述, 在此不再赘述。

处理器 81 , 还用 于确定上一跳 Openflow交换机是否为 支持 OXM— OF— TUNNEL— ID匹配域的 Openflow交换机。

处 理 器 81 , 具体用 于 当 上 一跳 Openflow交换机为 支持 OXM— OF— TUNNEL— ID匹配域的 Openflow交换机时,确定下一跳交换机支 持的隧道类型。

处理器 81 , 还用于生成各个隧道类型分别对应的编码。

处理器 81 , 还用于建立隧道类型编码映射表。 其中,隧道类型编码映射表中包括各个隧道类 型及各个隧道类型分别 对应的编码。

处理器 81 , 还用于当存在新入网的交换机时, 确定交换机支持的隧道 类型。

处理器 81 , 还用于生成新入网的交换机支持的隧道类型对 应的编码。 处理器 81 , 还用于按照新入网的交换机支持的隧道类型对 应的编码, 对隧道类型编码映射表进行更新。

处理器 81建立的隧道类型编码映射表中包括自定义隧 类型及所述 自定义隧道类型对应的编码。

需要说明的是,本发明实施例中提供的控制器 中各设备所对应的其他 相应描述, 可以参考图 3中的对应描述, 在此不再赘述。 本发明实施例提供又一种隧道类型的选择装置 , 如图 9所示, 所述装 置的实体可以为 Openflow交换机, 所述装置包括: 接收单元 91、 提取单元

92、 封装单元 93、 发送单元 94。

接收单元 91 , 用于接收控制器发送的转发策略。

其中, 转发策略中携带有 OXM— OF— TUNNEL— ID匹配域。

提取单元 92 ,用于从接收单元 91接收的 OXM— OF— TUNNEL— ID匹配域 中,提取下一跳交换机支持的隧道类型对应的 编码及隧道类型对应的标签 值。

封装单元 93 ,用于按照提取单元 92提取的隧道类型对应的编码及隧道 类型对应的标签值, 对数据包进行封装。

发送单元 94 , 用于向传统交换机发送封装单元 93封装后的数据包。 需要说明的是,本发明实施例中提供的隧道类 型的选择装置中各功能 单元所对应的其他相应描述, 可以参考图 5中的对应描述, 在此不再赘述。 本发明实施例提供一种 Openflow交换机, 如图 10所示, 所述 Openflow 交换机可以包括: 接收器 101、 处理器 102、 发送器 103、 存储器 104 , 所述 存储器 104与处理器 102相连接。

接收器 101 , 用于接收控制器发送的转发策略。

其中, 转发策略中携带有 OXM— OF— TUNNEL— ID匹配域。

处理器 102 , 用于从接收器 101接收的 OXM— OF— TUNNEL— ID匹配域 中,提取下一跳交换机支持的隧道类型对应的 编码及隧道类型对应的标签 值, 并按照隧道类型对应的编码及隧道类型对应的 标签值, 对数据包进行 封装。

发送器 103 , 用于向下一跳交换机发送处理器封装后的数据 包。

需要说明的是,本发明实施例中提供的 Openflow交换机中各设备所对 应的其他相应描述, 可以参考图 5中的对应描述, 在此不再赘述。 本发明实施例提供的隧道类型的选择装置可以 实现上述提供的方法 实施例, 具体功能实现请参见方法实施例中的说明, 在此不再赘述。 本发 明实施例提供的隧道类型的选择方法及装置可 以适用于在 Openflow交换 机和传统交换机混合组网的环境下转发数据包 , 但不仅限于此。

本领域普通技术人员可以理解实现上述实施例 方法中的全部或部分 流程, 是可以通过计算机程序来指令相关的硬件来完 成, 所述的程序可存 储于一计算机可读取存储介质中, 该程序在执行时, 可包括如上述各方法 的实施例的流程。 其中, 所述的存储介质可为磁碟、 光盘、 只读存储记忆 体 ( Read-Only Memory , ROM ) 或随机存 者 i己忆体 ( Random Access Memory, RAM ) 等。

以上所述, 仅为本发明的具体实施方式, 但本发明的保护范围并不局 限于此, 任何熟悉本技术领域的技术人员在本发明揭露 的技术范围内, 可 轻易想到的变化或替换, 都应涵盖在本发明的保护范围之内。 因此, 本发 明的保护范围应该以权利要求的保护范围为准 。