一种多出口路由选择方法技术

技术编号:21899064 阅读:13 留言:0更新日期:2019-08-17 18:28
本发明专利技术公开了一种多出口路由选择方法,依据每个网络出口服务器进行路径探测模块实现目的地址实时探测,并上传到路径管理中心,由路径管理中心进行路由策略判定,确定多网络出口中同一目的地址的最优路径。netfilter的自定义模块采用区间树(intervaltree)检索算法,实现快速对所有数据包的目的地址进行分类标记(指定网络出口),同时根据数据包的源地址动态匹配用户权限等级,基于用户权限等级与网络出口服务器的标识码,指定对应可用的网络出口。再由策略路由依据fwmarkb包标识实现路由出口选择,该方法可以适应网络多出口的动态调整,实现多出口路由的高精度动态自动选择。

A Multi-outlet Routing Method

【技术实现步骤摘要】
一种多出口路由选择方法
本专利技术涉及IP
,具体涉及一种多出口路由选择方法。
技术介绍
随着网络的高速发展,全球化网络的网络部署成为越来越多企业的选择,那么面临的网络节点的互联,与运营商不同的是,如何利用有限的网络出口节点,实现更高精度的路由选择,成为了一个关键问题。传统的IP技术是针对策略路由和明细路由实现路由选路方式,如果路由目的存在多出口情况,只能通过海量的明细路由去实现更小颗粒度的路由选路。很难做到精准控制以及动态管理路由。传统的路由方式基本上都是基于目的地的匹配规则来进行,网络转发服务器只通过接受的IP报文中的目的地址来进行匹配明细路由,很难按照用户指定的特定信息进行路由转发,无法根据不同的链路费用,不同的链路上的负载,进行有效的管理。为有限的网络出口为目的地址选择最快的出口路径,现有技术相对来比较灵活一点的是iptables+geoip模块匹配国家区域,但是这个匹配仅仅依赖于固定网络出口的环境,如果网络出口新增,或者减少,需要做很大的工作去支持这个变动,这使得整个环境变得不稳定。总之,现有的技术在面对多出口时,很难达到高精度动态调整的路由选择。
技术实现思路
本专利技术提供了一种多出口路由选择方法,当网络转发服务器接收到新的数据包时,就可以匹配到当前时刻最新的用户的权限等级对应的网络出口服务器的标识码,适应多出口动态调整,实现多出口自动选择。本专利技术中,网络转发服务器基于netfilter捕获数据报文(即数据包)目的地址,根据路径管理中心统计的所有网络出口服务器上报的实时数据,找到最优路径的网络出口服务器,接口标识数据报文,由策略路由找到对应标识的隧道链路,将报文转发至对应的网络出口服务器,由网络出口服务器通过本地运营商链路发送至目的地址;网络转发服务器是一个网络边缘设备的节点服务器,其基于网络层进行数据转发,用户的流量通过网络转发服务器流入到不同的网络出口,而网络出口的数据将对应的数据流入到本地服务提供商的骨干网中。网络转发服务器类似于服务提供商骨干网的边缘路由器,相当于MPLS网络中的PE设备(ProviderEdge),PE设备连接CE路由器(用户边缘设备)和P路由器(Provider核心层设备),是最重要的网络节点。用户的流量通过PE设备流入用户网络,或者通过PE设备流到MPLS骨干网。一种多出口路由选择方法,包括以下步骤:1)、根据部署环境设置多个网络出口服务器,每个网络出口服务器都与网络转发服务器构建隧道链路,每个网络出口服务器周期性探测指定区域内所有IP网段的目的地址的路由跳数(ttl)以及延时值,网络出口服务器将探测到目的地址的路由跳数(ttl)以及延时值上传到路径管理中心;2)路径管理中心将对所有网络出口服务器上报的目的地址的路由跳数和延时值进行筛选出最快达到对应目的地址的网络出口服务器,路径管理中心将获取每个网络出口服务器上报的唯一的标识码(ID_code),该唯一标识码由网络出口服务器预置参数,用于区分不同的网络出口服务器,将最快达到对应目的地址的网络出口服务器以及该网络出口服务器上的唯一的标识码存储到数据库;3)网络转发服务器周期性地向路径管理中心获取当前时刻所有网络出口服务器已上报目的地址的最优路径数据,保存至最优路径数据存储文件中,网络转发服务器(预先装有Linux系统)基于netfilter架构的内核匹配模块使用双缓存周期性加载最优路径数据文件(采用双缓存加载数据目的是保证支持周期动态加载数据,而且不需要通过锁定当前使用缓冲区),得到用于匹配最优路径的缓存数据;4)网络转发服务器周期性地向路径管理中心获取当前时刻所有用户的等级数据,保存至用户权限等级文件中,网络转发服务器基于netfilter模块使用双缓存周期性加载用户权限等级数据,得到用于匹配用户权限等级的缓存数据;5)当网络转发服务器接收到数据包时,通过网络转发服务器内置netfilter模块的钩子函数获取到对应数据包的信息,首先将进行解析数据包的目的IP地址,通过该目的IP地址匹配步骤3)中用于匹配最优路径的缓存数据,找到对应最优路径数据的网络转发服务器和该网络转发服务器的标识码,将解析数据包的源IP地址,通过源IP地址查找步骤4)中的用于匹配用户权限等级的缓存数据,得到对应用户的权限等级;如果用户的权限等级大于等于标识码,则将该标识码用于标识数据包的sk_buff结构体(linux网络内核中的数据结构)中的mark值;如果用户的权限等级小于标识码,则将使用降级算法进行网络出口降级,降级到预置的默认网络出口服务器,将默认的网络出口服务器标识码用于标识数据包的sk_buff结构体(linux网络内核中的数据结构)中的mark值,得到用户的权限等级对应的网络出口服务器的标识码,之后数据包将由netfilter进行下一步数据处理。6)将数据包在策略路由中采用路由策略数据库匹配,当匹配到步骤5)中用户的权限等级对应的网络出口服务器的标识码,在对应的策略路由引导到标识码对应的网络出口服务器的路由表,该路由表中存在对应网络出口服务器的默认路由(下一跳为对应网络出口服务器隧道的对端地址),如果策略路由中匹配不对应的标识码,则将使用本网络转发服务器的默认路由出口(本地运营商出口)。7)重复步骤1)至4),对步骤3)的用于匹配最优路径的缓存数据和步骤4)的用于匹配用户权限等级的缓存数据更新。当网络转发服务器接收到新的数据包时,就可以匹配到当前时刻最新的用户的权限等级对应的网络出口服务器的标识码,适应多出口动态调整,实现多出口自动选择。步骤1)中,所述的指定区域是根据网络出口服务器的位置预设,如网络出口服务器的位置在亚洲,指定区域则为亚洲区域。所有的网络出口服务器周期性探测指定区域内所有目的地址的路由跳数(ttl)以及延时值,将路由跳数和延时值上报至路径管理中心;周期性一般以15~30分钟作为一个周期,指定区域是指该网络出口服务器所在的物理位置划分,一般采用国家或洲为单位划分,如中国,亚洲,欧洲,非洲等划分。步骤2)中,路径管理中心将提供API接口(ApplicationProgrammingInterface,应用程序编程接口),用于获取当前时刻所有网络出口服务器已上报目的地址的最优路径数据,该最优路径数据为指定的二进制格式。同时路径管理中心基于数据库提供用户数据等级查询API接口,用户不同的用户权限分级,如果用户权限一般则只能使用部分默认网络出口,用户权限较高则可以使用更多的网络出口。路径管理中心连接数据库,对外提供API服务。步骤3)中,使用双缓存周期性加载最优路径数据文件具体包括:a)双缓存即为2个预先分配固定大小的内存存储区域,这2个内存存储区域通过时间戳进行交替更换使用(实现无锁的异步缓存使用),当一个内存存储区域处于加载状态时,另一个内存存储区域处于匹配最优路径状态;b)加载状态的数据来源于最优路径数据存储文件,最优路径数据存储文件中每个有效数据采用二进制格式,将二进制格式的有效数据解析,采用区间树(intervaltree)算法进行存储到当前加载的内存存储区域中,形成用于匹配最优路径的缓存数据。步骤b)中,所述的最优路径数据存储文件中每个有效数据采用二进制格式,具体为32位的IP数据,8位的掩码(M本文档来自技高网...

【技术保护点】
1.一种多出口路由选择方法,其特征在于,包括以下步骤:1)、根据部署环境设置多个网络出口服务器,每个网络出口服务器都与网络转发服务器构建隧道链路,每个网络出口服务器周期性探测指定区域内所有IP网段的目的地址的路由跳数以及延时值,网络出口服务器将探测到目的地址的路由跳数以及延时值上传到路径管理中心;2)路径管理中心将对所有网络出口服务器上报的目的地址的路由跳数和延时值进行筛选出最快达到对应目的地址的网络出口服务器,路径管理中心将获取每个网络出口服务器上报的唯一的标识码,该唯一标识码由网络出口服务器预置参数,用于区分不同的网络出口服务器,将最快达到对应目的地址的网络出口服务器以及该网络出口服务器上的唯一的标识码存储到数据库;3)网络转发服务器周期性地向路径管理中心获取当前时刻所有网络出口服务器已上报目的地址的最优路径数据,保存至最优路径数据存储文件中,网络转发服务器基于netfilter架构的内核匹配模块使用双缓存周期性加载最优路径数据文件,得到用于匹配最优路径的缓存数据;4)网络转发服务器周期性地向路径管理中心获取当前时刻所有用户的等级数据,保存至用户权限等级文件中,网络转发服务器基于netfilter模块使用双缓存周期性加载用户权限等级数据,得到用于匹配用户权限等级的缓存数据;5)当网络转发服务器接收到数据包时,通过网络转发服务器内置netfilter模块的钩子函数获取到对应数据包的信息,首先将进行解析数据包的目的IP地址,通过该目的IP地址匹配步骤3)中用于匹配最优路径的缓存数据,找到对应最优路径数据的网络转发服务器和该网络转发服务器的标识码,将解析数据包的源IP地址,通过源IP地址查找步骤4)中的用于匹配用户权限等级的缓存数据,得到对应用户的权限等级;如果用户的权限等级大于等于标识码,则将该标识码用于标识数据包的sk_buff结构体中的mark值;如果用户的权限等级小于标识码,则将使用降级算法进行网络出口降级,降级到预置的默认网络出口服务器,将默认的网络出口服务器标识码用于标识数据包的sk_buff结构体(linux网络内核中的数据结构)中的mark值,得到用户的权限等级对应的网络出口服务器的标识码,之后数据包将由netfilter进行下一步数据处理;6)将数据包在策略路由中采用路由策略数据库匹配,当匹配到步骤5)中用户的权限等级对应的网络出口服务器的标识码,在对应的策略路由引导到标识码对应的网络出口服务器的路由表,该路由表中存在对应网络出口服务器的默认路由,如果策略路由中匹配不对应的标识码,则将使用本网络转发服务器的默认路由出口,即本地运营商出口;7)重复步骤1)至4),对步骤3)的用于匹配最优路径的缓存数据和步骤4)的用于匹配用户权限等级的缓存数据更新。...

