首页> 中国专利> 一种软件定义网络中交换转发设备端口状态管理的方法和装置

一种软件定义网络中交换转发设备端口状态管理的方法和装置

摘要

本发明公开了一种软件定义网络中交换转发设备端口状态管理的方法,该方法包括:交换转发设备检测到本地的某个端口的第一状态在up状态和down状态之间变化时,如果该端口的第二状态当前为非抑制状态,则向OpenFlow控制器发送通告报文上报该端口当前的第一状态,如果该端口的第二状态当前处于抑制状态,不向OpenFlow控制器发送上报该端口当前第一状态的通告报文。基于同样的发明构思,本发明还提出一种装置,在端口状态频繁变化时,能够避免交换转发设备频繁向OpenFlow控制器发送通告报文,造成OpenFlow控制器频繁计算下发流表项的情况发生,从而有效的节省了网络中的带宽资源。

著录项

  • 公开/公告号CN104426693A

    专利类型发明专利

  • 公开/公告日2015-03-18

    原文格式PDF

  • 申请/专利权人 杭州华三通信技术有限公司;

    申请/专利号CN201310378581.8

  • 发明设计人 王芳;王伟;

    申请日2013-08-27

  • 分类号H04L12/24;H04L12/26;

  • 代理机构北京德琦知识产权代理有限公司;

  • 代理人谢安昆

  • 地址 310053 浙江省杭州市高新技术产业开发区之江科技工业园六和路310号华为杭州生产基地

  • 入库时间 2023-12-17 04:44:31

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-02-09

    授权

    授权

  • 2017-05-10

    著录事项变更 IPC(主分类):H04L12/24 变更前: 变更后: 申请日:20130827

    著录事项变更

  • 2015-04-22

    实质审查的生效 IPC(主分类):H04L12/24 申请日:20130827

    实质审查的生效

  • 2015-03-18

    公开

    公开

说明书

技术领域

本发明涉及通信技术领域,特别涉及一种软件定义网络中交换转发设备端口状态 管理的方法和装置。

背景技术

开放流(OpenFlow)是一种软件定义网络(Software Defined Network,SDN)架 构中定义控制器和转发层的软件应用程序接口,可以基于硬件来控制网络数据的转 发,与传统网络的最大区别,是将控制平面和网络转发平面分离开来,网络转发平面 的设备将不再拥有控制功能,将控制平面交给独立于转发平面之外的操作系统,特性 则是基于操作系统进行定制。OpenFlow将网络控制功能单独分离出来并逻辑集中到 控制软件上,以实现SDN中控制平面和转发平面的分离以及网络控制和管理的集 中,是定义控制器和转发层的软件应用程序接口,可基于硬件来控制网络数据的转 发。

每个被OpenFlow技术虚拟化出来的网络由交换转发设备(如OpenFlow交换 机)、OpenFlow控制器、安全通道(Secure Channel)组成。

OpenFlow交换机:接收OpenFlow控制器下发的流表项,并根据流表项进行简单 的报文处理;当任一端口状态由激活(up)状态和宕机(down)状态之间的转换时, 向OpenFlow控制器发送通告报文上报该端口的状态。

OpenFlow控制器:是虚拟网的控制中心,根据用户的配置或者动态运行的协议 生成流表项下发到OpenFlow交换机,可能由实验程序生成流表项,也可以静态配置 流表项。OpenFlow控制器上可能运行实验程序、第三方开发的软件等。

安全通道:在OpenFlow交换机和OpenFlow控制器之间通过预先配置的安全通道 通信,该安全通道基于SSL建立。

当OpenFlow交换机上的端口出现物理状态变化时,OpenFlow交换机会向 OpenFlow控制器发送通告报文上报端口状态,OpenFlow控制器会根据端口状态进行 协议计算,重新下发消息给交换机进行流表项的修改或删除等操作。若端口的物理状 态频繁变化,交换机会频繁向OpenFlow控制器发送通告报文上报端口状态,导致 OpenFlow控制器计算繁忙,OpenFlow交换机上的流表项项也频繁变化。

发明内容

