1. 三类LSA
可以通过下面的命令来查看三类LSA
sh
display ospf lsdb summary

如图所示的网络拓扑中,R1中就有一条去往R3的三类LSA

Type: Sum-Net域间路由,三类LSA
LS id: 23.1.1.0 使用路由的网络地址标识
Adv rtr: 2.2.2.2 产生路由的ABR的router-id
Net Mask: 255.255.255.0 子网掩码
注意:
只有三类LSA所描述的目的网络在ABR路由器上加表才会被泛洪。
三类LSA---传递的是路由信息,因此只有加表了的路由才会传递给其他邻居。
2. OSPF防环
为了防环,OSPF设计了骨干区域和非骨干区域这一概念。
-
ospf划分了骨干区划和非骨干区域;所有非骨干区域都要直接和骨干区域相连。非骨干区域之间进行通信都要经过骨干区域。骨干区域为区域0。
-
OSPF要求
ABR路由器至少要有一个接口属于骨干区域 -
每个区域都会维护一个独立的LSDB,一类和二类LSA只会在本区域内进行泛洪
-
ospf从骨干区域传过来的三类LSA不能再传回骨干区域
2.1 ABR的功能
- 将直连区域的最优路由转化为三类LSA,泛洪到其他直连区域
- 将骨干区域的三类LSA继续以三类LSA形式传递到其他直连非骨干区域
- 不能把非骨干区域的三类LSA传递到骨干区域,因为非骨干区域的三类LSA一定是骨干区域传来的
2.2 OSPF防环原则
- 为了避免区域间路由环路,OSPF规定不同区域的路由交互只能通过ABR实现
- ABR不会把非骨干区域的三类LSA传到骨干区域
不算--不加表--不会有三类LSA
不过有例外:
ABR在骨干区域内存在邻居时,
不会计算非骨干区域传过来的三类LSA;
当ABR在骨干区域内不存在邻居时,
会计算非骨干区域的三类LSA.
下面来举个例子帮助理解:

问题一:
区域0的1.1.1.1/32的环回口路由是否会出现在路由器R3的路由表中呢?
会,R2会将1.1.1.1/32的三类LSA传到R4。
由于R2 R3 R4同属于区域1,所以这条LSA会同步到R3。
由于R3同时属于区域0 1, 因此R3是一个ABR,
又因为R3在区域0内无邻居,
因此它就会计算非骨干区域传来的三类LSA并加入自己的路由表中。
问题二:区域0的R3的3.3.3.3/32环回口路由,是否能出现在R1和R2的路由表中呢?
不会;与上一个问题的分析类似,唯一的不同是,当3.3.3.3/32的三类LSA传到R2时,由于R2在区域0有邻居,因此不会加表计算,也不会再泛洪。
问题三:R5中是否会有1.1.1.1/32和3.3.3.3/32的路由?
没有,R4不是ABR,不会传递三类LSA。
- 无论COST值多少,一类LSA优于三类LSA
看下面的这个图:

1.1.1.1/32这条路由,在路由器R4中会走上面还是下面呢?
根据我们上面提到的原则,有直连走直连,也就是R1 R2这条路。
我们还修改了R2 g0/0/0 cost 值为100,但还是没有影响最终的结果 。
看下R4路由表,可以知道下一跳为R2,开销为101。

3. 虚链路
3.1 概念
- 虚链路属于区域0的逻辑连接
- 虚链路只能跨域一个非骨干区域
- 虚链路不能穿越特殊区域
- 虚链路邻居必须在SPF树能找到对方,需要在一个区域
3.2 虚链路配置

比如说上面的链路,我们需要打通区域2和区域1之间的网络,就可以在R2 R3上做一个虚链路。
虚链路的配置比较简单,只需要在相应的区域指定peer就行了。
sh
area 1
vlink-peer 3.3.3.3
要查看虚链路的建立情况
sh
display ospf vlink
在虚链路建立之后,1.1.1.1/32的路由就能被引入到路由器R4了。

vlink 是一类LSA中的最后一种

Link ID: 2.2.2.2 邻居的router-id
data: 23.1.1.3 用哪个口连接的邻居
LinkType: virtual 虚链接
3.3 虚链接作用
- 解决非骨干区域和骨干区域传递路由的问题,上面的那个就是例子
- 防止骨干区域被分割
下面是一个例子:

假设此时R1的g0/0/0口突然断了,我们发现R1 R2之间无法正常通信了。
R1无法访问24.1.1.0/24这个网段了,
同样的R2无法访问13.1.1.0/24这个网段了。


这时区域0实际上相当于被分割成了左右两个区域了。
为了防止这种情况的发生,我们可以在R3 R4这间建个虚链路。
重新建立起虚链路后可以发现又通了,这样区域0就变成一块啦!


- 链路优化

比如说上面的图中R5获取R1环回口1.1.1.1/32实际上计算的时候有两条,
(1) R3->R2->R1
(2) R4->R2->R1
但由于上面我们提到过的无论cost值多少,一类LSA都优于三类LSA。
但有可能出现这种情况,R4 R5:1000M带宽,但R3 R5:100M,这样就浪费了链路带宽,我们就可以通过在R4 R5之间建立虚链路来优化链路,使得R5到R1走R4这条路。
虚链路建立后,再来看开销

对比之前

3.4 虚链路的缺点
本身虚链路的作用是破除环路,但是用不好的话会造成环路。

如上图所示,如果我们错误的在R2 R4之间建立了虚链接。
R2将三类LSA发给R1 ,R1再将这个三类LSA发给R3;
因此在R3的路由表中5.5.5.5/32下一跳为R1,
在R1的路由表中5.5.5.5/32的下一跳为R2。
而R2 R4虽然建立了虚链路,但实际上还是需要借助物理链路的,
也就是这个路由信息是从R3发过来的,因此在R2的路由表中5.5.5.5/32的
下一跳为R3。这样就形成了一个环路了!



因此我们不能在R2 R4之间建虚链接,正确的做法是在R3 R4之间建立虚链接。
4. OSPF认证
认证分为两种,一种接口认证,一种区域认证。
配置一样
sh
ospf authentication-mode md5 1 cipher huawei
4.1 注意
- 一边区域认证,一边接口认证不影响结果,只要认证类型+密码+key id一致就不会影响邻居的建立。
- 同时配置区域接口认证的情况下,接口认证优于区域认证
- 对应的虚链接也要认证哦!