【技术特征摘要】
1.一种多出口路由选择方法,其特征在于,包括以下步骤:1)、根据部署环境设置多个网络出口服务器,每个网络出口服务器都与网络转发服务器构建隧道链路,每个网络出口服务器周期性探测指定区域内所有IP网段的目的地址的路由跳数以及延时值,网络出口服务器将探测到目的地址的路由跳数以及延时值上传到路径管理中心;2)路径管理中心将对所有网络出口服务器上报的目的地址的路由跳数和延时值进行筛选出最快达到对应目的地址的网络出口服务器,路径管理中心将获取每个网络出口服务器上报的唯一的标识码,该唯一标识码由网络出口服务器预置参数,用于区分不同的网络出口服务器,将最快达到对应目的地址的网络出口服务器以及该网络出口服务器上的唯一的标识码存储到数据库;3)网络转发服务器周期性地向路径管理中心获取当前时刻所有网络出口服务器已上报目的地址的最优路径数据,保存至最优路径数据存储文件中,网络转发服务器基于netfilter架构的内核匹配模块使用双缓存周期性加载最优路径数据文件,得到用于匹配最优路径的缓存数据;4)网络转发服务器周期性地向路径管理中心获取当前时刻所有用户的等级数据,保存至用户权限等级文件中,网络转发服务器基于netfilter模块使用双缓存周期性加载用户权限等级数据,得到用于匹配用户权限等级的缓存数据;5)当网络转发服务器接收到数据包时,通过网络转发服务器内置netfilter模块的钩子函数获取到对应数据包的信息,首先将进行解析数据包的目的IP地址,通过该目的IP地址匹配步骤3)中用于匹配最优路径的缓存数据,找到对应最优路径数据的网络转发服务器和该网络转发服务器的标识码,将解析数据包的源IP地址,通过源IP地址查找步骤4)中的用于匹配用户权限等级的缓存数据,得到对应用户的权限等级;如果用户的权限等级大于等于标识码,则将该标识码用于标识数据包的sk_buff结构体中的mark值;如果用户的权限等级小于标识码,则将使用降级算法进行网络出口降级,降级到预置的默认网络出口服务器,将默认的网络出口服务器标识码用于标识数据包的sk_buff结构体(linux网络内核中的数据结构)中的mark值,得到用户的权限等级对应的网络出口服务器的标识码,之后数据包将由netfilter进行下一步数据处理;6)...

【专利技术属性】
技术研发人员:严燕冬黄慧攀
申请(专利权)人:杭州商湾网络科技有限公司
类型:发明
国别省市:浙江,33

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1