掌桥专利:专业的专利平台
掌桥专利
首页

基于事实所有权的有效路由起源同步方法及系统

文献发布时间:2023-06-19 11:39:06


基于事实所有权的有效路由起源同步方法及系统

技术领域

本发明涉及互联网域名技术领域,特别涉及一种基于事实所有权的有效路由起源同步方法及系统。

背景技术

BGP是IETF标准协议,也是互联网事实上应用的一种实现域间路由可达和选择最佳路由的协议。它提供了一种允许自治域(Autonomous System,AS)向邻居自治域通告其使用的IP地址前缀集和经由其可达的目的地路由,但它并不保障自治域通告的IP地址前缀是该自治域合法使用的。于是,当自治域BGP路由出现IP地址前缀配置错误或是恶意宣称持有特定IP地址前缀等情况时,将导致原本发送至正确自治域的互联网流量被错误转发至其他自治域,造成自治域的流量被劫持,网络出现中断。

为防止上述情况发生,IETF开始在互联网域间路由系统推广部署RPKI(ResourcePublic Key Infrastructure)。RPKI是在互联网码号资源层级分配的架构上,通过作为信任锚点的证书颁发机构签发公钥证书来保障各个层级的互联网码号资源的授权、分配的公钥体系。通过RPKI来进行路由起源认证的BGP路由器可以依靠RTR(RPKI to Router)协议从依赖方(Relaying Party,RP)获取全部自治域合法分配的IP地址前缀授权信息,即路由器起源授权。一条路由起源授权主要由自治域号码,IP地址前缀和前缀最大长度数据构成。多条路由起源授权组成合法的路由起源授权信息集合,路由器可以利用此集合过滤掉收到的无效路由起源消息。此外,依赖方需要从证书颁发机构的资料库中同步的RPKI签名对象文件来维护本地路由源授权数据为最新。

RPKI运行机制概述:当RPKI地址注册机构存在IP资源分配事务时,地址注册机构,被分配的ISP或机构组织的证书,路由源授权(Route Origin Authorization,ROA)及其他RPKI签名对象文件将上载至地址注册机构资料库。依赖方定期地下载该签名对象文件,将验证后的IP地址前缀授权信息通过RTR协议分发至服务的BGP路由器,当有新的路由通告到达这些边界路由器时,依赖方提供的IP地址前缀授权信息就成为边界路由器判断路由通告是否可信的一个依据。

这种基于公钥基础设施进行资源授权为第三方权威认证方式。实际域间路由系统运行中大部分对于资源基于事实所有权。事实所有权是域间路由系统中其他自治域对于自治域宣称特定IP资源所有权的认可。具体体现为,自治域向其他自治域通告路由起源消息更新时,该条更新可以通过其他自治域的本地路由通告过滤策略被自治域BGP路由器保存至路由转发信息表中。且该条路由起源在有效期(有效期指路由起源信息从被其他路由器接收的时间接收到至原自治域撤销的时间段)内不会被域间路由系统视为异常,而被其他路由器删除或拒绝接收。

目前互联网服务提供商(Internet Service Provider,ISP)部署RPKI进行路由源认证较少,主要有两方面的原因:一方面是因为RPKI仍处于推广部署阶段,RPKI签名对象文件覆盖的IP地址前缀占总分配数比例较低,能够覆盖的有效路由较少;其次,一个资源持有者未部署RPKI,但其父级资源持有者部署了RPKI,那么该持有者的合法资源授权信息并不会出现在其父级的RPKI签名对象文件中,那么就可能导致其合法路由被错误分类为无效路由;另一个方面是,依赖方从权威服务器的资料发布点对RPKI签名对象文件的同步更新在某些情况下并不完整,这样与实际域间路由系统中的真实关系不严格一致,可能会导致自治域原本合法的IP地址前缀授权关系被判定为无效,进而可能带来路由可达性广泛失效的不利影响。

目前RPKI尚未覆盖的IP地址前缀较多,而且根据地址注册机构的研究表明不同的依赖方对RPKI签名对象同步的一致性、完整性、时效性不一,这反而会增加不利于域间路由系统安全稳定的风险。所以,为使目前RPKI体系尚未覆盖的大多数事实合法的路由源信息在RPKI体系内共享,对各个依赖方之间的数据进行一致性同步,就要对有效路由源信息的采集、判定、同步等重要环节和过程做出必要的步骤改进,而改进方案不应对现有RPKI机制的性能、安全性和可靠性产生不利的影响。

发明内容

