一种软件定义网络实现方法和主控制器的制造方法

文档序号:9754278阅读:242来源:国知局
一种软件定义网络实现方法和主控制器的制造方法
【技术领域】
[0001] 本发明涉及通信领域,具体涉及一种软件定义网络实现方法和主控制器。
【背景技术】
[0002] 软件定义网络(SDN, Software Defined Network)是一种新型的网络架构,它的 设计理念是将网络的控制平面与数据转发平面进行分离,并实现可编程化控制。通常,在 SDN网络中,交换设备只负责单纯的数据转发,其硬件架构将趋向于统一化,其各个部件在 各个厂家之间趋向于通用化。而原来负责路由、安全、策略、服务质量(Q〇S,Quality of Service)、流量工程等的控制平面将由专门的SDN控制器实现。一台SDN控制器网络控制 多台SDN交换设备,SDN交换设备与SDN控制器之间通讯的协议一般是开放流(OpenFlow) 协议。一个典型的SDN网络拓扑图如图1所示,在该SDN网络中包括两个控制器,每个控制 器分别控制多个交换设备。
[0003] 在SDN网络中,由于环路的存在,极易引起广播风暴,因此,如何有效避免网络中 出现的环路,从而避免广播风暴成为亟待解决的问题。
[0004] 在传统的以太网中,为了解决网络中出现环路的问题,如图2所示,通过在交换设 备中引入生成树协议,将网络变成一个树状拓扑结构,避免环路的产生,但是这样要求每台 交换设备上运行生成树协议,需要占用交换设备的资源,而且当网络拓扑发生变化时,所有 的交换设备都需要重新计算,收敛速度比较慢。

【发明内容】

