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

互联网域间源地址验证表的分布式生成方法和装置

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


互联网域间源地址验证表的分布式生成方法和装置

技术领域

本发明涉及网络安全技术领域,尤其涉及一种互联网域间源地址验证表的分布式生成方法和装置。

背景技术

域间源地址验证表包含自治域粒度的源前缀和分组入接口的映射关系。通过查询本地源地址验证表,域间路由器可以根据分组源地址来验证分组入接口的有效性。因此,域间源地址验证表可以用于检测域间源地址伪造,创建组播生成树和验证网络正确性等方面。

目前最常用的源地址验证方法uRPF,是通过反向查找本地转发表代替创建独立的源地址验证表。但由于域间路由策略的复杂性,域间路由不对称会导致验证状态和实际路由状态不一致,这将带来严重的错误判断。本发明的目的在于通过在自治域之间传播探测报文的形式,在域间路由器上分布式地生成源地址验证表,在任意域间路由架构下实现验证的正确性。

发明内容

本发明旨在至少在一定程度上解决相关技术中的技术问题之一。

为此,本发明的第一个目的在于提出一种互联网域间源地址验证表的分布式生成方法,以实现通过在自治域之间传播探测报文的形式,在域间路由器上分布式地生成源地址验证表,在任意域间路由架构下实现验证的正确性。

本发明的第二个目的在于提出一种互联网域间源地址验证表的分布式生成装置。

本发明的第三个目的在于提出一种计算机设备。

本发明的第四个目的在于提出一种非临时性计算机可读存储介质。

为达上述目的,本发明第一方面实施例提出了一种互联网域间源地址验证表的分布式生成方法,包括:

原始自治域内的域间路由器根据本地收到的路由信息,获取去往转发表中每个目的前缀的最优转发路径ASN Path;

所述域间路由器根据所有所述最优转发路径生成原始APP报文,并将所述原始APP报文发送给邻居自治域对应的E-BGP邻居路由器;

所述邻居路由器根据接收到的所述APP报文生成源地址验证表项,并接力发送APP报文。

在本发明的一个实施例中,所述获取去往转发表中每个目的前缀的最优转发路径ASN Path,包括:

查询所述转发表中所述每个目的前缀的最优转发路径ASN Path。

在本发明的一个实施例中,所述域间路由器根据所有所述最优转发路径生成原始APP报文,包括:

确定所述原始自治域的下一跳邻居自治域;

确定下一跳为所述邻居自治域的所有最优转发路径ASN Path;

将所述最优转发路径ASN Path中存在包含关系的所有候选最优转发路径ASNPath,只保留最长的一条ASN path;

根据聚合后的所述候选最优转发路径ASN path生成所述原始APP报文的ASN path字段,并将所述原始APP报文发送给所述下一跳邻居自治域。

在本发明的一个实施例中,所述接力发送APP报文,包括:所述邻居路由器提取所述APP报文有效载荷中的ASN Paths字段;

对所述ASN Paths字段中所有ASN paths,删除前一跳ASN后,若最后一跳不是本地ASN,则接力发送APP报文到相应的邻居自治域对应的E-BGP邻居路由器。

在本发明的一个实施例中,所述邻居路由器根据接收到的所述APP报文生成源地址验证表项,包括:

所述邻居路由器提取接收到的APP报文有效载荷中的源ASN字段,和接收到所述APP报文的路由器接口;

根据所述源ASN字段对应的源前缀和所述路由器接口生成源地址表项。

在本发明的一个实施例中,当检测到目的路由器去往第一目的前缀的最优转发路径ASN Path变化时,获取原始最优转发路径ASN Path;

获取更新后的最优转发路径ASN Path;

根据原始最优转发路径ASN Path发送EPD报文,以通知所述原始最优转发路径ASNPath上的自治域删除对应源前缀的入接口;

根据更新后的最优转发路径ASN Path发送EPA报文,通知更新后的最优转发路径ASN Path上的所有自治域添加对应源前缀的入接口。