本发明的目的是,提供一种基于事实所有权的有效路由起源同步方法及系统,在不影响现有的RPKI机制的前提下,通过对有效路由源信息在采集、判定和同步等过程进行创新,以准确的判断某路由源信息是否为事实有效的。

本发明的第一方面,提供了一种基于事实所有权的有效路由起源同步方法,该方法包括:

AS的BGP路由的路由源信息向VC服务器发起同步更新;

VC服务器提取并记录满足预设观察期条件的增量路由源更新的数据发送至数据聚合管理服务器;

数据聚合管理服务器对每个VC服务器发送的增量路由源更新的数据进行处理,并将处理完毕的消息发送给依赖方服务器进行汇总;

依赖方服务器更新全局路由源信息表,并分发给各数据聚合管理服务器,由各数据聚合管理服务器转发至其连接的VC服务器中;

VC服务器接收来自数据聚合管理服务器反馈的增量路由源更新消息记录更新的全局路由源信息表。

进一步地,VC服务器通过扩展和新增RTR协议的PDU TYPE类型,实现所述AS的BGP路由的路由源信息的更新过程。

进一步地,所述VC服务器对采集的增量路由源更新的数据预处理为特定的结构化语言后,通过Kafka系统发送到各数据聚合管理服务器中。

进一步地,所述数据聚合管理服务器的处理过程包括:

按消息队列接收来自各个VC服务器中满足观察期时限的增量路由源更新消息;

解析每个VC服务器发送的增量路由源更新消息记录,统计提交相同的每条增量路由源更新消息记录的全部自治域及自治域的数量,直到全部VC服务器提交的增量路由源更新消息统计完毕;

每个数据聚合管理服务器分别将统计完毕的增量路由源更新数据发送至依赖方服务器进行汇总。

进一步地,AS的BGP路由器的路由源信息向VC服务器同步更新的过程包括:

AS的BGP路由器发起对某序列号的本地路由源信息表的更新通告;

VC服务器核对序列号进行校验,并在校验通过时,向路由器发起对该序列号的路由源信息查询,请求该序列的增量路由源更新;

路由器校验路由源信息查询的序列号,并在校验通过时,进行增量路由源的更新。

进一步地,所述增量路由源的更新包括:

路由器对最新序列号的路由源信息表增量更新信息逐条封装并发送至VC服务器;

VC服务器将接收的该最新序列号的增量更新信息存储至VC服务器的增量路由源信息表中,至全部更新完毕。

进一步地,VC服务器以预设的观察期t1秒为周期执行全局路由源信息表的更新,提取的增量路由源更新信息数据需要同时满足下列条件:

a)存在于本地路由信息表中时长超过预设的观察期t1秒减去预设的全局路由收敛时间t2秒的差值为t秒的;

b)参与全局路由源同步的次数小于或等于预设次数r次的,其中,当r=0时,则为未参与全局路由源同步的;

c)未生效于当前最新序列号的全局路由源信息表中的;

d)生效时间需大于观察期时间的更新。

进一步地,在确定提取增量路由源更新的数据时,还对异常路由源信息进行过滤,过滤后增量路由源信息更新记录用结构化语言进行包装,并通过SSL协议发送至数据聚合管理服务器的消息接收队列中。

进一步地,依赖方服务器根据增量路由源更新消息记录的自治域的数量,提取自治域提交过的增量路由源更新消息记录,逐条对当前序列号全局路由源信息表进行更新,更新完毕后全局路由源信息表序列号自增1。

本发明的第二方面,还提供了一种基于事实所有权的路由起源信息同步系统,该系统包括:数据采集层、数据聚合层、依赖方服务器,其中,

数据采集层,包括多个VC服务器,各VC服务器用于采集对应的AS的BGP路由中满足预设观察期条件的增量路由源更新的数据发送至数据聚合层,以及接收数据聚合层反馈的增量路由源更新消息记录对全局路由源信息进行更新;

数据聚合层,用于对每个VC服务器发送的增量路由源更新的数据进行处理,并将处理完毕的消息发送给依赖方服务器进行汇总,以及接收从依赖方服务器反馈的更新完毕的全局路由源信息表;

依赖方服务器,用于对从数据聚合层发送的各增量路由源更新消息记录进行汇总并更新全局路由源信息表,再发送给数据聚合层的各VC服务器。

与现有技术相比,本发明所公开的一种基于事实所有权的有效路由起源同步方法及系统,达到了如下技术效果:

1、本发明在路由器侧与VC路由器同步路由源信息的过程中,通过新增了RTR协议PDU TYPE的类型来实现路由器侧发起路由源信息更新通知、路由源信息更新推送和RPKI侧VC服务器发起的更新询问,从而完成路由源信息的路由器侧至RPKI侧的实时更新交互过程。

2、本发明采用分布式数据流处理方法,来接收来自各个VC服务器满足观察期时限的增量路由源更新消息,提高整体的路由源数据流处理效率。

3、本发明通过设定观察期,也即路由源信息在自治域路由器中被接收的时刻起累计被存储的时间的阈值,观察期内未被路由系统视为异常,且其他绝大部分自治系统都接收了此路由源信息,我们则判定此路由源信息为事实有效的,提高了判断的准确率。

4、本发明通过新的RTR协议的路由源信息采集方法和分布式数据流处理,增加了对于实际域间路由系统中事实有效的路由源信息的获取,扩大覆盖有效路由源的范围,从而降低对于域间路由系统中占大部分的长期有效路由源的误判。

附图说明

为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1是现有技术中依赖方同步数据完整性缺失引发路由可达失效的一个实施例示意图。

图2是本发明实施例中的新的RTR协议路由源信息的交互过程图。

图3是本发明实施例中的VC本地路由源信息更新的流程图。

图4是本发明实施例中的有效路由源信息同步方法的流程图。

图5是本发明实施例中的有效路由源信息同步系统的架构图。

具体实施方式

下面将结合附图,对本发明实施例中的技术方案进行清楚、完整地描述,但不作为对本发明的限定。

现有技术中,RPKI路由起源授权信息同步机制不能完全保证权威机构的资料发布点与依赖方数据同步的完整性,且未覆盖大多数有效路由起源信息,容易造成误判。针对这种情况,本发明实施例提出了一种新的基于事实所有权的有效路由源信息判定解决方案,在使用RPKI的第三方认证模式的基础上,通过新的RTR协议的路由源信息采集方法和分布式数据流处理,增加了对于实际域间路由系统中事实有效的路由源信息的获取,扩大覆盖有效路由源的范围,从而降低对于域间路由系统中占大部分的长期有效路由源的误判。

参照图4所示,本发明实施例所提供的一种基于事实所有权的有效路由起源同步方法,包括如下步骤,其中,在本实施例中,如无特别说明,AS表示自治域,RP表示依赖方,VC表示缓存分发服务器。

第一步、AS的BGP路由器的路由源信息向VC服务器发起同步更新。

其中,BGP路由器利用新的RTR(RPKI to Router)协议将本域新收到的来自域间的路由起源信息发送至缓存分发(VC)服务器。

为因应RPKI数据信息需覆盖的大多数事实合法的路由源信息的要求,需使得RPKI部件能从自治域边界路由器中获取事实合法的路由源信息。RTR(RPKI to Router)协议是一种将RPKI授权信息发送至路由器的标准协议,其具有以下优点:

a.安全性高。协议支持使用多层次的安全协议,如TLS,IPsec等。

b.良好的可扩展性。协议预留了协议负载类型字段的可扩展编号,通过新增负载类型编号及其对应的负载字段,即可实现协议负载类型的扩展。

但是目前RTR协议并未实现从路由器侧实时同步路由源信息的交互流程。为此,本发明通过新增RTR协议PDU TYPE的类型(例如Roi Serial Notify、Roi Serial Query、RoiReset Query、Roi Router Response、Roi IPv4 Prefix、Roi IPv6 Prefix、Roi End ofData等类型)来实现路由器侧发起路由源信息更新通知、路由源信息更新推送和RPKI侧VC服务器发起的更新询问,从而完成路由源信息的路由器侧至RPKI侧的实时更新交互过程。

参照图2、图3所示,AS自治域的路由器与VC服务器的交互过程如下面步骤所示:

1.1)路由器发起ROI Serial Notify:通过新的RTR协议向其提供路由源授权信息的VC1服务器发起对序列号为SN_n的本地路由源信息表的更新通告(Roi Serial Notify)。

1.2)VC核对序列号是否正确:正确的更新序列号应比当前VC本地路由源信息表的序列号大1,序列号SN_n大于1或小于1为错误。若请求序列号SN_n等于当前已有序列号,则响应Roi End of Data。不正确进入下面的1.3步,正确进入1.4步。

1.3)VC服务器响应错误:VC1服务器向路由器发送序列号错误响应。

1.4)VC发起ROI Serial Query:VC1服务器向路由器发送序列号SN_n的本地路由源信息表的查询ROI Serial Query,以请求SN_n序列的增量路由源更新。