有鉴于此,本发明提供一种软件定义网络中交换转发设备端口状态管理的方法和 装置,在端口状态频繁变化时,能够避免交换转发设备频繁向OpenFlow控制器发送 通告报文,造成OpenFlow控制器频繁计算下发流表项的情况发生,从而有效的节省 了网络中的带宽资源。

为解决上述技术问题,本发明的技术方案是这样实现的:

一种软件定义网络中交换转发设备端口状态管理的方法,所述方法包括:

交换转发设备检测到本地任一端口的第一状态发生变化时,若确定该端口的第二 状态当前为非抑制状态,向开放流OpenFlow控制器发送通告报文上报该端口当前的 第一状态;

若确定该端口的第二状态当前为抑制状态,不向OpenFlow控制器发送上报该端 口当前第一状态的通告报文;

当第二状态由非抑制状态变为抑制状态时,向OpenFlow控制器发送通告报文上 报该端口的第二状态当前为抑制状态;

接收OpenFlow控制器下发的流表项时,删除该端口对应的原流表项,并根据新 下发的流表项将该端口的流量通过备份端口转发到备份设备上,使备份设备根据 OpenFlow控制器下发的流表项转发该流量,其中,所述新下发的流表项为OpenFlow 控制器在通告报文上报该端口的第二状态当前为抑制状态时下发的,以使该端口的流 量通过备份端口转发到备份设备,所述备份设备上OpenFlow控制器下发的流表项为 OpenFlow控制器在通告报文上报该端口的第二状态当前为抑制状态时下发的,以使 备份设备转发该交换转发设备通过备份端口发来的流量;

其中,第一状态为宕机down状态或激活up状态,第二状态为非抑制状态或抑制 状态,且第二状态通过第一状态变化的次数确定。

一种装置,可应用于软件定义网络中交换转发设备,该装置包括:检测单元、确 定单元、收发单元和处理单元;

所述检测单元,用于检测本地任一端口的第一状态是否发生变化;

所述确定单元,用于当所述检测单元检测到本地任一端口的第一状态发生变化 时,确定该端口当前的第二状态;

所述收发单元,用于若所述确定单元确定该端口的第二状态当前为非抑制状态, 向OpenFlow控制器发送通告报文上报该端口当前的第一状态;若确定该端口的第二 状态当前为抑制状态,不向OpenFlow控制器发送上报该端口当前第一状态的通告报 文;其中,第一状态为宕机down状态或激活up状态,第二状态为非抑制状态或抑制 状态,且第二状态通过第一状态的变化次数确定;用于当所述确定单元确定该端口的 第二状态由非抑制状态变为抑制状态时,向OpenFlow控制器发送通告报文上报该端 口的第二状态当前为抑制状态;用于接收OpenFlow控制器下发的流表项;

所述处理单元,用于当所述收发单元接收到OpenFlow控制器下发的流表项时, 删除该端口对应的原流表项,并根据新下发的流表项将该端口的流量通过备份端口转 发到备份设备上,使备份设备根据OpenFlow控制器下发的流表项转发该流量,其 中,所述新下发的流表项为OpenFlow控制器在通告报文上报该端口的第二状态当前 为抑制状态时下发的,以使该端口的流量通过备份端口转发到备份设备,所述备份设 备上OpenFlow控制器下发的流表项为OpenFlow控制器在通告报文上报该端口的第二 状态当前为抑制状态时下发的,以使备份设备转发该交换转发设备通过备份端口发来 的流量。

一种装置,可应用于软件定义网络中控制设备,该装置包括:接收单元和处理单 元;

所述接收单元,用于接收通告报文;

所述处理单元,用于当所述接收单元接收到交换转发设备在检测到本地任一端口 的第一状态发生变化,且该端口的第二状态当前为非抑制状态时,而发送的上报该端 口当前的第一状态的通告报文时,根据该端口的第一状态进行处理;当所述接收单元 接收到该交换转发设备的该端口的第二状态由非抑制状态变为抑制状态时,发送的上 报该端口的第二状态当前为抑制状态的通告报文时,为该端口新下发流表项,使所述 交换转发设备删除该端口上原流表项,并根据新下发的流表项将该端口的流量通过备 份端口转发到备份设备上;同时向所述备份设备下发流表项,以使该备份设备转发通 过所述交换转发设备的备份端口发来的流量;其中,第一状态为宕机down状态或激 活up状态,第二状态为非抑制状态或抑制状态,且第二状态通过第一状态变化的次 数确定。

