本发明涉及网络通信技术领域,尤其涉及一种路由配置方法及装置。
背景技术:
SDN(Software Defined Network,软件定义网络)是一种新型的网络创新架构,通过将控制平面和数据平面分离,实现网络流量的灵活控制。
现有SDN网络云出口通常集中在一个云网关上,出外网流量通过缺省网关,静态路由的方式指向外网设备的IP(InternetProtocol,简称IP)。
一般来说,租户发往外网的流量通过匹配网关设备上的静态路由向外网转发。由于云网关之外的设备不可控,若该静态路由的下一跳不可达,则流量无法向外网转发。
技术实现要素:
本发明的目的在于提供一种路由配置方法及装置,用以实现网关设备上路由的动态配置,指引租户流量向外网转发。
为实现上述发明目的,本发明提供了技术方案:
本发明提供一种路由配置方法,应用于SDN中的控制器,所述方法包括:
配置外网VPN(Virtual Private Network,虚拟专用网)实例的路由策略,所述外网VPN实例的路由策略用于使网关设备对来自不同外网设备的路由设置RT(Router Target,路由目标)属性;
配置租户VPN实例的RT属性;
将所述外网VPN实例的路由策略以及所述租户VPN实例的RT属性下发给网关设备,以使所述网关设备根据所述外网VPN实例的路由策略对从外网设备接收的路由设置RT属性后,判断所述路由的RT属性是否与所述租户VPN实例的RT属性匹配,并在确定RT属性匹配后,将接收到的路由添加到所述租户VPN实例中,指引租户流量向外网转发。
本发明还提供一种路由配置装置,应用于SDN中的控制器,所述装置包括:
策略配置单元,用于配置外网虚拟专用网VPN实例的路由策略,所述外网VPN实例的路由策略用于使网关设备对来自不同外网设备的路由设置路由目标RT属性;
属性配置单元,用于配置租户VPN实例的RT属性;
配置下发单元,用于将所述外网VPN实例的路由策略以及所述租户VPN实例的RT属性下发给网关设备,以使所述网关设备根据所述外网VPN实例的路由策略对从外网设备接收的路由设置RT属性后,判断所述路由的RT属性是否与所述租户VPN实例的RT属性匹配,并在确定RT属性匹配后,将接收到的路由添加到所述租户VPN实例中,指引租户流量向外网转发。
由以上描述可以看出,本发明通过控制器配置租户VPN实例的RT属性,同时,配置外网VPN实例的路由策略(对来自不同外网设备的路由设置RT属性),以使网关设备根据路由策略对接收的路由设置RT属性,并将路由的RT属性与租户VPN实例的RT属性进行匹配,匹配成功后将路由添加到租户的VPN实例中,指引租户流量向外网转发。通过本发明可实现网关设备上路由的动态更新。
附图说明
图1是本发明实施例示出的路由配置方法流程图;
图2是本发明实施例示出的SDN网络的示意图;
图3是本发明实施例示出的SDN网络内控制器的结构示意图;
图4是本发明实施例示出的路由配置装置的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。
本发明实施例提出一种路由配置方法,该方法通过控制器配置租户VPN实例的RT属性,同时,配置外网VPN实例的路由策略(对来自不同外网设备的路由设置RT属性),以使网关设备根据路由策略对接收的路由设置RT属性,并将路由的RT属性与租户VPN实例的RT属性进行匹配,匹配成功后将路由添加到租户的VPN实例中,指引租户流量向外网转发。
参见图1,为本发明路由配置方法的一个实施例流程图,该实施例从SDN控制器侧对路由配置过程进行描述。
步骤101,配置外网VPN实例的路由策略。
VPN是一种虚拟专用网技术,不同VPN之间的路由隔离通过VPN实例(VPN-instance)实现。每个VPN实例都有相对独立的路由表和LFIB(Label Forwarding Information Base,标签转发信息库),确保VPN数据的独立性和安全性。
VPN实例中的信息可以包括:LFIB、IP路由表、与VPN实例关联的接口以及VPN实例的管理信息中的任意一个或者多个。VPN实例的管理信息可以包括RD(Route Distinguisher,路由标识符,用于区分不同VPN的相同地址前缀)、VPN Target(亦称为Route Target,简称RT,用于控制VPN路由信息的发布)属性、路由过滤策略中的任意一个或多个。
本发明中,SDN控制器在网关设备上配置了外网VPN实例,该外网VPN实例配置在网关设备连接外网设备(例如,PE设备)的出接口上。网关设备通过该外网VPN实例与外网设备建立VPN实例邻居,为后续接收外网设备发布的路由做准备。
本步骤中,SDN控制器为外网VPN实例配置路由策略,该外网VPN实例的路由策略用于使网关设备对来自不同外网设备的路由设置RT属性。例如,对来自外网设备PE1的路由设置RT属性为1:1,对来自外网设备PE2的路由设置RT属性为2:2。
步骤102,配置租户VPN实例的RT属性。
SDN控制器在网关设备上为每一个租户配置了对应的VPN实例,简称租户VPN实例。
本步骤中,SDN控制器可为租户VPN实例配置一个或多个RT属性。
步骤103,将所述外网VPN实例的路由策略以及所述租户VPN实例的RT属性下发给网关设备。
SDN控制器将步骤101和步骤102的配置信息下发给网关设备。
网关设备通过外网VPN实例与外网设备建立邻居关系后,接收外网设备发布的路由,并根据外网VPN实例的路由策略对接收的路由设置RT属性。然后,判断路由的RT属性是否与租户VPN实例的RT属性匹配,当确定RT属性匹配后,将接收到的路由添加到租户VPN实例中,指引租户流量按照租户VPN实例中的路由向外网转发。
可选的,在本发明的另一实施例中,SDN控制器可进一步配置租户VPN实例的路由策略,该租户VPN实例的路由策略对添加到租户VPN实例中的路由根据路由的RT属性设置优先级。例如,当SDN控制器选择主备机制时,为租户选择PE1为主PE,PE2为从PE,则该租户VPN实例的路由策略可以为:设置RT属性1:1的路由(来自PE1的路由)为高优先级,设置RT属性2:2的路由(来自PE2的路由)为低优先级。
SDN控制器将配置的租户VPN实例的路由策略下发给网关设备。网关设备根据租户VPN实例的路由策略对添加到租户VPN实例中的路由设置优先级,则在后续引导该租户流量时,匹配高优先级路由向外网转发。当高优先级路由对应链路不可达时,网关设备自动失效该高优先级路由,生效次高优先级路由,指引租户流量按照新生效的路由转发,即,实现了多条路由的主备机制。
若SDN控制器未配置路由优先级,则网关设备将租户VPN实例中的多条路由作为等价路由,实现负载分担。具体租户流量如何匹配等价路由转发不是本发明重点,在此不再赘述。
此外,SDN控制器可为租户VPN实例配置独享的RT属性,例如,将RT属性1:1只配置给租户1,则来自PE1的路由只会添加到租户1的VPN实例中,即租户1独享PE1进行外网流量转发。
需要补充说明的是,SDN控制器配置租户VPN实例的RT属性,具体可包括:确定网关设备上与外网设备连接的出接口的状态;按照出接口的状态对与外网设备连接的出接口进行排序,按照出接口的排列顺序选择与出接口连接的外网设备的RT属性,配置租户VPN实例的RT属性。也就是说,选择状态最优的出接口转发租户流量。其中,出接口状态可根据出接口的up(启用)/down(禁用)状态以及出接口的带宽速率确定。例如,当出接口处于UP状态,按照剩余带宽速率由大至小进行排序;选择出接口up且剩余带宽速率最大的出接口(状态最优的出接口)连接的外网设备的RT属性,配置租户VPN实例的RT属性。
SDN控制器实时监控出接口状态,当租户VPN实例的RT属性对应的出接口处于down状态时,删除该租户VPN实例的RT属性,重新触发配置租户VPN实例的RT属性,即,使租户流量始终匹配较优路由向外网转发。具体的,重新触发配置租户VPN实例的RT属性,依然采用上述提供的方法,即:确定网关设备上与外网设备连接的出接口的状态;按照出接口的状态对与外网设备连接的出接口进行排序,按照出接口的排列顺序选择与出接口连接的外网设备的RT属性,配置租户VPN实例的RT属性。更具体的,可以按照剩余带宽速率由大至小进行排序;选择出接口up且剩余带宽速率最大的出接口连接的外网设备的RT属性,配置租户VPN实例的RT属性。
从上述描述可以看出,本发明通过SDN控制器对网关设备上的VPN实例进行配置,实现网关设备上路由的动态添加,为租户流量提供多条可选路径转发。
现以图2所示SDN网络为例,介绍路由配置过程。图示SDN网络包括虚拟机VM1~VM4(Virtual Machine,简称VM)、虚拟交换设备OVS1和OVS2(Open vSwitch,简称OVS)、SDN控制器、网关设备GW(Gateway,简称GW)、外网设备PE1~PE4(Provider Edge,简称PE)。网关设备GW上运行BGP(Border Gateway Protocol,边界网关协议)协议。
假设,GW上已创建外网VPN实例,记为ExtVPN,且在该ExtVPN下已分别与PE1~PE4建立邻居关系。SDN控制器可以为不同的邻居配置路由策略,使能从不同的PE接收到的路由设置不同的RT。例如:SDN控制器为ExtVPN配置路由策略,记为Policy1,该Policy1具体为对来自PE1的路由设置RT属性为1:1;对来自PE2的路由设置RT属性为2:2;对来自PE3的路由设置RT属性为3:3;对来自PE4的路由设置RT属性为4:4。SDN控制器通过netconf协议下发ExtVPN的Policy1给GW。
当SDN网络中新增租户User1(租用VM1)时,SDN控制器在GW上创建User1的VPN实例,记为UserVPN1,并配置UserVPN1的RT属性。假设,配置的RT属性为1:1和2:2,通过netconf协议下发UserVPN1的RT属性给GW。
当GW从PE1接收到路由(记为R1)时,根据ExtVPN的路由策略Policy1设置R1的RT属性为1:1,R1的RT属性与UserVPN1中的RT属性1:1匹配,因此,将R1添加到UserVPN1中。同理,GW从PE2接收到的路由(记为R2),根据ExtVPN的路由策略Policy1设置R2的RT属性为2:2,R2的RT属性与UserVPN1中的RT属性2:2匹配,因此,将R2添加到UserVPN1中。至此,UserVPN1中存在两条路由R1和R2。GW可以将这两条路由作为等价路由指引User1的流量向外网转发。
当然,也可将上述两条路由作为主备路由。具体可通过SDN控制器配置UserVPN1的路由策略Policy2,该Policy2具体为对添加到UserVPN1中的路由根据路由的RT属性设置优先级,例如,设置RT属性为1:1的路由的优先级为高优先级;RT属性为2:2的路由的优先级为默认优先级,即低优先级。
可选的,在设置优先级时,可通过数字进行设置,例如优先级高的数字大,优先级低的数字小,进而可以通过比较数字大小来确定路由的优先级。
SDN控制器通过netconf协议下发UserVPN1的路由策略Policy2给GW。则GW在向UserVPN1添加路由R1时,根据UserVPN1的Policy2设置R1的优先级为7;添加路由R2时,根据UserVPN1的Policy2设置R2的优先级为默认优先级0。GW中高优先级路由R1生效,低优先级路由R2失效,User1的流量匹配R1向外网转发。当R1的下一跳不可达时,R1失效,R2生效,User1的流量可通过R2向外网转发,起到主备路由的目的。
需要说明的是,R1的优先级为7以及R2的默认优先级0,其中的数字7和数字0仅仅是举例说明,不应当以此为限制。
需要补充说明的是,SDN控制器可动态配置UserVPN1的RT属性。具体为,SDN控制器可通过与GW之间的Openflow连接,获取GW上与PE设备连接的出接口(假设,与PE1~PE4连接的出接口分别为Interface1~Interface4)的状态,包括UP/DOWN状态、接口带宽速率等。当出接口处于up状态,且剩余带宽大于预设阈值,即剩余带宽较多时,该出接口的状态较优。按照出接口状态进行排序,选择状态较优的出接口连接的PE设备的RT属性配置UserVPN1的RT属性。假设,出接口状态从优到劣的排列顺序为Interface1、Interface2、Interface3、Interface4,SDN控制器拟为UserVPN1配置两个RT属性,则将与Interface1连接的PE1的RT属性1:1、与Interface2连接的PE2的RT属性2:2配置给UserVPN1,为User1提供高质量的转发路径。
假设,SDN控制器监测Interface1处于down状态,则可主动删除UserVPN1的RT属性1:1,重新选择状态较优的出接口配置UserVPN1的RT属性,例如,按照出接口状态排序选择与Interface3连接的PE3的RT属性3:3配置UserVPN1的RT属性,此时,UserVPN1中配置的两个RT属性为2:2和3:3,以保证User1的流量的转发质量。
与前述路由配置方法的实施例相对应,本发明还提供了路由配置装置的实施例。
本发明路由配置装置的实施例可以应用在SDN控制器上。装置实施例可以通过软件实现,也可以通过硬件或者软硬件结合的方式实现。以软件实现为例,作为一个逻辑意义上的装置,是通过其所在设备的处理器运行存储器中对应的计算机程序指令形成的。从硬件层面而言,如图3所示,为本发明路由配置装置所在设备的一种硬件结构图,除了图3所示的处理器以及非易失性存储器之外,实施例中装置所在的设备通常根据该设备的实际功能,还可以包括其他硬件,对此不再赘述。
请参考图4,为本发明一个实施例中的路由配置装置的结构示意图。该路由配置装置包括策略配置单元401、属性配置单元402以及配置下发单元403,其中:
策略配置单元401,用于配置外网虚拟专用网VPN实例的路由策略,所述外网VPN实例的路由策略用于使网关设备对来自不同外网设备的路由设置路由目标RT属性;
属性配置单元402,用于配置租户VPN实例的RT属性;
配置下发单元403,用于将所述外网VPN实例的路由策略以及所述租户VPN实例的RT属性下发给网关设备,以使所述网关设备根据所述外网VPN实例的路由策略对从外网设备接收的路由设置RT属性后,判断所述路由的RT属性是否与所述租户VPN实例的RT属性匹配,并在确定RT属性匹配后,将接收到的路由添加到所述租户VPN实例中,指引租户流量向外网转发。
进一步地,
所述策略配置单元401,还用于配置所述租户VPN实例的路由策略,所述租户VPN实例的路由策略用于对添加到所述租户VPN实例中的路由根据路由的RT属性设置优先级;
所述配置下发单元403,还用于将所述租户VPN实例的路由策略下发给所述网关设备,以使所述网关设备根据所述租户VPN实例的路由策略对添加到所述租户VPN实例中的路由设置优先级,指引租户流量采用匹配到的高优先级路由向外网转发。
进一步地,所述属性配置单元402,包括:
状态确定模块,用于确定所述网关设备上与外网设备连接的出接口的状态;
接口排序模块,用于按照出接口的up/down状态及带宽速率对与外网设备连接的出接口进行排序;
属性选择模块,用于按照出接口的排列顺序选择与出接口连接的外网设备的RT属性,配置租户VPN实例的RT属性。
进一步地,
所述接口排序模块,具体用于当出接口up时,按照剩余带宽速率由大至小进行排序;
所述属性选择模块,具体用于选择出接口up且剩余带宽速率最大的出接口连接的外网设备的RT属性,配置租户VPN实例的RT属性。
进一步地,所述属性配置单元402,还包括:
属性删除模块,用于当租户VPN实例的RT属性对应的出接口处于down状态时,删除所述租户VPN实例的RT属性,重新触发配置租户VPN实例的RT属性。
上述装置中各个单元的功能和作用的实现过程具体详见上述方法中对应步骤的实现过程,在此不再赘述。
对于装置实施例而言,由于其基本对应于方法实施例,所以相关之处参见方法实施例的部分说明即可。以上所描述的装置实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本发明方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。