1.5)路由器校验ROI Serial Query序列号:路由器校验VC1服务器发送的ROISerial Query序列号请求的序列号正确,进入1.11步。

1.6)路由器发送重置响应:Roi Router Reset Response

1.7)VC服务器发送Reset Query(重置查询):当VC服务器接受路由的重置响应后,应向路由器发送Reset Query,以请求路由器发送当前序列号的路由源信息表。

1.8)路由器发送当前序列号的全量Roi Payload PDU:路由器逐条将存储于本地的序列号为SN_n的路由源信息表按IP协议打包成Roi IPv4 Prefix或Roi IPv6 Prefix数据包发送至VC1服务器。

1.9)VC服务器接收ROI Payload PDU,更新本地路由源信息表:VC1接收到来自路由器的最新序列号为SN_n的路由源信息表全部记录后,将VC1本地的路由源信息表全部更新为此表中的数据,序列号也保持一致。

1.10)路由器发送增量ROI Payload PDU:路由器对SN_n序列号的路由源信息表增量更新信息逐条封装成Roi IPv4 Prefix或Roi IPv6Prefix发送至VC1服务器,以Roi Endof Data作为发送结束包。

1.11)VC服务器接收ROI Payload PDU,更新本地路由源信息表:VC1将接收的SN_n号增量更新信息的存储至VC1的增量路由源信息表中,直至接收到路由器Roi End ofData,表示本次SN_n号增量信息接收完毕。VC1按照接收的增量路由源信息对本地序列号为SN_n-1的本地路由源信息表逐条进行新增或撤销,更新本地路由源信息表,VC1中序列号为SN_n-1的本地路由器表更新为SN_n(序列号自增1)。

1.12)VC服务器本地路由源信息表更新完毕,准备接收下一次更新。

第二步、增量路由源信息提取。VC1以预设的观察期t1秒为周期执行全局路由源信息表的更新。首先进行增量路由源信息提取,提取的增量路由源更新信息数据需要同时满足下列四个条件:

a)存在于本地路由信息表中时长超过预设的观察期t1秒减去预设的全局路由收敛时间t2秒的差值为t秒的;t=t1-t2,t1是观察期t1秒,t2是预设的全局路由收敛时间t2秒,最后的t是满足条件的阈值;

b)参与全局路由源同步的次数小于或等于预设次数r次的,当r=0时,视为未参与全局路由源同步;

c)未生效于当前最新序列号的全局路由源信息表中的;

d)生效时间需大于观察期时间的更新。如在此期间接收到一条路由源的新增更新,同时存在另一条对相同路由源的撤销更新,则该条新增更新生效时间为小于观察期。

不同自治域之间的流量的流向存在特定偏好与一定的规则性,由于BGP路由源有效与否会影响到域间路由系统对于流量的正常转发,从而异常或无效的路由源在数小时内就会被网络管理者发现。而域间互联网中大部分的路由源信息保持稳定,并不会经常变动。有鉴于此,本发明通过设定观察期,其中,观察期是指路由源信息在自治域路由器中被接收的时刻起累计被存储的时间的阈值,观察期内未被路由系统视为异常,且其他绝大部分自治系统都接收了此路由源信息,我们则判定此路由源信息为事实有效的。例如:某系统下部署在100个自治域的VC服务器中大多数都向数据聚合管理服务器其发送了一条“{"ASN":666,"IP Prefix":"202.17.14.0/24","MaxLength":24}”新增的路由起源信息,且其超过12小时没有从大多数VC服务器中收到其被撤销的消息,那么我们就认为该条路由前缀为事实所有权有效的路由起源信息。

第三步、异常数据的过滤。确定提取数据后,在VC1增量路由信息表中被提取的增量记录的“参与全局同步次数r字段”增加1。将选中的增量路由源更新记录进行特定异常路由源信息过滤,以防止将异常数据提交至聚合层,仅保留完整的数据。

第四步、增量路由源信息发送至聚合层处理。过滤后的增量路由源信息更新记录用结构化语言(例如JSON)进行包装,通过SSL协议发送至数据聚合管理服务器的消息接收队列主题(topic)为对应的更新的全局路由源信息表序列号SN_x中。其中,增量路由源更新近路json文件的一个示例如下所示:

第五步、数据聚合管理服务器从消息队列中取出数据处理。

为因应需要同时对不同自治域路由数据收集的情况,本发明实施例采用分布数据息流管理系统——Kafka。使用Kafka能够很好的协调不同自治域硬件设备的差异带来的数据接收、转发的性能瓶颈。这样可以提高整体的路由源数据流处理效率。

