CN105264844A - 软件定义网络的路由方法、装置和设备 - Google Patents

软件定义网络的路由方法、装置和设备 Download PDF

Info

Publication number
CN105264844A
CN105264844A CN201480000518.3A CN201480000518A CN105264844A CN 105264844 A CN105264844 A CN 105264844A CN 201480000518 A CN201480000518 A CN 201480000518A CN 105264844 A CN105264844 A CN 105264844A
Authority
CN
China
Prior art keywords
domain
interchanger
data flow
table item
network
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201480000518.3A
Other languages
English (en)
Other versions
CN105264844B (zh
Inventor
梁昊驰
洪佩琳
周伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Publication of CN105264844A publication Critical patent/CN105264844A/zh
Application granted granted Critical
Publication of CN105264844B publication Critical patent/CN105264844B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

本发明提供一种软件定义网络的路由方法、装置和设备。该方法包括:控制器获取源端交换机发送的第一数据流的源域网络和目的域网络控制器确定第一数据流经源域网络路由至目的域网络中的域间最优路由路径;控制器根据域间最优路由路径向源端交换机和域间最优路由路径上的边界交换机下发第一流表项,以使源端交换机根据第一流表项和预设的静态流表项将第一数据流路由至源域网络的第一边界交换机,并使得第一边界交换机根据第一流表项和静态流表项将第一数据流路由至目的域网络中。本发明实施例提供的方法,控制器仅需要向源端交换机和域间最优路由路径上的边界交换机下发第一流表项,减少了控制器与交换机之间的交互次数,提高了SDN网络的路由性能。

Description

软件定义网络的路由方法、 装置和设备
技术领域
本发明涉及通信技术, 尤其涉及一种软件定义网络的路由方法、 装置和 设备。 背景技术
交换机作为网络中的关键节点, 在现有设备提供商的垄断之下开放的接 口十分有限,网络中的很多开放想法和协议都无法进行测试与验证。 OpenFlow 作为一套开放接口、 支持多控制的交换协议应运而生, OpenFlow将传统的物 理固定的硬件改造成为动态可变的软件可定义网络 (Software Defined Network, 以下简称 SDN ) , 实现控制面与转发面的分离。 采用 OpenFlow协 议的交换机(即 OpenFlow交换机)设置有流表(Flow Table )、安全通道(Secure Channel )和 OpenFlow协议。交换机通过 OpenFlow协议经过一个安全通道连 接到外部控制器 (Control ler ) , 控制器对流表进行査询和管理。 其中, 交 换机的流表中存储着査找、 转发或统计数据时所需要最核心的信息。 该流表 包括至少一个流表项, 每个流表项包括匹配域字段 (match field ) 、 计数器 ( counters ) 禾口指令集 ( instructions ) 。
当数据流流入 SDN网络中的任一交换机时, 交换机会判断该数据流是否 与该交换机的流表中的流表项相匹配; 若匹配, 则该交换机执行流表项中的 指令 (或动作) ; 如果数据流在 SDN网络中的所有交换机的流表中没有匹配 的流表项, 数据包则会被丢弃或者转发到控制器进行处理; 如果匹配的流表 项中的指令指示数据包不再跳转到下一个流表, 则匹配结束, 交换机执行该 匹配的流表项对应的动作集 (actions set ) , 如将数据包转发到指定输出端 口、 丢包、 修改数据包头、 转发到群组表等。
现有技术中, 控制器负责管理整个 SDN网络的行为, 同时完成网络中 数据流的路由。 如图 1所示, 控制器维护整个网络的拓扑信息, 当网络中 到达新的数据流时, 它为该数据流计算全网的最优路由路径, 并且添加相 应的流表项到路由路径上的所有交换机的流表中(每个交换机上所添加的 流表项的匹配域相同, 但是动作不同) , 完成对该数据流的路由。
但是, 当 SDN网络的规模扩大, 网络中交换机数目和流入的数据流的增 多, 均会导致控制器与交换机之间交互信息数目的增长, 网络扩展性差。 发明内容 本发明提供一种软件定义网络的路由方法、 装置和设备, 用以解决现有 技术中当 SDN网络的规模扩大, 网络中交换机数目和流入的数据流的增多, 导致的控制器与交换机之间交互信息数目的增长,网络扩展性差的技术问题。
第一方面, 本发明提供一种软件定义网络的路由设备, 所述软件定义网 络 SDN包括至少两个域网络, 每个域网络包括至少一个第一交换机和至少一 个边界交换机, 所述边界交换机用于连接所述边界交换机所在的第一域网络 和所述边界交换机所在的第二域网络; 数据流通过所述边界交换机从所述第 一域网络路由至所述第二域网络; 所述路由设备包括:
处理器, 用于获取源端交换机发送的第一数据流的源域网络和目的域网 络; 其中, 所述源端交换机为所述第一交换机, 所述源端交换机位于所述源 域网络; 并确定所述第一数据流经所述源域网络路由至所述目的域网络中的 域间最优路由路径, 所述域间最优路由路径上包括至少一个边界交换机; 发送器, 用于根据所述域间最优路由路径向所述源端交换机和所述域间 最优路由路径上的边界交换机下发第一流表项, 以使所述源端交换机根据所 述第一流表项和预设的静态流表项将所述第一数据流路由至所述源域网络的 第一边界交换机, 并使得所述第一边界交换机根据所述第一流表项和所述静 态流表项将所述第一数据流路由至所述目的域网络中; 其中, 所述第一边界 交换机为所述域间最优路由路径上的第一个边界交换机。
结合第一方面, 在第一方面的第一种可能的实施方式中, 所述处理器, 还用于在根据所述域间最优路由路径向所述源端交换机和所述域间最优路由 路径上的边界交换机下发第一流表项之前, 获取任一所述域网络中的各个交 换机到该域网络中的边界交换机的域内最优路径; 其中, 所述域内最优路径 为该域网络中的各个交换机到该域网络中的边界交换机的最短路径;
所述发送器, 还用于根据所述域内最优路径向该域网络中的各个交换机 下发所述静态流表项, 以使该域网络中的各个交换机在接收到目的 IP地址为 该域网络中的任一边界交换机的 ID的数据流时,根据所述静态流表项将该数 据流以最优路径路由至该域网络中对应的边界交换机上。
结合第一方面的第一种可能的实施方式, 在第一方面的第二种可能的实 施方式中, 所述第一流表项为第二流表项、 第三流表项、 第四流表项的其中 一种; 则所述发送器, 具体用于向所述源端交换机下发所述第二流表项; 其 中, 所述第二流表项用于指示所述源端交换机生成第二数据流, 并指示所述 源端交换机根据所述静态流表项将所述第二数据流路由至所述第一边界交换 机上; 所述第二数据流为目的 IP地址为所述第一边界交换机的 ID的所述第 一数据流。
结合第一方面的第二种可能的实施方式, 在第一方面的第三种可能的实 施方式中, 所述处理器, 还用于判断第二边界交换机是否为所述域间最优路 由路径上的最后一个边界交换机, 获取判断结果; 其中, 所述第二边界交换 机为接收到第三数据流的所述域间最优路由路径上的任一边界交换机, 所述 第三数据流为目的 IP地址为所述域间最优路径上的任一边界交换机的 ID的 所述第一数据流; 并根据所述判断结果确定指示所述发送器向所述第二边界 交换机下发所述第三流表项或所述第四流表项。
结合第一方面的第三种可能的实施方式, 在第一方面的第四种可能的实 施方式中, 所述处理器, 具体用于若所述判断结果为是, 则指示所述发送器 向所述第二边界交换机下发所述第三流表项; 其中, 所述第三流表项用于指 示所述第二边界交换机执行第一更改操作; 所述第一更改操作包括: 将所述 第三数据流的目的 IP 地址更改为所述目的域网络中的所述第一数据流的目 的终端的 IP地址; 若所述判断结果为否, 则指示所述发送器向所述第二边界 交换机下发所述第四流表项; 其中, 所述第四流表项用于指示所述第二边界 交换机根据所述第四流表项和所述静态流表项执行第二更改操作, 直至所述 处理器判断所述第二边界交换机为所述域间最优路由路径上的最后一个边界 交换机为止; 其中, 所述第二更改操作包括: 将所述第三数据流的目的 IP地 址更改为所述第二边界交换机在所述域间最优路由路径上的下一跳边界交换 机的 ID, 以将所述第三数据流路由至所述下一跳边界交换机上, 并将所述下 一跳边界交换机作为新的第二边界交换机。
结合第一方面至第一方面的第四种可能的实施方式中的任一项, 在第一 方面的第五种可能的实施方式中, 所述路由设备还包括: 接收器; 所述接收 器, 用于接收所述源端交换机根据缓存的所述第一数据流发送的新流请求消 息;
则所述处理器, 具体用于根据所述接收器接收到的所述新流请求消息获 取所述第一数据流的源 IP地址和所述第一数据流的目的 IP地址; 并根据所 述第一数据流的源 IP地址和所述第一数据流的目的 IP地址确定所述第一数 据流的所述源域网络和所述目的域网络。
结合第一方面的第五种可能的实施方式, 在第一方面的第六种可能的实 施方式中, 所述处理器, 具体用于生成全网路由拓扑图; 并根据所述全网路 由拓扑图确定所述第一数据流经所述源域网络路由至所述目的域网络中的所 述域间最优路由路径; 其中, 所述全网路由拓扑图包括: 所述 SDN网络中的 各个边界交换机和所述第一数据流在所述 SDN网络中的各个边界交换机之间 传输时的最优路径的路由代价。
结合第一方面的第四种可能的实施方式, 在第一方面的第七种可能的实 施方式中, 所述处理器, 还用于在所述发送器向所述第二边界交换机下发所 述第三流表项之后, 确定所述第二边界交换机到所述目的域网络中的所述目 的交换机的最优路径; 并指示所述发送器向所述第二边界交换机到所述目的 域网络中的所述目的交换机的最优路径上的所有交换机下发第五流表项, 以 使所述第二边界交换机将所述第一数据流以最短路径路由至所述第一数据流 的目的终端。
第二方面, 本发明提供一种软件定义网络的路由装置, 所述软件定义网 络 SDN包括至少两个域网络, 每个域网络包括至少一个第一交换机和至少一 个边界交换机, 所述边界交换机用于连接所述边界交换机所在的第一域网络 和所述边界交换机所在的第二域网络; 数据流通过所述边界交换机从所述第 一域网络路由至所述第二域网络; 所述路由装置包括:
第一获取模块, 用于获取源端交换机发送的第一数据流的源域网络和目 的域网络; 其中, 所述源端交换机为所述第一交换机, 所述源端交换机位于 所述源域网络;
第一确定模块, 用于确定所述第一数据流经所述源域网络路由至所述目 的域网络中的域间最优路由路径, 所述域间最优路由路径上包括至少一个边 界交换机;
第一发送模块, 用于根据所述域间最优路由路径向所述源端交换机和所 述域间最优路由路径上的边界交换机下发第一流表项, 以使所述源端交换机 根据所述第一流表项和预设的静态流表项将所述第一数据流路由至所述源域 网络的第一边界交换机, 并使得所述第一边界交换机根据所述第一流表项和 所述静态流表项将所述第一数据流路由至所述目的域网络中; 其中, 所述第 一边界交换机为所述域间最优路由路径上的第一个边界交换机。
结合第二方面, 在第二方面的第一种可能的实施方式中, 所述路由装置 还包括:
第二获取模块, 用于在所述第一发送模块根据所述域间最优路由路径向 所述源端交换机和所述域间最优路由路径上的边界交换机下发第一流表项之 前, 获取任一所述域网络中的各个交换机到该域网络中的边界交换机的域内 最优路径; 其中, 所述域内最优路径为该域网络中的各个交换机到该域网络 中的边界交换机的最短路径;
第二发送模块, 用于根据所述域内最优路径向该域网络中的各个交换机 下发所述静态流表项, 以使该域网络中的各个交换机在接收到目的 IP地址为 该域网络中的任一边界交换机的 ID的数据流时,根据所述静态流表项将该数 据流以最优路径路由至该域网络中对应的边界交换机上。
结合第二方面的第一种可能的实施方式, 在第二方面的第二种可能的实 施方式中, 所述第一流表项为第二流表项、 第三流表项、 第四流表项的其中 一种; 则所述第一发送模块, 包括:
第一发送单元, 用于向所述源端交换机下发所述第二流表项; 其中, 所 述第二流表项用于指示所述源端交换机生成第二数据流, 并指示所述源端交 换机根据所述静态流表项将所述第二数据流路由至所述第一边界交换机上; 所述第二数据流为目的 IP地址为所述第一边界交换机的 ID的所述第一数据 流。
结合第二方面的第二种可能的实施方式, 在第二方面的第三种可能的实 施方式中, 所述第一发送模块, 还包括:
判断单元, 用于判断第二边界交换机是否为所述域间最优路由路径上的 最后一个边界交换机, 获取判断结果; 其中, 所述第二边界交换机为接收到 第三数据流的所述域间最优路由路径上的任一边界交换机, 所述第三数据流 为目的 IP地址为所述域间最优路径上的任一边界交换机的 ID的所述第一数 据流;
第二发送单元, 用于根据所述判断结果确定向所述第二边界交换机下发 所述第三流表项或所述第四流表项。
结合第二方面的第三种可能的实施方式, 在第二方面的第四种可能的实 施方式中, 所述第二发送单元, 具体用于若所述判断结果为是, 则向所述第 二边界交换机下发所述第三流表项; 其中, 所述第三流表项用于指示所述第 二边界交换机执行第一更改操作; 所述第一更改操作包括: 将所述第三数据 流的目的 IP 地址更改为所述目的域网络中的所述第一数据流的目的终端的 IP地址; 若所述判断结果为否, 则向所述第二边界交换机下发所述第四流表 项; 其中, 所述第四流表项用于指示所述第二边界交换机根据所述第四流表 项和所述静态流表项执行第二更改操作, 直至所述判断单元判断所述第二边 界交换机为所述域间最优路由路径上的最后一个边界交换机为止; 其中, 所 述第二更改操作包括:将所述第三数据流的目的 IP地址更改为所述第二边界 交换机在所述域间最优路由路径上的下一跳边界交换机的 ID, 以将所述第三 数据流路由至所述下一跳边界交换机上, 并将所述下一跳边界交换机作为新 的第二边界交换机。
结合第二方面至第二方面的第四种可能的实施方式中的任一项, 在第二 方面的第五种可能的实施方式中, 所述第一获取模块, 包括:
接收单元, 用于接收所述源端交换机根据缓存的所述第一数据流发送的 新流请求消息;
获取单元,用于根据所述新流请求消息获取所述第一数据流的源 IP地址 和所述第一数据流的目的 IP地址;
第一确定单元,用于根据所述第一数据流的源 IP地址和所述第一数据流 的目的 IP地址确定所述第一数据流的所述源域网络和所述目的域网络。
结合第二方面的第五种可能的实施方式, 在第二方面的第六种可能的实 施方式中, 所述第一确定模块, 包括:
生成单元, 用于生成全网路由拓扑图;
第二确定单元, 用于根据所述全网路由拓扑图确定所述第一数据流经所 述源域网络路由至所述目的域网络中的所述域间最优路由路径; 其中, 所述 全网路由拓扑图包括: 所述 SDN网络中的各个边界交换机和所述第一数据流 在所述 SDN网络中的各个边界交换机之间传输时的最优路径的路由代价。
结合第二方面的第四种可能的实施方式, 在第二方面的第七种可能的实 施方式中, 所述路由装置还包括:
第二确定模块, 用于在所述第二发送单元向所述第二边界交换机下发所 述第三流表项之后, 确定所述第二边界交换机到所述目的域网络中的所述目 的交换机的最优路径;
第三发送模块, 用于向所述第二边界交换机到所述目的域网络中的所述 目的交换机的最优路径上的所有交换机下发第五流表项, 以使所述第二边界 交换机将所述第一数据流以最短路径路由至所述第一数据流的目的终端。
第三方面, 本发明提供一种软件定义网络的路由方法, 所述软件定义网 络 SDN包括至少两个域网络, 每个域网络包括至少一个第一交换机和至少一 个边界交换机, 所述边界交换机用于连接所述边界交换机所在的第一域网络 和所述边界交换机所在的第二域网络; 数据流通过所述边界交换机从所述第 一域网络路由至所述第二域网络; 所述路由方法包括:
控制器获取源端交换机发送的第一数据流的源域网络和目的域网络; 其 中, 所述源端交换机为所述第一交换机, 所述源端交换机位于所述源域网络; 所述控制器确定所述第一数据流经所述源域网络路由至所述目的域网络 中的域间最优路由路径,所述域间最优路由路径上包括至少一个边界交换机; 所述控制器根据所述域间最优路由路径向所述源端交换机和所述域间最 优路由路径上的边界交换机下发第一流表项, 以使所述源端交换机根据所述 第一流表项和预设的静态流表项将所述第一数据流路由至所述源域网络的第 一边界交换机, 并使得所述第一边界交换机根据所述第一流表项和所述静态 流表项将所述第一数据流路由至所述目的域网络中; 其中, 所述第一边界交 换机为所述域间最优路由路径上的第一个边界交换机。
结合第三方面, 在第三方面的第一种可能的实施方式中, 所述控制器根 据所述域间最优路由路径向所述源端交换机和所述域间最优路由路径上的边 界交换机下发第一流表项之前, 还包括:
所述控制器获取任一所述域网络中的各个交换机到该域网络中的边界交 换机的域内最优路径; 其中, 所述域内最优路径为该域网络中的各个交换机 到该域网络中的边界交换机的最短路径;
所述控制器根据所述域内最优路径向该域网络中的各个交换机下发所述 静态流表项, 以使该域网络中的各个交换机在接收到目的 IP地址为该域网络 中的任一边界交换机的 ID的数据流时,根据所述静态流表项将该数据流以最 优路径路由至该域网络中对应的边界交换机上。
结合第三方面的第一种可能的实施方式, 在第三方面的第二种可能的实 施方式中, 所述第一流表项为第二流表项、 第三流表项、 第四流表项的其中 一种; 则所述控制器根据所述域间最优路由路径向所述源端交换机下发所述 第一流表项, 具体为:
所述控制器向所述源端交换机下发所述第二流表项; 其中, 所述第二流 表项用于指示所述源端交换机生成第二数据流, 并指示所述源端交换机根据 所述静态流表项将所述第二数据流路由至所述第一边界交换机上; 所述第二 数据流为目的 IP地址为所述第一边界交换机的 ID的所述第一数据流。
结合第三方面的第二种可能的实施方式, 在第三方面的第三种可能的实 施方式中, 所述控制器根据所述域间最优路由路径向所述域间最优路由路径 上的边界交换机下发第一流表项, 具体包括:
所述控制器判断第二边界交换机是否为所述域间最优路由路径上的最后 一个边界交换机, 获取判断结果; 其中, 所述第二边界交换机为接收到第三 数据流的所述域间最优路由路径上的任一边界交换机, 所述第三数据流为目 的 IP地址为所述域间最优路径上的任一边界交换机的 ID的所述第一数据流; 所述控制器根据所述判断结果确定向所述第二边界交换机下发所述第三 流表项或所述第四流表项。
结合第三方面的第三种可能的实施方式, 在第三方面的第四种可能的实 施方式中, 所述控制器根据所述判断结果确定向所述第二边界交换机下发所 述第三流表项或所述第四流表项, 包括:
若所述判断结果为是, 则所述控制器向所述第二边界交换机下发所述第 三流表项; 其中, 所述第三流表项用于指示所述第二边界交换机执行第一更 改操作; 所述第一更改操作包括: 将所述第三数据流的目的 IP地址更改为所 述目的域网络中的所述第一数据流的目的终端的 IP地址; 若所述判断结果为否, 则所述控制器向所述第二边界交换机下发所述第 四流表项; 其中, 所述第四流表项用于指示所述第二边界交换机根据所述第 四流表项和所述静态流表项执行第二更改操作, 直至所述控制器判断所述第 二边界交换机为所述域间最优路由路径上的最后一个边界交换机为止;其中, 所述第二更改操作包括:将所述第三数据流的目的 IP地址更改为所述第二边 界交换机在所述域间最优路由路径上的下一跳边界交换机的 ID, 以将所述第 三数据流路由至所述下一跳边界交换机上, 并将所述下一跳边界交换机作为 新的第二边界交换机。
结合第三方面至第三方面的第四种可能的实施方式中的任一项, 在第三 方面的第五种可能的实施方式中, 所述控制器获取源端交换机发送的第一数 据流的源域网络和目的域网络, 包括:
所述控制器接收所述源端交换机根据缓存的所述第一数据流发送的新流 请求消息;
所述控制器根据所述新流请求消息获取所述第一数据流的源 IP 地址和 所述第一数据流的目的 IP地址;
所述控制器根据所述第一数据流的源 IP 地址和所述第一数据流的目的 IP地址确定所述第一数据流的所述源域网络和所述目的域网络。
结合第三方面的第五种可能的实施方式, 在第三方面的第六种可能的实 施方式中, 所述控制器确定所述第一数据流经所述源域网络路由至所述目的 域网络中的域间最优路由路径, 包括:
所述控制器生成全网路由拓扑图;
所述控制器根据所述全网路由拓扑图确定所述第一数据流经所述源域网 络路由至所述目的域网络中的所述域间最优路由路径; 其中, 所述全网路由 拓扑图包括:所述 SDN网络中的各个边界交换机和所述第一数据流在所述 SDN 网络中的各个边界交换机之间传输时的最优路径的路由代价。
结合第三方面的第四种可能的实施方式, 在第三方面的第七种可能的实 施方式中, 所述控制器向所述第二边界交换机下发所述第三流表项之后, 所 述路由方法还包括:
所述控制器确定所述第二边界交换机到所述目的域网络中的所述目的交 换机的最优路径; 所述控制器向所述第二边界交换机到所述目的域网络中的所述目的交换 机的最优路径上的所有交换机下发第五流表项, 以使所述第二边界交换机将 所述第一数据流以最短路径路由至所述第一数据流的目的终端。
本发明实施例提供的软件定义网络的路由方法、 装置和设备, 通过处理 器获取源端交换机发送的第一数据流的源域网络和目的域网络, 并确定第一 数据流经源域网络路由至目的域网络中的域间最优路由路径, 指示发送器根 据该域间最优路由路径向源端交换机和域间最优路由路径上的边界交换机下 发第一流表项, 使得源端交换机根据第一流表项和预设的静态流表项将第一 数据流路由至源域网络的第一边界交换机, 并使得第一边界交换机根据第一 流表项和静态流表项将第一数据流路由至目的域网络中。 本发明实施例提供 的路由设备, 通过在 SDN网络中的所有交换机上预设静态流表项, 使得在有 多条数据流流入 SDN网络时, 发送器仅需要向源端交换机和域间最优路由路 径上的边界交换机下发第一流表项, 即仅需要路由设备与源端交换机和域间 最优路由路径上的边界交换机进行信息交互, 减少了路由设备与交换机之间 的交互次数, 提高了 SDN网络的路由性能。 附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案, 下面将对 实施例或现有技术描述中所需要使用的附图作一简单地介绍, 显而易见 地, 下面描述中的附图是本发明的一些实施例, 对于本领域普通技术人员 来讲, 在不付出创造性劳动的前提下, 还可以根据这些附图获得其他的附 图。
图 1为本发明提供的传统的 SDN网络的路由示意图;
图 2为本发明提供的软件定义网络的路由设备实施例一的结构示意图; 图 3为本发明提供的 SDN网络架构示意图;
图 4为本发明提供的域网络的架构示意图;
图 5为本发明提供的软件定义网络的路由设备实施例二的结构示意图; 图 6为本发明提供的全网路由拓扑图;
图 7为本发明提供的软件定义网络的路由装置实施例一的结构示意图; 图 8为本发明提供的软件定义网络的路由装置实施例二的结构示意图; 图 9为本发明提供的软件定义网络的路由装置实施例三的结构示意图; 图 10为本发明提供的软件定义网络的路由装置实施例四的结构示意图; 图 U为本发明提供的软件定义网络的路由方法实施例一的流程示意图; 图 12为本发明提供的软件定义网络的路由方法实施例二的流程示意图; 图 13为本发明提供的软件定义网络的路由方法实施例三的流程示意图。 具体实施方式 为使本发明实施例的目的、 技术方案和优点更加清楚, 下面将结合本 发明实施例中的附图, 对本发明实施例中的技术方案进行清楚、 完整地描 述, 显然,所描述的实施例是本发明一部分实施例, 而不是全部的实施例。 基于本发明中的实施例, 本领域普通技术人员在没有作出创造性劳动前提 下所获得的所有其他实施例, 都属于本发明保护的范围。
图 2为本发明提供的软件定义网络的路由设备实施例一的结构示意图。 该路由设备 10可以为 SDN网络中的控制器,还可以集成在控制器中的硬件设 备。 该控制器为与 OpenFlow交换机通过 OpenFlow协议和安全通道连接的外 部控制器 (Control ler ) 。 该 SDN网络可以包括至少两个域网络, 每个域网 络包括至少一个第一交换机和至少一个边界交换机, 所述边界交换机用于连 接所述边界交换机所在的第一域网络和所述边界交换机所在的第二域网络; 数据流通过所述边界交换机从所述第一域网络路由至所述第二域网络。 SDN 网络可以参见图 3所示的例子 (图 3只是示意) , 该 SDN网络被划分为 4个 域网络, 分别是域网络 1 (简称域 1 ) 、 域 2、 域 3和域 4 ) 。 以域 1为例, 域 1包括 SW1和 SW2两个边界交换机, SW1为连接域 1和域 2的边界交换机, SW2为连接域 1和域 3的边界交换机。 gp, 域 1可以为 SW1所在的第一域网 络, 域 2可以为 SW1所在的第二域网络; 或, 域 1为 SW2所在的第一域网络, 域 3为 SW2所在的第二域网络。 若数据流要从域 1流进域 2内的交换机中, 则需要经过域 1 的 SW1 , 也就是说, 当数据包离开某个域时, 需要经过这个 域的某个边界交换机。
如图 2所示, 该路由设备 10包括: 处理器 11和发送器 12。 其中, 处理 器 11, 用于获取源端交换机发送的第一数据流的源域网络和目的域网络; 其 中, 所述源端交换机为所述第一交换机, 所述源端交换机位于所述源域网络; 并确定所述第一数据流经所述源域网络路由至所述目的域网络中的域间最优 路由路径, 所述域间最优路由路径上包括至少一个边界交换机; 发送器 12, 用于根据所述域间最优路由路径向所述源端交换机和所述域间最优路由路径 上的边界交换机下发第一流表项, 以使所述源端交换机根据所述第一流表项 和预设的静态流表项将所述第一数据流路由至所述源域网络的第一边界交换 机, 并使得所述第一边界交换机根据所述第一流表项和所述静态流表项将所 述第一数据流路由至所述目的域网络中; 其中, 所述第一边界交换机为所述 域间最优路由路径上的第一个边界交换机。
具体的, 上述 SDN网络对于域的划分和传统的互联网络相似, 是按照 IP地址进行的, 即将 IP地址前缀相同的网络节点 (即通信终端) 划分到 一个域中, 也就是与这些终端连接的交换机划分到一个域中, 并将这个 IP 地址前缀可以作为该域的身份标识 (Identify, 以下简称 ID ) 。 可选的, 在本发明实施例中, 边界交换机上可以不连接通信终端, 它们只转发数据 包。
以图 3为例, 某一条数据流需要从发送终端流向目的终端; 其中, 与 发送终端连接是源端交换机 (Source , 简称 SRC) , 与目的终端连接的是 目的交换机(Destination, 简称 DST) , 在源端交换机和目的交换机之间 连接有至少一个第一交换机和至少一个边界交换机, 这些交换机被划分在 不同的域中。 源端交换机也属于第一交换机, 且该源端交换机位于源域网络 中。 假设源端交换机位于域 1中, 目的交换机位于域 4中, 即此时域 1为 源域网络, 域 4为目的域网络。
源端交换机接收发送终端发送的第一数据流, 该第一数据流的源 IP 地址为发送终端的 IP地址,该第一数据流的目的 IP地址为目的终端的 IP 地址。源端交换机将所接收到的第一数据流发送给处理器 11, 使得处理器 11 根据该第一数据流获知该第一数据流的源域网络和目的域网络。 可选 的, 处理器 11 可以通过解析第一数据流获知该第一数据流的源域网络和 目的域网络。
并且, 在处理器 11 接收源端交换机发送的第一数据流之前, 处理器 11会指示发送器 12向各个域网络中的所有第一交换机和边界交换机下发 一次静态流表项, 且发送给每个交换机 (第一交换机或边界交换机) 的静 态流表项可能不同, 但是每个静态流表项的作用均是指示某一域中的所有 交换机 (第一交换机或边界交换机) 将所接收到的目的 IP地址为该域中 任一边界交换机的 ID的数据流路由至该域网络上的某一个边界交换机上, 以使该数据流可以通过该边界交换机流向下一个域网络中。 至于该数据流 会路由至该域网络上的哪一个边界交换机, 由该数据流的 IP地址对应的 边界交换机的 ID决定。
处理器 11 在确定第一数据流的源域网络和目的域网络之后, 根据自 身的一些路由算法,确定第一数据流经源域网络路由至目的域网络中的域间 最优路由路径, 该域间最优路由路径上包括至少一个边界交换机。 以图 3为 例, 即确定第一数据流从域 1流进域 4的最优路径, 处理器 11分别计算源 域网络 (域 1 ) 的边界交换机 SW1、 SW2和目的域网络 (域 4 ) 的边界交换 机 SW4、 SW5之间的路由, 得到 SW2-〉SW5是域间最优路由路径, 即第一数 据流从域 1路由至域 4的最优路径是 SW2-〉SW5的这条路径, 该域间最优 路由路径上包括了两个边界交换机。
处理器 11在确定域间最优路由路径之后, 指示发送器 12根据该域间最 优路由路径向源端交换机和该域间最优路由路径上的所有的边界交换机下发 第一流表项。 当源端交换机接收到发送器 12下发的第一流表项之后, 结合之 前发送器 12发送的静态流表项,将源端交换机上的第一数据流以最短路径路 由至源域网络的第一边界交换机上, 该第一边界交换机为上述域间最优路由 路径上的第一个边界交换机 (该第一流表项可以使得源端交换机知道将第一 数据流路由至源域网络中的哪一个边界交换机上, 静态流表项的作用是使得 源端交换机将第一数据流以最短路径路由至该边界交换机上) 。 之后, 因为 第一边界交换机之前也接收到了发送器 12发送的静态流表项和第一流表项, 第一边界交换机根据发送器 12 发送给第一边界交换机的第一流表项直接或 间接获知应该将第一数据流 (此时第一数据流的目的 IP 地址已经发生了变 化, 但因为第一数据流中的数据并未发生变化, 这里依然可以称作是第一数 据流)路由至目的域网络中的哪一个边界交换机上, 并根据之前发送器 12发 送给第一边界交换机的静态流表项将第一数据流以最短路径路由至该边界交 换机上, 从而使得第一边界交换机将第一数据流直接或间接路由至目的域网 络中。 例如, 可以参照图 3, 源端交换机根据之前发送器 12下发的静态流表项 和第一流表项将第一数据流以最短路径路由至域 1的 SW2上, 该 SW2为域间 最优路由路径上的第一边界交换机, 即是域间最优路由路径上的第一个边界 交换机; SW2可以根据之前发送器 12下发给 SW2的静态流表项和第一流表项 将第一数据流以最短路径路由至域 4的边界交换机 SW5上, 即将第一数据流 直接路由到了目的域网络中 (SW5 本身属于目的域网络) 。 可选的, 处理器 11还会计算 SW5到目的交换机的最优路径, 并根据所计算的最优路径, 指示 发送器 12向 SW5下发该最优路径对应的流表项,使得 SW5可以将第一数据流 路由至目的交换机上。
又例如, 假设第一数据流的域间最优路由路径为 SW2-〉SW3-〉SW5 (只是 一种假设),则 SW2也可以间接地将第一数据流路由至目的域网络域 4中, 即, SW2可以通过 SW3将第一数据流以最短路径路由至目的域网络域 4中。 具体为:源端交换机根据之前发送器 12下发的静态流表项和第一流表项将第 一数据流以最短路径路由至域 1的 SW2上, 该 SW2为域间最优路由路径上的 第一边界交换机, 即是域间最优路由路径上的第一个边界交换机; SW2 可以 根据之前发送器 12下发给 SW2的静态流表项和第一流表项将第一数据流以最 短路径路由至 SW3上; SW3可以根据之前发送器 12下发给 SW3的静态流表项 和第一流表项将第一数据流以最短路径路由至 SW5中, 即 SW2间接的将第一 数据流间接路由到了目的域网络中。可选的, 处理器 1 1还会计算 SW5到目的 交换机的最优路径, 并根据所计算的最优路径, 指示发送器 12向 SW5下发该 最优路径对应的流表项, 使得 SW5可以将第一数据流路由至目的交换机上。
再例如, 还有另外一种特殊的情况, 假设图 3 中的目的交换机位于域 3 中, 即域 3是目的域网络, 域 1依然为源域网络, 则 SW2是连接源域网络和 目的域网络的边界交换机, 既是域间最优路由路径上的第一个边界交换机, 也是域间最优路由路径上的最后一个边界交换机。 源端交换机依然可以根据 发送器 12下发的第一流表项获知应该将第一数据流路由至 SW2上,并根据源 端交换机上的静态流表项将第一数据流以最短路径路由至 SW2上; SW2通过 发送器 12下发给 SW2的第一流表项和静态流表项获知自己所在的域就是目的 域网络, 即此时已经将第一数据流路由到了目的域网络中。 可选的, 处理器 11还会计算 SW2到目的交换机的最优路径, 并根据所计算的最优路径, 指示 发送器 12向 SW2下发该最优路径对应的流表项,使得 SW2可以将第一数据流 路由至目的交换机上。
现有技术中, 发送终端每向目的终端发送一条数据流, 均需要路由设备 10向该数据流所在路径上的所有交换机下发流表项,当 SDN网络的规模扩大, 网络中交换机数目和流入的数据流的增多时,路由设备 10与交换机之间的交 互会变得非常频繁, 从而影响大规模 SDN网络下的路由性能。 但是, 在本发 明实施例中, 当发送终端向目的终端发送多条数据流时, 由于该 SDN网络上 的所有交换机上预设有静态流表项, 而该静态流表项用于将任一交换机上的 数据流路由至该交换机所在的域网络的边界交换机上 (且路由设备 10给 SDN 网络上的所有交换机发送静态流表项仅发送一次) , 因此本发明实施例提供 的路由设备 10在每次数据流到达交换机时,仅需要向源端交换机和域间最优 路由路径上的边界交换机下发第一流表项, 就可以将第一数据流路由至目的 域网络中, 无需再向该域间最优路由路径上的每一个交换机下发流表项, 从 而使得路由设备 10与交换机之间的交互信息减少,提高了 SDN网络的路由性 能。
本发明实施例提供的软件定义网络的路由设备, 通过处理器获取源端交 换机发送的第一数据流的源域网络和目的域网络, 并确定第一数据流经源域 网络路由至目的域网络中的域间最优路由路径, 指示发送器根据该域间最优 路由路径向源端交换机和域间最优路由路径上的边界交换机下发第一流表 项, 使得源端交换机根据第一流表项和预设的静态流表项将第一数据流路由 至源域网络的第一边界交换机, 并使得第一边界交换机根据第一流表项和静 态流表项将第一数据流路由至目的域网络中。本发明实施例提供的路由设备, 通过在 SDN网络中的所有交换机上预设静态流表项, 使得在有多条数据流流 入 SDN网络时, 发送器仅需要向源端交换机和域间最优路由路径上的边界交 换机下发第一流表项, 即仅需要路由设备与源端交换机和域间最优路由路径 上的边界交换机进行信息交互, 减少了路由设备与交换机之间的交互次数, 提高了 SDN网络的路由性能。 在上述图 2所示实施例的基础上, 作为本发明实施例的一种可能的实 施方式, 本实施例涉及的是处理器 1 1指示发送器 12向 SDN网络中的所有 交换机下发静态流表项的过程。 进一歩地, 上述处理器 11, 还用于在根据 上述域间最优路由路径向源端交换机和域间最优路由路径上的边界交换机下 发第一流表项之前, 获取任一域网络中的各个交换机到该域网络中的边界交 换机的域内最优路径; 其中, 该域内最优路径为该域网络中的各个交换机到 该域网络中的边界交换机的最短路径; 上述发送器 12, 还用于根据所述域内 最优路径向该域网络中的各个交换机下发静态流表项, 以使该域网络中的各 个交换机在接收到目的 IP地址为该域网络中的任一边界交换机的 ID的数据 流时, 根据静态流表项将所述数据流以最优路径路由至该域网络中对应的边 界交换机上。
具体的,本发明实施例提供的路由设备 10在根据上述域间最优路由路径 向源端交换机和域间最优路由路径上的边界交换机下发第一流表项之前, 还 存在一个预路由的过程。 gp, 处理器 11 利用一些路由算法, 例如
Floyd-War shall算法, 得到任一域网络中的各个交换机 (包括该域网络中的 第一交换机和边界交换机)到该域网络中的所有边界交换机的域内最优路径。 可以参见图 4所示 (图 4所示的域 1与图 3中所示的域 1相同) , 普通 SDN 交换机 S3 (即第一交换机, 可以看作是源端交换机) 到边界交换机 SW1的最 优路径为 S3-〉SW2, 边界交换机 SW1到 SW2的最优路径为 SW1-〉S2-〉SW2。
发送器 12根据处理器 11得到的域内最优路径, 向该域网络中的每一个 交换机下发相应的静态流表项,该静态流表项中的目的 IP地址为该域网络中 的某个边界交换机的 ID, 静态流表项的其它域设为通配, 同时到达该域网络 中的任一边界交换机的最优路径也决定了静态流表项动作的输出端口 (可以 参见图 4中所示的静态流表项) 。 如图 4所示, 域 1中的边界交换机 SW1和 SW2的 ID分别为 192. 168. 6. 1以及 192. 168. 6. 2。处理器 11在确定了域 1中 的域内最优路径之后, 发送器 12根据该域内最优路径向 S3下发了两条静态 流表项, 向边界交换机 SW1下发了一条静态流表项。 当 S3接收到目的 IP地 址为 192. 168. 6. 2 (即 SW2的 ID) 的数据流时, S3会根据 S3上的静态流表 项会匹配该数据流, 从而可以将数据流以最短路径路由到所对应的边界交换 机 SW2。 这里的数据流与上述实施例一的第一数据流不同点在于, 上述实施 例一的第一数据流的目的 IP地址为目的终端的 IP地址, 这里的数据流的目 的 IP地址为 SW2的 ID, 若这里的数据流与第一数据流中所携带的数据信息 相同, 则这个数据流实际上也可以称为第一数据流。
需要说明的是, 每个交换机上的静态流表项中的动作可能不一样 (即输 出数据流的端口不一样) , 目的 IP地址也有可能不一样。
另外, 处理器 11对 SDN网络的预路由过程是逐域进行的, 即处理器 11 对 SDN网络的每个域网络均会进行预路由,即处理器 11均会确定每个域网络 中的各个交换机到该域网络中的边界交换机的域内最优路径, 使得发送器 12 向该域网络中的所有交换机下发对应的静态流表项。 也就是说, 最终发送器 12会向 SDN网络中的所有交换机下发静态流表项, 且该静态流表项只下发一 次。 并且, 处理器 11进行预路由过程的目的在于, 无论是边界交换机还是第 一交换机, 当它们接收到目的 IP地址是本域内任一边界交换机的 ID的数据 流时, 由于事先存在发送器 12下发的可以匹配该数据流的静态流表项, 因此 无需请求路由设备 10, 就可以直接将接收到的数据流以最短路径路由到该域 内的边界交换机上。
本发明实施例提供的软件定义网络的路由设备, 通过处理器获取任一域 网络中的各个交换机到该域网络中的边界交换机的域内最优路径, 使得发送 器可以根据该域内最优路径向该域网络中的各个交换机下发静态流表项, 以 使该域网络中的各个交换机在接收到目的 IP 地址为该域网络中的任一边界 交换机的 ID的数据流时,根据静态流表项将该数据流以最优路径路由至该域 网络中的边界交换机上。 本发明实施例提供的路由设备, 通过在 SDN网络中 的所有交换机上预设静态流表项, 使得在有多条数据流流入 SDN网络时, 发 送器仅需要向源端交换机和域间最优路由路径上的边界交换机下发第一流表 项, 即仅需要路由设备与源端交换机和域间最优路由路径上的边界交换机进 行信息交互, 减少了路由设备交换机之间的交互次数, 提高了 SDN网络的路 由性能。 在上述实施例的基础上, 作为本发明实施例的另一种可能的实施方 式, 本实施例涉及的是路由设备 10将第一数据流路由至目的域网络中的 目的交换机的整个具体过程。 进一歩地, 上述第一流表项为第二流表项、 第三流表项、 第四流表项的其中一种; 则上述发送器 12, 具体用于向源端交 换机下发第二流表项; 其中, 该第二流表项用于指示源端交换机生成第二数 据流, 并指示源端交换机根据上述静态流表项将第二数据流路由至第一边界 交换机上; 该第二数据流为目的 IP地址为第一边界交换机的 ID的第一数据 流。 上述处理器 11, 还用于判断第二边界交换机是否为上述域间最优路由路 径上的最后一个边界交换机, 获取判断结果; 其中, 该第二边界交换机为接 收到第三数据流的域间最优路由路径上的任一边界交换机, 该第三数据流为 目的 IP地址为上述域间最优路径上的任一边界交换机的 ID的第一数据流; 并根据该判断结果确定指示发送器 12 向上述第二边界交换机下发第三流表 项或第四流表项。 更进一歩地, 上述处理器 11, 具体用于若上述判断结果为 是, 则指示发送器 12向第二边界交换机下发第三流表项; 其中, 该第三流表 项用于指示上述第二边界交换机执行第一更改操作; 该第一更改操作包括: 将第三数据流的目的 IP 地址更改为目的域网络中的所述第一数据流的目的 终端的 IP地址, 以将第三数据流路由至所述目的域网络; 若上述判断结果为 否, 则指示发送器 12向第二边界交换机下发第四流表项; 其中, 该第四流表 项用于指示第二边界交换机根据第四流表项和静态流表项执行第二更改操 作,直至所述处理器 11判断第二边界交换机为域间最优路由路径上的最后一 个边界交换机为止; 其中, 上述第二更改操作包括: 将第三数据流的目的 IP 地址更改为第二边界交换机在域间最优路由路径上的下一跳边界交换机的
ID, 以将第三数据流路由至所述下一跳边界交换机上, 并将所述下一跳边界 交换机作为新的第二边界交换机。
具体的, 处理器 11会将 SDN网络中的所有交换机 (包括第一交换机 和边界交换机) 划分到不同的域网络中, 然后处理器 11 会对每个域网络 中的交换机进行预路由的过程, 即处理器 11 会根据路由算法, 得到任一 域网络中所有交换机到该域网络中的所有边界交换机的域内最优路径, 使 得发送器 12 可以根据该域内最优路径向该域网络中的所有交换机下发静 态流表项。
当源端交换机接收到第一数据流时 (该第一数据流的目的 IP地址为 目的终端的 IP地址) , 处理器 11会根据该第一数据流获知该第一数据流 所属的源域网络和目的域网络, 并确定域间最优路由路径, 该域间最优路 由路径包括了第一数据流从源域网络流向目的域网络时所流经的所有边 界交换机。 之后, 发送器 12 向该源端交换机下发第二流表项, 使得源端交换机 可以根据该第二流表项将所接收到的第一数据流的目的 IP 地址修改为第 一边界交换机的 ID, 从而生成第二数据流, 但是第二数据流中所携带的数据 和第一数据流中所携带的数据相同, 因此, 第二数据流即就是目的 IP地址为 第一边界交换机的 ID的第一数据流。源端交换机在生成第二数据流之后, 由 于第二数据流的目的 IP地址为第一边界交换机的 ID, 且源端交换机上存在 有之前发送器 12下发给源端交换机的静态流表项,该源端交换机上的静态流 表项的目的 IP地址为源域网络中的任一边界交换机的 ID, 因此源端交换机 可以将第二数据流以最短路径路由至源域网络中的第一边界交换机上, 该第 一边界交换机为域间最优路由路径上的第一个边界交换机。
进一歩地, 处理器 11 会判断第二边界交换机是否为域间最优路由路 径上的最后一个边界交换机, 获取判断结果; 其中, 该第二边界交换机为接 收到第三数据流的域间最优路由路径上的任一边界交换机, 该第三数据流为 目的 IP地址为上述域间最优路径上的任一边界交换机的 ID的第一数据流, 也就是说上述第二数据流也属于第三数据流(第二数据流的目的 IP地址为第 一边界交换机的 ID), 相应的, 上述第一边界交换机也属于第二边界交换机。 也就是说, 当发送器 12向源端交换机发送第二流表项, 使得源端交换机将第 二数据流路由至第一边界交换机之后,处理器 11还会判断第一边界交换机是 否为域间最优路由路径上的最后一个边界交换机, 获得判断结果 (因为实际 传输时, 域间最优路由路径上可能存在只有一个边界交换机的情况, 则这个 边界交换机既是第一个边界交换机, 也是最后一个边界交换机) 。 需要说明 的是, 第二边界交换机可以是域间最优路由路径上的第一个边界交换机 (第 一边界交换机) , 也可以是域间最优路由路径上的最后一个边界交换机, 还 可以是域间最优路由路径上的第一个边界交换机和最后一个边界交换机之间 的边界交换机。
当上述判断结果为第二边界交换机为域间最优路由路径上的最后一 个边界交换机时 (实际上第二边界交换机此时就位于目的域网络中) , 则 处理器 11指示发送器 12 向第二边界交换机下发第三流表项, 使得第二边 界交换机向所接收到的第三数据流的目的 IP 地址更改为目的域网络中的目 的终端的 IP地址, 即将第三数据流转换为最初的第一数据流, 从而使得第二 边界交换机将第一数据流路由到目的域网络中。
当上述判断结果为第二边界交换机不是域间最优路由路径上的最后 一个边界交换机时, 则处理器 11指示发送器 12向第二边界交换机下发第 四流表项; 第二边界交换机在接收到第四流表项之后, 将自身所接收到的第 三数据流的目的 IP 地址更改为该第二边界交换机在域间最优路由路径上的 下一跳边界交换机的 ID, 并根据自身所存在的静态流表项将第三数据流路由 至该下一跳边界交换机上,并将下一跳边界交换机作为新的第二边界交换机。 之后,处理器 U又继续判断该新的第二边界交换机是否为域间最优路由路径 上的最后一个边界交换机,并根据判断结果指示发送器 12向该新的第二边界 交换机下发第三流表项还是第四流表项,直至处理器 11判断新的第二边界交 换机为域间最优路由路径上的最后一个边界交换机为止。 需要说明的是, 第 一边界交换机可以直接将第一数据流路由至目的域网络中, 还可以通过第二 边界交换机 (此时第二边界交换机不是域间最优路由路径上的第一个边界交 换机) 将第一数据流路由至目的域网络中。
进一歩地, 处理器 11在上述发送器 12向第二边界交换机下发所述第三 流表项之后, 即在第二边界交换机 (也可以是第一边界交换机) 将第一数据 流路由至目的域网络中后,处理器 11还会确定第二边界交换机到目的域网络 中的目的交换机的最优路径,并指示发送器 12向该最优路径上的所有交换机 (包括第一交换机和目的交换机) 下发第五流表项, 以使第二边界交换机将 第一数据流以最短路径路由至该第一数据流的目的终端, 完成该第一数据流 的跨域路由。
为了能够更好的理解本发明实施例, 在此举一个具体的例子进行说 明:
继续参照图 3,处理器 11通过计算源域网络(域 1 )的边界交换机 SW1、 SW2和目的域网络(域 4 )的边界交换机 SW4、SW5之间的路由,得到 SW2-〉SW5 是域间最优路由路径, 即第一数据流从域 1 路由至域 4 的最优路径是 SW2->SW5的这条路径, 该域间最优路由路径上包括了两个边界交换机。
第一数据流流入源端交换机, 处理器 11 向源端交换机下发第二流表 项, 该第二流表项动作是指示源端交换机将第一数据流的目的 IP地址修 改为第一边界交换机 SW2的 ID ( SW2为域间最优路由路径上的第一个边界 交换机) , 第一数据流此时成为第二数据流, 源端交换机根据发送器 12 之前发送给源端交换机的静态流表项将第二数据流以最优路径路由到 SW2 中。 同时, 处理器 11会判断 SW2是否为域间最优路由路径上的最后一个 边界交换机, 此时根据图 3, 处理器 11判断 SW2不是域间最优路由路径上 的最后一个边界交换机, 则处理器 11指示发送器 12向 SW2下发第四流表 项, 该第四流表项的动作是指示 SW2将 SW2所接收到的第二数据流 (也是 第三数据流) 的目的 IP地址更改为 SW2在域间最优路由路径上的下一跳 边界交换机的 ID , 即更改为 SW5的 ID。 因此, SW2在接收到第四流表项之 后, 将第二数据流 (也是第三数据流) 的目的 IP地址修改为 SW5的 ID, 成为新的第三数据流, 并且由于 SW2上因为预路由过程中发送器 12提前 下发给 SW2的静态流表项, 故 SW2可以根据该静态流表项该新的第三数据 流以最短路径路由到边界交换机 SW5中, 即此时 SW2已经将该新的第三数 据流路由到了目的域网络中。 之后, 处理器 11依然会判断 SW5是否为域 间最优路由路径上的最后一个边界交换机, 由于图 3中的 SW5是域间最优 路由路径上的最后一个边界交换机, 处理器 11指示发送器 12向 SW5下发 第三流表项,该第三流表项的动作是指示 SW5将新的第三数据流的目的 IP 地址改为目的域网络(域 4 ) 中的目的终端的 IP地址, 即此时该新的第三 数据流又转换为原来的第一数据流, 则第一数据流此时也已经到达目的域 网络中。
处理器 11 在第二边界交换机 (也可以是第一边界交换机) 将第一数据 流路由至目的域网络中后,处理器 11在域 4中计算 SW5到目的交换机的最优 路径,并指示发送器 12根据该最优路径向该路径上的所有交换机下发第五流 表项, 使得 SW5可以将第一数据流路由至目的交换机, 并由目的交换机路由 到目的终端上。
本发明实施例提供的软件定义网络的路由设备, 通过处理器获取源端交 换机发送的第一数据流的源域网络和目的域网络, 并确定第一数据流经源域 网络路由至目的域网络中的域间最优路由路径, 指示发送器根据该域间最优 路由路径向源端交换机和域间最优路由路径上的边界交换机下发第一流表 项, 使得源端交换机根据第一流表项和预设的静态流表项将第一数据流路由 至源域网络的第一边界交换机, 并使得第一边界交换机根据第一流表项和静 态流表项将第一数据流路由至目的域网络中。本发明实施例提供的路由设备, 通过在 SDN网络中的所有交换机上预设静态流表项, 使得在有多条数据流流 入 SDN网络时, 发送器仅需要向源端交换机和域间最优路由路径上的边界交 换机下发第一流表项, 即仅需要路由设备与源端交换机和域间最优路由路径 上的边界交换机进行信息交互, 减少了路由设备与交换机之间的交互次数, 提高了 SDN网络的路由性能。
图 5为本发明提供的软件定义网络的路由设备实施例二的结构示意图。 本实施例涉及的过程是处理器 U 根据第一数据流确定第一数据流所属的源 域网络和目的域网络的具体过程。 在上述图 2所示实施例的基础上, 进一歩 地, 该路由设备 10还包括: 接收器 13, 用于接收源端交换机根据缓存的第 一数据流发送的新流请求消息; 上述处理器 11, 具体用于根据接收器 13接 收到的所述新流请求消息获取第一数据流的源 IP 地址和第一数据流的目的 IP地址; 并根据第一数据流的源 IP地址和第一数据流的目的 IP地址确定第 一数据流的源域网络和目的域网络。
具体的, 当 SDN网络中的源端交换机接收到从发送终端发过来的第一数 据流, 其目的 IP地址是目的终端的 IP地址, 并不是某个域网络中的某个边 界交换机的 ID, 因此, 源端交换机中并没有与之匹配的静态流表项 (静态流 表项中的目的 IP地址均是边界交换机的 ID) 。 故, 与发送终端直接相连的 源端交换机将先缓存到达的第一数据流,同时产生新流请求消息(packet-in) 发往处理器 11; 处理器 11通过解析此消息, 可以得到该第一数据流的源 IP 和目的 IP地址,并根据该第一数据流的源 IP地址和第一数据流的目的 IP地 址确定第一数据流所属的源域网络和目的域网络。 如果源域网络和目的域网 络具有相同的 IP前缀, 说明发送终端和目的终端在同一个域内, 在这种情况 下对该第一数据流的路由, 可以参见现有技术。 当源域网络和目的域网络的 IP前缀不同时, 说明发送终端和目的终端不在同一个域内, 第一数据流需要 进行跨域路由。
另外, 处理器 11在之前为 SDN网络预路由的过程中, 生成了一张全 网路由拓扑图, 该全网路由拓扑图包括: SDN网络中的各个边界交换机和第 一数据流在 SDN 网络中的各个边界交换机之间传输时的最优路径的路由代 价。 对照图 3所示的 SDN网络的示意图, 图 6为图 3所对应的全网路由拓扑 图。处理器 U可以根据该全网路由拓扑图中各个边界交换机之间的路由代价 确定源域网络中的边界交换机到目的域网络中的各个边界交换机之间的路由 代价, 从而确定域间最优路由路径。 可选的, 处理器 11还可以存储该域间最 优路由路径, 当再次为相同的源域网络和目的域网络的数据流路由时, 则无 需重复计算, 直接就可以得到域间最优路由路径。
本发明实施例提供的软件定义网络的路由设备, 通过处理器获取源端交 换机发送的第一数据流的源域网络和目的域网络, 并确定第一数据流经源域 网络路由至目的域网络中的域间最优路由路径, 指示发送器根据该域间最优 路由路径向源端交换机和域间最优路由路径上的边界交换机下发第一流表 项, 使得源端交换机根据第一流表项和预设的静态流表项将第一数据流路由 至源域网络的第一边界交换机, 并使得第一边界交换机根据第一流表项和静 态流表项将第一数据流路由至目的域网络中。本发明实施例提供的路由设备, 通过在 SDN网络中的所有交换机上预设静态流表项, 使得在有多条数据流流 入 SDN网络时, 发送器仅需要向源端交换机和域间最优路由路径上的边界交 换机下发第一流表项, 即仅需要路由设备与源端交换机和域间最优路由路径 上的边界交换机进行信息交互, 减少了路由设备与交换机之间的交互次数, 提高了 SDN网络的路由性能。 图 7为本发明提供的软件定义网络的路由装置实施例一的结构示意图。 该路由装置 20可以为 SDN网络中的控制器, 还可以集成在控制器中。 该控制 器为与 OpenFlow 交换机通过 OpenFlow 协议和安全通道连接的外部控制器 (Controller ) 。 该 SDN网络可以包括至少两个域网络, 每个域网络包括至 少一个第一交换机和至少一个边界交换机, 所述边界交换机用于连接所述边 界交换机所在的第一域网络和所述边界交换机所在的第二域网络; 数据流通 过所述边界交换机从所述第一域网络路由至所述第二域网络。 SDN 网络可以 参见图 3所示的例子 (图 3只是示意) , 该 SDN网络被划分为 4个域网络, 分别是域网络 1 (简称域 1 ) 、 域 2、 域 3和域 4。 以域 1为例, 域 1包括 SW1 和 SW2两个边界交换机, SW1为连接域 1和域 2的边界交换机, SW2为连接域 1和域 3的边界交换机。 gp, 域 1可以为 SW1所在的第一域网络, 域 2可以 为 SW1所在的第二域网络; 或, 域 1为 SW2所在的第一域网络, 域 3为 SW2 所在的第二域网络。 若数据流要从域 1流进域 2内的交换机中, 则需要经过 域 1 的 SW1 , 也就是说, 当数据包离开某个域时, 需要经过这个域的某个边 界交换机。
如图 7所示, 该路由装置 20包括: 第一获取模块 21、 第一确定模块 22 和第一发送模块 23。 其中, 第一获取模块 21, 用于获取源端交换机发送的第 一数据流的源域网络和目的域网络; 其中, 所述源端交换机为所述第一交换 机, 所述源端交换机位于所述源域网络; 第一确定模块 22, 用于确定所述第 一数据流经所述源域网络路由至所述目的域网络中的域间最优路由路径, 所 述域间最优路由路径上包括至少一个边界交换机; 第一发送模块 23, 用于根 据所述域间最优路由路径向所述源端交换机和所述域间最优路由路径上的边 界交换机下发第一流表项, 以使所述源端交换机根据所述第一流表项和预设 的静态流表项将所述第一数据流路由至所述源域网络的第一边界交换机, 并 使得所述第一边界交换机根据所述第一流表项和所述静态流表项将所述第一 数据流路由至所述目的域网络中; 其中, 所述第一边界交换机为所述域间最 优路由路径上的第一个边界交换机。
具体的, 上述 SDN网络对于域的划分和传统的互联网络相似, 是按照 IP地址进行的, 即将 IP地址前缀相同的网络节点 (即通信终端) 划分到 一个域中, 也就是与这些终端连接的交换机划分到一个域中, 并将这个 IP 地址前缀可以作为该域的 ID标识。 可选的, 在本发明实施例中, 边界交 换机上可以不连接通信终端, 它们只转发数据包。
以图 3为例, 某一条数据流需要从发送终端流向目的终端; 其中, 与 发送终端连接是源端交换机, 与目的终端连接的是目的交换机, 在源端交 换机和目的交换机之间连接有至少一个第一交换机和至少一个边界交换 机, 这些交换机被划分在不同的域中。 源端交换机也属于第一交换机, 且 该源端交换机位于源域网络中。 假设源端交换机位于域 1 中, 目的交换机 位于域 4中, 即此时域 1为源域网络, 域 4为目的域网络。
源端交换机接收发送终端发送的第一数据流, 该第一数据流的源 IP 地址为发送终端的 IP地址,该第一数据流的目的 IP地址为目的终端的 IP 地址。源端交换机将所接收到的第一数据流发送给第一获取模块 21, 使得 第一获取模块 21 根据该第一数据流获知该第一数据流的源域网络和目的 域网络。 可选的, 第一获取模块 21 可以通过解析第一数据流获知该第一 数据流的源域网络和目的域网络。
并且, 在第一获取模块 21 接收源端交换机发送的第一数据流之前, 路由装置 20会向各个域网络中的所有第一交换机和边界交换机下发一次 静态流表项, 且发送给每个交换机 (第一交换机或边界交换机) 的静态流 表项可能不同, 但是每个静态流表项的作用均是指示某一域中的所有交换 机 (第一交换机或边界交换机) 将所接收到的目的 IP地址为该域中任一 边界交换机的 ID 的数据流路由至该域网络上的某一个边界交换机上, 以 使该数据流可以通过该边界交换机流向下一个域网络中。 至于该数据流会 路由至该域网络上的哪一个边界交换机, 由该数据流的 IP地址对应的边 界交换机的 ID决定。
第一确定模块 22在第一获取模块 21获取到第一数据流的源域网络和 目的域网络之后, 根据自身的一些路由算法, 确定第一数据流经源域网络 路由至目的域网络中的域间最优路由路径, 该域间最优路由路径上包括至少 一个边界交换机。 以图 3为例, 即确定第一数据流从域 1流进域 4的最优路 径, 第一确定模块 22分别计算源域网络 (域 1 ) 的边界交换机 SW1、 SW2 和目的域网络(域 4 )的边界交换机 SW4、 SW5之间的路由, 得到 SW2-〉SW5 是域间最优路由路径, 即第一数据流从域 1 路由至域 4 的最优路径是 SW2->SW5的这条路径, 该域间最优路由路径上包括了两个边界交换机。
第一确定模块 22在确定域间最优路由路径之后, 指示第一发送模块 23 根据该域间最优路由路径向源端交换机和该域间最优路由路径上的所有的边 界交换机下发第一流表项。当源端交换机接收到第一发送模块 23下发的第一 流表项之后, 结合之前路由装置 20发送的静态流表项, 将源端交换机上的第 一数据流以最短路径路由至源域网络的第一边界交换机上, 该第一边界交换 机为上述域间最优路由路径上的第一个边界交换机 (该第一流表项可以使得 源端交换机知道将第一数据流路由至源域网络中的哪一个边界交换机上, 静 态流表项的作用是使得源端交换机将第一数据流以最短路径路由至该边界交 换机上) 。 之后, 因为第一边界交换机之前也接收到了路由装置 20发送的静 态流表项和第一流表项,第一边界交换机根据第一发送模块 23发送给第一边 界交换机的第一流表项直接或间接获知应该将第一数据流 (此时第一数据流 的目的 IP地址已经发生了变化, 但因为第一数据流中的数据并未发生变化, 这里依然可以称作是第一数据流) 路由至目的域网络中的哪一个边界交换机 上,并根据之前路由装置 20发送给第一边界交换机的静态流表项将第一数据 流以最短路径路由至该边界交换机上, 从而使得第一边界交换机将第一数据 流直接或间接路由至目的域网络中。
例如, 可以参照图 3, 源端交换机根据之前路由装置 20下发的静态流表 项和第一发送模块 23下发的第一流表项将第一数据流以最短路径路由至域 1 的 SW2上, 该 SW2为域间最优路由路径上的第一边界交换机, 即是域间最优 路由路径上的第一个边界交换机; SW2可以根据之前路由装置 20下发给 SW2 的静态流表项和第一流表项将第一数据流以最短路径路由至域 4的边界交换 机 SW5上, 即将第一数据流直接路由到了目的域网络中 (SW5本身属于目的 域网络) 。 可选的, 路由装置 20还会计算 SW5到目的交换机的最优路径, 并 根据所计算的最优路径向 SW5下发该最优路径对应的流表项, 使得 SW5可以 将第一数据流路由至目的交换机上。
又例如, 假设第一数据流的域间最优路由路径为 SW2-〉SW3-〉SW5 (只是 一种假设),则 SW2也可以间接地将第一数据流路由至目的域网络域 4中, 即, SW2可以通过 SW3将第一数据流以最短路径路由至目的域网络域 4中。 具体为:源端交换机根据之前路由装置 20下发的静态流表项和第一发送模块 23下发的第一流表项将第一数据流以最短路径路由至域 1的 SW2上, 该 SW2 为域间最优路由路径上的第一边界交换机, 即是域间最优路由路径上的第一 个边界交换机; SW2可以根据之前路由装置 20下发给 SW2的静态流表项和第 一发送模块 23下发的第一流表项将第一数据流以最短路径路由至 SW3上; SW3 可以根据之前路由装置 20下发给 SW3的静态流表项和第一发送模块 23下发 的第一流表项将第一数据流以最短路径路由至 SW5中, 即 SW2间接的将第一 数据流间接路由到了目的域网络中。可选的, 路由装置 20还会计算 SW5到目 的交换机的最优路径, 并根据所计算的最优路径向 SW5下发该最优路径对应 的流表项, 使得 SW5可以将第一数据流路由至目的交换机上。
再例如, 还有另外一种特殊的情况, 假设图 3 中的目的交换机位于域 3 中, 即域 3是目的域网络, 域 1依然为源域网络, 则 SW2是连接源域网络和 目的域网络的边界交换机, 既是域间最优路由路径上的第一个边界交换机, 也是域间最优路由路径上的最后一个边界交换机。 源端交换机依然可以根据 第一发送模块 23下发的第一流表项获知应该将第一数据流路由至 SW2上,并 根据源端交换机上的静态流表项将第一数据流以最短路径路由至 SW2上; SW2 通过第一发送模块 23下发给 SW2的第一流表项和路由装置 20下发的静态流 表项获知自己所在的域就是目的域网络, 即此时已经将第一数据流路由到了 目的域网络中。可选的,路由装置 20还会计算 SW2到目的交换机的最优路径, 并根据所计算的最优路径向 SW2下发该最优路径对应的流表项, 使得 SW2可 以将第一数据流路由至目的交换机上。
现有技术中, 发送终端每向目的终端发送一条数据流, 均需要路由装置 20向该数据流所在路径上的所有交换机下发流表项,当 SDN网络的规模扩大, 网络中交换机数目和流入的数据流的增多时,路由装置 20与交换机之间的交 互会变得非常频繁, 从而影响大规模 SDN网络下的路由性能。 但是, 在本发 明实施例中, 当发送终端向目的终端发送多条数据流时, 由于该 SDN网络上 的所有交换机上预设有静态流表项, 而该静态流表项用于将任一交换机上的 数据流路由至该交换机所在的域网络的边界交换机上 (且路由装置 20给 SDN 网络上的所有交换机发送静态流表项仅发送一次) , 因此本发明实施例提供 的路由装置 20在每次数据流到达交换机时,仅需要向源端交换机和域间最优 路由路径上的边界交换机下发第一流表项, 就可以将第一数据流路由至目的 域网络中, 无需再向该域间最优路由路径上的每一个交换机下发流表项, 从 而使得路由装置 20与交换机之间的交互信息减少,提高了 SDN网络的路由性 能。
本发明实施例提供的软件定义网络的路由装置, 通过第一获取模块获取 源端交换机发送的第一数据流的源域网络和目的域网络, 第一确定模块确定 第一数据流经源域网络路由至目的域网络中的域间最优路由路径, 并通过第 一发送模块根据该域间最优路由路径向源端交换机和域间最优路由路径上的 边界交换机下发第一流表项, 使得源端交换机根据第一流表项和预设的静态 流表项将第一数据流路由至源域网络的第一边界交换机, 并使得第一边界交 换机根据第一流表项和静态流表项将第一数据流路由至目的域网络中。 本发 明实施例提供的路由装置, 通过在 SDN网络中的所有交换机上预设静态流表 项, 使得在有多条数据流流入 SDN网络时, 第一发送模块仅需要向源端交换 机和域间最优路由路径上的边界交换机下发第一流表项, 即仅需要路由装置 与源端交换机和域间最优路由路径上的边界交换机进行信息交互, 减少了路 由装置与交换机之间的交互次数, 提高了 SDN网络的路由性能。 图 8为本发明提供的软件定义网络的路由装置实施例二的结构示意图。 在上述图 7所示实施例的基础上, 本实施例涉及的是路由装置 20通过第 二发送模块 25 向 SDN网络中的所有交换机下发静态流表项的过程。 进一 歩地, 上述装置还包括: 第二获取模块 24和第二发送模块 25。 其中, 第 二获取模块 24, 用于在所述第一发送模块 23根据上述域间最优路由路径向 源端交换机和域间最优路由路径上的边界交换机下发第一流表项之前, 获取 任一域网络中的各个交换机到该域网络中的边界交换机的域内最优路径; 其 中, 该域内最优路径为该域网络中的各个交换机到该域网络中的边界交换机 的最短路径; 第二发送模块 25, 用于根据所述域内最优路径向该域网络中的 各个交换机下发静态流表项, 以使该域网络中的各个交换机在接收到目的 IP 地址为该域网络中的任一边界交换机的 ID的数据流时,根据静态流表项将该 数据流以最优路径路由至该域网络中对应的边界交换机上。
具体的,本发明实施例提供的路由装置 20在根据上述域间最优路由路径 向源端交换机和域间最优路由路径上的边界交换机下发第一流表项之前, 还 存在一个预路由的过程。 gP, 第二获取模块 24 利用一些路由算法, 例如 Floyd-War shall算法, 得到任一域网络中的各个交换机 (包括该域网络中的 第一交换机和边界交换机)到该域网络中的所有边界交换机的域内最优路径。 可以参见错误! 未找到引用源。 所示 (图 4所示的域 1与图 3中所示的域 1 相同) , 普通 SDN交换机 S3 (即第一交换机, 可以看作是源端交换机) 到边 界交换机 SW1的最优路径为 S3-〉SW2, 边界交换机 SW1到 SW2的最优路径为 SW1->S2->SW20
第二发送模块 25根据第二获取模块 24得到的域内最优路径, 向该域网 络中的每一个交换机下发相应的静态流表项,该静态流表项中的目的 IP地址 为该域网络中的某个边界交换机的 ID, 静态流表项的其它域设为通配, 同时 到达该域网络中的任一边界交换机的最优路径也决定了静态流表项动作的输 出端口。 如错误! 未找到引用源。 所示, 域 1中的边界交换机 SW1和 SW2的 ID分别为 192. 168. 6. 1以及 192. 168. 6. 2。第二获取模块 24在确定了域 1中 的域内最优路径之后, 第二发送模块 25根据该域内最优路径向 S3下发了两 条静态流表项, 向边界交换机 SW1下发了一条静态流表项。 当 S3接收到目的 IP地址为 192. 168. 6. 2 (即 SW2的 ID) 的数据流时, S3会根据 S3上的静态 流表项会匹配该数据流, 从而可以将数据流以最短路径路由到所对应的边界 交换机 SW2。 这里的数据流与上述实施例一的第一数据流不同点在于, 上述 实施例一的第一数据流的目的 IP地址为目的终端的 IP地址, 这里的数据流 的目的 IP地址为 SW2的 ID, 若这里的数据流与第一数据流中所携带的数据 信息相同, 则这个数据流实际上也可以称为第一数据流。
需要说明的是, 每个交换机上的静态流表项中的动作可能不一样 (即输 出数据流的端口不一样) , 目的 IP地址也有可能不一样。
另外, 第二获取模块 24对 SDN网络的预路由过程是逐域进行的, 即第二 获取模块 24对 SDN网络的每个域网络均会进行预路由, 即第二获取模块 24 均会确定每个域网络中的各个交换机到该域网络中的边界交换机的域内最优 路径,使得第二发送模块 25向该域网络中的所有交换机下发对应的静态流表 项。 也就是说, 最终第二发送模块 25会向 SDN网络中的所有交换机下发静态 流表项, 且该静态流表项只下发一次。 并且, 第二获取模块 24进行预路由过 程的目的在于, 无论是边界交换机还是第一交换机, 当它们接收到目的 IP地 址是本域内任一边界交换机的 ID 的数据流时, 由于事先存在第二发送模块 25下发的可以匹配该数据流的静态流表项, 因此无需请求路由装置 20, 就可 以直接将接收到的数据流以最短路径路由到该域内的边界交换机上。
本发明实施例提供的软件定义网络的路由装置, 通过第二获取模块获取 任一域网络中的各个交换机到该域网络中的边界交换机的域内最优路径, 使 得第二发送模块可以根据该域内最优路径向该域网络中的各个交换机下发静 态流表项, 以使该域网络中的各个交换机在接收到目的 IP地址为该域网络中 的任一边界交换机的 ID的数据流时,根据静态流表项将该数据流以最优路径 路由至该域网络中的边界交换机上。 本发明实施例提供的路由装置, 通过在 SDN 网络中的所有交换机上预设静态流表项, 使得在有多条数据流流入 SDN 网络时, 第一发送模块仅需要向源端交换机和域间最优路由路径上的边界交 换机下发第一流表项, 即仅需要路由装置与源端交换机和域间最优路由路径 上的边界交换机进行信息交互, 减少了路由装置与交换机之间的交互次数, 提高了 SDN网络的路由性能。 图 9为本发明提供的软件定义网络的路由装置实施例三的结构示意图。 在上述图 8所示实施例的基础上, 本实施例涉及的是路由装置 20将第一 数据流路由至目的域网络中的目的交换机的整个具体过程。 进一歩地, 上 述第一流表项为第二流表项、 第三流表项、 第四流表项的其中一种; 则上述 第一发送模块 23, 包括: 第一发送单元 231, 用于向源端交换机下发第二流 表项; 其中, 该第二流表项用于指示源端交换机生成第二数据流, 并指示源 端交换机根据上述静态流表项将第二数据流路由至第一边界交换机上; 该第 二数据流为目的 IP地址为第一边界交换机的 ID的第一数据流;判断单元 232 用于判断第二边界交换机是否为上述域间最优路由路径上的最后一个边界交 换机, 获取判断结果; 其中, 该第二边界交换机为接收到第三数据流的域间 最优路由路径上的任一边界交换机,该第三数据流为目的 IP地址为上述域间 最优路径上的任一边界交换机的 ID的第一数据流; 第二发送单元 233, 用于 根据该判断结果确定向上述第二边界交换机下发第三流表项或第四流表项。
更进一歩地, 第二发送单元 233, 具体用于若判断单元 232 的判断结果 为是, 则向第二边界交换机下发第三流表项; 其中, 该第三流表项用于指示 上述第二边界交换机执行第一更改操作; 该第一更改操作包括: 将第三数据 流的目的 IP地址更改为目的域网络中的所述第一数据流的目的终端的 IP地 址, 以将第三数据流路由至所述目的域网络; 若判断单元 232的判断结果为 否, 则向第二边界交换机下发第四流表项; 其中, 该第四流表项用于指示第 二边界交换机根据第四流表项和静态流表项执行第二更改操作, 直至判断单 元 232判断第二边界交换机为域间最优路由路径上的最后一个边界交换机为 止; 其中, 上述第二更改操作包括: 将第三数据流的目的 IP地址更改为第二 边界交换机在域间最优路由路径上的下一跳边界交换机的 ID, 以将第三数据 流路由至所述下一跳边界交换机上, 并将所述下一跳边界交换机作为新的第 二边界交换机。
具体的, 路由装置 20会将 SDN网络中的所有交换机 (包括第一交换 机和边界交换机) 划分到不同的域网络中, 然后第二获取模块 24会对每 个域网络中的交换机进行预路由的过程, 即第二获取模块 24会根据路由 算法, 得到任一域网络中所有交换机到该域网络中的所有边界交换机的域 内最优路径, 使得第二发送模块 25 可以根据该域内最优路径向该域网络 中的所有交换机下发静态流表项。
当源端交换机接收到第一数据流时 (该第一数据流的目的 IP地址为 目的终端的 IP地址) , 第一获取模块 21会根据该第一数据流获知该第一 数据流所属的源域网络和目的域网络, 并通过第一确定模块 22 确定域间 最优路由路径, 该域间最优路由路径包括了第一数据流从源域网络流向目 的域网络时所流经的所有边界交换机。
之后, 第一发送单元 231向该源端交换机下发第二流表项, 使得源端 交换机可以根据该第二流表项将所接收到的第一数据流的目的 IP地址修 改为第一边界交换机的 ID, 从而生成第二数据流, 但是第二数据流中所携带 的数据和第一数据流中所携带的数据相同, 因此, 第二数据流即就是目的 IP 地址为第一边界交换机的 ID的第一数据流。源端交换机在生成第二数据流之 后, 由于第二数据流的目的 IP地址为第一边界交换机的 ID, 且源端交换机 上存在有之前第二发送模块 25下发给源端交换机的静态流表项,该源端交换 机上的静态流表项的目的 IP地址为源域网络中的任一边界交换机的 ID, 因 此源端交换机可以将第二数据流以最短路径路由至源域网络中的第一边界交 换机上, 该第一边界交换机为域间最优路由路径上的第一个边界交换机。
进一歩地, 判断单元 232会判断第二边界交换机是否为域间最优路由 路径上的最后一个边界交换机, 获取判断结果; 其中, 该第二边界交换机为 接收到第三数据流的域间最优路由路径上的任一边界交换机, 该第三数据流 为目的 IP地址为上述域间最优路径上的任一边界交换机的 ID的第一数据流, 也就是说上述第二数据流也属于第三数据流(第二数据流的目的 IP地址为第 一边界交换机的 ID), 相应的, 上述第一边界交换机也属于第二边界交换机。 也就是说, 当第一发送单元 231 向源端交换机发送第二流表项, 使得源端交 换机将第二数据流路由至第一边界交换机之后, 判断单元 232还会判断第一 边界交换机是否为域间最优路由路径上的最后一个边界交换机, 获得判断结 果 (因为实际传输时, 域间最优路由路径上可能存在只有一个边界交换机的 情况,则这个边界交换机既是第一个边界交换机,也是最后一个边界交换机)。 需要说明的是, 第二边界交换机可以是域间最优路由路径上的第一个边界交 换机 (第一边界交换机) , 也可以是域间最优路由路径上的最后一个边界交 换机, 还可以是域间最优路由路径上的第一个边界交换机和最后一个边界交 换机之间的边界交换机。
当上述判断结果为第二边界交换机为域间最优路由路径上的最后一 个边界交换机时 (实际上第二边界交换机此时就位于目的域网络中) , 则 第二发送单元 233 会向第二边界交换机下发第三流表项, 使得第二边界交 换机向所接收到的第三数据流的目的 IP 地址更改为目的域网络中的目的终 端的 IP地址, 即将第三数据流转换为最初的第一数据流, 从而使得第二边界 交换机将第一数据流路由到目的域网络中。
当上述判断结果为第二边界交换机不是域间最优路由路径上的最后 一个边界交换机时, 则第二发送单元 233会向第二边界交换机下发第四流 表项; 第二边界交换机在接收到第四流表项之后, 将自身所接收到的第三数 据流的目的 IP 地址更改为该第二边界交换机在域间最优路由路径上的下一 跳边界交换机的 ID, 并根据自身所存在的静态流表项将第三数据流路由至该 下一跳边界交换机上, 并将下一跳边界交换机作为新的第二边界交换机。 之 后, 判断单元 232又继续判断该新的第二边界交换机是否为域间最优路由路 径上的最后一个边界交换机, 第二发送单元会根据判断结果确定向该新的第 二边界交换机下发第三流表项还是第四流表项, 直至判断单元判断新的第二 边界交换机为域间最优路由路径上的最后一个边界交换机为止。 需要说明的 是, 第一边界交换机可以直接将第一数据流路由至目的域网络中, 还可以通 过第二边界交换机 (此时第二边界交换机不是域间最优路由路径上的第一个 边界交换机) 将第一数据流路由至目的域网络中。
本发明实施例提供的软件定义网络的路由装置, 通过第一获取模块获取 源端交换机发送的第一数据流的源域网络和目的域网络, 第一确定模块确定 第一数据流经源域网络路由至目的域网络中的域间最优路由路径, 并通过第 一发送模块根据该域间最优路由路径向源端交换机和域间最优路由路径上的 边界交换机下发第一流表项, 使得源端交换机根据第一流表项和预设的静态 流表项将第一数据流路由至源域网络的第一边界交换机, 并使得第一边界交 换机根据第一流表项和静态流表项将第一数据流路由至目的域网络中。 本发 明实施例提供的路由装置, 通过在 SDN网络中的所有交换机上预设静态流表 项, 使得在有多条数据流流入 SDN网络时, 第一发送模块仅需要向源端交换 机和域间最优路由路径上的边界交换机下发第一流表项, 即仅需要路由装置 与源端交换机和域间最优路由路径上的边界交换机进行信息交互, 减少了路 由装置与交换机之间的交互次数, 提高了 SDN网络的路由性能。
继续参照图 9,进一歩地,该路由装置 20还可以包括:第二确定模块 26, 用于在所述第二发送单元 233 向所述第二边界交换机下发所述第三流表项之 后, 确定所述第二边界交换机到所述目的域网络中的所述目的交换机的最优 路径; 第三发送模块 27, 用于向所述第二边界交换机到所述目的域网络中的 所述目的交换机的最优路径上的所有交换机下发第五流表项, 以使所述第二 边界交换机将所述第一数据流以最短路径路由至所述第一数据流的目的终 山 具体的, 在第二边界交换机 (也可以是第一边界交换机) 将第一数据流 路由至目的域网络中后,第二确定模块 26会确定第二边界交换机到目的域网 络中的目的交换机的最优路径,并通过第三发送模块 27向该最优路径上的所 有交换机 (包括第一交换机和目的交换机) 下发第五流表项, 以使第二边界 交换机将第一数据流以最短路径路由至该第一数据流的目的终端, 完成该第 一数据流的跨域路由。
为了能够更好的理解本发明实施例, 在此举一个具体的例子进行说 明:
继续参照图 3, 第一确定模块 22通过计算源域网络 (域 1 ) 的边界交 换机 SW1、 SW2和目的域网络(域 4 ) 的边界交换机 SW4、 SW5之间的路由, 得到 SW2-〉SW5是域间最优路由路径, 即第一数据流从域 1路由至域 4的 最优路径是 SW2-〉SW5 的这条路径, 该域间最优路由路径上包括了两个边 界交换机。
第一数据流流入源端交换机, 第一发送单元 231向源端交换机下发第 二流表项, 该第二流表项动作是指示源端交换机将第一数据流的目的 IP 地址修改为第一边界交换机 SW2的 ID ( SW2为域间最优路由路径上的第一 个边界交换机) , 第一数据流此时成为第二数据流, 源端交换机根据第二 发送模块 25 之前发送给源端交换机的静态流表项将第二数据流以最优路 径路由到 SW2中。 同时, 判断单元 232会判断 SW2是否为域间最优路由路 径上的最后一个边界交换机, 此时根据图 3, 判断单元 232判断 SW2不是 域间最优路由路径上的最后一个边界交换机, 则第二发送单元 233向 SW2 下发第四流表项, 该第四流表项的动作是指示 SW2将 SW2所接收到的第二 数据流 (也是第三数据流) 的目的 IP地址更改为 SW2在域间最优路由路 径上的下一跳边界交换机的 ID , 即更改为 SW5的 ID。 因此, SW2在接收到 第四流表项之后, 将第二数据流 (也是第三数据流) 的目的 IP地址修改 为 SW5的 ID , 成为新的第三数据流, 并且由于 SW2上因为预路由过程中第 二发送模块 25提前下发给 SW2的静态流表项, 故 SW2可以根据该静态流 表项该新的第三数据流以最短路径路由到边界交换机 SW5中, 即此时 SW2 已经将该新的第三数据流路由到了目的域网络中。 之后, 判断单元 232依 然会判断 SW5是否为域间最优路由路径上的最后一个边界交换机, 由于图 3中的 SW5是域间最优路由路径上的最后一个边界交换机, 则第二发送单 元 233向 SW5下发第三流表项, 该第三流表项的动作是指示 SW5将新的第 三数据流的目的 IP地址改为目的域网络(域 4 )中的目的终端的 IP地址, 即此时该新的第三数据流又转换为原来的第一数据流, 则第一数据流此时 也已经到达目的域网络中。
第二确定模块 26在第二边界交换机 (也可以是第一边界交换机) 将第 一数据流路由至目的域网络中后, 在域 4中计算 SW5到目的交换机的最优路 径,并通过第三发送模块 27根据该最优路径向该路径上的所有交换机下发第 五流表项, 使得 SW5可以将第一数据流路由至目的交换机, 并由目的交换机 路由到目的终端上。
本发明实施例提供的软件定义网络的路由装置, 通过第一获取模块获取 源端交换机发送的第一数据流的源域网络和目的域网络, 第一确定模块确定 第一数据流经源域网络路由至目的域网络中的域间最优路由路径, 并通过第 一发送模块根据该域间最优路由路径向源端交换机和域间最优路由路径上的 边界交换机下发第一流表项, 使得源端交换机根据第一流表项和预设的静态 流表项将第一数据流路由至源域网络的第一边界交换机, 并使得第一边界交 换机根据第一流表项和静态流表项将第一数据流路由至目的域网络中。 本发 明实施例提供的路由装置, 通过在 SDN网络中的所有交换机上预设静态流表 项, 使得在有多条数据流流入 SDN网络时, 第一发送模块仅需要向源端交换 机和域间最优路由路径上的边界交换机下发第一流表项, 即仅需要路由装置 与源端交换机和域间最优路由路径上的边界交换机进行信息交互, 减少了路 由装置与交换机之间的交互次数, 提高了 SDN网络的路由性能。 图 10 为本发明提供的软件定义网络的路由装置实施例四的结构示意 图。本实施例涉及的过程是第一获取模块 21根据第一数据流确定第一数据流 所属的源域网络和目的域网络的具体过程。在上述图 9所示实施例的基础上, 进一歩地, 该第一获取模块 21具体包括: 接收单元 211, 用于接收源端交换 机根据缓存的第一数据流发送的新流请求消息; 获取单元 212, 具体用于根 据接收单元 211接收到的所述新流请求消息获取第一数据流的源 IP地址和第 一数据流的目的 IP地址; 第一确定单元 213, 用于根据第一数据流的源 IP 地址和第一数据流的目的 IP地址确定第一数据流的源域网络和目的域网络。 上述第一确定模块 22具体包括: 生成单元 221, 用于生成全网路由拓扑图; 第二确定单元 222, 用于根据所述全网路由拓扑图确定所述第一数据流经所 述源域网络路由至所述目的域网络中的所述域间最优路由路径; 其中, 所述 全网路由拓扑图包括: 所述 SDN网络中的各个边界交换机和所述第一数据流 在所述 SDN网络中的各个边界交换机之间传输时的最优路径的路由代价。
具体的, 当 SDN网络中的源端交换机接收到从发送终端发过来的第一数 据流, 其目的 IP地址是目的终端的 IP地址, 并不是某个域网络中的某个边 界交换机的 ID, 因此, 源端交换机中并没有与之匹配的静态流表项 (静态流 表项中的目的 IP地址均是边界交换机的 ID) 。 故, 与发送终端直接相连的 源端交换机将先缓存到达的第一数据流,同时产生新流请求消息(packet-in) 发往第一获取模块 21; 第一获取模块 21通过解析此消息, 可以得到该第一 数据流的源 IP和目的 IP地址,并根据该第一数据流的源 IP地址和第一数据 流的目的 IP地址确定第一数据流所属的源域网络和目的域网络。如果源域网 络和目的域网络具有相同的 IP 前缀, 说明发送终端和目的终端在同一个域 内, 在这种情况下对该第一数据流的路由, 可以参见现有技术。 当源域网络 和目的域网络的 IP前缀不同时, 说明发送终端和目的终端不在同一个域内, 第一数据流需要进行跨域路由。 另外, 第一确定模块 22中的生成单元 221在第二获取模块 24之前为 SDN 网络预路由的过程中, 生成了一张全网路由拓扑图, 该全网路由拓扑 图包括: SDN 网络中的各个边界交换机和第一数据流在 SDN 网络中的各个边 界交换机之间传输时的最优路径的路由代价。 对照图 3所示的 SDN网络的示 意图, 图 6为图 3所对应的全网路由拓扑图。 第二确定单元 222可以根据该 全网路由拓扑图中各个边界交换机之间的路由代价确定源域网络中的边界交 换机到目的域网络中的各个边界交换机之间的路由代价, 从而确定域间最优 路由路径。 可选的, 生成单元 221还可以存储该域间最优路由路径, 当再次 为相同的源域网络和目的域网络的数据流路由时, 则无需重复计算, 直接就 可以得到域间最优路由路径。
本发明实施例提供的软件定义网络的路由装置, 通过第一获取模块获取 源端交换机发送的第一数据流的源域网络和目的域网络, 第一确定模块确定 第一数据流经源域网络路由至目的域网络中的域间最优路由路径, 并通过第 一发送模块根据该域间最优路由路径向源端交换机和域间最优路由路径上的 边界交换机下发第一流表项, 使得源端交换机根据第一流表项和预设的静态 流表项将第一数据流路由至源域网络的第一边界交换机, 并使得第一边界交 换机根据第一流表项和静态流表项将第一数据流路由至目的域网络中。 本发 明实施例提供的路由装置, 通过在 SDN网络中的所有交换机上预设静态流表 项, 使得在有多条数据流流入 SDN网络时, 第一发送模块仅需要向源端交换 机和域间最优路由路径上的边界交换机下发第一流表项, 即仅需要路由装置 与源端交换机和域间最优路由路径上的边界交换机进行信息交互, 减少了路 由装置与交换机之间的交互次数, 提高了 SDN网络的路由性能。
图 1 1 为本发明提供的软件定义网络的路由方法实施例一的流程示意 图。 该方法的执行主体可以是上述实施例中的路由装置或路由设备。 该 SDN 网络包括至少两个域网络, 每个域网络包括至少一个第一交换机和至少一个 边界交换机, 所述边界交换机用于连接所述边界交换机所在的第一域网络和 所述边界交换机所在的第二域网络; 数据流通过所述边界交换机从所述第一 域网络路由至所述第二域网络。 如图 11所示, 该方法包括:
S101 : 控制器获取源端交换机发送的第一数据流的源域网络和目的域网 络; 其中, 所述源端交换机为所述第一交换机, 所述源端交换机位于所述源 域网络。
S102 : 控制器确定所述第一数据流经所述源域网络路由至所述目的域网 络中的域间最优路由路径, 所述域间最优路由路径上包括至少一个边界交换 机。
S103 : 控制器根据所述域间最优路由路径向所述源端交换机和所述域间 最优路由路径上的边界交换机下发第一流表项, 以使所述源端交换机根据所 述第一流表项和预设的静态流表项将所述第一数据流路由至所述源域网络的 第一边界交换机, 并使得所述第一边界交换机根据所述第一流表项和所述静 态流表项将所述第一数据流路由至所述目的域网络中; 其中, 所述第一边界 交换机为所述域间最优路由路径上的第一个边界交换机。
本发明实施例提供的软件定义网络的路由方法的执行过程可以参加上述 路由装置或路由设备实施例的执行过程, 其实现原理和技术效果类似, 在此 不再赘述。
图 12 为本发明提供的软件定义网络的路由方法实施例二的流程示意 图。 在上述图 11所示实施例的基础上, 即在 S103之前, 该方法还包括:
S201 : 控制器获取任一所述域网络中的各个交换机到该域网络中的边界 交换机的域内最优路径; 其中, 所述域内最优路径为该域网络中的各个交换 机到该域网络中的边界交换机的最短路径。
需要说明的是, S201可以在 S101之前, 还可以在 S102之后执行, 只要 S201在 S103之前执行即可, 图 12只是一种示意。
S202: 控制器根据所述域内最优路径向该域网络中的各个交换机下发所 述静态流表项, 以使该域网络中的各个交换机在接收到目的 IP地址为该域网 络中的任一边界交换机的 ID的数据流时,根据所述静态流表项将该数据流以 最优路径路由至该域网络中对应的边界交换机上。
本发明实施例提供的软件定义网络的路由方法的执行过程可以参加上述 路由装置或路由设备实施例的执行过程, 其实现原理和技术效果类似, 在此 不再赘述。
进一歩地, 上述第一流表项为第二流表项、 第三流表项、 第四流表项的 其中一种, 则上述 S103具体包括: 控制器向所述源端交换机下发所述第二流 表项; 其中, 所述第二流表项用于指示所述源端交换机生成第二数据流, 并 指示所述源端交换机根据所述静态流表项将所述第二数据流路由至所述第一 边界交换机上; 所述第二数据流为目的 IP地址为所述第一边界交换机的 ID 的所述第一数据流。
更进一歩地, 上述 S103还可以包括: 控制器判断第二边界交换机是否为 所述域间最优路由路径上的最后一个边界交换机, 获取判断结果; 其中, 所 述第二边界交换机为接收到第三数据流的所述域间最优路由路径上的任一边 界交换机,所述第三数据流为目的 IP地址为所述域间最优路径上的任一边界 交换机的 ID的所述第一数据流;所述控制器根据所述判断结果确定向所述第 二边界交换机下发所述第三流表项或所述第四流表项。
更进一歩地, 上述 S103还可以包括: 若所述判断结果为是, 则所述控制 器向所述第二边界交换机下发所述第三流表项; 其中, 所述第三流表项用于 指示所述第二边界交换机执行第一更改操作; 所述第一更改操作包括: 将所 述第三数据流的目的 IP 地址更改为所述目的域网络中的所述第一数据流的 目的终端的 IP地址; 若所述判断结果为否, 则所述控制器向所述第二边界交 换机下发所述第四流表项; 其中, 所述第四流表项用于指示所述第二边界交 换机根据所述第四流表项和所述静态流表项执行第二更改操作, 直至所述控 制器判断所述第二边界交换机为所述域间最优路由路径上的最后一个边界交 换机为止; 其中, 所述第二更改操作包括: 将所述第三数据流的目的 IP地址 更改为所述第二边界交换机在所述域间最优路由路径上的下一跳边界交换机 的 ID, 以将所述第三数据流路由至所述下一跳边界交换机上, 并将所述下一 跳边界交换机作为新的第二边界交换机。
本发明实施例提供的软件定义网络的路由方法的执行过程可以参加上述 路由装置或路由设备实施例的执行过程, 其实现原理和技术效果类似, 在此 不再赘述。
进一歩地, 上述 S101具体包括: 控制器接收所述源端交换机根据缓存 的所述第一数据流发送的新流请求消息; 控制器根据所述新流请求消息获取 所述第一数据流的源 IP地址和所述第一数据流的目的 IP地址; 控制器根据 所述第一数据流的源 IP地址和所述第一数据流的目的 IP地址确定所述第一 数据流的所述源域网络和所述目的域网络。
进一歩地, 上述 S102具体包括: 控制器生成全网路由拓扑图; 所述控制 器根据所述全网路由拓扑图确定所述第一数据流经所述源域网络路由至所述 目的域网络中的所述域间最优路由路径; 其中, 所述全网路由拓扑图包括: 所述 SDN网络中的各个边界交换机和所述第一数据流在所述 SDN网络中的各 个边界交换机之间传输时的最优路径的路由代价。
本发明实施例提供的软件定义网络的路由方法的执行过程可以参加上述 路由装置或路由设备实施例的执行过程, 其实现原理和技术效果类似, 在此 不再赘述。
图 13为本发明提供的软件定义网络的路由方法实施例三的流程示意图。 在上述图 12所示实施例的基础上, 即在 S103之后, 该方法还包括:
S301 : 控制器确定所述第二边界交换机到所述目的域网络中的所述目的 交换机的最优路径。
S302 : 控制器向所述第二边界交换机到所述目的域网络中的所述目的交 换机的最优路径上的所有交换机下发第五流表项, 以使所述第二边界交换机 将所述第一数据流以最短路径路由至所述第一数据流的目的终端。
本发明实施例提供的软件定义网络的路由方法的执行过程可以参加上述 路由装置或路由设备实施例的执行过程, 其实现原理和技术效果类似, 在此 不再赘述。
本领域普通技术人员可以理解: 实现上述方法实施例的全部或部分歩骤 可以通过程序指令相关的硬件来完成, 前述的程序可以存储于一计算机可读 取存储介质中, 该程序在执行时, 执行包括上述方法实施例的歩骤; 而前述 的存储介质包括: R0M、 RAM, 磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是: 以上各实施例仅用以说明本发明的技术方案, 而非对 其限制; 尽管参照前述各实施例对本发明进行了详细的说明, 本领域的普通 技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改, 或者对其中部分或者全部技术特征进行等同替换; 而这些修改或者替换, 并 不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (22)

  1. 权 利 要 求 书
    1、 一种软件定义网络的路由设备, 其特征在于, 所述软件定义网络 SDN 包括至少两个域网络, 每个域网络包括至少一个第一交换机和至少一个边界 交换机, 所述边界交换机用于连接所述边界交换机所在的第一域网络和所述 边界交换机所在的第二域网络; 数据流通过所述边界交换机从所述第一域网 络路由至所述第二域网络; 所述路由设备包括:
    处理器, 用于获取源端交换机发送的第一数据流的源域网络和目的域网 络; 其中, 所述源端交换机为所述第一交换机, 所述源端交换机位于所述源 域网络; 并确定所述第一数据流经所述源域网络路由至所述目的域网络中的 域间最优路由路径, 所述域间最优路由路径上包括至少一个边界交换机; 发送器, 用于根据所述域间最优路由路径向所述源端交换机和所述域间 最优路由路径上的边界交换机下发第一流表项, 以使所述源端交换机根据所 述第一流表项和预设的静态流表项将所述第一数据流路由至所述源域网络的 第一边界交换机, 并使得所述第一边界交换机根据所述第一流表项和所述静 态流表项将所述第一数据流路由至所述目的域网络中; 其中, 所述第一边界 交换机为所述域间最优路由路径上的第一个边界交换机。
  2. 2、 根据权利要求 1所述的路由设备, 其特征在于, 所述处理器, 还用于 在根据所述域间最优路由路径向所述源端交换机和所述域间最优路由路径上 的边界交换机下发第一流表项之前, 获取任一所述域网络中的各个交换机到 该域网络中的边界交换机的域内最优路径; 其中, 所述域内最优路径为该域 网络中的各个交换机到该域网络中的边界交换机的最短路径;
    所述发送器, 还用于根据所述域内最优路径向该域网络中的各个交换机 下发所述静态流表项, 以使该域网络中的各个交换机在接收到目的 IP地址为 该域网络中的任一边界交换机的 ID的数据流时,根据所述静态流表项将该数 据流以最优路径路由至该域网络中对应的边界交换机上。
  3. 3、 根据权利要求 2所述的路由设备, 其特征在于, 所述第一流表项为第 二流表项、 第三流表项、 第四流表项的其中一种; 则所述发送器, 具体用于 向所述源端交换机下发所述第二流表项; 其中, 所述第二流表项用于指示所 述源端交换机生成第二数据流, 并指示所述源端交换机根据所述静态流表项 将所述第二数据流路由至所述第一边界交换机上; 所述第二数据流为目的 IP 地址为所述第一边界交换机的 ID的所述第一数据流。
  4. 4、 根据权利要求 3所述的路由设备, 其特征在于, 所述处理器, 还用于 判断第二边界交换机是否为所述域间最优路由路径上的最后一个边界交换 机, 获取判断结果; 其中, 所述第二边界交换机为接收到第三数据流的所述 域间最优路由路径上的任一边界交换机,所述第三数据流为目的 IP地址为所 述域间最优路径上的任一边界交换机的 ID的所述第一数据流;并根据所述判 断结果确定指示所述发送器向所述第二边界交换机下发所述第三流表项或所 述第四流表项。
    5、 根据权利要求 4所述的路由设备, 其特征在于, 所述处理器, 具体用 于若所述判断结果为是, 则指示所述发送器向所述第二边界交换机下发所述 第三流表项; 其中, 所述第三流表项用于指示所述第二边界交换机执行第一 更改操作; 所述第一更改操作包括: 将所述第三数据流的目的 IP地址更改为 所述目的域网络中的所述第一数据流的目的终端的 IP地址;若所述判断结果 为否, 则指示所述发送器向所述第二边界交换机下发所述第四流表项; 其中, 所述第四流表项用于指示所述第二边界交换机根据所述第四流表项和所述静 态流表项执行第二更改操作, 直至所述处理器判断所述第二边界交换机为所 述域间最优路由路径上的最后一个边界交换机为止; 其中, 所述第二更改操 作包括:将所述第三数据流的目的 IP地址更改为所述第二边界交换机在所述 域间最优路由路径上的下一跳边界交换机的 ID, 以将所述第三数据流路由至 所述下一跳边界交换机上, 并将所述下一跳边界交换机作为新的第二边界交 换机。
  5. 6、 根据权利要求 1-5任一项所述的路由设备, 其特征在于, 所述路由设 备还包括: 接收器; 所述接收器, 用于接收所述源端交换机根据缓存的所述 第一数据流发送的新流请求消息;
    则所述处理器, 具体用于根据所述接收器接收到的所述新流请求消息获 取所述第一数据流的源 IP地址和所述第一数据流的目的 IP地址; 并根据所 述第一数据流的源 IP地址和所述第一数据流的目的 IP地址确定所述第一数 据流的所述源域网络和所述目的域网络。
  6. 7、 根据权利要求 6所述的路由设备, 其特征在于, 所述处理器, 具体用 于生成全网路由拓扑图; 并根据所述全网路由拓扑图确定所述第一数据流经 所述源域网络路由至所述目的域网络中的所述域间最优路由路径; 其中, 所 述全网路由拓扑图包括: 所述 SDN网络中的各个边界交换机和所述第一数据 流在所述 SDN网络中的各个边界交换机之间传输时的最优路径的路由代价。
  7. 8、 根据权利要求 5所述的路由设备, 其特征在于, 所述处理器, 还用于 在所述发送器向所述第二边界交换机下发所述第三流表项之后, 确定所述第 二边界交换机到所述目的域网络中的所述目的交换机的最优路径; 并指示所 述发送器向所述第二边界交换机到所述目的域网络中的所述目的交换机的最 优路径上的所有交换机下发第五流表项, 以使所述第二边界交换机将所述第 一数据流以最短路径路由至所述第一数据流的目的终端。
  8. 9、 一种软件定义网络的路由装置, 其特征在于, 所述软件定义网络 SDN 包括至少两个域网络, 每个域网络包括至少一个第一交换机和至少一个边界 交换机, 所述边界交换机用于连接所述边界交换机所在的第一域网络和所述 边界交换机所在的第二域网络; 数据流通过所述边界交换机从所述第一域网 络路由至所述第二域网络; 所述路由装置包括:
    第一获取模块, 用于获取源端交换机发送的第一数据流的源域网络和目 的域网络; 其中, 所述源端交换机为所述第一交换机, 所述源端交换机位于 所述源域网络;
    第一确定模块, 用于确定所述第一数据流经所述源域网络路由至所述目 的域网络中的域间最优路由路径, 所述域间最优路由路径上包括至少一个边 界交换机;
    第一发送模块, 用于根据所述域间最优路由路径向所述源端交换机和所 述域间最优路由路径上的边界交换机下发第一流表项, 以使所述源端交换机 根据所述第一流表项和预设的静态流表项将所述第一数据流路由至所述源域 网络的第一边界交换机, 并使得所述第一边界交换机根据所述第一流表项和 所述静态流表项将所述第一数据流路由至所述目的域网络中; 其中, 所述第 一边界交换机为所述域间最优路由路径上的第一个边界交换机。
  9. 10、 根据权利要求 9所述的路由装置, 其特征在于, 所述路由装置还包 括:
    第二获取模块, 用于在所述第一发送模块根据所述域间最优路由路径向 所述源端交换机和所述域间最优路由路径上的边界交换机下发第一流表项之 前, 获取任一所述域网络中的各个交换机到该域网络中的边界交换机的域内 最优路径; 其中, 所述域内最优路径为该域网络中的各个交换机到该域网络 中的边界交换机的最短路径;
    第二发送模块, 用于根据所述域内最优路径向该域网络中的各个交换机 下发所述静态流表项, 以使该域网络中的各个交换机在接收到目的 IP地址为 该域网络中的任一边界交换机的 ID的数据流时,根据所述静态流表项将该数 据流以最优路径路由至该域网络中对应的边界交换机上。
  10. 11、 根据权利要求 10所述的路由装置, 其特征在于, 所述第一流表项为 第二流表项、 第三流表项、 第四流表项的其中一种; 则所述第一发送模块, 包括:
    第一发送单元, 用于向所述源端交换机下发所述第二流表项; 其中, 所 述第二流表项用于指示所述源端交换机生成第二数据流, 并指示所述源端交 换机根据所述静态流表项将所述第二数据流路由至所述第一边界交换机上; 所述第二数据流为目的 IP地址为所述第一边界交换机的 ID的所述第一数据 流。
  11. 12、根据权利要求 11所述的路由装置,其特征在于,所述第一发送模块, 还包括:
    判断单元, 用于判断第二边界交换机是否为所述域间最优路由路径上的 最后一个边界交换机, 获取判断结果; 其中, 所述第二边界交换机为接收到 第三数据流的所述域间最优路由路径上的任一边界交换机, 所述第三数据流 为目的 IP地址为所述域间最优路径上的任一边界交换机的 ID的所述第一数 据流;
    第二发送单元, 用于根据所述判断结果确定向所述第二边界交换机下发 所述第三流表项或所述第四流表项。
    13、根据权利要求 12所述的路由装置,其特征在于,所述第二发送单元, 具体用于若所述判断结果为是, 则向所述第二边界交换机下发所述第三流表 项; 其中, 所述第三流表项用于指示所述第二边界交换机执行第一更改操作; 所述第一更改操作包括:将所述第三数据流的目的 IP地址更改为所述目的域 网络中的所述第一数据流的目的终端的 IP地址; 若所述判断结果为否, 则向 所述第二边界交换机下发所述第四流表项; 其中, 所述第四流表项用于指示 所述第二边界交换机根据所述第四流表项和所述静态流表项执行第二更改操 作, 直至所述判断单元判断所述第二边界交换机为所述域间最优路由路径上 的最后一个边界交换机为止; 其中, 所述第二更改操作包括: 将所述第三数 据流的目的 IP 地址更改为所述第二边界交换机在所述域间最优路由路径上 的下一跳边界交换机的 ID, 以将所述第三数据流路由至所述下一跳边界交换 机上, 并将所述下一跳边界交换机作为新的第二边界交换机。
  12. 14、 根据权利要求 9-13任一项所述的路由装置, 其特征在于, 所述第一 获取模块, 包括:
    接收单元, 用于接收所述源端交换机根据缓存的所述第一数据流发送的 新流请求消息;
    获取单元,用于根据所述新流请求消息获取所述第一数据流的源 IP地址 和所述第一数据流的目的 IP地址;
    第一确定单元,用于根据所述第一数据流的源 IP地址和所述第一数据流 的目的 IP地址确定所述第一数据流的所述源域网络和所述目的域网络。
  13. 15、根据权利要求 14所述的路由装置,其特征在于,所述第一确定模块, 包括:
    生成单元, 用于生成全网路由拓扑图;
    第二确定单元, 用于根据所述全网路由拓扑图确定所述第一数据流经所 述源域网络路由至所述目的域网络中的所述域间最优路由路径; 其中, 所述 全网路由拓扑图包括: 所述 SDN网络中的各个边界交换机和所述第一数据流 在所述 SDN网络中的各个边界交换机之间传输时的最优路径的路由代价。
  14. 16、 根据权利要求 13所述的路由装置, 其特征在于, 所述路由装置还包 括:
    第二确定模块, 用于在所述第二发送单元向所述第二边界交换机下发所 述第三流表项之后, 确定所述第二边界交换机到所述目的域网络中的所述目 的交换机的最优路径;
    第三发送模块, 用于向所述第二边界交换机到所述目的域网络中的所述 目的交换机的最优路径上的所有交换机下发第五流表项, 以使所述第二边界 交换机将所述第一数据流以最短路径路由至所述第一数据流的目的终端。
  15. 17、一种软件定义网络的路由方法, 其特征在于, 所述软件定义网络 SDN 包括至少两个域网络, 每个域网络包括至少一个第一交换机和至少一个边界 交换机, 所述边界交换机用于连接所述边界交换机所在的第一域网络和所述 边界交换机所在的第二域网络; 数据流通过所述边界交换机从所述第一域网 络路由至所述第二域网络; 所述路由方法包括:
    控制器获取源端交换机发送的第一数据流的源域网络和目的域网络; 其 中, 所述源端交换机为所述第一交换机, 所述源端交换机位于所述源域网络; 所述控制器确定所述第一数据流经所述源域网络路由至所述目的域网络 中的域间最优路由路径,所述域间最优路由路径上包括至少一个边界交换机; 所述控制器根据所述域间最优路由路径向所述源端交换机和所述域间最 优路由路径上的边界交换机下发第一流表项, 以使所述源端交换机根据所述 第一流表项和预设的静态流表项将所述第一数据流路由至所述源域网络的第 一边界交换机, 并使得所述第一边界交换机根据所述第一流表项和所述静态 流表项将所述第一数据流路由至所述目的域网络中; 其中, 所述第一边界交 换机为所述域间最优路由路径上的第一个边界交换机。
  16. 18、 根据权利要求 17所述的路由方法, 其特征在于, 所述控制器根据所 述域间最优路由路径向所述源端交换机和所述域间最优路由路径上的边界交 换机下发第一流表项之前, 还包括:
    所述控制器获取任一所述域网络中的各个交换机到该域网络中的边界交 换机的域内最优路径; 其中, 所述域内最优路径为该域网络中的各个交换机 到该域网络中的边界交换机的最短路径;
    所述控制器根据所述域内最优路径向该域网络中的各个交换机下发所述 静态流表项, 以使该域网络中的各个交换机在接收到目的 IP地址为该域网络 中的任一边界交换机的 ID的数据流时,根据所述静态流表项将该数据流以最 优路径路由至该域网络中对应的边界交换机上。
  17. 19、 根据权利要求 18所述的路由方法, 其特征在于, 所述第一流表项为 第二流表项、 第三流表项、 第四流表项的其中一种; 则所述控制器根据所述 域间最优路由路径向所述源端交换机下发所述第一流表项, 具体为:
    所述控制器向所述源端交换机下发所述第二流表项; 其中, 所述第二流 表项用于指示所述源端交换机生成第二数据流, 并指示所述源端交换机根据 所述静态流表项将所述第二数据流路由至所述第一边界交换机上; 所述第二 数据流为目的 IP地址为所述第一边界交换机的 ID的所述第一数据流。
  18. 20、 根据权利要求 19所述的路由方法, 其特征在于, 所述控制器根据所 述域间最优路由路径向所述域间最优路由路径上的边界交换机下发第一流表 项, 具体包括:
    所述控制器判断第二边界交换机是否为所述域间最优路由路径上的最后 一个边界交换机, 获取判断结果; 其中, 所述第二边界交换机为接收到第三 数据流的所述域间最优路由路径上的任一边界交换机, 所述第三数据流为目 的 IP地址为所述域间最优路径上的任一边界交换机的 ID的所述第一数据流; 所述控制器根据所述判断结果确定向所述第二边界交换机下发所述第三 流表项或所述第四流表项。
  19. 21、 根据权利要求 20所述的路由方法, 其特征在于, 所述控制器根据所 述判断结果确定向所述第二边界交换机下发所述第三流表项或所述第四流表 项, 包括:
    若所述判断结果为是, 则所述控制器向所述第二边界交换机下发所述第 三流表项; 其中, 所述第三流表项用于指示所述第二边界交换机执行第一更 改操作; 所述第一更改操作包括: 将所述第三数据流的目的 IP地址更改为所 述目的域网络中的所述第一数据流的目的终端的 IP地址;
    若所述判断结果为否, 则所述控制器向所述第二边界交换机下发所述第 四流表项; 其中, 所述第四流表项用于指示所述第二边界交换机根据所述第 四流表项和所述静态流表项执行第二更改操作, 直至所述控制器判断所述第 二边界交换机为所述域间最优路由路径上的最后一个边界交换机为止;其中, 所述第二更改操作包括:将所述第三数据流的目的 IP地址更改为所述第二边 界交换机在所述域间最优路由路径上的下一跳边界交换机的 ID, 以将所述第 三数据流路由至所述下一跳边界交换机上, 并将所述下一跳边界交换机作为 新的第二边界交换机。
  20. 22、 根据权利要求 17-21任一项所述的路由方法, 其特征在于, 所述控 制器获取源端交换机发送的第一数据流的源域网络和目的域网络, 包括: 所述控制器接收所述源端交换机根据缓存的所述第一数据流发送的新流 请求消息;
    所述控制器根据所述新流请求消息获取所述第一数据流的源 IP 地址和 所述第一数据流的目的 IP地址;
    所述控制器根据所述第一数据流的源 IP 地址和所述第一数据流的目的 IP地址确定所述第一数据流的所述源域网络和所述目的域网络。
  21. 23、 根据权利要求 22所述的路由方法, 其特征在于, 所述控制器确定所 述第一数据流经所述源域网络路由至所述目的域网络中的域间最优路由路 径, 包括:
    所述控制器生成全网路由拓扑图;
    所述控制器根据所述全网路由拓扑图确定所述第一数据流经所述源域网 络路由至所述目的域网络中的所述域间最优路由路径; 其中, 所述全网路由 拓扑图包括:所述 SDN网络中的各个边界交换机和所述第一数据流在所述 SDN 网络中的各个边界交换机之间传输时的最优路径的路由代价。
  22. 24、 根据权利要求 21所述的路由方法, 其特征在于, 所述控制器向所述 第二边界交换机下发所述第三流表项之后, 所述路由方法还包括:
    所述控制器确定所述第二边界交换机到所述目的域网络中的所述目的交 换机的最优路径;
    所述控制器向所述第二边界交换机到所述目的域网络中的所述目的交换 机的最优路径上的所有交换机下发第五流表项, 以使所述第二边界交换机将 所述第一数据流以最短路径路由至所述第一数据流的目的终端。