[0005] 为了解决现有存在的技术问题,本发明实施例期望提供一种软件定义网络实现方 法和主控制器。
[0006] 本发明实施例提供了一种软件定义网络SDN实现方法,所述方法包括:
[0007] 主控制器获取当前网络整体拓扑信息,并根据当前网络整体拓扑信息生成全连 通、无环路的网络拓扑图;
[0008] 主控制器根据当前网络整体拓扑信息和生成的网络拓扑图,确定需要被阻塞和/ 或需要被撤销阻塞的端口列表,并根据所述端口列表执行相应端口的阻塞或撤销阻塞处 理。
[0009] 上述方案中,所述主控制器获取当前网络整体拓扑信息包括:
[0010] 主控制器接收从控制器发送的第一网络拓扑信息,所述第一网络拓扑信息包括从 控制器控制的所有交换设备的网络拓扑信息;
[0011] 主控制器获取自身的第二网络拓扑信息,所述第二网络拓扑信息包括主控制器控 制的所有交换设备的网络拓扑信息;
[0012] 主控制器综合分析第一网络拓扑信息和第二网络拓扑信息,生成当前网络整体拓 扑信息。
[0013] 上述方案中,所述第一网络拓扑信息,包括:从控制器控制的所有交换设备的媒体 访问控制MAC地址、端口号及交换设备间的连接关系;
[0014] 所述第二网络拓扑信息,包括:主控制器控制的所有交换设备的MAC地址、端口号 及交换设备间的连接关系。
[0015] 上述方案中,所述主控制器根据当前网络整体拓扑信息生成全连通、无环路的网 络拓扑图,包括:主控制器依据生成树算法对当前网络整体拓扑信息进行分析,生成全连 通、无环路的网络拓扑图。
[0016] 上述方案中,所述主控制器根据当前网络整体拓扑信息和生成的网络拓扑图,确 定需要被阻塞和/或需要被撤销阻塞的端口列表,包括:
[0017] 主控制器根据当前网络整体拓扑信息确定当前网络整体拓扑结构,对比生成的网 络拓扑图和当前网络整体拓扑图中所有交换设备端口的连接关系,将满足以下两个条件的 端口确定为需要被阻塞的端口:
[0018] 条件1 :在生成的网络拓扑图中未相互连接;
[0019] 条件2 :在当前网络整体拓扑结构中相互连接的端口;
[0020] 将满足以下两个条件的端口确定为需要撤销阻塞的端口 :
[0021] 条件3 :在生成的网络拓扑图中相互连接;
[0022] 条件4 :在当前网络整体拓扑结构中物理上相互连接、但由于被堵塞而未相互连 接的端口。
[0023] 上述方案中,所述主控制器根据所述端口列表执行相应端口的阻塞或撤销阻塞处 理,包括:
[0024] 所述主控制器向被阻塞端口所在交换设备发送端口阻塞消息以指示所述交换设 备阻塞相应端口,所述端口阻塞消息中包括被阻塞端口的端口号,及被阻塞端口所属交换 设备的交换设备地址;和/或,
[0025] 所述主控制器向被撤销阻塞端口所在交换设备发送端口撤销阻塞消息以指示所 述交换设备撤销对相应端口的阻塞,所述端口撤销阻塞消息中包括被撤销阻塞端口的端口 号,及被撤销阻塞端口所属交换设备的交换设备地址。
[0026] 本发明实施例还提供了一种控制器,所述主控制器包括:拓扑信息获取模块、拓扑 图生成模块、分析模块及处理模块;其中,
[0027] 所述拓扑信息获取模块,用于获取当前网络整体拓扑信息;
[0028] 所述拓扑图生成模块,用于根据当前网络整体拓扑信息生成全连通、无环路的网 络拓扑图;
[0029] 所述分析模块,用于根据当前网络整体拓扑信息和生成的网络拓扑图,确定需要 被阻塞和/或需要被撤销阻塞的端口列表;
[0030] 所述处理模块,用于根据所述需要被阻塞和/或需要被撤销阻塞的端口列表执行 相应端口的阻塞和/或撤销阻塞处理。
[0031] 上述方案中,所述拓扑信息获取模块用于通过以下方式获取当前网络整体拓扑信 息:
[0032] 接收从控制器发送的第一网络拓扑信息,所述第一网络拓扑信息包括从控制器控 制的所有交换设备的网络拓扑信息;
[0033] 获取主控制器本地的第二网络拓扑信息,所述第二网络拓扑信息包括主控制器控 制的所有交换设备的网络拓扑信息;
[0034] 综合分析第一网络拓扑信息和第二网络拓扑信息,生成当前网络整体拓扑信息。
[0035] 上述方案中,所述第一网络拓扑信息,包括:从控制器控制的所有交换设备的MAC 地址、端口号及交换设备间的连接关系;
[0036] 所述第二网络拓扑信息,包括:主控制器控制的所有交换设备的MAC地址、端口号 及交换设备间的连接关系。
[0037] 上述方案中,所述拓扑图生成模块用于通过以下方式生成全连通、无环路的网络 拓扑图:
[0038] 拓扑图生成模块依据生成树算法对当前网络整体拓扑信息进行分析,生成全连 通、无环路的网络拓扑图。
[0039] 上述方案中,所述分析模块用于通过以下方式确定需要被阻塞和/或需要被撤销 阻塞的端口列表:
[0040] 根据当前网络整体拓扑信息确定当前网络整体拓扑结构,对比生成的网络拓扑图 和当前网络整体拓扑图中所有交换设备端口的连接关系,将满足以下两个条件的端口确定 为需要被阻塞的端口:
[0041] 条件1 :在生成的网络拓扑图中未相互连接;
[0042] 条件2 :在当前网络整体拓扑结构中相互连接的端口;
[0043] 将满足以下两个条件的端口确定为需要撤销阻塞的端口 :
[0044] 条件3 :在生成的网络拓扑图中相互连接;
[0045] 条件4 :在当前网络整体拓扑结构中物理上相互连接、但由于被堵塞而未相互连 接的端口。
[0046] 上述方案中,所述处理模块用于通过以下方式执行相应端口的阻塞和/或撤销阻 塞处理:
[0047] 所述处理模块向被阻塞端口所在交换设备发送端口阻塞消息以指示所述
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1