综上所述,本发明通过交换转发设备检测到本地的某个端口的第一状态在up状 态和down状态之间变化时,如果该端口的第二状态当前为非抑制状态,则向 OpenFlow控制器发送通告报文上报该端口当前的第一状态,如果该端口的第二状态 当前处于抑制状态,不向OpenFlow控制器发送上报该端口当前第一状态的通告报 文。在端口状态频繁变化时,能够避免交换转发设备频繁向OpenFlow控制器发送通 告报文,造成OpenFlow控制器频繁计算下发流表项的情况发生,从而有效的节省了 网络中的带宽资源。

附图说明

图1为本发明具体实施例中端口状态管理方法流程示意图;

图2为本发明具体实施例中应用于交换转发设备的装置结构示意图;

图3为本发明具体实施例中应用于控制设备的装置结构示意图。

具体实施方式

为使本发明的目的、技术方案及优点更加清楚明白,以下参照附图并举实施 例,对本发明所述方案作进一步地详细说明。

本发明实施例中提出一种软件定义网络中交换转发设备端口状态管理的方法: 交换转发设备检测到本地的某个端口的第一状态在up状态和down状态之间变化 时,如果该端口的第二状态当前为非抑制状态,则向OpenFlow控制器发送通告报 文上报该端口当前的第一状态,如果该端口的第二状态当前处于抑制状态,不向 OpenFlow控制器发送上报该端口当前第一状态的通告报文。在端口状态频繁变化 时,能够避免交换转发设备频繁向OpenFlow控制器发送通告报文,造成OpenFlow 控制器频繁计算下发流表项的情况发生,从而有效的节省了网络中的带宽资源。

在本发明具体实施例中,端口的状态包括两类状态,分别为第一状态和第二状 态,其中,第一状态为down状态或up状态,第二状态为非抑制状态或抑制状态, 且第二状态由第一状态的变化次数确定。具体确定方法为:

第一状态变化一次,第一状态的变化次数增加一次。第一状态的变化次数小于 预设抑制值时,第二状态为非抑制状态;第一状态的变化次数达到预设抑制值时, 第二状态由非抑制状态变为抑制状态。

第一状态的变化次数,可以包括第一状态由up状态变为down状态,以及由 down状态变为up状态的次数;也可以仅包括第一状态由up状态变为down状态 的次数。

参见图1,图1为本发明具体实施例中端口状态管理方法流程示意图。具体步 骤为:

步骤101,交换转发设备检测到本地任一端口的第一状态发生变化。

本步骤中第一状态发生变化,包括第一状态由up状态到down状态,以及由 down状态到up状态之间的变化。

在具体实现时,该交换转发设备可以为OpenFlow交换机。

步骤102,该交换转发设备若确定该端口的第二状态当前为非抑制状态,向 OpenFlow控制器发送通告报文上报该端口当前的第一状态,结束本流程。

该交换转发设备在检测到该端口的第一状态发生变化时,无论是第一状态由 up状态变为down状态,还是由down状态变为up状态,但是第一状态变换后, 该端口的第二状态当前为非抑制状态时,都同现有实现,向OpenFlow控制器发送 通告报文,告知OpenFlow控制器该端口的第一状态当前为up状态还是down状态。

这样,OpenFlow控制器接收到交换转发设备上报的通告报文时,根据上报的 第一状态为该交换转发设备的该端口下发流表项等处理,具体处理过程同现有实 现,这里不再详细描述。

步骤103,该交换转发设备若确定该端口的第二状态当前为抑制状态,不向 OpenFlow控制器发送上报该端口当前第一状态的通告报文。

该交换转发设备在检测到第一状态发生变化时,无论是第一状态由up状态变 为down状态,还是由down状态变为up状态,但是第一状态变化后,该端口的第 二状态当前为抑制状态时,不再向OpenFlow控制器发送上报该端口当前第一状态 的通告报文。