在本发明的一个实施例中,还包括:根据所述目的路由器的单播地址确定所述EPD/EPA报文的源地址;

确定原始最优转发路径ASN Path对应的下一跳自治域对应的E-BGP邻居路由器,确定所述E-BGP邻居路由器的单播地址为所述EPD/EPA报文的目的地址。

在本发明的一个实施例中,还包括:接收到所述EPD报文的第一域间路由器提取所述EPD报文有效载荷中的目标自治域的字段,若本地ASN包含在目标自治域的字段,则将入接口从对应的源地址验证表项中删除;

所述第一域间路由器对所述ASN Paths字段中的ASN path,删除前一跳ASN后,若最后一跳不是本地ASN,则接力发送所述EPD报文到下一跳自治域;

在所述发送EPA报文之后,还包括:接收到所述EPA报文的第二域间路由器提取所述EPA报文有效载荷中的源ASN字段,生成源地址验证表项;

所述第二域间路由器提取所述EPA报文有效载荷中的ASN Paths字段,对所述ASNPaths字段中的ASN path,删除前一跳ASN后,若最后一跳不是本地ASN,则接力发送EPA报文到下一跳自治域。

为达上述目的,本发明第二方面实施例提出了一种互联网域间源地址验证表的分布式生成装置,包括:

转发路径获取模块,用于原始自治域内的域间路由器根据本地收到的路由信息,获取去往转发表中每个目的前缀的最优转发路径ASN Path;

报文转发模块,用于所述域间路由器根据所有所述最优转发路径生成原始APP报文,并将所述原始APP报文发送给邻居自治域对应的E-BGP邻居路由器;

报文接力发送模块,用于所述邻居路由器根据接收到的所述APP报文生成源地址验证表项,并接力发送APP报文。

在本发明的一个实施例中,还包括:

更新处理模块,用于当检测到目的路由器去往第一目的前缀的最优转发路径ASNPath变化时,获取原始最优转发路径ASN Path,获取更新后的最优转发路径ASN Path;

EPD报文发送模块,用于根据原始最优转发路径ASN Path发送EPD报文,以通知所述原始最优转发路径ASN Path上的自治域删除对应源前缀的入接口;

EPA报文发送模块,用于根据更新后的最优转发路径ASN Path发送EPA报文,通知更新后的最优转发路径ASN Path上的所有自治域添加对应源前缀的入接口。

为达上述目的,本发明第三方面实施例提出了一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上述第一方面实施例所述的互联网域间源地址验证表的分布式生成方法。

为了实现上述目的,本发明第四方面实施例提出了一种非临时性计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面实施例所述的互联网域间源地址验证表的分布式生成方法。

本发明的实施例,至少具有如下的技术效果:

通过在自治域之间传播探测报文的形式,在域间路由器上分布式地生成源地址验证表,在任意域间路由架构下实现验证的正确性。

本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1为本发明实施例所提供的一种互联网域间源地址验证表的分布式生成方法的流程示意图;

图2为本发明实施例所提供的一种源地址验证表格式示意图;

图3为本发明实施例所提供的一种APP报文格式示意图;

图4为本发明实施例所提供的一种EPD报文格式示意图;

图5为本发明实施例所提供的一种EPA报文格式示意图;

图6(a)为本发明实施例所提供的一种自治域1生成并发送原始APP报文的场景示意图;

图6(b)为本发明实施例所提供的一种自治域4处理来自治域1的APP报文的场景示意图;以及

图7为本发明实施例所提供的一种互联网域间源地址验证表的分布式生成装置的结构示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。

本发明的目的在于设计一种互联网域间源地址验证表的分布式生成方法,通过自治域之间传播探测报文的形式,在域间路由器上分布式地生成源地址验证表,在任意域间路由架构下实现验证的正确性。

