一种基于节点与IP地址的路由扩散模拟方法及装置与流程

文档序号:29702299发布日期:2022-04-16 14:50阅读:88来源:国知局
一种基于节点与IP地址的路由扩散模拟方法及装置与流程
一种基于节点与ip地址的路由扩散模拟方法及装置
技术领域
1.本技术涉及通信领域,尤其涉及一种基于节点与ip地址的路由扩散模拟方法及装置。


背景技术:

2.网络架构设计对于运营商来说意义重大。其中,网络路由模拟仿真是大型网络架构设计的重要辅助手段,用于进行不同网络路由设计方案之间的对比,从而找出承载效率更高、负载分配更均衡、容灾能力更好的网络路由拓扑。从网络架构设计层面来看,在进行网络路由模拟时通常要解决的问题是,如何进行更好的流量疏导,获取网络中最优的路由拓扑设计,而并非是尽可能高度还原真实网络运行情况。
3.而现阶段常用的网络路由模拟仿真方案,绝大多数是尽可能高的还原网络,并没有高度将网络路由抽象化。由于现阶段方案普遍大量还原了网络运行细节,因而运行起来会同时运算着网络设计者并不关注的数据,使得运算量巨大,运算效率不高。另外少量的现有网络路由模拟仿真方案,没有将尽可能高的还原网络作为目标,而是采用图论中最短路径算法进行模拟,则导致无法针对路由技术中特有场景进行网络路由模拟,如针对静态路由、缺省路由、聚合路由或网络互联协议(internet protocol,ip)最长前缀匹配这些问题时,针对中间系统到中间系统(intermediate system to intermediate system,isis)的多域场景、isis的等级1(level 1,l1)和等级2(level 2,l2)分级这些问题时,都无法进行模拟。


技术实现要素:

4.本技术提供一种基于节点与ip地址的路由扩散模拟方法及装置,用以解决现阶段网络路由模拟方案中运算量较大、运算效率低下,且应用场景不足的问题。
5.为达到上述目的,本技术采用如下技术方案:
6.第一方面,本技术提供一种路由扩散模拟方法,包括:根据节点的序号,确定下一跳矩阵;其中,所述节点用于模拟域内的设备,所述下一跳矩阵用于模拟域内路由的设备至设备层面。确定可达地址映射列表,所述可达地址映射列表用于表征域内的节点与所述节点可达的ip地址之间的映射关系、以及所述节点与所述可达的ip地址之间可达路由的度量值。根据所述节点和所述可达地址映射列表,模拟域内路由。
7.基于上述技术方案,本技术中由于下一跳矩阵中的度量值直接选取igp路由表中节点之间路由的最低参数,且可达地址映射列表省去了各节点ip地址对路由模拟的影响,使得本技术的技术方案相较于现阶段的模拟方法,能够在模拟过程中脱离igp路由表并省去ip地址影响的同时,具备运算量较低、运算效率高的优点。同时,由于路由扩散模拟表能够针对isis的多域场景和分级场景,来具体对节点之间的isis邻居关系进行区分,使得本技术实施例能够应对针对isis的多域场景和分级场景的特殊场景,应用范围较广,实用性较高。
8.第二方面,本技术提供一种路由扩散模拟装置,该路由扩散模拟装置包括:处理单元。处理单元,用于根据节点的序号,确定下一跳矩阵;其中,节点用于模拟域内的设备,下一跳矩阵用于模拟域内路由的设备至设备层面.处理单元,还用于确定可达地址映射列表,可达地址映射列表用于表征域内的节点与节点可达的ip地址之间的映射关系、以及节点与可达的ip地址之间可达路由的度量值.处理单元,还用于根据节点和可达地址映射列表,模拟域内路由。
9.此外,第二方面所述的路由扩散模拟方法的技术效果可以参考上述第一方面所述的路由扩散模拟方法的技术效果,此处不再赘述。
10.第三方面,本技术提供一种存储一个或多个程序的计算机可读存储介质,该一个或多个程序包括指令,上述指令当被本技术的电子设备执行时使电子设备执行如第一方面和第一方面的任一种可能的实现方式中所描述的路由扩散模拟方法。
11.第四方面,本技术提供一种电子设备,包括:处理器以及存储器;其中,存储器用于存储一个或多个程序,一个或多个程序包括计算机执行指令,当电子设备运行时,处理器执行存储器存储的计算机执行指令,以使电子设备执行如第一方面和第一方面的任一种可能的实现方式中所描述的路由扩散模拟方法。
12.第五方面,本技术提供一种包含指令的计算机程序产品,当该指令在计算机上运行时,使得本技术的电子设备执行如第一方面和第一方面的任一种可能的实现方式中所描述的路由扩散模拟方法。
13.第六方面,本技术提供一种芯片系统,该芯片系统应用于路由扩散模拟装置;所述芯片系统包括一个或多个接口电路,以及一个或多个处理器。所述接口电路和所述处理器通过线路互联;所述接口电路用于从所述路由扩散模拟装置的存储器接收信号,并向所述处理器发送所述信号,所述信号包括所述存储器中存储的计算机指令。当所述处理器执行所述计算机指令时,所述路由扩散模拟装置执行如第一方面及其任一种可能的设计方式所述的路由扩散模拟方法。
附图说明
14.图1为现有isis协议的网络分层结构示意图;
15.图2为本技术的实施例提供的一种路由扩散模拟方法的流程示意图;
16.图3为本技术的实施例提供的一种基于节点号的下一跳矩阵的示意图;
17.图4为本技术的实施例提供的一种下一跳矩阵的扩散示意图;
18.图5为本技术的实施例提供的另一种基于节点号的下一跳矩阵的示意图;
19.图6为本技术的实施例提供的另一种路由扩散模拟方法的流程示意图;
20.图7为本技术的实施例提供的一种路由节点的拓扑关系示意图;
21.图8为本技术的实施例提供的另一种基于节点号的下一跳矩阵的示意图;
22.图9为本技术的实施例提供的一种路由示意图;
23.图10为本技术的实施例提供的另一种路由节点的拓扑关系示意图;
24.图11为本技术的实施例提供的另一种路由示意图;
25.图12为本技术的实施例提供的一种路由扩散模拟装置的结构示意图;
26.图13为本技术的实施例提供的另一种路由扩散模拟装置的结构示意图。
to intermediate system,isis)的网络实体名称、isis的等级level-1/level-2、开放式最短路径优先(open shortest path first,ospf)的区域等多种数据。然而,路由表过多的数据,导致模拟过程中参与计算的数据量过大,使得运算量大幅上升。
38.因此,为解决上述现有技术中在对igp路由进行模拟时,不能兼顾静态路由、缺省路由、ip最长前缀匹配等特定路由情形,以及isis多域分级场景和运算效率的问题,本技术提供一种基于节点与ip地址的路由扩散模拟方法。
39.本技术中,首先根据节点与节点可达的ip地址,建立可达地址映射列表,由此在之后的路由扩散模拟的迭代矩阵变换中,只基于节点的编号,而不再有ip地址的参与,以精简模拟过程,提高运算效率。在此之后,根据路由设备之间的igp邻居关系,以及邻居关系的类型,建立路由扩散关系表。再构建下一跳矩阵用于模拟igp路由表中的路由条目。构建下一跳矩阵时,矩阵元素中的信息包括当前节点至目的节点的下一跳节点、当前节点的出接口、以及对应的度量值。由此,通过对下一跳矩阵进行迭代的矩阵变换,实现对路由扩散的模拟,应用范围广且运算效率高。
40.本技术中路由扩散模拟方法的执行主体是路由扩散模拟装置,该路由扩散模拟装置可以是用于模拟路由扩散的电子设备,也可以是电子设备中的中央处理器(central processing unit,cpu),还可以是电子设备中用于进行路由扩散模拟的客户端。本技术实施例以电子设备作为路由扩散模拟装置来执行路由扩散模拟方法为例,对本技术提供的路由扩散模拟方法进行说明。
41.下面结合说明书附图,对本技术所提供的技术方案进行具体阐述。
42.实施例一:
43.为了解决现有技术方案中,在对igp路由进行模拟时,不能兼顾静态路由、缺省路由、ip最长前缀匹配等特定路由情形,以及isis多域分级场景和运算效率的问题,本技术实施例提供一种路由扩散模拟方法。如图2所示,本技术实施例提供的路由扩散模拟方法包括以下步骤:
44.s101、路由扩散模拟装置根据节点的序号,确定下一跳矩阵。
45.其中,节点用于模拟域内的设备,下一跳矩阵用于模拟域内路由的设备至设备层面。
46.示例性的,如图3所示,下一跳矩阵中的元素h
s,d
表示以第s个节点为源节点,以第d个节点为目标节点时,第s个节点与第d个节点之间的最优路由的下一跳节点、第s个节点的出接口、以及此路由条目的度量值。需要指出,最优路由为第s个节点与第d个节点之间度量值最小的路由。示例性的,下一跳矩阵中每个元素具体设置为{下一跳节点编号,出接口编号,度量值}。
47.需要指出,下一跳矩阵可以是n
×
n或n
×
(n+1)维矩阵,n为待模拟网络中的节点数量。示例性的,当下一跳矩阵是n
×
(n+1)维矩阵时,是由于第0列元素用于表示目标路由节点为缺省路由。可以理解,若待模拟网络中不存在缺省路由,则可以将表示目标路由节点为缺省路由的第0列元素设为空,此时下一跳矩阵为n
×
n维的矩阵。
48.可选的,以下一跳路由路由矩阵为n
×
(n+1)维为例,扩散模拟装置对下一跳矩阵的确定包括以下步骤:
49.(1)根据所述节点的数量n,构建n
×
(n+1)维的下一跳矩阵,将行号与列号相等的
元素的初始参数设为{行号,0,0},其余元素的初始参数设为空{空,空,∞}。
50.(2)在节点s与节点d之间存在直连路由关系的情况下,则将初始下一跳矩阵中元素h
s,d
的参数,修改为{d,直连出接口编号,直连路由的度量值},将修改后的初始下一跳矩阵确定为下一跳矩阵。
51.需要说明的是,当节点s存在缺省路由时,将元素h
s,0
的内容修改为缺省路由的下一跳节点、出接口和度量值。
52.以上对路由扩散模拟装置确定下一跳矩阵的方法进行了说明。
53.可选的,若两个路由节点之间存在静态路由配置,则这两个节点之间的静态路由可以不参与步骤s103中的路由节点的模拟。具体来说,若节点s和节点d之间配置有静态路由,则下一跳矩阵中的元素h
s,d
的参数设为节点s与节点d之间静态路由的下一跳节点、出接口以及静态路由对应的度量值。
54.s102、路由扩散模拟装置确定可达地址列表。
55.其中,可达地址列表用于表征域内的节点与节点可达的ip地址之间的映射关系,以及节点与此可达的ip地址的度量值。
56.可以理解,路由扩散模拟装置根据节点与节点可达的ip地址,建立可达地址列表,由此在之后的路由扩散模拟的迭代矩阵变换中,只基于节点的编号,而不再基于ip地址,以精简模拟过程。在对模拟结果进行选路时,只要针对目标ip地址,查询可达地址列表,即可获知该目标ip地址对应的节点,进而在模拟结果中查询到最优的路由。
57.示例性的,下表1示出了本实施例中一种可达地址列表的格式。
58.表1可达地址列表
[0059][0060]
需要说明的是,在上表1中,度量值选取为metric值。需要指出,度量值的表现形式不局限于metric一种,本技术下述实施例仅以metric的形式来进行示例性的说明,不代表度量值只有metric这一种表现形式。具体对于度量值的表现形式,本技术实施例不做限定。
[0061]
s103、路由扩散模拟装置根据路由扩散关系信息,对下一跳矩阵进行迭代矩阵变
换,以模拟域内路由的扩散。
[0062]
在一种可能的实现方式中,步骤s103具体包括以下步骤:
[0063]
s1031、路由扩散模拟装置确定路由扩散关系信息。
[0064]
其中,路由扩散关系信息用于模拟路由协议中节点之间的邻居关系,邻居关系包括当前节点的对端邻居节点和此对端邻居节点的路由类型。
[0065]
需要说明的是,路由类型能够体现在isis多域多级结构中,一对路由邻居节点的分级。
[0066]
示例性的,路由扩散模拟装置通过扩散关系表,来确定路由扩散关系信息,如下表2所示:
[0067]
表2扩散关系表
[0068][0069]
如上表2所示,模拟isis对于区域的划分和l1、l2功能的划分,构建扩散关系表,用于控制节点间的路由扩散。
[0070]
具体的,节点可以具有等级标记其l1、l2、l1/2类型,用于模拟设备在isis协议中的level类型;
[0071]
进一步的,节点可以具有区域标记其所属区域,用于模拟设备在isis协议中的所属area信息;
[0072]
进一步的,路由扩散关系信息可以具有等级标记其l1、l2类型,用于模拟isis协议中邻居关系中的level类型;其中,扩散关系的等级标记,可以由外部导入,也可以根据节点的所属等级标记进行判别,具体参照isis协议。
[0073]
可选的,拓扑相连的两节点,可形成邻居关系,邻居关系分为l1邻居和l2邻居。示例性的,邻居关系的level类型的具体判断流程如下:
[0074]
(1)若两邻居节点属于同一区域(相同area id),且都有l1等级(l1或l1/l2),则该
两节点为l1邻居;
[0075]
(2)若两邻居节点都有l2等级(l2或l1/l2),则该两节点为l2邻居,不论其是否属于同区域(不关注area id);
[0076]
(3)纯l1节点与纯l2节点,不构成邻居关系;
[0077]
(4)两节点间若同时满足l1邻居和l2邻居,则将其定为l2邻居。
[0078]
s1032、路由扩散模拟装置根据路由扩散关系信息,对下一跳矩阵进行迭代矩阵变换,模拟域内路由的扩散。
[0079]
如图4所示,通过扩散关系解决isis的多area和l1/l2问题,使得待模拟网络能够使用同一个下一跳矩阵,而无需由于多area问题使用多个下一跳矩阵。
[0080]
具体的,对于l1邻居的扩散,如图左侧,仅扩散目标节点同为本区域内节点的相关路由,而不扩散目标节点为本区域外节点的相关路由;
[0081]
进一步的,对于l2邻居的扩散,如图右侧,扩散所有目标节点的相关路由,而不限定目标节点是否位于同区域。
[0082]
由此,实现由下一跳矩阵模拟域内的设备的域内路由信息;其中,域内路由信息为设备至设备之间的最短路由的信息。
[0083]
在一种可能的实现方式中,根据扩散标识对下一跳矩阵进行矩阵变换。其中,扩散标识用于表征每个元素是否参与本次矩阵变换。示例性的,若扩散标识的参数为0,则表征下一跳矩阵中的元素不参与本次矩阵变换;若扩散标识的参数为1,则表征下一跳矩阵中的元素参与本次矩阵变换;若扩散标识的参数为2,则表征下一跳矩阵中的元素参与下一次矩阵变换。
[0084]
在一种可能的实现方式中,路由扩散模拟装置在确定迭代矩阵变换结束后,输出当前下一跳矩阵,作为模拟结果。
[0085]
可选的,若在一次矩阵变换之后,下一跳矩阵中所有元素对应的扩散标识的参数皆为0,则路由扩散模拟装置确定矩阵变换结束。可以理解,当下一跳矩阵中所有元素对应的扩散标识的参数为0,则表示待模拟网络中已经不存在能够继续扩散的新路由。此时,路由扩散模拟装置将当前的下一跳矩阵输出,作为路由扩散模拟结果。
[0086]
基于上述技术方案,本技术中路由扩散模拟装置确定可达地址映射列表,由此后续对路由扩散的模拟中省去对ip地址的考量,之后,路由扩散模拟装置确定路由扩散关系信息,根据节点的序号和路由扩散关系信息构建下一跳矩阵,并对下一跳矩阵进行迭代矩阵变换,以模拟待模拟网络中路由条目的扩散。由于下一跳矩阵中的度量值直接选取igp路由表中节点之间路由的最低参数,且可达地址映射列表省去了各节点ip地址对路由模拟的影响,使得本技术的技术方案相较于现阶段的模拟方法,能够在模拟过程中脱离igp路由表并省去ip地址影响,使本方案具备运算量较低、运算效率高的优点。同时,由于路由扩散模拟表能够针对isis的多域场景和分级场景,因而相比于当前基于图论中最短路径算法的模拟方案,使得本技术实施例能够应对isis的多域场景和分级场景的特殊场景,应用范围较广,实用性较高。
[0087]
实施例二:
[0088]
示例性的,针对isis中l1的缺省路由问题,本技术提供的路由扩散模拟方法还包括:
[0089]
标准isis中由于l1节点仅知道本区域内链路(仅有l1 lsdb,而没有跨域的l2 lsdb),因而对域外的目标ip,若l1路由发现不可达,l1节点会将其路由到最近的l1/l2节点。在实际实现中,设备是通过让l1/l2节点生成缺省路由的方式,将缺省路由扩散入l1中,从而将不可达流量全部引向最近的l1/l2节点。本技术中也通过缺省路由的思路仿真此情况。
[0090]
具体的,构建“基于节点号的下一跳矩阵”时,目标节点额外构建第0列,用于表示缺省路由,也即此时下一跳矩阵为n
×
(n+1)维矩阵。
[0091]
进一步的,在路由扩散结束后,对于各l1节点,将所在区域内metric最低的l1/l2出口路由复制到缺省路由列。
[0092]
如图5所示,利用“基于节点号的下一跳矩阵”的第0列表示缺省路由。
[0093]
需要说明的是,缺省路由的处理,仅对于当前节点(也即矩阵中行号表示的节点)为纯l1节点时进行,并且仅用于仿真区域出口l1/l2设备启动了生成缺省路由的场景。
[0094]
需要指出,对于纯l1节点所在行,将目标节点(也即矩阵中列号表示的节点)为本区域内l1/l2节点的路由条目,复制到缺省路由中;若此区域中有多个l1/l2节点,则在逐个复制至缺省路由时,仅保留最低metric对应的缺省路由,在metric相等时应合并为等价路由。
[0095]
实施例三:
[0096]
结合实施例一,如图6所示,本技术提供的路由扩散模拟方法中还包括:ip路由仿真被分割成ip与节点号两部分,从而每个节点在执行基于ip的路由选路时,也分割成为两个步骤:
[0097]
s201、根据目标ip(也即ip地址+掩码),在可达地址列表中,查询此目标ip对应的节点号,作为目标节点号。
[0098]
其中,在根据目标ip查询目标节点时,允许查询到多个目标节点都可达此目标ip,此时根据以下规则处理:
[0099]
规则1:当多个目标节点中有与当前节点同区域的节点时,去除所有非同区域的目标节点;
[0100]
规则2:若无同区域的目标节点,当多个目标节点中有l1/l2节点或l2节点时,去除所有纯l1的目标节点;
[0101]
规则3:经过上述两条规则判别后,若还存在多个目标节点,则按照ip的最长前缀匹配规则优选,即剔除所有非最大掩码对应的目标节点;
[0102]
规则4:在经过上述三条规则判别后,若还存在多个目标节点,则多个目标节点都将可选的目标节点。即虽然可达地址列表中记录有metric,但并不在s201中进行metric对比。
[0103]
s202、根据目标节点号,在下一跳矩阵中,以当前节点号为矩阵行号,以目标节点号为矩阵列号,查询下一跳信息,包括:下一跳节点、当前节点的出接口和对应的metric。
[0104]
可选的,若步骤s201的结果是多个目标节点,则步骤s202执行时是分别针对多个目标节点查询下一跳矩阵,所得结果合并形成多条路由条目,并根据以下规则处理:
[0105]
规则1:对于每一条路由,将s201中得到的此目标节点对应的metric,叠加查询下一跳矩阵得到的节点至节点的metric,两者之和作为本条路由的metric;
[0106]
规则2:对于多条路由条目,根据上述每条路由的叠加metric,得到最低metric,剔除非最低metric对应的路由条目;
[0107]
规则3:经过上述两条规则判别后,若还存在多条路由条目,则将作为等价路由进行处理,流量将进行复杂分担。
[0108]
s203、对于每个节点,重复执行前述步骤s201和s202,其中步骤s202得到的下一跳,作为下一个节点,循环直至到达步骤s201中得到的目标节点。
[0109]
需要指出,在循环执行步骤s201和步骤s202时,如果本次循环的当前节点与上一次循环的当前节点属于同一区域,则本次循环可以跳过步骤s201,直接采用上一次循环中s201的结果。
[0110]
实施例四:
[0111]
结合实施例一,本技术提供的路由扩散模拟方法,还能够在每个节点上宣告本节点的可达ip条目,l1/l2节点作为一个区域的出口,可以将本区域内的可达ip进行聚合,然后以聚合ip的形式作为在本节点的可达ip进行宣告。
[0112]
应理解,l1/l2节点在生成聚合ip时,也有对应的metric。此metric可以采用被聚合的多个ip的最低metric,也可以人为重置为一个指定值。
[0113]
当存在聚合ip时,在选路过程会分为以下2个阶段:
[0114]
(1)阶段一:此阶段为跨区域阶段。从源节点路由到目标ip所在区域的l1/l2出口节点。对于与目标ip不处在同一区域的源节点而言,由于上述步骤s201中的规则2,将使得优选到生成聚合ip的l1/l2节点,而并不会基于上述步骤s201中的规则3的最长前缀匹配,被优选到实际ip所在的纯l1节点。
[0115]
(2)阶段二:此阶段为区域内阶段。从目标ip所在区域的l1/l2出口节点到目标ip实际所在节点。在到达目标ip所在区域的l1/l2出口节点之后,则会基于上述步骤s201中的规则3进行最长前缀匹配,从而选到实际ip所在的纯l1节点,而不再被将优选到生成聚合ip的l1/l2节点。
[0116]
实施例五:
[0117]
结合实施例一,如图7所示,本技术提供的一种路由节点的拓扑关系,在此拓扑关系中,存在节点1、节点2、节点3、节点4、节点5共五个路由节点。
[0118]
其中,节点1、2、3、4同属于区域1,节点5属于另一骨干区域。节点1和节点2为路由子区域内部的纯l1路由设备,节点3和节点4为路由子区域的出口l1/l2路由设备,节点5为路由子区域外的l2路由设备。
[0119]
此外,此拓扑关系中,可以设置缺省路由,该缺省路由用于使得纯l1节点(即节点1和节点2)通过缺省路由的方式抵达最近的l1/l2节点(也即节点3和节点4)。并且,对于一个纯l1节点,在路由扩散模拟结束之后,将该纯l1节点所在路由子区域内,与其路由中度量值最低的l1/l2节点的节点编号、出接口编号和对应的度量值作为缺省路由列(也即前文举例中的第0列)中对应的元素的参数。示例性的,通过l1/l2节点为节点1和节点2生成缺省路由,对于节点1来说,由于与节点1的路由最短的l1/l2节点是节点3,因此下一跳矩阵中标识缺省路由的元素h
1,0
的参数为{3,ge2,100}。同理,对于节点2来说,由于与节点2的路由最短的l1/l2节点是节点4,因此下一跳矩阵中标识缺省路由的元素h
2,0
的参数为{4,ge2,100}。
[0120]
每个节点挂载有可达的ip地址网段。其中,节点1可达的ip地址网段为“10.0.0.0/
30”,节点2可达的ip地址网段为“10.0.0.4/30”,节点3可达的ip地址网段为“10.0.1.0/30”,节点4可达的ip地址网段为“10.0.1.4/30”,节点5可达的ip地址网段为“10.0.10.0/30”,上述5个可达的ip地址网段的对应metric均为10。
[0121]
此网络拓扑中有6条直连链路,且均启用了isis协议并配有metric:节点1的出接口ge1与节点2的出接口ge1直连,对应metric配为50;节点1的出接口ge2与节点3的出接口ge2直连,对应metric配为100;节点2的出接口ge2与节点4的出接口ge2直连,对应metric配为50;节点3的出接口ge1与节点4的出接口ge1直连,对应metric配为100;节点3的出接口ge3与节点5的出接口ge1直连,对应metric配为100;节点4的出接口ge3与节点5的出接口ge2直连,对应metric配为105。
[0122]
下面结合实施例一和图7,对本技术中模拟域内路由的过程进行具体说明,步骤如下:
[0123]
s301、路由扩散模拟装置确定五个节点的可达地址列表。
[0124]
示例性的,本实施例中五个节点的可达地址列表如下表3所示:
[0125]
表3可达地址列表
[0126]
节点名称可达ip地址网段节点110.0.0.0/30,10节点210.0.0.4/30,10节点310.0.1.0/30,10节点410.0.1.4/30,10节点510.0.10.0/30,10
[0127]
s302、路由扩散模拟装置根据网络拓扑,确定五个节点之间的路由扩散关系信息。
[0128]
示例性的,采用路由扩散关系表的形式来表示路由扩散关系信息。易得图7中示出的五个节点之间的路由扩散关系表如表4所示:
[0129]
表4路由扩散关系表
[0130]
[0131][0132]
s303、路由扩散模拟装置确定下一跳矩阵。
[0133]
示例性的,根据图7所示的网络拓扑,构建的基于节点号的下一跳矩阵如图8所示。其中,图8的上部分为初始状态的下一跳矩阵,下部分为路由扩散完成后且生成缺省路由后最终状态的下一跳矩阵。应理解,这里的下一跳矩阵完全是基于节点序号的,与ip地址无关,接口序号是用于区分链路。
[0134]
示例性的,现有一报文位于节点5且目标ip地址为“10.0.0.1”,则本实施例在步骤s303之后,还包括以下步骤s304-s307。
[0135]
s304、路由扩散模拟装置根据可达地址映射列表,确定目标ip地址对应的目标节点。
[0136]
需要说明的是,当查询可达地址映射列表后存在多个节点与目标ip地址对应时,结合前述步骤中s201-s202中的规则,具体根据以下步骤s3041-s3043来进行目标节点的判断:
[0137]
s3041、将目标ip地址对应的多个节点中,与源节点不属于同一区域的节点去除。
[0138]
若经过步骤s3041后,ip地址仍旧对应多个节点,则执行步骤s3042。
[0139]
s3042、将目标ip地址对应的多个节点中,属于纯l1节点的节点去除。
[0140]
若经过步骤s3042后,ip地址仍旧对应多个节点,则执行步骤s3043。
[0141]
s3043、根据ip地址的最长前缀匹配规则,将将目标ip地址对应的多个节点中,所有非最大掩码对应的节点去除。可以理解的是,若经过步骤s3043后,ip地址仍旧对应多个节点,则将这多个节点都确定为目标节点。需要指出,虽然此时存在多个目标节点,并且这些目标节点可能在可达地址映射列表中,与ip地址之间的可达地址具有不同的度量值,但是此处先不进行度量值的对比。这是由于,一个目标节点与ip地址之间的可达地址的度量值,与该目标节点与源节点之间的最优路由的度量值之间没有必然的联系,前述两个度量值相加后,才是判断源节点至目标ip地址最优路由的依据。
[0142]
示例性的,对应前述举例,此时报文位于节点5且目标ip地址为“10.0.0.1”,以在图7示出的网络中进行路由查询为例。易知此时源节点为节点5,目标ip地址为“10.0.0.1”。查询表3可知,与目标ip地址“10.0.0.1”匹配的条目为“10.0.0.0/30,10”,相对应的目标节点为节点1。
[0143]
s305、路由扩散模拟装置查询路由扩散模拟结果,确定源节点与目标节点之间最优路由的下一跳节点和出接口。
[0144]
示例性的,对应于步骤s304中的举例,继续查询图8所示的下一跳矩阵可知,元素h
5,1
的参数为{3,ge1,200},即表明节点5至节点1之间最优路由中,下一跳节点为节点3,出接口为ge1。
[0145]
由此,将此时的路径表示为:【5,ge1】

【3,-】。
[0146]
可以理解的是,接下来的路由查询转换为节点3至节点1。
[0147]
s306、路由扩散模拟装置判断下一跳节点与源节点是否属于同一路由子区域。
[0148]
若下一跳节点与源节点属于不同区域,则需要对该下一跳节点重新执行步骤s304;
[0149]
若下一跳节点与源节点属于同一区域,则直接再次重复执行步骤s305。
[0150]
示例性的,对应于步骤s304-s305中的举例,易得本举例中节点3与节点5不属于同一区域,因此,针对节点3(即此时为查询节点3至节点1的路由,且目标ip地址为10.0.0.1)重新执行步骤s304。重新执行步骤s304的结果仍为:目标ip地址“10.0.0.1”对应的节点为节点1。
[0151]
此时,以源节点为节点3且目标节点为节点1,重复步骤s305,确定节点3至节点1之间最优路由的下一跳节点和出接口。
[0152]
查询图8可知,元素h
3,1
的参数为{1,ge2,100},即表明节点3至节点1之间最优路由中,下一跳节点为节点1,出接口为ge2。
[0153]
由此,将此时的路径表示为:【5,ge1】

【3,ge2】

【1,-】。
[0154]
此时,针对节点1,需要再次执行步骤s306,判断此时的下一跳节点(也即节点1)与节点3是否属于同一路由子区域。
[0155]
需要说明的是,在下一跳节点为节点1,且目标节点也为节点1的情况下,仍旧针对节点1执行步骤s306,是因为:由于可能存在聚合ip的场景,且本次查询最终的目的是获取节点5至目标ip地址之间的最优路径,因此,下一跳节点为目标节点不代表当前路径已经到达最终的目标ip地址,经过步骤s304的重复,目标节点可能会发生改变。
[0156]
s307、若当前源节点与目标节点相同,则路由扩散模拟装置确定查询结束,输出当前路由并将其确定为源节点与目标ip地址之间的最优路由。
[0157]
示例性的,对应于步骤s304-s306中的举例,针对节点1,再次执行步骤s306后,判断节点1与节点3属于同一区域。因此之后执行步骤s305,当前节点1即为目标节点1,路由的查询完成。
[0158]
由此,最终的路径如图9所示,具体为:【5,ge1】