这样,OpenFlow控制器就不知道该交换转发设备的该端口状态发生变化,不 会重新下发流表项,这样就能够避免交换转发设备频繁向OpenFlow控制器发送通 告报文,造成OpenFlow控制器频繁计算下发流表项的情况发生,从而有效的节省 了网络中的带宽资源。

步骤101中当交换转发设备检测到本地任一端口的第一状态发生变化时,还需 确定该次第一状态发生变化时,是否影响了第二状态的变化,即该次第一状态的 变化前后,该端口的第二状态是否变化。即如果该次第一状态的变化使第二状态 由非抑制状态变为抑制状态时,需要通告给OpenFlow控制器。具体处理如下:

当该端口的第二状态由非抑制状态变为抑制状态时,向OpenFlow控制器发送 通告报文上报该端口的第二状态当前为抑制状态。

OpenFlow控制器接收到通告报文上报的该端口的第二状态当前为抑制状态 时,为该交换转发设备下发新的流表项,使该交换转发设备删除该端口上旧的流 表项,并将该端口上的流量通过备份端口转发给备份设备,同时给备份端口下发 流表项,转发该交换转发设备通过备份端口转发来的流量。

该交换转发设备接收到OpenFlow控制器下发的流表项时,将该端口对应的原 流表项删除,并根据下发的流表项将该端口的流量通过备份端口转发到备份设备 上,使备份设备根据OpenFlow控制器下发的流表项转发该流量。其中,所述新下 发的流表项为OpenFlow控制器在通告报文上报该端口的第二状态当前为抑制状 态时下发的,以使该端口的流量通过备份端口转发到备份设备,所述备份设备上 OpenFlow控制器下发的流表项为OpenFlow控制器在通告报文上报该端口的第二 状态当前为抑制状态时下发的,以使备份设备转发该交换转发设备通过备份端口 发来的流量。

该交换转发设备的该端口的第二状态由非抑制状态进入抑制状态时,即该端口 的该次第一状态变化前,第二状态为非抑制状态,且该次第一状态变化后,第二 状态为抑制状态时,该交换转发设备对该端口当前的第一状态的变化次数通过预 设衰减算法进行衰减,当衰减后该端口的第一状态的变化次数不大于预设启用值 时,该端口的第二状态由抑制状态变为非抑制状态。

对于预设衰减算法,使用者可以根据实际使用进行配置,如满足半衰期规律的 衰减算法。每经过一个半衰期,第一状态的变化次数变为前一半衰期第一状态的 变化次数的一半。因此,

每秒之后,Ns=(1/2)(1/T)×Nq,其中,Ns为1秒后剩余的第一状态的变 化次数,T为衰减周期,Nq为1秒前第一状态的变化次数。

该交换转发设备在该衰减过程中,该端口的第一状态变化时,增加该端口当前 的第一状态的变化次数。

如果该交换转发设备的该端口的第一状态变化比较频繁,第一状态的变化次数 增加的值大于衰减的值,这样第一状态的变化次数就会一直增加,在具体实现时, 若该端口当前的第一状态的变化次数达到最大预设值时,不再增加该端口当前的 第一状态的变化次数。

如果通过该预设衰减算法进行衰减,经过一定时间后,还是没能够使第一状态 的变化次数衰减到预设启用值,或小于预设启用值,即该端口的第二状态持续为 抑制状态的时间达到最大抑制时间时,继续使用预设衰减算法对该端口当前的第 一状态的变化次数进行持续衰减,直到衰减后该端口的第一状态的变化次数不大 于预设启用值,该端口的第二状态由抑制状态变为非抑制状态。且在该持续衰减 过程中,该端口的第一状态变化时,可以不增加该端口当前第一状态的变化次数。

为了保证对该端口的第一状态的变化次数的持续衰减,在最大抑制时间内能够 衰减到预设启用值,在具体实现时,配置最大预设值、最大抑制时间、衰减周期 以及预设启用值四者之间遵循如下的关系:

C=2T/D×R,其中,C为最大预设值,T为最大抑制时间,D为衰减周期,R为 预设启用值。