本发明的实施例所提出的方法的思路在于:考虑到在路由不对称场景下,仅根据路由器本地转发表信息生成的验证信息存在错误判断的问题。不同于传统的源地址验证方法,在本发明中,提出一种互联网域间源地址验证表的分布式生成协议,每个自治域通过向邻居自治域发送探测报文的方式,主动探测源前缀的合法路径,沿途域间路由器根据收到探测报文的入接口自动生成或更新源地址验证表。我们称这种源地址验证表生成方案为互联网域间源地址验证表的分布式生成协议。

下面参考附图描述本发明实施例的互联网域间源地址验证表的分布式生成方法和装置。

图1为本发明实施例所提供的一种互联网域间源地址验证表的分布式生成方法的流程示意图。

如图1所示,该方法包括以下步骤:

步骤101,原始自治域内的域间路由器根据本地收到的路由信息,获取去往转发表中每个目的前缀的最优转发路径ASN Path。

步骤102,所述域间路由器根据所有所述最优转发路径生成原始APP报文,并将所述原始APP报文发送给邻居自治域对应的E-BGP邻居路由器。

互联网域间源地址验证表的分布式生成协议包含启动和更新两部分:

在启动部分:

每个域间路由器根据本地收到的路由信息,获取去往每个前缀的最优转发路径(即ASN Path),并根据转发路径生成原始的APP报文,发送给相应的邻居自治域。原始APP报文源地址为该路由器的单播地址,目的地址为邻居自治域对应的E-BGP邻居路由器的单播地址。参照图3,原始APP报文的有效载荷包含源ASN、ASN Paths和传播路径三部分。源ASN字段为该源路由器所在的自治域号码,ASN Paths字段包含转发路径表中第二跳为该邻居自治域的所有ASN paths,传播路径字段中添加本地ASN。

ASN Paths字段中的ASN paths可以被聚合以减少开销。如果存在重复的ASNpaths,就只需要保留一条ASN path;如果两条ASN paths存在包含关系,例如[AS1 AS2AS3]和[AS1AS2],只需要保留最长的一条ASN path[AS1 AS2 AS3]。

步骤103,邻居路由器根据接收到的APP报文生成源地址验证表项,并接力发送APP报文。

在本实施例中,路由器处理收到的APP报文。

第一步,生成源地址验证表。路由器收到来自邻居自治域的APP报文后,提取报文有效载荷中的源ASN字段,生成源地址验证表项。参照图2,源地址验证表的表项中源前缀即该源ASN对应的源前缀(根据RPKI或收到路由信息可以确定对应的源前缀),入接口即接收到该APP报文的路由器接口。

第二步,接力发送APP报文。路由器提取APP报文有效载荷中的ASN Paths字段,对其中所有ASN paths,删除前一跳ASN后,若最后一跳不是本地ASN,则接力发送APP报文到相应的邻居自治域。接力发送的APP报文的源地址为该路由器单播地址,目的地址为下一跳邻居自治域对应的E-BGP邻居路由器地址。接力发送的APP报文的有效载荷同样包含源ASN、ASN Paths和传播路径三部分。源ASN字段是收到的APP报文中的源ASN,ASN Paths字段包含收到的APP报文中ASN paths删除前一跳ASN后,第二跳为该邻居自治域的所有ASN paths,传播路径字段在收到的APP报文中的传播路径的基础上添加本地ASN。

举例而言,如图6(a)所示,示出了AS1生成并发送原始APP报文的场景示意图,图6(a)中示出了域间路由器A对应的转发路径表转发路径表,如图6(b)所示,示出了AS4处理来自AS1的APP报文的场景示意图。

在更新部分:

互联网域间源地址验证表的分布式生成协议仅支持触发更新。当路由器去往某目的前缀的最优转发路径发生变化时,路由器生成并发送EPD(explicit prefix deletion)报文,通知旧路径上的目标自治域删除对应源前缀的入接口,之后生成并发送EPA(explicit prefix adding)报文,通知新路径上的所有自治域添加对应源前缀的入接口。

在本发明的一个实施例中,原始EPD报文源地址为该路由器的单播地址,目的地址为旧ASN path中下一跳自治域对应的E-BGP邻居路由器的单播地址。参照图4,原始EPD报文的有效载荷包含源ASN、ASN Paths、目标自治域和传播路径四部分。源ASN字段为该源路由器所在的自治域号码,ASN Paths字段包含旧的ASN path,目标自治域字段包含沿途需要进行删除操作的ASN,传播路径字段中添加本地ASN。

目标自治域的确定方法如下:对旧ASN path中每一对邻接AS[ASm ASn],如果不存在其他ASN path包含该自治域对,则ASn是目标自治域,即ASn应该删除入接口。(如果存在其他ASN path包含该自治域对,说明有其他转发路径通过ASm到达ASn)进一步的,有关目标路由器(第一目标自治域中的第一域间路由器)处理接收到的EPD报文,第一步,删除源地址验证表。路由器收到EPD报文后,提取EPD报文有效载荷中的目标自治域字段,若本地ASN包含在目标自治域字段,则需要将入接口从对应的源地址验证表项中删除。

第二步,接力发送EPD报文。路由器提取EPD报文有效载荷中的ASN Paths字段,对其中的ASN path,删除前一跳ASN后,若最后一跳不是本地ASN,则接力发送EPD报文到下一跳自治域。接力发送的EPD报文的源地址为该路由器单播地址,目的地址为下一跳邻居自治域对应的E-BGP邻居路由器地址。接力发送的EPD报文的有效载荷包含源ASN、ASN Paths、目标自治域和传播路径四部分。源ASN字段是收到的EPD报文中的源ASN,ASN Paths字段是收到的EPD报文中ASN path删除前一跳ASN后得到的ASN path,传播路径字段在收到的EPD报文中的传播路径的基础上添加本地ASN。

在本发明的一个实施例中,生成原始EPA报文,原始EPA报文源地址为该路由器的单播地址,目的地址为新ASN path中下一跳自治域对应的E-BGP邻居路由器的单播地址。如图5所示,原始EPA报文的有效载荷包含源ASN、ASN Paths和传播路径三部分。源ASN字段为该源路由器所在的自治域号码,ASN Paths字段包含新的ASN path,传播路径字段中添加本地ASN。

进一步的,有关路由器处理收到的EPA报文,第一步,生成源地址验证表。路由器收到来自邻居自治域的EPA报文后,提取报文有效载荷中的源ASN字段,生成源地址验证表项。源地址验证表的表项中源前缀即该源ASN对应的源前缀,入接口即接收到该EPA报文的路由器接口。

第二步,接力发送EPA报文。路由器提取EPA报文有效载荷中的ASN Paths字段,对其中的ASN path,删除前一跳ASN后,若最后一跳不是本地ASN,则接力发送EPA报文到下一跳自治域。接力发送的EPA报文的源地址为该路由器单播地址,目的地址为下一跳邻居自治域对应的E-BGP邻居路由器地址。接力发送的EPA报文的有效载荷同样包含源ASN、ASNPaths和传播路径三部分。源ASN字段是收到的EPA报文中的源ASN,ASN Paths字段是收到的EPA报文中ASN paths删除前一跳ASN后得到的ASN path,传播路径字段在收到的EPA报文中的传播路径的基础上添加本地ASN。

APP报文、EPD报文和EPA报文中的传播路径字段用于验证报文的真实性,该字段包含了从源ASN到本地自治域的转发路径信息,所以目前用于验证BGP更新报文真实性的方案都可以用于验证APP报文、EPD报文和EPA报文的真实性。

最终,每个域间边界路由器都可以学习到所有自治域前缀的正确入接口信息,并在本地生成一个源地址验证表。当路由器接收到分组时,路由器根据本地的源地址验证表,对分组的源地址进行匹配。如果分组的入接口和其源地址在源地址验证表中匹配的接口一致,就对分组进行正常转发,否则认为该分组进行了源地址伪造。

