软件定义网络的路由方法、装置和设备与流程

文档序号:15779421发布日期:2018-10-30 21:15阅读:301来源:国知局

本发明涉及通信技术,尤其涉及一种软件定义网络的路由方法、装置和设备。



背景技术:

交换机作为网络中的关键节点,在现有设备提供商的垄断之下开放的接口十分有限,网络中的很多开放想法和协议都无法进行测试与验证。OpenFlow作为一套开放接口、支持多控制的交换协议应运而生,OpenFlow将传统的物理固定的硬件改造成为动态可变的软件可定义网络(Software Defined Network,以下简称SDN),实现控制面与转发面的分离。采用OpenFlow协议的交换机(即OpenFlow交换机)设置有流表(Flow Table)、安全通道(Secure Channel)和OpenFlow协议。交换机通过OpenFlow协议经过一个安全通道连接到外部控制器(Controller),控制器对流表进行查询和管理。其中,交换机的流表中存储着查找、转发或统计数据时所需要最核心的信息。该流表包括至少一个流表项,每个流表项包括匹配域字段(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为本发明提供的软件定义网络的路由装置实施例四的结构示意图;

图11为本发明提供的软件定义网络的路由方法实施例一的流程示意图;

图12为本发明提供的软件定义网络的路由方法实施例二的流程示意图;

图13为本发明提供的软件定义网络的路由方法实施例三的流程示意图。

具体实施方式

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

图2为本发明提供的软件定义网络的路由设备实施例一的结构示意图。该路由设备10可以为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的边界交换机。即,域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间接的将第一数据流间接路由到了目的域网络中。可选的,处理器11还会计算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所示实施例的基础上,作为本发明实施例的一种可能的实施方式,本实施例涉及的是处理器11指示发送器12向SDN网络中的所有交换机下发静态流表项的过程。进一步地,上述处理器11,还用于在根据上述域间最优路由路径向源端交换机和域间最优路由路径上的边界交换机下发第一流表项之前,获取任一域网络中的各个交换机到该域网络中的边界交换机的域内最优路径;其中,该域内最优路径为该域网络中的各个交换机到该域网络中的边界交换机的最短路径;上述发送器12,还用于根据所述域内最优路径向该域网络中的各个交换机下发静态流表项,以使该域网络中的各个交换机在接收到目的IP地址为该域网络中的任一边界交换机的ID的数据流时,根据静态流表项将所述数据流以最优路径路由至该域网络中对应的边界交换机上。

具体的,本发明实施例提供的路由设备10在根据上述域间最优路由路径向源端交换机和域间最优路由路径上的边界交换机下发第一流表项之前,还存在一个预路由的过程。即,处理器11利用一些路由算法,例如Floyd-Warshall算法,得到任一域网络中的各个交换机(包括该域网络中的第一交换机和边界交换机)到该域网络中的所有边界交换机的域内最优路径。可以参见图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,并根据自身所存在的静态流表项将第三数据流路由至该下一跳边界交换机上,并将下一跳边界交换机作为新的第二边界交换机。之后,处理器11又继续判断该新的第二边界交换机是否为域间最优路由路径上的最后一个边界交换机,并根据判断结果指示发送器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为本发明提供的软件定义网络的路由设备实施例二的结构示意图。本实施例涉及的过程是处理器11根据第一数据流确定第一数据流所属的源域网络和目的域网络的具体过程。在上述图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所对应的全网路由拓扑图。处理器11可以根据该全网路由拓扑图中各个边界交换机之间的路由代价确定源域网络中的边界交换机到目的域网络中的各个边界交换机之间的路由代价,从而确定域间最优路由路径。可选的,处理器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的边界交换机。即,域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在根据上述域间最优路由路径向源端交换机和域间最优路由路径上的边界交换机下发第一流表项之前,还存在一个预路由的过程。即,第二获取模块24利用一些路由算法,例如Floyd-Warshall算法,得到任一域网络中的各个交换机(包括该域网络中的第一交换机和边界交换机)到该域网络中的所有边界交换机的域内最优路径。可以参见错误!未找到引用源。所示(图4所示的域1与图3中所示的域1相同),普通SDN交换机S3(即第一交换机,可以看作是源端交换机)到边界交换机SW1的最优路径为S3->SW2,边界交换机SW1到SW2的最优路径为SW1->S2->SW2。

第二发送模块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网络的路由性能。

图11为本发明提供的软件定义网络的路由方法实施例一的流程示意图。该方法的执行主体可以是上述实施例中的路由装置或路由设备。该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:控制器向所述第二边界交换机到所述目的域网络中的所述目的交换机的最优路径上的所有交换机下发第五流表项,以使所述第二边界交换机将所述第一数据流以最短路径路由至所述第一数据流的目的终端。

本发明实施例提供的软件定义网络的路由方法的执行过程可以参加上述路由装置或路由设备实施例的执行过程,其实现原理和技术效果类似,在此不再赘述。

本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。

最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1