该交换转发设备无论在衰减时间达到最大抑制时间之前,通过衰减,使该端口 的第二状态由抑制状态变为非抑制状态,还是衰减时间达到最大抑制时间之后通 过持续衰减,使该端口的第二状态由抑制状态变为非抑制状态,都向OpenFlow控 制器发送通告报文上报该端口当前的第一状态和第二状态。

OpenFlow控制器接收到该通告报文时,确定第一状态为up状态还是down状 态,如果时up状态,为该端口下发新的流表项,使该端口的流量通过该新下发的 流表项转发流量,同时可以向备份设备发送删除对应流表项的指示,也可以不向 备份设备发送删除对应流表项的指示,备份设备上对应的表项可自己老化;如果 第一状态是down状态,不进行流表下发,维持现有的流量转发。

该交换转发设备接收到OpenFlow控制器下发的流表项时,删除该端口流量通 过备份端口转发的流表项,并根据新下发的流表项使用该端口转发流量。其中, OpenFlow控制器下发的流表项,为该OpenFlow控制器在本交换转发设备发送的 所述通告报文中该端口的第一状态为up时而下发的流表项。

本发明具体实施例还给出一种实现方式,即当该端口的第二状态由抑制状态变 为非抑制状态时,首先确定该端口的第一状态当前为up状态还是down状态。

如果该端口的第一状态当前为up状态,向OpenFlow控制器发送通告报文上 报该端口的第一状态为up状态,以及第二状态为非抑制状态。

OpenFlow控制器接收到该通告报文,获知该交换转发设备的该端口当前的第 一状态为up状态,且第二状态为非抑制状态时,获知该交换转发设备的该端口又 可以重新转发流量了,因此为该端口新下发流表项,使该端口的流量通过该新下 发的流表项转发流量,不再通过备份端口转发该端口的流量。

该交换转发设备接收到OpenFlow控制器为该端口新下发的流表项时,删除该 端口流量通过备份端口转发的流表项,并根据新下发的流表项使用该端口继续转 发流量。

如果该端口的第一状态当前为down状态,则不发送通告报文,直到该端口的 第一状态为up状态,且第二状态仍为非抑制状态时,向OpenFlow控制器发送通 告报文上报该端口的第一状态为up状态,以及第二状态为非抑制状态。

本发明具体实施例中基于同样的发明构思,还提出一种装置,可应用于软件定 义网络中的交换转发设备。参见图2,图2为本发明具体实施例中应用于交换转发 设备的装置结构示意图。该装置包括:检测单元201、确定单元202、收发单元203 和处理单元204。

检测单元201,用于检测本地任一端口的第一状态是否发生变化。

确定单元202,用于当检测单元201检测到本地任一端口的第一状态发生变化 时,确定该端口当前的第二状态。

收发单元203,用于若确定单元202确定该端口的第二状态当前为非抑制状态, 向OpenFlow控制器发送通告报文上报该端口当前的第一状态;若确定该端口的第 二状态当前为抑制状态,不向OpenFlow控制器发送上报该端口当前第一状态的通 告报文;用于当确定单元202确定该端口的第二状态由非抑制状态变为抑制状态 时,向OpenFlow控制器发送通告报文上报该端口的第二状态当前为抑制状态;用 于接收OpenFlow控制器下发的流表项,其中,第一状态为宕机down状态或激活 up状态,第二状态为非抑制状态或抑制状态,且第二状态通过第一状态的变化次 数确定。

处理单元204,用于当收发单元203接收到OpenFlow控制器下发的流表项时, 删除该端口对应的流表项,并根据新下发的流表项将该端口的流量通过备份端口 转发到备份设备上,使备份设备根据OpenFlow控制器下发的流表项转发该流量。

较佳地,该装置进一步包括:配置单元205。

配置单元205,用于配置预设衰减算法、预设启用值、最大预设值。

处理单元204,进一步用于若确定单元202确定该端口的第二状态由非抑制状 态变为抑制状态时,对该端口当前的第一状态的变化次数通过配置单元205配置 的预设衰减算法进行衰减,当衰减后该端口的第一状态的变化次数不大于配置单 元205配置的预设启用值时,该端口的第二状态由抑制状态变为非抑制状态;在 该衰减过程中,该端口的第一状态变化时,增加该端口当前的第一状态的变化次 数。

较佳地,