【3,ge2】

【1,10.0.0.1】。即节点5至目标ip地址“10.0.0.1”的最优路径为节点5的ge1

节点3的ge2

节点1的可达地址10.0.0.1。
[0159]
需要强调的是,若在步骤s304中确定出多个目标节点,则在查询结束后,会存在多个查询结果(也即多条路由结果)。此时,将每条路由结果的整体的度量值,与目标ip与该路由结果对应的目标节点之间的可达地址的度量值,进行相加。最终获取查询结果对应的源节点与目标ip地址之间每条路由的总度量值,将总度量值最小的路由确定为最优路由。可以理解,若在前述总度量值的对比中,存在总度量值相同的路由,则将这些总度量值相同的路由,皆确定为源节点与目标ip地址的最优路由。
[0160]
以上结合网络拓扑举例,对本技术中模拟域内路由的过程进行了说明。
[0161]
实施例六:
[0162]
示例性的,结合实施例一与图7,如图10所示,本技术提供另一种路由扩散模拟方法,能够对待模拟网络中存在的聚合路由情况进行模拟,本实施例具体包括以下步骤:
[0163]
在本实施例中,节点之间的拓扑关系如图10所示,节点之间路由的度量值和节点的类型不变。与实施例五产生区别的是,节点3和节点4作为路由子区域的出口节点,配置有聚合ip地址的功能。也即,节点3和节点4能够将可达ip地址“10.0.0.0/30”和“10.0.0.4/
30”聚合为“10.0.0.0/24”。
[0164]
s401、路由扩散模拟装置确定路由子区域中,l1/l2节点的可达聚合ip地址。
[0165]
可选的,结合图10,节点3与节点4为路由子区域中的出口节点,也即l1/l2节点。路由扩散模拟装置为节点3和节点4配置聚合路由,也即此时节点3和节点4具备聚合ip地址“10.0.0.0/24”。此时,节点3根据被配置的聚合路由功能,能够将节点1的可达ip地址“10.0.0.0/30”聚合为“10.0.0.0/24”,且将节点2的可达ip地址“10.0.0.4/30”聚合为“10.0.0.0/24”。
[0166]
s402、路由扩散模拟装置确定l1/l2节点与可达聚合ip地址之间的度量值。
[0167]
可选的,对于节点3,其聚合了路由子区域内的ip地址“10.0.0.0/30”和“10.0.0.4/30”。根据图8,分别对源节点为节点3,目标ip地址为“10.0.0.0/30”和“10.0.0.4/30”的最优路由的度量值进行查询。此处所用的路由查询方法如上文s304至s306所述,在此不再赘述。
[0168]
进一步的,由图8查询到节点3至目标ip地址“10.0.0.0/30”的最优路由的度量值为110,节点3至目标ip地址“10.0.0.4/30”的最优路由的度量值为160。在此之后,路由扩散模拟装置将节点3至目标ip地址“10.0.0.0/30”的最优路由的度量值110,确定为节点3与可达聚合ip地址“10.0.0.0/24”之间的度量值。
[0169]
同理,路由扩散模拟装置将节点4至目标ip地址“10.0.0.4/30”的最优路由的度量值110,确定为节点4与可达聚合ip地址“10.0.0.0/24”之间可达的度量值。
[0170]
可选的,路由扩散模拟装置也可对节点3或节点4与可达聚合ip地址之间的可达地址的度量值进行人为预设,设置为一个指定数值。
[0171]
s403、路由扩散模拟装置对可达地址列表进行更新。
[0172]
示例性的,结合前述步骤s301,路由扩散模拟装置将表3更新为表5:
[0173]
表5根据聚合路由更新后的可达地址映射列表
[0174][0175]
示例性的,现有一报文位于节点5且目标ip地址为“10.0.0.1”,本实施例在步骤s403之后具体包括以下步骤s404-s407:
[0176]
s404、路由扩散模拟装置根据可达地址映射列表,确定目标ip地址对应的目标节点。
[0177]
需要说明的是,当查询可达地址映射列表后存在多个节点与目标ip地址对应时,根据以下步骤s4041-s4043来进行目标节点的判断:
[0178]
s4041、将目标ip地址对应的多个节点中,与源节点不属于同一区域的节点去除。
[0179]
若经过步骤s4041后,ip地址仍旧对应多个节点,则执行步骤s4042。
[0180]
s4042、将目标ip地址对应的多个节点中,属于纯l1节点的节点去除。
[0181]
若经过步骤s4042后,ip地址仍旧对应多个节点,则执行步骤s4043。
[0182]
s4043、根据ip地址的最长前缀匹配规则,将将目标ip地址对应的多个节点中,所有非最大掩码对应的节点去除。
[0183]
示例性的,现有一报文位于节点5且目标ip地址为“10.0.0.1”,以在图10示出的网络中进行路由查询为例。易知此时源节点为节点5,目标ip地址为“10.0.0.1”。查询根据聚合路由更新后的可达地址映射列表5可知,与目标ip地址“10.0.0.1”匹配的条目为节点1与其可达的“10.0.0.0/30,10”、节点3与其可达的“10.0.0.0/24,110”、以及节点4与其可达的“10.0.0.0/24,110”。由于节点5与节点1、3、4不在同一区域并且节点1为纯l1节点,因此经过步骤s404后,剩下条目节点3与其可达的“10.0.0.0/24,110”、以及节点4与其可达的“10.0.0.0/24,110”,即此时目标节点有两个,分别为节点3和节点4。
[0184]
s405、路由扩散模拟装置查询路由扩散模拟结果,确定源节点与目标节点之间最优路由的下一跳节点和出接口。
[0185]
若确定的下一跳节点和出接口为多个(也即目标节点为多个),则执行步骤s406;
[0186]
若确定的下一跳节点和出接口为1个(也即目标节点为1个),则执行步骤s407。
[0187]
示例性的,对应于步骤s404中的举例,继续查询图8可知,元素h
5,3
和元素h
5,4
的参数为{3,ge1,100}和{4,ge2,105},结果为多个,则执行后续步骤s406。
[0188]
s406、路由扩散模拟装置将源节点与下一跳节点之间度量值最小的路由,确定为最优路由。
[0189]
示例性的,对应于步骤s405中的举例,两条路径对应的元素为元素h
5,3
和元素h
5,4
的参数为{3,ge1,100}和{4,ge2,105},元素h
5,3
对应的路由的度量值为110+100=200,元素h
5,4
对应的路由的度量值为110+105=200,因此将元素h
5,3
对应的路由确定为最优路由,继续执行后续步骤。
[0190]
由此,此时的路由为:【5,ge1】