综上,本发明实施例的互联网域间源地址验证表的分布式生成方法,互联网域间源地址验证表的分布式生成协议用于在域间路由器上分布式生成源地址验证表,路由器利用源地址验证表可以准确的判断分组来源是否可靠,对分组的源地址进行真实性验证,保证域间的源地址安全。除此之外,源地址验证表还可以用于生成高效率的组播转发树,验证网络正确性等方面。互联网域间源地址验证表的分布式生成协议具有不存在假阳性判断,支持任意路由架构的优点。

为了实现上述实施例,本发明还提出一种互联网域间源地址验证表的分布式生成装置。

图7为本发明实施例提供的一种互联网域间源地址验证表的分布式生成装置的结构示意图。

如图7所示,该互联网域间源地址验证表的分布式生成装置包括:转发路径获取模块710、报文转发模块720、报文接力发送模块730。

其中,转发路径获取模块710,用于原始自治域内的域间路由器根据本地收到的路由信息,获取去往转发表中每个目的前缀的最优转发路径ASN Path;

报文转发模块720,用于所述域间路由器根据所有所述最优转发路径生成原始APP报文,并将所述原始APP报文发送给邻居自治域对应的E-BGP邻居路由器;

报文接力发送模块730,用于所述邻居路由器根据接收到的所述APP报文生成源地址验证表项,并接力发送APP报文。

需要说明的是,前述对互联网域间源地址验证表的分布式生成方法实施例的解释说明也适用于该实施例的域间路由器,此处不再赘述。

为了实现上述实施例,本发明还提出一种计算机设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现如上述实施例所描述的互联网域间源地址验证表的分布式生成方法。

为了实现上述实施例,本发明还提出一种非临时性计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述实施例所描述的互联网域间源地址验证表的分布式生成方法。

为了实现上述实施例,本发明还提出一种计算机程序产品,当所述计算机程序产品中的指令处理器执行时,实现如上述实施例所描述的互联网域间源地址验证表的分布式生成方法。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不必须针对的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任一个或多个实施例或示例中以合适的方式结合。此外,在不相互矛盾的情况下,本领域的技术人员可以将本说明书中描述的不同实施例或示例以及不同实施例或示例的特征进行结合和组合。

此外,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。

流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现定制逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。

在流程图中表示或在此以其他方式描述的逻辑和/或步骤,例如,可以被认为是用于实现逻辑功能的可执行指令的定序列表,可以具体实现在任何计算机可读介质中,以供指令执行系统、装置或设备(如基于计算机的系统、包括处理器的系统或其他可以从指令执行系统、装置或设备取指令并执行指令的系统)使用,或结合这些指令执行系统、装置或设备而使用。就本说明书而言,"计算机可读介质"可以是任何可以包含、存储、通信、传播或传输程序以供指令执行系统、装置或设备或结合这些指令执行系统、装置或设备而使用的装置。计算机可读介质的更具体的示例(非穷尽性列表)包括以下:具有一个或多个布线的电连接部(电子装置),便携式计算机盘盒(磁装置),随机存取存储器(RAM),只读存储器(ROM),可擦除可编辑只读存储器(EPROM或闪速存储器),光纤装置,以及便携式光盘只读存储器(CDROM)。另外,计算机可读介质甚至可以是可在其上打印所述程序的纸或其他合适的介质,因为可以例如通过对纸或其他介质进行光学扫描,接着进行编辑、解译或必要时以其他合适方式进行处理来以电子方式获得所述程序,然后将其存储在计算机存储器中。

应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。如,如果用硬件来实现和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。

本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。

此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。

上述提到的存储介质可以是只读存储器,磁盘或光盘等。尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。

相关技术
  • 互联网域间源地址验证表的分布式生成方法和装置
  • 互联网域内源地址验证表的分布式生成方法和装置
技术分类

06120112877401