一种边界端口的识别方法和设备与流程

文档序号:12040281阅读:235来源:国知局
一种边界端口的识别方法和设备与流程
本发明涉及通信技术领域,尤其涉及一种边界端口的识别方法和设备。

背景技术:
OpenFlow(新型网络交换模型)是GENI(全球网络创新环境)的一个研究主题,用于使科研人员在现有商用网络上进行新的网络协议实验,从而使科研机构可以省去搭建实验网络的费用,并且使得实验数据来自更接近真实的环境。随着OpenFlow技术的完善,OpenFlow的应用已扩展到广域网和数据中心领域。其中,OpenFlow的思想是:分离控制平面和数据平面,二者之间使用标准协议通信;数据平面采用基于流的方式进行转发,非常灵活和通用;层次化的集中控制平面,提供开放的API(ApplicationProgrammingInterface,应用程序编程接口)供第三方开发;数据平面和控制平面支持虚拟化。如图1所示,为OpenFlow网络的组网示意图,在OpenFlow网络中,包括OpenFlow网络设备(如OpenFlow交换机)、OpenFlow控制器和安全通道。安全通道:在OpenFlow网络设备和OpenFlow控制器之间,通过预先配置的安全通道(基于SSL(SecureSocketsLayer,安全套接层))进行通信。OpenFlow控制器:为OpenFlow网络的控制中心,其一般是运行实验程序的PC(PersonalComputer,个人计算机)或者服务器。OpenFlow控制器上可能运行实验程序或第三方开发软件,并用于对流表项进行操作,根据用户配置或者动态运行协议生成流表,并将流表发送到OpenFlow网络设备。OpenFlow网络设备:接收OpenFlow控制器设置的流表,并根据流表指导报文处理。流表包含一系列用于匹配报文的流表项,对于进入OpenFlow网络设备的报文需要进行流表项的匹配;如果匹配成功则进行相应动作处理,如转发到多个端口或者丢弃;如果匹配不成功则通过安全通道转发到OpenFlow控制器,由OpenFlow控制器进行处理。另一方面,OpenFlow网络设备主动向OpenFlow控制器上报自身的状态和事件,如端口UP(正常)/DOWN(故障)。例如,OpenFlow控制器在OpenFlow网络设备上创建流表如下:[目的IP5.6.7.8,转发至port1];基于此流表,OpenFlow网络设备在收到目的IP地址为5.6.7.8的数据流量时,能够匹配到上述流表,并将数据流量转发至port1。现有技术中,在存在OpenFlow网络设备和非OpenFlow网络设备的网络中,无法识别出OpenFlow网络设备与非OpenFlow网络设备之间的边界端口。

技术实现要素:
本发明实施例提供一种边界端口的识别方法和设备,以识别出OpenFlow网络设备与非OpenFlow网络设备之间的边界端口。为了达到上述目的,本发明实施例提供一种边界端口的识别方法,应用于包括OpenFlow控制器、OpenFlow网络设备、非OpenFlow网络设备的网络中,该方法包括:所述OpenFlow控制器获得所有OpenFlow网络设备的设备标识以及每个OpenFlow网络设备的所有物理端口的端口标识;所述OpenFlow控制器遍历所有OpenFlow网络设备的所有物理端口,为OpenFlow网络设备的物理端口构造对应的网络边界发现报文,所述网络边界发现报文中携带所述OpenFlow网络设备的设备标识以及所述物理端口的端口标识;所述OpenFlow控制器将所述网络边界发现报文发送给所述OpenFlow网络设备;由所述OpenFlow网络设备通过所述物理端口发送所述网络边界发现报文,并由其它收到所述网络边界发现报文的OpenFlow网络设备将所述网路边界发现报文发送给所述OpenFlow控制器;所述OpenFlow控制器确定自身收到的所有网络边界发现报文中携带的OpenFlow网络设备的设备标识和物理端口的端口标识所对应的物理端口为OpenFlow网络中的内部端口,确定剩余的物理端口为OpenFlow网络设备与非OpenFlow网络设备之间的边界端口。所述OpenFlow控制器遍历所有OpenFlow网络设备的所有物理端口,为OpenFlow网络设备的物理端口构造对应的网络边界发现报文,具体包括:步骤A、所述OpenFlow控制器判断当前是否存在未被选择过的设备标识;如果是,则执行步骤B;如果否,则结束流程;步骤B、所述OpenFlow控制器选择未被选择过的设备标识;执行步骤C;步骤C、所述OpenFlow控制器判断该设备标识对应的OpenFlow网络设备的所有物理端口中,当前是否存在未被选择过的端口标识;如果是,则执行步骤D;如果否,则执行步骤A;步骤D、所述OpenFlow控制器从该设备标识对应的OpenFlow网络设备的所有物理端口中选择一个未被选择过的端口标识;之后执行步骤E;步骤E、所述OpenFlow控制器利用该设备标识和该端口标识为OpenFlow网络设备的物理端口构造对应的网络边界发现报文;之后执行步骤C。所述OpenFlow网络设备的设备标识以及所述物理端口的端口标识携带于所述网络边界发现报文的报文载荷中;由所述OpenFlow网络设备从所述报文载荷中解析到所述端口标识,并通过所述端口标识对应的物理端口发送所述网络边界发现报文。所述网络边界发现报文的报文头中还携带用于指导所述OpenFlow网络设备通过所述物理端口发送所述网络边界发现报文的信息;由所述OpenFlow网络设备从所述报文头中解析到所述信息,并通过所述信息指示的物理端口发送所述网络边界发现报文。所述OpenFlow控制器确定内部端口以及边界端口的过程,进一步包括:所述OpenFlow控制器在收到网络边界发现报文后,提取所述网络边界发现报文中携带的OpenFlow网络设备的设备标识和物理端口的端口标识;OpenFlow控制器标记所述OpenFlow网络设备的设备标识和所述物理端口的端口标识所对应的物理端口为内部端口;所述OpenFlow控制器遍历所有OpenFlow网络设备的所有物理端口,并标记内部端口之外的其它物理端口为边界端口。本发明实施例提供一种OpenFlow控制器,应用于包括所述OpenFlow控制器、OpenFlow网络设备、非OpenFlow网络设备的网络中,所述OpenFlow控制器具体包括:获得模块,用于获得所有OpenFlow网络设备的设备标识以及每个OpenFlow网络设备的所有物理端口的端口标识;构造模块,用于遍历所有OpenFlow网络设备的所有物理端口,为OpenFlow网络设备的物理端口构造对应的网络边界发现报文,所述网络边界发现报文中携带所述OpenFlow网络设备的设备标识以及所述物理端口的端口标识;发送模块,用于将所述网络边界发现报文发送给所述OpenFlow网络设备;由所述OpenFlow网络设备通过所述物理端口发送所述网络边界发现报文,并由其它收到所述网络边界发现报文的OpenFlow网络设备将所述网路边界发现报文发送给所述OpenFlow控制器;确定模块,用于确定本OpenFlow控制器收到的所有网络边界发现报文中携带的OpenFlow网络设备的设备标识和物理端口的端口标识所对应的物理端口为OpenFlow网络中的内部端口,并确定剩余的物理端口为OpenFlow网络设备与非OpenFlow网络设备之间的边界端口。所述构造模块,具体用于通过如下步骤构造网络边界发现报文:步骤A、判断当前是否存在未被选择过的设备标识;如果是,执行步骤B;如果否,结束流程;步骤B、选择未被选择过的设备标识;执行步骤C;步骤C、判断该设备标识对应的OpenFlow网络设备的所有物理端口中,当前是否存在未被选择过的端口标识;如果是,执行步骤D;如果否,执行步骤A;步骤D、从该设备标识对应的OpenFlow网络设备的所有物理端口中选择一个未被选择过的端口标识;之后执行步骤E;步骤E、利用该设备标识和该端口标识为OpenFlow网络设备的物理端口构造对应的网络边界发现报文;执行步骤C。所述OpenFlow网络设备的设备标识以及所述物理端口的端口标识携带于所述网络边界发现报文的报文载荷中;由所述OpenFlow网络设备从所述报文载荷中解析到所述端口标识,并通过所述端口标识对应的物理端口发送所述网络边界发现报文。所述网络边界发现报文的报文头中还携带用于指导OpenFlow网络设备通过物理端口发送所述网络边界发现报文的信息;由所述OpenFlow网络设备从所述报文头中解析到所述信息,并通过所述信息指示的物理端口发送所述网络边界发现报文。所述确定模块,具体用于在收到网络边界发现报文后,提取所述网络边界发现报文中携带的OpenFlow网络设备的设备标识和物理端口的端口标识;标记所述OpenFlow网络设备的设备标识和所述物理端口的端口标识所对应的物理端口为内部端口;遍历所有OpenFlow网络设备的所有物理端口,并标记内部端口之外的其它物理端口为边界端口。与现有技术相比,本发明实施例至少具有以下优点:本发明实施例中,在包括OpenFlow控制器、OpenFlow网络设备、非OpenFlow网络设备的网络中,由OpenFlow控制器为所有OpenFlow网络设备的所有物理端口构造网络边界发现报文,使得OpenFlow控制器能够识别出OpenFlow网络设备与OpenFlow网络设备之间的内部端口,继而使得OpenFlow控制器能够识别出OpenFlow网络设备与非OpenFlow网络设备之间的边界端口。附图说明图1是现有技术中OpenFlow网络的组网示意图;图2是本发明实施例的应用场景示意图;图3是本发明实施例提供的一种边界端口的识别方法流程示意图;图4是本发明实施例提供的一种OpenFlow控制器的结构示意图。具体实施方式本发明实施例提供一种边界端口的识别方法,应用于包括OpenFlow控制器、OpenFlow网络设备(如OpenFlow交换机)、非OpenFlow网络设备(如现有网络的普通交换机)的网络中。以图2为本发明实施例的应用场景示意图,该网络可以包括OpenFlow控制器、OpenFlow网络设备1、OpenFlow网络设备2、OpenFlow网络设备3、非OpenFlow网络设备1、非OpenFlow网络设备2和非OpenFlow网络设备3。以图2为例,OpenFlow网络设备1上包括端口1、端口2和端口3;OpenFlow网络设备2上包括端口4、端口5和端口6;OpenFlow网络设备3上包括端口7和端口8。需要注意的是,OpenFlow控制器与OpenFlow网络设备之间通过预先配置的安全通道进行通信,且OpenFlow网络设备上不会有物理端口直接连接到OpenFlow控制器。在一种具体的实现方式中,OpenFlow网络设备可以通过指定的网管口与OpenFlow控制器连接,该网管口不是OpenFlow网络设备上的物理端口;在另一种具体的实现方式中,OpenFlow控制器可以不与OpenFlow网络设备直接连接,而是通过其它设备与OpenFlow网络设备通信,并实现对OpenFlow网络设备的管理和控制。在上述应用场景下,如图3所示,该方法包括以下步骤:步骤301,OpenFlow控制器获得所有OpenFlow网络设备的设备标识以及每个OpenFlow网络设备所承载的所有物理端口的端口标识。其中,OpenFlow控制器可以直接获取到与本OpenFlow控制器连接的所有OpenFlow网络设备的设备标识(可以称为DPID,其是OpenFlow网络设备的唯一标识),以及每个OpenFlow网络设备所承载的所有物理端口的端口标识(可以称为PortNum,即物理端口通过PortNum标识)。在图2所示的应用场景下,OpenFlow控制器获得所有OpenFlow网络设备的设备标识分别为OpenFlow网络设备1、OpenFlow网络设备2和OpenFlow网络设备3;OpenFlow控制器获得OpenFlow网络设备1所承载的所有物理端口的端口标识分别为端口1、端口2和端口3,OpenFlow网络设备2所承载的所有物理端口的端口标识分别为端口4、端口5和端口6,OpenFlow网络设备3所承载的所有物理端口的端口标识分别为端口7和端口8。步骤302,OpenFlow控制器遍历所有OpenFlow网络设备的所有物理端口,并为OpenFlow网络设备的物理端口构造对应的网络边界发现报文。其中,该网络边界发现报文中携带该OpenFlow网络设备的设备标识以及该物理端口的端口标识。本发明实施例中,OpenFlow控制器遍历所有OpenFlow网络设备的所有物理端口,并为OpenFlow网络设备的物理端口构造对应的网络边界发现报文,具体包括但不限于如下方式:步骤A、OpenFlow控制器判断当前是否存在未被选择过的设备标识;如果是,则执行步骤B;如果否,则结束流程;步骤B、OpenFlow控制器选择未被选择过的设备标识;执行步骤C;步骤C、OpenFlow控制器判断该设备标识对应的OpenFlow网络设备的所有物理端口中,当前是否存在未被选择过的端口标识;如果是,则执行步骤D;如果否,则执行步骤A;步骤D、OpenFlow控制器从该设备标识对应的OpenFlow网络设备的所有物理端口中选择一个未被选择过的端口标识;之后执行步骤E;步骤E、OpenFlow控制器利用该设备标识和该端口标识为OpenFlow网络设备的物理端口构造对应的网络边界发现报文;之后执行步骤C。以图2为例,OpenFlow控制器为OpenFlow网络设备1的端口1构造网络边界发现报文,网络边界发现报文中携带的设备标识为OpenFlow网络设备1,网络边界发现报文中携带的端口标识为端口1。OpenFlow控制器为OpenFlow网络设备1的端口2构造网络边界发现报文,网络边界发现报文中携带的设备标识为OpenFlow网络设备1,网络边界发现报文中携带的端口标识为端口2。OpenFlow控制器为OpenFlow网络设备1的端口3构造网络边界发现报文,网络边界发现报文中携带的设备标识为OpenFlow网络设备1,网络边界发现报文中携带的端口标识为端口3。OpenFlow控制器为OpenFlow网络设备2的端口4构造网络边界发现报文,网络边界发现报文中携带的设备标识为OpenFlow网络设备2,网络边界发现报文中携带的端口标识为端口4。OpenFlow控制器为OpenFlow网络设备2的端口5构造网络边界发现报文,网络边界发现报文中携带的设备标识为OpenFlow网络设备2,网络边界发现报文中携带的端口标识为端口5。OpenFlow控制器为OpenFlow网络设备2的端口6构造网络边界发现报文,网络边界发现报文中携带的设备标识为OpenFlow网络设备2,网络边界发现报文中携带的端口标识为端口6。OpenFlow控制器为OpenFlow网络设备3的端口7构造网络边界发现报文,网络边界发现报文中携带的设备标识为OpenFlow网络设备3,网络边界发现报文中携带的端口标识为端口7。OpenFlow控制器为OpenFlow网络设备3的端口8构造网络边界发现报文,网络边界发现报文中携带的设备标识为OpenFlow网络设备3,网络边界发现报文中携带的端口标识为端口8。步骤303,OpenFlow控制器将网络边界发现报文发送给OpenFlow网络设备。具体的,OpenFlow控制器通过本OpenFlow控制器与OpenFlow网络设备之间的安全通道将网络边界发现报文发送给OpenFlow网络设备。以图2为例,OpenFlow控制器通过OpenFlow控制器与OpenFlow网络设备1间的安全通道将为OpenFlow网络设备1的端口1构造的网络边界发现报文、为OpenFlow网络设备1的端口2构造的网络边界发现报文、为OpenFlow网络设备1的端口3构造的网络边界发现报文发送给OpenFlow网络设备1。OpenFlow控制器通过OpenFlow控制器与OpenFlow网络设备2间的安全通道将为OpenFlow网络设备2的端口4构造的网络边界发现报文、为OpenFlow网络设备2的端口5构造的网络边界发现报文、为OpenFlow网络设备2的端口6构造的网络边界发现报文发送给OpenFlow网络设备2。OpenFlow控制器通过OpenFlow控制器与OpenFlow网络设备3间的安全通道将为OpenFlow网络设备3的端口7构造的网络边界发现报文、为OpenFlow网络设备3的端口8构造的网络边界发现报文发送给OpenFlow网络设备3。步骤304,OpenFlow网络设备在收到来自OpenFlow控制器的网络边界发现报文时,通过相应的物理端口发送该网络边界发现报文。本发明实施例中,网络边界发现报文中携带了设备标识和端口标识,且OpenFlow网络设备的设备标识以及物理端口的端口标识携带于该网络边界发现报文的报文载荷中;OpenFlow网络设备在收到来自OpenFlow控制器的网络边界发现报文时,可以直接从报文载荷中解析到端口标识,继而通过网络边界发现报文中携带的端口标识所对应的物理端口发送网络边界发现报文。在本发明实施例的一种优选实施方式中,网络边界发现报文的报文头中还可以携带用于指导OpenFlow网络设备通过物理端口发送网络边界发现报文的信息;基于此信息,OpenFlow网络设备在收到来自OpenFlow控制器的网络边界发现报文时,可以直接从报文头中解析到该信息,继而通过该信息指示的物理端口发送该网络边界发现报文。例如,网络边界发现报文中携带用于指导OpenFlow网络设备1通过端口1发送网络边界发现报文的信息时,OpenFlow网络设备1在收到相应的网络边界发现报文后,确定需要通过端口1发送网络边界发现报文,并通过该端口1发送网络边界发现报文。在图2所示的应用场景下,OpenFlow网络设备1在接收到来自OpenFlow控制器的为OpenFlow网络设备1的端口1构造的网络边界发现报文时,通过端口1发送该网络边界发现报文。OpenFlow网络设备1在接收到来自OpenFlow控制器的为OpenFlow网络设备1的端口2构造的网络边界发现报文时,通过端口2发送该网络边界发现报文。OpenFlow网络设备1在接收到来自OpenFlow控制器的为OpenFlow网络设备1的端口3构造的网络边界发现报文时,通过端口3发送该网络边界发现报文。OpenFlow网络设备2在接收到来自OpenFlow控制器的为OpenFlow网络设备2的端口4构造的网络边界发现报文时,通过端口4发送该网络边界发现报文。OpenFlow网络设备2在接收到来自OpenFlow控制器的为OpenFlow网络设备2的端口5构造的网络边界发现报文时,通过端口5发送该网络边界发现报文。OpenFlow网络设备2在接收到来自OpenFlow控制器的为OpenFlow网络设备2的端口6构造的网络边界发现报文时,通过端口6发送该网络边界发现报文。OpenFlow网络设备3在接收到来自OpenFlow控制器的为OpenFlow网络设备3的端口7构造的网络边界发现报文时,通过端口7发送该网络边界发现报文。OpenFlow网络设备3在接收到来自OpenFlow控制器的为OpenFlow网络设备3的端口8构造的网络边界发现报文时,通过端口8发送该网络边界发现报文。步骤305,OpenFlow网络设备在收到来自其它OpenFlow网络设备的网络边界发现报文之后,将该网络边界发现报文发送给OpenFlow控制器。具体的,该OpenFlow网络设备可以通过OpenFlow控制器与本OpenFlow网络设备之间的安全通道将该网络边界发现报文发送给OpenFlow控制器。在图2所示的应用场景下,OpenFlow网络设备1在接收到OpenFlow网络设备2通过端口4发送的网络边界发现报文时,通过OpenFlow控制器与本OpenFlow网络设备1之间的安全通道将该网络边界发现报文发送给OpenFlow控制器。OpenFlow网络设备1在接收到OpenFlow网络设备3通过端口7发送的网络边界发现报文时,通过OpenFlow控制器与本OpenFlow网络设备1之间的安全通道将该网络边界发现报文发送给OpenFlow控制器。OpenFlow网络设备2在接收到OpenFlow网络设备1通过端口2发送的网络边界发现报文时,通过OpenFlow控制器与本OpenFlow网络设备2之间的安全通道将该网络边界发现报文发送给OpenFlow控制器。OpenFlow网络设备2在接收到OpenFlow网络设备3通过端口8发送的网络边界发现报文时,通过OpenFlow控制器与本OpenFlow网络设备2之间的安全通道将该网络边界发现报文发送给OpenFlow控制器。OpenFlow网络设备3在接收到OpenFlow网络设备1通过端口1发送的网络边界发现报文时,通过OpenFlow控制器与本OpenFlow网络设备3之间的安全通道将该网络边界发现报文发送给OpenFlow控制器。OpenFlow网络设备3在接收到OpenFlow网络设备2通过端口5发送的网络边界发现报文时,通过OpenFlow控制器与本OpenFlow网络设备3之间的安全通道将该网络边界发现报文发送给OpenFlow控制器。步骤306,OpenFlow控制器在收到网络边界发现报文后,确定网络边界发现报文中携带的OpenFlow网络设备的设备标识和物理端口的端口标识对应的物理端口为OpenFlow网络设备与OpenFlow网络设备之间的内部端口。步骤307,OpenFlow控制器确定所有OpenFlow网络设备所承载的所有物理端口中,除了内部端口之外的其它物理端口(即剩余的物理端口)为OpenFlow网络设备与非OpenFlow网络设备之间的边界端口。本发明实施例的优选实施方式中,OpenFlow控制器确定内部端口以及边界端口的过程具体包括:OpenFlow控制器在收到网络边界发现报文后,提取网络边界发现报文中携带的OpenFlow网络设备的设备标识和物理端口的端口标识;OpenFlow控制器标记OpenFlow网络设备的设备标识和物理端口的端口标识所对应的物理端口为内部端口;OpenFlow控制器遍历所有OpenFlow网络设备的所有物理端口,并标记内部端口之外的其它物理端口为边界端口。为了保证OpenFlow控制器能够准确遍历到所有的内部端口,该OpenFlow控制器可以在将为所有物理端口构造的网络边界发现报文均发送完成之后,在等待预设时间(该预设时间可以根据实际经验值选择,以保证OpenFlow控制器能够收到所有OpenFlow网络设备返回的网络边界发现报文)之后,遍历所有OpenFlow网络设备的所有物理端口,并标记内部端口之外的其它物理端口为边界端口。进一步的,该OpenFlow控制器还可以多次发送每个物理端口所对应的网络边界发现报文,以进一步保证OpenFlow控制器能够收到网络边界发现报文,继而能够准确遍历到所有的内部端口。在图2所示的应用场景下,OpenFlow网络设备1在接收到OpenFlow网络设备2通过端口4发送的网络边界发现报文时,将该网络边界发现报文发送给OpenFlow控制器,由于该网络边界发现报文中携带的设备标识为OpenFlow网络设备2,该网络边界发现报文中携带的端口标识为端口4,因此OpenFlow控制器标记OpenFlow网络设备2的端口4为内部端口。OpenFlow网络设备1在接收到OpenFlow网络设备3通过端口7发送的网络边界发现报文时,将该网络边界发现报文发送给OpenFlow控制器,由于该网络边界发现报文中携带的设备标识为OpenFlow网络设备3,该网络边界发现报文中携带的端口标识为端口7,因此OpenFlow控制器标记OpenFlow网络设备3的端口7为内部端口。OpenFlow网络设备2在接收到OpenFlow网络设备1通过端口2发送的网络边界发现报文时,将该网络边界发现报文发送给OpenFlow控制器,由于该网络边界发现报文中携带的设备标识为OpenFlow网络设备1,该网络边界发现报文中携带的端口标识为端口2,因此OpenFlow控制器标记OpenFlow网络设备1的端口2为内部端口。OpenFlow网络设备2在接收到OpenFlow网络设备3通过端口8发送的网络边界发现报文时,将该网络边界发现报文发送给OpenFlow控制器,由于该网络边界发现报文中携带的设备标识为OpenFlow网络设备3,该网络边界发现报文中携带的端口标识为端口8,因此OpenFlow控制器标记OpenFlow网络设备3的端口8为内部端口。OpenFlow网络设备3在接收到OpenFlow网络设备1通过端口1发送的网络边界发现报文时,将该网络边界发现报文发送给OpenFlow控制器,由于该网络边界发现报文中携带的设备标识为OpenFlow网络设备1,该网络边界发现报文中携带的端口标识为端口1,因此OpenFlow控制器标记OpenFlow网络设备1的端口1为内部端口。OpenFlow网络设备3在接收到OpenFlow网络设备2通过端口5发送的网络边界发现报文时,将该网络边界发现报文发送给OpenFlow控制器,由于该网络边界发现报文中携带的设备标识为OpenFlow网络设备2,该网络边界发现报文中携带的端口标识为端口5,因此OpenFlow控制器标记OpenFlow网络设备2的端口5为内部端口。本发明实施例中,基于上述处理,OpenFlow控制器标记OpenFlow网络设备1的端口1为内部端口,并标记OpenFlow网络设备1的端口2为内部端口,并标记OpenFlow网络设备2的端口4为内部端口,并标记OpenFlow网络设备2的端口5为内部端口,并标记OpenFlow网络设备3的端口7为内部端口,并标记OpenFlow网络设备3的端口8为内部端口。进一步的,所有OpenFlow网络设备的所有物理端口为OpenFlow网络设备1的端口1、端口2和端口3,OpenFlow网络设备2的端口4、端口5和端口6,OpenFlow网络设备3的端口7和端口8。因此,OpenFlow控制器标记OpenFlow网络设备1的端口3和OpenFlow网络设备2的端口6为边界端口。综上所述,本发明实施例中,在包括OpenFlow控制器、OpenFlow网络设备、非OpenFlow网络设备的网络中,由OpenFlow控制器为所有OpenFlow网络设备的所有物理端口构造网络边界发现报文,并基于网络边界发现报文的接收情况,使得OpenFlow控制器能够识别出OpenFlow网络设备与OpenFlow网络设备之间的内部端口,继而使得OpenFlow控制器能够识别出OpenFlow网络设备与非OpenFlow网络设备之间的边界端口。基于与上述方法同样的发明构思,本发明实施例中提供了一种OpenFlow控制器,应用于包括所述OpenFlow控制器、OpenFlow网络设备、非OpenFlow网络设备的网络中,如图4所示,所述OpenFlow控制器具体包括:获得模块11,用于获得所有OpenFlow网络设备的设备标识以及每个OpenFlow网络设备的所有物理端口的端口标识;构造模块12,用于遍历所有OpenFlow网络设备的所有物理端口,为OpenFlow网络设备的物理端口构造对应的网络边界发现报文,所述网络边界发现报文中携带所述OpenFlow网络设备的设备标识以及所述物理端口的端口标识;发送模块13,用于将所述网络边界发现报文发送给所述OpenFlow网络设备;由所述OpenFlow网络设备通过所述物理端口发送所述网络边界发现报文,并由其它收到所述网络边界发现报文的OpenFlow网络设备将所述网路边界发现报文发送给所述OpenFlow控制器;确定模块14,用于确定本OpenFlow控制器收到的所有网络边界发现报文中携带的OpenFlow网络设备的设备标识和物理端口的端口标识所对应的物理端口为OpenFlow网络中的内部端口,并确定剩余的物理端口为OpenFlow网络设备与非OpenFlow网络设备之间的边界端口。所述构造模块12,具体用于通过如下步骤构造网络边界发现报文:步骤A、判断当前是否存在未被选择过的设备标识;如果是,执行步骤B;如果否,结束流程;步骤B、选择未被选择过的设备标识;执行步骤C;步骤C、判断该设备标识对应的OpenFlow网络设备的所有物理端口中,当前是否存在未被选择过的端口标识;如果是,执行步骤D;如果否,执行步骤A;步骤D、从该设备标识对应的OpenFlow网络设备的所有物理端口中选择一个未被选择过的端口标识;执行步骤E;步骤E、利用该设备标识和该端口标识为OpenFlow网络设备的物理端口构造对应的网络边界发现报文;执行步骤C。本发明实施例中,所述OpenFlow网络设备的设备标识以及所述物理端口的端口标识携带于所述网络边界发现报文的报文载荷中;由所述OpenFlow网络设备从所述报文载荷中解析到所述端口标识,并通过所述端口标识对应的物理端口发送所述网络边界发现报文。本发明实施例中,所述网络边界发现报文的报文头中还携带用于指导OpenFlow网络设备通过物理端口发送所述网络边界发现报文的信息;由所述OpenFlow网络设备从所述报文头中解析到所述信息,并通过所述信息指示的物理端口发送所述网络边界发现报文。所述确定模块14,具体用于在收到网络边界发现报文后,提取所述网络边界发现报文中携带的OpenFlow网络设备的设备标识和物理端口的端口标识;标记所述OpenFlow网络设备的设备标识和所述物理端口的端口标识所对应的物理端口为内部端口;遍历所有OpenFlow网络设备的所有物理端口,并标记内部端口之外的其它物理端口为边界端口。其中,本发明装置的各个模块可以集成于一体,也可以分离部署。上述模块可以合并为一个模块,也可以进一步拆分成多个子模块。通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到本发明可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。本领域技术人员可以理解附图只是一个优选实施例的示意图,附图中的模块或流程并不一定是实施本发明所必须的。本领域技术人员可以理解实施例中的装置中的模块可以按照实施例描述进行分布于实施例的装置中,也可以进行相应变化位于不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。以上公开的仅为本发明的几个具体实施例,但是,本发明并非局限于此,任何本领域的技术人员能思之的变化都应落入本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1