CN201480000518.3A 2014-04-10 2014-04-10 软件定义网络的路由方法、装置和设备 Active CN105264844B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/CN2014/075041 WO2015154275A1 (zh) 2014-04-10 2014-04-10 软件定义网络的路由方法、装置和设备

Publications (2)

Publication Number Publication Date
CN105264844A true CN105264844A (zh) 2016-01-20
CN105264844B CN105264844B (zh) 2018-10-30

Family

ID=54287117

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480000518.3A Active CN105264844B (zh) 2014-04-10 2014-04-10 软件定义网络的路由方法、装置和设备

Country Status (2)

Country Link
CN (1) CN105264844B (zh)
WO (1) WO2015154275A1 (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106888163A (zh) * 2017-03-31 2017-06-23 中国科学技术大学苏州研究院 软件定义网络中基于网络域划分的路由方法
CN109150713A (zh) * 2018-08-22 2019-01-04 赛尔网络有限公司 基于bgp+源终端和目的终端之间的路由方法及路由监测方法
CN111030928A (zh) * 2018-10-10 2020-04-17 中国移动通信有限公司研究院 一种路由信息确定方法、节点、系统和存储介质
CN112491724A (zh) * 2020-12-09 2021-03-12 福建农林大学 基于SDN的IPv4及IPv6的管理系统及方法
CN113300963A (zh) * 2021-04-07 2021-08-24 北京邮电大学 软件定义网络转发路径无环路更新方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106059933A (zh) * 2016-05-30 2016-10-26 杭州华三通信技术有限公司 软件定义网络sdn网络维护的方法和装置
CN106375214B (zh) * 2016-11-10 2019-05-17 北京邮电大学 一种基于sdn的层次化路由路径确定方法及装置
TWI643478B (zh) * 2016-12-15 2018-12-01 新加坡商雲網科技新加坡有限公司 Sdn控制器及網路服務動態部署系統及方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103200122A (zh) * 2013-03-05 2013-07-10 中兴通讯股份有限公司 一种软件定义网络中组表的处理方法、系统和控制器
US20130266007A1 (en) * 2012-04-10 2013-10-10 International Business Machines Corporation Switch routing table utilizing software defined network (sdn) controller programmed route segregation and prioritization
CN103401794A (zh) * 2013-07-17 2013-11-20 国家电网公司 一种面向大规模应用的软件定义网络控制优化方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20130266007A1 (en) * 2012-04-10 2013-10-10 International Business Machines Corporation Switch routing table utilizing software defined network (sdn) controller programmed route segregation and prioritization
CN103200122A (zh) * 2013-03-05 2013-07-10 中兴通讯股份有限公司 一种软件定义网络中组表的处理方法、系统和控制器
CN103401794A (zh) * 2013-07-17 2013-11-20 国家电网公司 一种面向大规模应用的软件定义网络控制优化方法

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106888163A (zh) * 2017-03-31 2017-06-23 中国科学技术大学苏州研究院 软件定义网络中基于网络域划分的路由方法
CN109150713A (zh) * 2018-08-22 2019-01-04 赛尔网络有限公司 基于bgp+源终端和目的终端之间的路由方法及路由监测方法
CN109150713B (zh) * 2018-08-22 2021-11-09 赛尔网络有限公司 基于bgp+源终端和目的终端之间的路由方法及路由监测方法
CN111030928A (zh) * 2018-10-10 2020-04-17 中国移动通信有限公司研究院 一种路由信息确定方法、节点、系统和存储介质
CN112491724A (zh) * 2020-12-09 2021-03-12 福建农林大学 基于SDN的IPv4及IPv6的管理系统及方法
CN112491724B (zh) * 2020-12-09 2022-12-09 福建农林大学 基于SDN的IPv4及IPv6的管理系统及方法
CN113300963A (zh) * 2021-04-07 2021-08-24 北京邮电大学 软件定义网络转发路径无环路更新方法

Also Published As

Publication number Publication date
WO2015154275A1 (zh) 2015-10-15
CN105264844B (zh) 2018-10-30

Similar Documents

Publication Publication Date Title
CN105264844A (zh) 软件定义网络的路由方法、装置和设备
JP4388667B2 (ja) ラベルスイッチングネットワークにおけるパス設定装置および方法
CN104937888B (zh) 用于在多个交换机中使用的扩展的链路聚合(lag)
US9246814B2 (en) Communication system, control apparatus, communication node, and communication method
WO2015109284A1 (en) Multi-domain source routed forwarding based on collaborating network controllers
JP2005269500A (ja) パケット転送装置
WO2018036254A1 (zh) 报文转发方法及装置
US11632322B2 (en) Preferred path route graphs in a network
WO2012090993A1 (ja) 情報システム、制御装置、通信方法およびプログラム
JPWO2011118566A1 (ja) パケット転送システム、制御装置、転送装置、処理規則の作成方法およびプログラム
JP6323547B2 (ja) 通信システム、制御装置、通信制御方法、および、プログラム
WO2021000848A1 (zh) 一种报文转发方法、报文处理方法及装置
CN104283791A (zh) 一种sdn网络中的三层拓扑确定方法和设备
JP2014533001A (ja) 転送装置の制御装置、転送装置の制御方法、通信システムおよびプログラム
CN100556048C (zh) 一种向量数据通信网上建立向量连接的方法
CN106817299A (zh) 软件定义网络的表项生成方法和装置以及报文转发方法
CN106464447A (zh) 误码信息传递方法和网络设备及通信系统
JPWO2006059787A1 (ja) オーバーレイリンク計算装置およびその計算方法ならびにプログラム
KR20180058594A (ko) Sdn/tap 어플리케이션
CN111464440A (zh) 一种通信方法及装置
JP5950019B2 (ja) 通信システム、統合コントローラ、パケット転送方法及びプログラム
US11343153B2 (en) BGP logical topology generation method, and device
US8532101B2 (en) System and method for providing co-signaled return label switch paths
KR20180058592A (ko) Sdn 제어기
WO2006098028A1 (ja) ネットワークシステム及びネットワーク接続機器

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant