一种建立流路径的方法及装置与流程

文档序号:18124728发布日期:2019-07-10 09:50阅读:137来源:国知局
一种建立流路径的方法及装置与流程
本申请涉及网络通信
技术领域
,尤其涉及一种建立流路径的方法及装置。
背景技术
:SDN(SoftwareDefinedNetworks,软件定义网络)是一种新型的网络创新架构,其核心思想是将控制平面和数据平面分离,实现网络流量的灵活控制。其中,SDN控制器负责转发路径计算以及流表下发,交换设备按照下发的流表进行业务转发。由于SDN控制器控制的转发路径只支持二层转发,用户主机进行跨局域网访问时,业务流量需统一由网关设备转发,造成网关设备负担较重,且一旦网关设备故障将造成网络通信中断。技术实现要素:有鉴于此,本申请提供一种建立流路径的方法及装置。具体地,本申请是通过如下技术方案实现的:本申请提供一种建立流路径的方法,所述方法应用于控制器,该方法包括:获取接口类型匹配且属于同一网段的三层接口信息;判断所述三层接口信息中携带的三层接口所对应的物理端口是否链路可达;若可达,则根据所述三层接口信息建立三层流路径。本申请还提供一种建立流路径的方法,所述方法应用于交换设备,该方法包括:获取与物理端口对应的三层接口信息;将所述三层接口信息上报给控制器。本申请还提供一种建立流路径的装置,所述装置应用于控制器,该装置包括:获取单元,用于获取接口类型匹配且属于同一网段的三层接口信息;判断单元,用于判断所述三层接口信息中携带的三层接口所对应的物理端口是否链路可达;建立单元,用于若可达,则根据所述三层接口信息建立三层流路径。本申请还提供一种建立流路径的装置,所述装置应用于交换设备,该装置包括:获取单元,用于获取与物理端口对应的三层接口信息;上报单元,用于将所述三层接口信息上报给控制器。由以上描述可以看出,本申请根据交换设备上报的三层接口信息,建立在二层链路上可达的三层链路,并基于该三层链路建立流路径,使每一个交换设备都可以作为各自用户侧网络的网关设备进行三层转发,真正实现了SDN网络中控制器对三层业务的控制,提高了网络的传输性能。附图说明图1是本申请一示例性实施例示出的一种建立流路径的方法流程图;图2是本申请另一示例性实施例示出的一种建立流路径的方法流程图;图3是本申请一示例性实施例示出的SDN网络示意图;图4是本申请一示例性实施例示出的三层链路拓扑示意图;图5是本申请一示例性实施例示出的三层流路径对应的转发路径示意图;图6是本申请另一示例性实施例示出的三层流路径对应的转发路径示意图;图7是本申请一示例性实施例示出的一种建立流路径的装置所在设备的基础硬件结构示意图;图8是本申请一示例性实施例示出的一种建立流路径的装置的结构示意图;图9是本申请另一示例性实施例示出的一种建立流路径的装置的结构示意图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。SDN是一种新型的网络创新架构,其核心思想是将控制平面和数据平面分离,实现网络流量的灵活控制。SDN网络由控制器和交换设备组成。其中,控制器负责收集网络拓扑信息,计算业务报文的转发路径并生成转发流表,交换设备根据控制器下发的流表进行业务报文的转发。目前,由控制器控制的转发路径支持二层转发,用户主机在进行跨局域网访问时,业务报文首先沿交换设备执行二层转发到本网段的网关设备,再由网关设备执行三层转发后,继续沿交换设备执行二层转发到达目的主机。可见,跨局域网访问的业务流量都必须由固定网关设备中转,导致网关设备负担较重,且一旦网关设备发生故障将造成网络通信中断。针对上述问题,本申请实施例提出一种建立流路径的方法,该方法由控制器根据获取的三层接口信息,建立三层流路径,并向交换设备下发根据所述三层流路径生成的流表项,以使接收到所述流表项的交换设备沿三层流路径转发业务流量。参见图1,为本申请建立流路径的方法的一个实施例流程图,该实施例从交换设备侧对建立流路径的过程进行描述。步骤101,获取与物理端口对应的三层接口信息。在此步骤中,获取的三层接口信息可以是预先配置在交换设备上的三层接口信息,具体的,所述三层接口信息包括三层接口、该三层接口的接口类型。其中,三层接口的接口类型包括路由接口、VLAN(VirtualLocalAreaNetwork,虚拟局域网)接口、隧道接口三者中的一种或多种。当三层接口为路由接口时,该路由接口与物理端口关联,且多个路由接口可关联相同的物理端口;当三层接口为VLAN接口时,该VLAN接口可包含一个或多个物理端口,并从多个物理端口中选择一个可用的物理端口关联,不同的VLAN接口可包含相同的物理端口;当三层接口为隧道接口时,隧道接口与物理端口关联,且多个隧道接口可关联相同的物理端口。步骤102,将所述三层接口信息上报给控制器。交换设备可通过与控制器之间的信息交互(例如,基于OpenFlow协议的信息交互),将三层接口信息上报给控制器,例如,利用端口描述消息携带配置好的三层接口信息上报给控制器,以使控制器根据三层接口信息建立三层链路,进而控制SDN网络内业务报文的三层转发。在一种较优的实施方式中,交换设备上报的三层接口信息中还可以包括物理端口与三层接口的关联关系,控制器根据该关联关系,确定与三层接口关联的物理端口是否链路可达,当确定与三层接口关联的物理端口链路可达时,建立三层流路径,控制器的处理过程将在后续描述中介绍。参见图2,为本申请建立流路径的方法的一个实施例流程图,该实施例从控制器侧对建立流路径的过程进行描述。步骤201,获取接口类型匹配且属于同一网段的三层接口信息。如前所述,控制器可通过与交换设备的信息交互获取交换设备上报的三层接口信息,该三层接口信息可以包括三层接口、该三层接口的接口类型等信息。控制器根据获取的三层接口信息中携带的三层接口以及三层接口的接口类型,筛选并获取三层接口的接口类型匹配且属于同一网段的三层接口信息(需要说明的是,控制器可根据三层接口的内容来判断不同的三层接口是否属于同一网段,以路由接口为例,若存在两个三层接口,其中一个三层接口为1.1.1.2,另一个三层接口为1.1.1.90,则可以确定这两个接口属于同一网段)。其中,接口类型匹配是指隧道接口与隧道接口匹配,非隧道接口与非隧道接口匹配(路由接口和VLAN接口可以任意匹配)。当三层接口的接口类型匹配且IP地址属于同一网段时,对应三层接口在三层链路上才存在连通的可能性。步骤202,判断所述三层接口信息中携带的三层接口所对应的物理端口是否链路可达。控制器获取三层接口信息后,对三层接口信息中携带的三层接口所对应的物理端口是否链路可达进行判断,若可达则执行步骤203。在一种较优的实施方式中,交换设备向控制器发送的三层接口信息中携带三层接口与物理端口的关联关系,控制器可从交换设备上报的三层接口信息中获取物理端口和三层接口的关联关系,并根据控制器已建立的二层链路(可采用现有技术实现,在此不再赘述),确认三层接口对应的物理端口是否链路可达。具体为,获取与三层接口关联的物理端口,判断所述三层接口对应的物理端口在二层链路中是否可达,当物理端口在二层链路上可达时,说明物理端口间存在可达的链路,业务报文可在物理端口间传输,进而,可以确定所述三层接口对应的物理端口链路可达,因此,可建立三层接口间的三层流路径;当物理端口在二层链路上不可达时,禁止建立与物理端口对应的三层流路径。通过上述方式,建立可达的三层拓扑结构。需要说明的是,上述仅提供了一种优选的控制器确定三层接口对应的物理端口是否可达的实施例,在另一种实现方式中,交换设备可在获取三层接口信息时,确定三层接口对应的物理端口是否可达,若可达,则获取包含该三层接口的三层接口信息;若不可达,则不获取包含该三层接口的三层接口信息,进一步的,控制器在收到交换设备发送的三层接口信息时,默认三层接口信息中三层接口对应的物理端口均是可达的。步骤203,若可达,则根据所述三层接口信息建立三层流路径。本步骤中,控制器根据三层接口信息建立三层流路径,所述三层流路径用于指示源交换设备到目的交换设备间构建三层转发路径。在一种较优的实施方式中,交换设备上报的三层接口信息还包括三层接口的状态信息,当源交换设备与目的交换设备间可建立多个三层流路径时,控制器可根据三层接口的状态信息建立多个三层流路径中最优的三层流路径,其中,该状态信息可包括三层接口的开销(COST值)和/或三层接口的优先级。一种实现方式为,根据三层接口的开销建立三层流路径,例如,遍历SDN网络中各交换设备的三层接口,找到从源交换设备到目的交换设备可能存在的多条路径,并根据所述多条路径中各三层接口的开销选择一条开销最小的三层链路建立流路径。在另一种实现方式中,根据三层接口的优先级建立三层流路径,例如,如果相邻交换设备之间存在多条三层链路时,可根据三层链路的优先级,选择一条优先级最高的三层链路建立流路径(具体根据三层链路对应的三层接口确定三层链路的优先级,例如,三层链路对应的三层接口的优先级高,则其对应的三层链路的优先级高)。在另一种实现方式中,根据三层链路的优先级以及三层链路的开销建立流路径,例如,选择优先级高的三层链路参与计算,当优先级相同时,选择开销小的三层链路参与计算,根据计算结果从多条路径中选择开销最小的路径作为从源交换设备到目的交换设备的流路径,其中,当存在多条开销相同的路径时,将这些路径作为源交换设备到目的交换设备的等价路径。控制器可根据最终确定的流路径下发流表项,该流表项的出端口可以为该流路径上与三层接口关联的物理端口;也可以直接为三层接口,由交换设备接收流表项后,根据流表项中的三层接口自行转换为对应的物理端口。SDN网络在运行过程中链路状态会发生变化,当二层链路状态改变时,存在二层链路对应的物理端口出现不可达的情况,由于二层链路对应的物理端口与三层链路对应的物理端口有可能是同一端口,因此需要确认当二层链路变化时,三层链路对应的物理端口是否还可达。具体为,重新判断与三层接口对应的物理端口在二层链路上的可达性,当三层接口对应的物理端口在二层链路上可达时,继续使用对应三层链路;当三层接口对应的物理端口在二层链路上不可达时,控制器可根据获取的三层接口信息重新建立源交换设备到目的交换设备的三层流路径,并根据重新建立的三层流路径向对应的交换设备下发流表项,以使接收到该流表项的交换设备根据重新建立的三层流路径建立三层链路,从而完成三层链路的更新。当二层链路未发生变化,仅三层链路变化时,直接根据变化后的三层链路重新计算流路径和更新流表项。由上述描述可以看出,本申请控制器根据交换设备上报的三层接口信息,建立三层流路径。解决了现有技术中跨局域网业务流量通过固定网关设备集中转发的问题,使每一个交换设备都可以作为各自用户侧网络的网关设备进行三层转发,真正实现了SDN网络中控制器对三层业务的控制,提高了网络的传输性能。参见图3,为本申请示例性实施例示出的SDN网络示意图。该SDN网络包括控制器SDNController以及交换设备SW1~SW6。假设,根据实际需求在各交换设备上配置三层接口,三层接口均为路由接口。SDNController通过邻居发现协议建立图3所示的二层拓扑结构,并接收各交换设备上报的三层接口信息(包括与三层接口关联的物理端口),SDNController根据接收的三层接口信息建立三层接口与物理端口的关联关系,如表1所示。表1SDNController获取接口类型相同且IP地址属于同一网段的三层接口,由于所有三层接口的接口类型都相同,因此,本实施例只需找到属于同一网段的三层接口即可。以三层接口12.0.0.1和12.0.0.2为例,12.0.0.1和12.0.0.2属于同一网段,获取12.0.0.1和12.0.0.2关联的物理端口,分别为SW1的端口2和SW2的端口1,当SW1的端口2和SW2的端口1在二层链路上可达时,可知SW1的端口2和SW2的端口1对应的三层链路也可达,为了便于描述将三层链路标识为L3_XX,则SW1和SW2间的三层链路为L3_12(其中L3表示三层链路,12中的1表示SW1,2表示SW2),同理,可建立24.0.0.1和24.0.0.2之间的三层链路,标识为L3_24;46.0.0.1和46.0.0.2之间的三层链路,标识为L3_46;16.0.0.1和16.0.0.2之间的三层链路,标识为L3_16。三层拓扑如图4所示。假设,SDNController计算从SW1到SW6的流路径。各三层链路的开销(COST)如表2所示。三层链路COSTL3_1210L3_2410L3_4610L3_1610表2本实施例中,相邻交换设备之间不存在多条三层链路,因此,忽略了各三层链路的优先级,只根据三层链路的COST值计算流路径。从图4可以看出,从SW1到SW6存在两条路径,{L3_12,L3_24,L3_46}和{L3_16},其中,{L3_12,L3_24,L3_46}的COST值为30,{L3_16}的COST值为10,因此,选择{L3_16}作为从SW1到SW6的流路径。该流路径对应的转发路径为{L2_13,L2_35,L2_56},其中,L2_13表示SW1端口3到SW3端口1的二层链路;L2_35表示SW3端口5到SW5端口3的二层链路;L2_56表示SW5端口6到SW6端口5的二层链路,如图5所示。SDNController向该转发路径上的交换设备下发流表项。源主机的业务流量(目的MAC为SW1的MAC)到达SW1后执行三层转发(即执行IP转发,目的IP地址为SW6端口5对应的IP地址),业务流量的目的MAC更改为SW6的MAC,因SW3和SW5上未配置三层接口,因此业务流量在SW3和SW5执行二层转发,当该业务流量到达SW6,SW6执行三层转发后进入目的主机所属网络,并最终转发至目的主机。当L2_35链路故障时,SDNController重新确认L3_16在二层链路上是否可达,即SW1的端口3到SW6的端口5是否在二层链路上可达,参见图6,对应可达的转发路径为{L2_13,L2_32,L2_24,L2_45,L2_56},因此,三层路径{L3_16}仍然可用,SDNController对重新确定的转发路径上的交换设备下发流表项。当L2_13链路故障时,L3_16在二层链路上不可达(从SW1端口3出去的流量无法到达SW6的端口5),因此,L3_16不可用,重新选择从SW1到SW6的流路径,将{L3_12,L3_24,L3_46}作为新的流路径,向该流路径上各交换设备下发该流表项。与前述建立流路径的方法的实施例相对应,本申请还提供了建立流路径的装置的实施例。本申请建立流路径的装置的实施例可以应用在控制器上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器运行存储器中对应的计算机程序指令形成的。从硬件层面而言,如图7所示,为本申请建立流路径的装置所在设备的一种硬件结构图,除了图7所示的处理器、非易失性存储器之外,实施例中装置所在的设备通常根据该设备的实际功能,还可以包括其他硬件,对此不再赘述。请参考图8,为本申请一个实施例中的建立流路径的装置的结构示意图。该建立流路径的装置包括获取单元801和上报单元802,其中:获取单元801,用于获取与物理端口对应的三层接口信息;上报单元802,用于将所述三层接口信息上报给控制器。请参考图9,为本申请另一个实施例中的建立流路径的装置的结构示意图。该建立流路径的装置包括获取单元901、判断单元902及建立单元903,其中:获取单元901,用于获取接口类型匹配且属于同一网段的三层接口信息;判断单元902,用于判断所述三层接口信息中携带的三层接口所对应的物理端口是否链路可达;建立单元903,用于若可达,则根据所述三层接口信息建立三层流路径。进一步地,所述判断单元902,具体用于判断所述三层接口对应的物理端口在二层链路中是否可达;若可达,则确定所述三层接口对应的物理端口链路可达。进一步地,所述判断单元902,还用于当获取到所述二层链路状态改变时,判断所述三层接口对应的物理端口在所述二层链路中是否可达;所述建立单元903,还用于在所述判断单元902根据二层链路状态变化判断所述二层链路不可达时,根据所述三层接口信息重新建立三层流路径。进一步地,所述建立单元903,具体用于根据所述三层接口信息中携带的三层接口的开销和/或优先级建立三层流路径。上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本申请方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。以上所述仅为本申请的较佳实施例而已,并不用以限制本申请,凡在本申请的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本申请保护的范围之内。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1