【3,-】。
[0191]
s407、路由扩散模拟装置判断下一跳节点与源节点是否属于同一路由子区域。
[0192]
若下一跳节点与源节点属于不同区域,则需要对该下一跳节点重新执行步骤s404;
[0193]
若下一跳节点与源节点属于同一区域,则直接再次重复执行步骤s405。
[0194]
示例性的,对应于步骤s404-s406中的举例,由于节点3与节点5属于不同区域,因此对节点3执行步骤s404。具体的,查询表5后,匹配的条目为节点1和与其对应的“10.0.0.0/30,10”、节点3和与其对应的“10.0.0.0/24,110”、以及节点4和与其对应的“10.0.0.0/24,110”。经过步骤s4041至s4043后,s4043将非最大掩码的节点3和与其对应的“10.0.0.0/24,110”、以及节点4和与其对应的“10.0.0.0/24,110”去除。此时只剩下条目节点1和与其对应的“10.0.0.0/30,10”,因而得到节点3与目标ip地址为“10.0.0.1”的路由对应的下一跳节点为节点1。
[0195]
进一步的,再次执行步骤s405:针对节点3至节点1的路由,查询图8可知,元素h
3,1
为{1,ge2,100},即当前下一跳节点变为节点1。进一步的,再次执行步骤s406。
[0196]
s408、若当前源节点与目标节点相同,则路由扩散模拟装置确定查询结束,输出当
前路由并将其确定为源节点与目标ip地址之间的最优路由。
[0197]
示例性的,对应于步骤s404-s407中的举例,由于节点1与节点3属于同一区域,因此直接再次执行步骤s405即可,确定当前的下一跳节点和目标节点都为节点1,因此路由的查询流程结束。
[0198]
由此,最终的路径如图11所示,具体为:【5,ge1】

【3,ge2】

【1,10.0.0.1】。即节点5至目标ip地址“10.0.0.1”的最优路径为节点5的ge1

节点3的ge2

节点1的可达地址10.0.0.1。
[0199]
以上针对如何在本技术实施例的路由扩散模拟结果中,存在聚合路由的情况时,对某节点至某ip地址之间的最优路由进行查询进行了说明。
[0200]
本技术实施例可以根据上述方法示例对路由扩散模拟装置进行功能模块或者功能单元的划分,例如,可以对应各个功能划分各个功能模块或者功能单元,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块或者功能单元的形式实现。其中,本技术实施例中对模块或者单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
[0201]
示例性的,如图12所示,为本技术实施例所涉及的一种路由扩散模拟装置的一种可能的结构示意图。该路由扩散模拟装置500包括:处理单元501。
[0202]
处理单元501,用于根据节点的序号,确定下一跳矩阵。
[0203]
处理单元501,还用于确定可达地址映射列表。
[0204]
处理单元501,还用于根据下一跳矩阵和可达地址映射列表,模拟域内路由。
[0205]
可选的,处理单元501,还用于确定数据包或数据流的当前所在设备对应的当前节点。
[0206]
可选的,处理单元501,还用于根据数据包或数据流的目标ip地址和可达地址映射表,确定目标节点和目标节点与目标ip地址之间可达路由的度量值。
[0207]
可选的,处理单元501,还用于根据下一跳矩阵、当前节点和每一个目标节点,确定当前节点至目标节点的最优节点路由。
[0208]
可选的,处理单元501,还用于根据可达地址映射表和下一跳矩阵,确定每一条最优节点路由对应的数据包或数据流当前所在设备至目标ip的总度量值。
[0209]
可选的,处理单元501,还用于将总度量值最小的最优节点路由,确定为最终选路结果。
[0210]
可选的,处理单元501,还用于根据下一跳矩阵模拟域内的设备的域内路由信息。
[0211]
可选的,处理单元501,还用于根据下一跳矩阵的迭代矩阵变换,模拟域内路由的扩散
[0212]
可选的,处理单元501,还用于根据路由扩散关系信息,确定下一跳矩阵中待扩散元素的扩散目标元素
[0213]
可选的,处理单元501,还用于将下一跳矩阵中的待扩散元素,向每个扩散目标元素进行扩散。
[0214]
可选的,处理单元501,还用于根据节点的等级标记,模拟设备在中间系统到中间系统isis协议中的等级level类型。
[0215]
可选的,处理单元501,还用于根据节点的区域标记,模拟设备在isis协议中的所
属区域信息。
[0216]
可选的,处理单元501,还用于根据路由扩散关系信息中包括的等级标记,模拟isis协议中邻居关系的level类型。
[0217]
可选的,处理单元501,还用于根据l1/2类型的节点的区域标记,确定相同区域内与其他l1类型的节点的最优路由。
[0218]
可选的,处理单元501,还用于根据指定的掩码长度,为l1/2类型的节点生成聚合路由。
[0219]
可选的,路由扩散模拟装置500还可以包括存储单元(图12中以虚线框示出),该存储单元存储有程序或指令。当处理单元501执行该程序或指令时,使得路由扩散模拟装置可以执行上述方法实施例所述的路由扩散模拟方法。
[0220]
此外,图12所述的路由扩散模拟装置的技术效果可以参考上述实施例所述的路由扩散模拟方法的技术效果,此处不再赘述。
[0221]
示例性地,图13为上述实施例中所涉及的路由扩散模拟装置的又一种可能的结构示意图。如图13所示,路由扩散模拟装置600包括:处理器602。
[0222]
其中,处理器602,用于对该路由扩散模拟装置的动作进行控制管理,例如,执行上述处理单元501执行的步骤,和/或用于执行本文所描述的技术方案的其它过程。
[0223]
上述处理器602可以是实现或执行结合本技术内容所描述的各种示例性的逻辑方框,模块和电路。该处理器可以是中央处理器,通用处理器,数字信号处理器,专用集成电路,现场可编程门阵列或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本技术公开内容所描述的各种示例性的逻辑方框,模块和电路。所述处理器也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,dsp和微处理器的组合等。
[0224]
可选地,路由扩散模拟装置600还可以包括通信接口603、存储器601和总线606。其中,通信接口603用于支持路由扩散模拟装置600与其他网络实体的通信。存储器601用于存储该路由扩散模拟装置的程序代码和数据。
[0225]
其中,存储器601可以是路由扩散模拟装置中的存储器,该存储器可以包括易失性存储器,例如随机存取存储器;该存储器也可以包括非易失性存储器,例如只读存储器,快闪存储器,硬盘或固态硬盘;该存储器还可以包括上述种类的存储器的组合。
[0226]
总线604可以是扩展工业标准结构(extended industry standard architecture,eisa)总线等。总线804可以分为地址总线、数据总线、控制总线等。为便于表示,图13中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
[0227]
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。上述描述的系统,装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
[0228]
本技术实施例提供一种包含指令的计算机程序产品,当所述计算机程序产品在本技术的电子设备上运行时,使得所述计算机执行上述方法实施例所述的路由扩散模拟方法。
[0229]
本技术实施例还提供一种计算机可读存储介质,计算机可读存储介质中存储有指令,当计算机执行该指令时,该本技术的电子设备执行上述方法实施例所示的方法流程中路由扩散模拟装置执行的各个步骤。
[0230]
其中,计算机可读存储介质,例如可以是但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘。随机存取存储器(random access memory,ram)、只读存储器(read-only memory,rom)、可擦式可编程只读存储器(erasable programmable read only memory,eprom)、寄存器、硬盘、光纤、便携式紧凑磁盘只读存储器(compact disc read-only memory,cd-rom)、光存储器件、磁存储器件、或者上述的人以合适的组合、或者本领域数值的任何其他形式的计算机可读存储介质。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于特定用途集成电路(application specific integrated circuit,asic)中。在本技术实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
[0231]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何在本技术揭露的技术范围内的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应该以权利要求的保护范围为准。
[0232]
以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何在本技术揭露的技术范围内的变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应该以权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1