资讯动态

区域间路由

发布时间:2026/10/20 11:18:14 来源:尧图企业网站定制
前提知识点一类LSA跟二类LSA是在产生的区域内泛洪也就是一类和二类的LSA传不到其他区域对于另外一个区域来说就没有SPF树了。如何算出区域间的路由一般在项目中会把ABR的环回口加到区域0中的。实验拓扑在R3上查看OSPF路由表在R3的路由表中出现了4.4.4.4/32这条路由也就是说区域0中的路由器已经算出了区域1中的4.4.4.4的这条路由可见区域中的路由设计可以被计算出来的。在R3上查看拓扑数据库R3这台路由器在自己的拓扑数据库中只有自己区域0中的一类和二类LSA我们并没有在区域0中看到R4产生的一类二类LSA。每个区域里面的一类、二类LSA是不会传递到其他区域的。在R1上查看ospf的lsa的数据库R1是ABRR1是ABR要维护他所连接区域的每个区域的LSDB在R1的区域0中没有R4产生的一类LSA在R1的区域1中出现了R4产生的一类。-- 这就说明区域1中的一类LSA没有传到区域0中。二类也是这样的特点。ABR这台路由器由于他需要维护两个他所连区域的拓扑数据库这个ABR就能够算出区域0中的所有路由也能算出区域1中的所有路由他这两个区域都维护对于R4来讲这是内部路由器他的链路状态数据库中只维护自己的LSDB并没有维护区域0的。R1的路由表中有去往4.4.4.4的路由三类LSA三类LSA专门用于区域间路由的计算。ABR将直连区域的type 1, type 2的LSA计算出的区域内转化成其他区域的type 3 LSA。在区域1中有两条区域内路由一条是4.4.4.4/32一条是10.1.14.0/24AR1把这两条路由变成了区域0中的两条三类LSA。区域0中的路由有1.1.1.1,2.2.2.2,3.3.3.3还有10.1.12.0/24,10.1.23.0/24一共是五条路由。R1在区域1中把区域0中的五条路由变成五条三类LSA。接下来以R4作为例子看一下三类LSA的具体情况。三类LSA叫 summary在R1上查看注意每一条区域间的路由独立产生一条三类LSA对应如果没有DD报文在建邻居的时候如果有大量的三类LSA要进行同步是会增加设备的负担DD报文在这里就可以起到简化作用。如何计算路由R3收到R1产生的三类LSA怎么计算路由呢比如R1产生的这条4.4.4.4的三类LSA会在区域0中泛洪R1跟R2建邻居LSDB要同步R2跟R3建邻居LSDB也要同步当R1产生一条三类传递给R2也会传递给R3。整个区域内的LSDB要一致。R3收到这条三类LSA他就可以了解到一个事实这里出现了一条区域间的路由三类LSA是用来描述区域间路由的所以R3就能感知到有一条区域间路由。R3通过这条三类LSA可以得到的信息区域间有条路由是4.4.4.4/32ABR1.1.1.1到这条路由的开销是1。R3会在自己的区域0中的一类LSA和二类LSA中是算不出4.4.4.4这条路由的以区域为单位形成了一棵树现在4.4.4.4/32是区域1中的一片叶子不在区域0中那么肯定通过区域0中一类和二类LSA是算不出4.4.4.4/32这条路由的。可以直接知道4.4.4.4/32是三类LSA传过来的R3就直接知道这是区域间的路由也可以通过一类和二类的去分析如果一类二类算不出这条路由那么这条路由肯定不在区域内。可以有两种思维去理解这种逻辑ABR跟R3在同一个区域里面R3可以算出到ABR的开销和下一跳通过SPF算法R3有能力算出自己到R1的下一跳和开销这个时候再加上R1到4.4.4.4的开销就是R3自己到4.4.4.4/32的开销了。R3怎么知道R1是ABR我们并不能通过三类LSA本身去了解R1就是ABR最好是由R1自己去说自己是ABR。在R3上看R1产生的一类LSA和R3自己产生的一类LSA有什么区别。[R3]dis ospf lsdb router 1.1.1.1 OSPF Process 1 with Router ID 3.3.3.3 Area: 0.0.0.0 Link State Database Type : Router Ls id : 1.1.1.1 Adv rtr : 1.1.1.1 Ls age : 686 Len : 48 Options : ABR E # 这里面标记了ABR seq# : 8000002b chksum : 0xeded Link count: 2 * Link ID: 1.1.1.1 Data : 255.255.255.255 Link Type: StubNet Metric : 0 Priority : Medium * Link ID: 10.1.12.1 Data : 10.1.12.1 Link Type: TransNet Metric : 1[R3]dis ospf lsdb router 3.3.3.3 OSPF Process 1 with Router ID 3.3.3.3 Area: 0.0.0.0 Link State Database Type : Router Ls id : 3.3.3.3 Adv rtr : 3.3.3.3 Ls age : 481 Len : 48 Options : E seq# : 80000028 chksum : 0xe2cb Link count: 2 * Link ID: 3.3.3.3 Data : 255.255.255.255 Link Type: StubNet Metric : 0 Priority : Medium * Link ID: 10.1.23.2 Data : 10.1.23.3 Link Type: TransNet Metric : 1可以查看到ABR的路由。抓包看一下ABR是通过什么内容去表达自己是ABR的。修改R1的环回口的开销值可以触发更新。此时R3也是ABRR3就会遵循原则将区域0中的一类二类计算出来的路由变成三类LSAR3也会把区域2中的一类二类LSA变成区域0中的三类。问题R5是否能算出4.4.4.4/32的路由4.4.4.4/32在区域0中是三类LSAR5中确实有4.4.4.4/32的路由R5中依然有4.4.4.4的三类LSA但是此时的AdvRouter变成了3.3.3.3而不是1.1.1.1了。开销也变成了3。什么情况下不会产生三类LSA例如对于R3来讲如果把4.4.4.4从路由表中过滤掉也不会从区域2产生三类LSA了。现在R3中的IP路由表里面4.4.4.4/32的路由是活跃的。R3也在区域2中产生了4.4.4.4这条三类LSA。现在在R3上写一个前缀列表单独针对4.4.4.4/32这条路由过滤。在ospf中应用这个过滤策略。现在在ospf的路由表中4.4.4.4/32这条路由是有的。上述的过滤的命令只是在把路由加入到IP路由表的时候给过滤掉了IP路由表中不会有4.4.4.4/32对于R3来说4.4.4.4本身就是三类的。现在在R3中的区域2中就没有4.4.4.4的三类LSA了。4.4.4.4/32依然存在于ospf的路由表中再加到IP路由表的过程中过滤了因此R3就不会为这条路由去产生三类LSA了虽然在ospf的路由表中依然有但是已经失去了再次变成三类LSA的能力了。在一个复杂网络中有可能会出现通过多种协议计算出同一条的路由的情况最后路由表中选择的是 路由优先级最好的但是如果说由于没有用ospf成为活跃的导致不产生三类的话这个OSPF的网络 就会废了。其他的OSPF路由器就算不出这条路由。 只有在路由表中不存在我才觉得你可以不产生三类LSA了。 但是只要你是活跃或者非活跃只要存在那就有必要继续产生三类的三类防环机制之前的实验中区域中只有一个ABR为了网络的可靠性可以在区域0跟区域1之间部署两台ABR。问题R1会产生三类的LSA传到区域0R6也会产生三类的LSA传到区域0。这样子才保证了高可用。R6可以通过区域1的一类LSA计算4.4.4.4/32但是如果R1把4.4.4.4/32这条路由变成区域0中的三类传到区域0然后区域0再泛洪给R6R6也可以通过区域0中的三类算出4.4.4.4/32。同样R1也有这两种选择。在R2上查看拓扑数据库R2上分别受到了由1.1.1.1和6.6.6.6产生的关于4.4.4.4的两条三类LS。R2会针对这条路由算负载分担。两个ABR都会为4.4.4.4产生三类LSA所以R2可以根据这两条三类LSA去做计算负载分担。如果现在将R6中区域1中的接口取消掉那么R4是可以通过R1去访问4.4.4.4的开销变成3了。现在把R6的区域1中的接口打开。这个收敛比较慢如果改成点到点收敛会更快一些。广播型链路会有DR跟BDR的选举过程。现在把R6中区域0的接口的开销改成1000R6到4.4.4.4还是走开销10000的并没有走开销3的。结论一类LSA会优先于3类LSA去进行路由的计算OSPF区域间选路机制选路机制11、type1type2 优先于type3 区域内路由优先于区域间路由R1把区域1的4.4.4.4变成三类之后传到区域0R3会把区域0中的这个三类变成三类再传给区域2这没有问题但是R6会把区域0中的这个三类再次传递给区域1这个时候就会产生环路风险所以才有区域内路由优先于区域间路由。在ospf协议层面上这条4.4.4.4的三类LSA产生的不用不会进入IP路由表这就被过滤了那么ABR就不会为这条路由产生三类LSA传递回给区域1。所以从区域1传出去的4.4.4.4的LSA变成了三类LSA就不可能再传递回区域1了防止了环路。这个选路机制的本质就是防环机制。同理区域0的路由传递到区域1也不会再传递回区域0的5.5.5.5对于R6产生的困扰5.5.5.5传到区域0变成三类然后再传递到非骨干区域1还是一条三类。对于R6来说如果通过区域0中的三类去计算5.5.5.5那么cost是3如果通过区域1中的三类去计算5.5.5.5那么cost是5。一个是骨干区域的三类一个是非骨干区域的三类。问题区域0中三类传到非骨干区域如何防止再传递回给骨干区域呢选路机制22、区域0中的type 3 优于非骨干区域的三类对于R6来说通过区域0可以算出5.5.5.5就不会考虑在区域1去算出5.5.5.5。当R6跟区域0失去了邻居关系才会用区域1去算出5.5.5.5。选路机制33、ABR在区域0存在FULL邻居时不使用非骨干区域的三类进行路由的计算。这个选路机制3的规则是非常严格的如果R6在区域0有FULL邻居这个时候非骨干区域的三类里都不会理的。意味着非骨干区域的三类是绝无可能传回到区域0的。如果现在把R6连接区域0的接口Down掉R6在区域0就没有邻居这个时候R6会使用区域1的三类进行路由计算。现在增加R7现在如果R6连接R2的接口Down掉了那么就出现两个不连续的区域0这就是骨干区域的设计存在单点故障 -- 骨干区域由于设备故障或者链路故障导致骨干区域不连续。R6现在在区域0中没有5.5.5.5只能通过从区域1中得到5.5.5.5。如果R6要去根据区域1中的5.5.5.5去计算路由那么就还有可能传递到区域0。R7在两个不连续的区域0的情况下还是可以访问5.5.5.5。但是问题一旦R6跟R2链路恢复这条5.5.5.5的路由就产生了环路风险了。从区域0传递到区域1的路由再次传递到区域0。所以为了避免这种情况只要区域0有邻居就不会用非骨干区域的type 3进行路由计算。就避免了当R6跟R7还有邻居的时候产生环路风险。R6连接R2的链路Down掉。R6就没有去往5.5.5.5的路由了。在R6的ospf的拓扑数据库中明明有5.5.5.5的三类LSA由R1产生的但是R6会视而不见。OSPF规定区域0有且只有一个并且连续。现在R6在区域0是有邻居R7的那么这个区域0就是R6认为的唯一的区域0而且是连续的但是很奇怪的是在R6所理解的连续的区域0中算不出5.5.5.5这条路由。在这个区域0中也没有5.5.5.5的三类表中还存在是因为还没有过期-- R6跟R2Down了那么5.5.5.5传递不了给R6。那么R6区域1中有这条三类的5.5.5.5但是区域0中没有。这是有问题的因为如果按照区域规划原则区域0有且只有一个而且非骨干区域要和骨干区域直接相连。非骨干区域中的三类肯定是从骨干区域进去的转成三类的。---- 非骨干区域中的三类只能由骨干区域中的一类变成三类或者三类变成三类传到非骨干区域的。现在R6在自己的区域0中没有5.5.5.5的一类也没有5.5.5.5的三类。但是在区域1中却有5.5.5.5的三类那么这是不符合区域规划原则的。只有存在两个不连续的区域0时才有可能出现这种情况。R6肯定对这条不对劲的路由是不进行计算的。

读完文章,也想定制专属网站?

尧图设计师 24 小时内与您沟通定制方案

免费获取报价 →
↑