数据聚合管理服务器可以配置1台或多台进行分布式处理。数据聚合管理服务器对数据的处理主要包括如下步骤:

5.1、数据聚合管理服务器消息队列接收来自各个VC服务器中满足观察期时限的增量路由源更新消息。

5.2、解析每个VC服务器发送的增量路由源更新消息记录,统计提交相同的每条增量路由源更新消息记录的全部自治域及自治域的数量,直到全部VC服务器提交的增量路由源更新消息统计完毕。举例来说,假如某VC服务器收到一条“{"ASN":666,"IP Prefix":"202.17.14.0/24","MaxLength":24,"Operation":"update"}”新增的路由源信息记录,AS1、AS2和AS3都提交了该条,则统计该条提交的自治域:AS1、AS2、AS3,自治域数量:3。

5.3、每个数据聚合管理服务器分别将统计完毕的增量路由源更新消息发送至依赖方服务器汇总统计。

第六步、依赖方数据汇总。依赖方服务器解析每个数据聚合管理服务器发送的增量路由源更新消息记录,统计提交相同的每条增量路由源更新消息记录的全部自治域及自治域的数量,直到全部数据聚合管理服务器提交的增量路由源更新消息统计完毕。

第七步、依赖方更新全局路由源信息表。依据增量路由源更新消息记录的自治域的数量,提取出大部分自治域都提交的增量路由源更新消息记录。依照增量路由源更新消息记录,逐条对当前序列号的全局路由源信息表进行更新,更新完毕后全局路由源信息表序列号自增1。

第八步、依赖方全局路由源信息表增量更新数据分发。依赖方主服务器将参与全局路由源信息表的增量路由源更新消息记录发送至各个数据聚合管理服务器,各个数据聚合管理服务器再转发至其连接的VC服务器中。

第九步、VC全局路由源信息表更新。VC服务器接收到来自数据聚合管理服务器反馈的增量路由源更新消息记录更新存储的全局路由源信息表。

至此,有效路由源信息同步更新完毕。RPKI机制使用有效路由源信息:依赖方在常规的路由源授权信息数据更新时,可以利用事实有效路由源信息表过滤掉因无法获取到最新RPKI签名数据引发的对事实有效的路由源的无效判定。

通过采用本发明实施例中的基于事实所有权的路由起源信息同步方法,使得在RPKI部署较低,对IP地址前缀覆盖率不高的情况下,保障大多数的事实有效的路由起源信息可以通过另一种途径获取,给路由器提供多种路由起源有效的参考信息。该方法解决了RPKI机制在域间路由系统中部分部署情况下因RPKI覆盖的有效路由源不完整或依赖方同步RPKI的数据缺失时对原本有效路由源的误判的问题,从而保证了RPKI机制的可靠性,可以为RPKI全面部署提供一个过渡支撑,同时也能促进RPKI的扩大部署。

本发明的另一实施例还提供了基于事实所有权的路由起源信息同步系统,该系统包括:数据采集层、数据聚合层、依赖方服务器,其中,

数据采集层,包括多个VC服务器,各VC服务器用于采集对应的AS的BGP路由中满足预设观察期条件的增量路由源更新的数据发送至数据聚合层,以及接收数据聚合层反馈的增量路由源更新消息记录对全局路由源信息进行更新;

数据聚合层,包括多个数据聚合管理服务器,用于对VC服务器发送的增量路由源更新的数据进行处理,并将处理完毕的消息发送给依赖方服务器进行汇总,以及接收从依赖方服务器反馈的更新完毕的全局路由源信息表;每个数据聚合管理服务器可同时处理多个来自VC服务器发送过来的数据;

依赖方服务器,用于对从数据聚合层发送的各增量路由源更新消息记录进行汇总并更新全局路由源信息表,再发送给数据聚合层的各VC服务器。

本发明实施例的系统用以执行上述实施例中的方法,未详尽之处,请参照方法实施例所述,在此不再赘述。

虽然以上结合优选实施例对本发明进行了描述,但本领域的技术人员应该理解,本发明所述的方法和系统并不限于具体实施方式中所述的实施例,在不背离由所附权利要求书限定的本发明精神和范围的情况下,可对本发明作出各种修改、增加、以及替换。

相关技术
  • 基于事实所有权的有效路由起源同步方法及系统
  • 基于有效过零点的配电网差动保护数据同步方法及系统
技术分类

06120113004168