配置单元205,进一步用于配置最大预设抑制时间。

处理单元204,进一步用于在所述衰减过程中,当该端口的第二状态为抑制状 态的持续时间达到配置单元205配置的最大抑制时间时,继续对该端口的第一状 态的变化次数通过预设衰减算法进行持续衰减,直到衰减后该端口的第一状态的 变化次数不大于预设启用值时,该端口的第二状态由抑制状态变为非抑制状态; 在该持续衰减过程中,该端口的第一状态变化时,不增加该端口当前的第一状态 的变化次数。

较佳地,

收发单元203,进一步用于当处理单元204中该端口的第二状态由抑制状态变 为非抑制状态时,向OpenFlow控制器发送通告报文上报该端口当前的第一状态和 第二状态。

处理单元204,进一步用于当收发单元203接收到OpenFlow控制器下发的流 表项时,删除该端口流量通过备份端口转发的流表项,并根据新下发的流表项使 用该端口转发流量;其中,所述OpenFlow控制器下发的流表项,为该OpenFlow 控制器在本交换转发设备发送的所述通告报文中该端口的第一状态为up时而下发 的流表项。

较佳地,

确定单元202,进一步用于当处理单元204中该端口的第二状态由抑制状态变 为非抑制状态时,收发单元203向OpenFlow控制器发送通告报文上报该端口当前 的第一状态和第二状态,之前,确定该端口的第一状态当前是否为up状态,如果 是,触发收发单元203执行向OpenFlow控制器发送通告报文上报该端口当前的第 一状态和第二状态的操作;否则,等到该端口的第一状态变为up状态,且第二状 态为非抑制状态时,触发收发单元203执行向OpenFlow控制器发送通告报文上报 该端口当前的第一状态和第二状态的操作。

基于同样的发明构思,本申请还提出一种装置,可应用于软件定义网络中控制 设备。参见图3,图3为本发明具体实施例中应用于控制设备的装置结构示意图。 该装置包括:接收单元301和处理单元302。

接收单元301,用于接收通告报文。

处理单元302,用于当接收单元301接收到交换转发设备在检测到本地任一端 口的第一状态发生变化,且该端口的第二状态当前为非抑制状态时,而发送的上 报该端口当前的第一状态的通告报文时,根据该端口的第一状态进行处理;当接 收单元301接收到该交换转发设备的该端口的第二状态由非抑制状态变为抑制状 态时,发送的上报该端口的第二状态当前为抑制状态的通告报文时,为该端口新 下发流表项,使所述交换转发设备删除该端口上原流表项,并根据新下发的流表 项将该端口的流量通过备份端口转发到备份设备上;同时向所述备份设备下发流 表项,以使该备份设备转发通过所述交换转发设备的备份端口发来的流量;其中, 第一状态为宕机down状态或激活up状态,第二状态为非抑制状态或抑制状态, 且第二状态通过第一状态变化的次数确定。

较佳地,

处理单元302,进一步用于当接收单元301接收到该交换转发设备在检测到该 端口的第二状态由抑制状态变为非抑制状态时,而发送的上报该端口当前的第一 状态和第二状态的通告报文时,若确定第一状态为up状态,则为该端口下发流表 项,使该交换转发设备删除该端口流量通过备份端口转发的流表项,并根据新下 发的流表项转发该端口的流量;若确定该端口的第一状态为down状态,则不为该 端口下发新的流表项。

上述实施例的单元可以集成于一体,也可以分离部署;可以合并为一个单元, 也可以进一步拆分成多个子单元。

综上所述,本发明具体实施例中交换转发设备检测到本地的某个端口的第一 状态在up状态和down状态之间变化时,如果该端口的第二状态当前为非抑制状 态,则向OpenFlow控制器发送通告报文上报该端口当前的第一状态,如果该端 口的第二状态当前处于抑制状态,不向OpenFlow控制器发送上报该端口当前第 一状态的通告报文。在端口状态频繁变化时,能够避免交换转发设备频繁向 OpenFlow控制器发送通告报文,造成OpenFlow控制器频繁计算下发流表项的情 况发生,从而有效的节省了网络中的带宽资源。

以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。 凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本 发明的保护范围之内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号