OSPF泛洪机制
OSPF 是链路状态协议,其路由是根据LSDB中的LSA计算出来的,所以LSDB的一致性及快速同步直接影响OSPF路由的收敛性能。而同一个Area中的OSPF路由器拥有同一个LSDB,LSDB是LSA的合集。
在MA网段时,若DRother向DR/DBR泛洪,则DR会以组播方式将LSU(包含LSA)向其他DRother泛洪。
LSDB中每份LSA都有唯一的身份ID,由以下三个参数构成:
①.LSA类型 ②链路状态ID ③.通告路由器的Router ID
泛洪的产生和传播:
泛洪是可靠的、周期性( 30min)或触发产生的LSA通告过程。
泛洪是把LSA 向区域中的每条链路复制并通告的过程。
全区域的泛洪会致路由器收到多份相同的LSA,LSDB中仅保留最新的。
路由器仅泛洪最新的LSA,相同ID的“旧的”LSA会被“新的”LSA所覆盖。
一旦最新的LSA被所有路由器收到,泛洪就结束了。
区域中会有周期产生的新的LSA 所致的泛洪或触发产生的新的LSA导致的泛洪行为。
判断相同ID的“新的”LSA要依次比较以下内容:
①.LSA序列号(Sequence Number) ②.LSA报文校验和(Checksum) ③. LSA年龄(LSA Age)
(1)序列号越大代表越新。
(2)若序列号相同,则Checksum 数值越大代表越新。
(3)上述一致的情况下,继续比较Age。
若LSA 的Age为MaxAge,即 3600s,则该LSA被认定更“新”。
若LSA 间Age差额超过15min,则 Age小的LSA被认定更“新”。
若LSA Age差额在15min 以内,则二者视为相同“新”的LSA,只保留先收到的一份LSA。
OSPF四种区域类型:
一、骨干区域(Area 0)
骨干区域有且只有一个,所有其他区域必须同骨干区域相连,如果没有连接到骨干区域,将不会学到其他区域路由,OSPF中所有区域间路由必须经骨干区域传递。其他区域若没有连接到骨干区域,要使用Vlink连接到骨干区域。骨干区域不能被分割,一旦分割,必须使用 Vlink连接分割的骨干区域使之连续。
二、普通区域(Normal Area)
Area号不等于0,承载Vlink,是最通用的区域,它传输区域内路由、区域间路由和外部路由。
三、Stub区域
特殊区域,该区域内LSA 4/5不能接收。访问OSPF 外部网络仅能通过ABR,所有的流量及路由通过ABR进入Stub区域。
Stub区域有一个变体, Totally Stub区域,比 Stub区域添加了对区域间LSA3的过滤,Stub区域仅可通过ABR访问区域外任何目的地,不支持Vlink。
四、NSSA区域
NSSA区域可以有LSA7,可以有ASBR,访问任何外部OSPF区域可以通过本区域ASBR,也可通过ABR访问。
Totally NSSA在上述机制的基础之上,在ABR上过滤区域间LSA3。
ABR,ASBR定义和作用
一、ABR
定义:ABR处于区域边界间,限制LSA泛洪的范围。
作用:为本区域通告描述其他区域的网络,即执行区域间路由通告、过滤、聚合等。
ABR规则:
一、通过ABR1进入非骨干区域的LSA3路由,若ABR2在骨干区域有OSPF邻居,则该LSA3路由不进ABR2的路由表。此处ABR1和ABR2是处在骨干区域0和非骨干区域1间的两台边界路由器。
二、若ABR2在骨干区域没有邻居,仅有一个网络出现在骨干区域,则ABR1所通告的LSA3路由可以进入其路由表。
三、没有出现在ABR路由表的路由是不会通告到其他区域的,这是边界上的矢量特性。
PS:上述规则对LSA3起作用,同样适用于LSA4,但不适用于LSA5。
二、ASBR
定义:可以是位于OSPF域的自治系统内部的任何路由器,他可以是一台内部路由器或者ABR路由器。只要一台OSPF路由器引入了外部路由的信息,它就成为ASBR。
作用:引入外部路由。
Vlink
Vlink用于连接分割的骨干区域,配置在两个ABR间,承载Vlink的这个Area称为Transit Area。
PS:Transit Area不能是Stub或NSSA区域
应用场景:
一、连接断开的Area 0
二、修复普通Area未连接骨干Area 0
三、解决次优路径问题及增加骨干区域的可靠性
特性:
①.Vlink上可传递LSA 1/2/3/4类型的LSA,其他类型不传递。LSA5是在整个OSPF 路由域中泛洪的LSA,它可以直接在区域间泛洪,Vlink不传递LSA5。
②.Vlink是工作在 Transit Area 上的连接两个ABR的虚拟链路,该虚链路属于区域0,其OSPF 链路成本为Transit Area内两个ABR节点间的最优路径的成本。
③.Vlink有正常的OSPF邻居关系,周期性发送Hello 及 LSA刷新,如果连续失去四个Hello报文,则 Vlink邻居关系Down,这和直连链路上判定邻居失效的方式一致。但若两个ABR路由器物理直连,Vlink 建立后,物理链路断开或邻居断开,都会致Vlink立即中断。
④.Vlink仅用来传递LSA,Vlink并不传递数据。
Vlink配置操作如下:
拓扑如下:
在R2,R3上完成Vlink操作,实现路由互通。为方便演示,仅仅展示R2和R3配置。
R2配置如下:
[R2-GigabitEthernet0/0/1]ospf 1
[R2-ospf-1]area 0
[R2-ospf-1-area-0.0.0.0]network 2.2.2.2 0.0.0.0
[R2-ospf-1-area-0.0.0.0]network 192.168.12.0 0.0.0.255
[R2-ospf-1-area-0.0.0.0]area 1
[R2-ospf-1-area-0.0.0.1]network 192.168.23.0 0.0.0.255
[R2-ospf-1-area-0.0.0.1]vlink-peer 3.3.3.3
R3配置如下:
[R3-GigabitEthernet0/0/0]ospf 1
[R3-ospf-1]area 1
[R3-ospf-1-area-0.0.0.1]network 3.3.3.3 0.0.0.0
[R3-ospf-1-area-0.0.0.1]network 192.168.23.0 0.0.0.255
[R3-ospf-1-area-0.0.0.1]area 2
[R3-ospf-1-area-0.0.0.2]network 192.168.34.0 0.0.0.255
[R3-ospf-1-area-0.0.0.1]vlink-peer 2.2.2.2
在配置完成后我们可以看到弹出的syslog,已经进入FULL状态
可以看到R3作为ABR传递Vlink,已获得Area0路由信息