OSPF的DV算法
OSPF采用划分区域的方式,将一个大网络划分为多个相互连接的小网络。每个区域内的设备只需同步所在区域内的链路状态数据库,一定程度上降低内存及CPU的消耗。划分区域后,根据路由器所连接区域的情况,可划分两种路由器角色
① 区域内部路由器(Internal Router):该类设备的所有接口都属于同一个OSPF区域
② 区域边界路由器(Area Border Router):简称ABR,该类设备接口分别连接两个及两个以上的不同区域。ABR设备至少有一个接口属于骨干区域, 它与骨干区域之间既可以是物理连接,也可以是逻辑上的连接
③ 骨干路由器(Backbone Router):该类设备至少有一个接口属于骨干区域 所有的ABR和位于Area0的内部设备都是骨干路由器
Summary-LSA
区域内部路由器维护本区域内的链路状态信息并计算区域内的最优路径
区域边界路由器作为区域间通信的桥梁,同时维护所连接多个区域的链路状态数据库
ABR将一个区域内的链路状态信息转化成路由信息,然后发布到邻居区域
链路状态信息转换成路由信息其实就是将一类和二类LSA转化成三类LSA的过程。注意,区域间的路由信息在ABR上是双向传递的
以Area 1中RTD上的192.168.1.0/24的网络为例,其对应的一类LSA在Area 1中同步;作为Area 1和Area 0之间ABR的RTB负责将192.168.1.0/24的一类LSA转换成三类LSA并将此三类LSA发送到Area 0。作为Area 0和Area 2之间ABR的RTC,又重新生成一份三类LSA发送到Area 2中,至此全OSPF区域内都收到192.168.1.0/24的路由信息。RTE上192.168.2.0/24的路由信息同步过程也是这样
<RTB>display ospf lsdb summary 192.168.1.0
OSPF Process 1 with Router ID 2.2.2.2
Area: 0.0.0.0
Link State Database
Type : Sum-Net //三类LSA
Ls id : 192.168.1.0 //目的网段地址
Adv rtr : 2.2.2.2 //产生此三类LSA的Router ID
Ls age : 86
Len : 28
Options : E
seq# : 80000001
chksum : 0x7c6d
Net mask : 255.255.255.0 //网络掩码
Tos 0 metric: 1 //开销值
Priority : Low
Network-Summary-LSA(三类LSA)中主要包括以下内容:
① Ls id:目的网段地址
② Adv rtr:ABR的Router ID
③ Net mask:目的网段的网络掩码
④ Metric:ABR到达目的网段的开销值
总结如下:
① LAS-3描述的是路由信息 没有拓扑信息内容
② LSA-3在区域之间进行泛洪(也就是传递)
思考如下:
a) 192.168.1.0/24经过RTB转换LSA-3在area 0中泛洪 经过RTC设备后,这个LSA-3有没有变化呢?
b) 区域内路由器接收描述其他区域网络信息的三类LSA后,OSPF路由器又是怎么基于三类LSA来计算出区域间路由的呢?
区域间路由计算
ABR产生的三类LSA将用于计算区域间路由,根据三类LSA中的Adv rtr字段,判断出ABR 根据Ls id、Net mask、Metric字段获得ABR到达目的网络号/掩码、开销
如果多个ABR产生了指向相同目的网段的三类LSA,则根节点将根据本路由器到达目的网段的累计开销进行比较,最终生成最小开销路由。如果根节点到达目的网段的累计开销值相同,则产生等价负载的路由
Area 0中RTA计算区域间路由过程中:
① 192.168.1.0/24和192.168.2.0/24的三类LSA中,Adv rtr分别是RTB(2.2.2.2)和RTC(3.3.3.3)
② RTB产生的三类LSA中,网络号/掩码是192.168.1.0/24,开销为1
③ RTC产生的三类LSA中,网络号/掩码是192.168.2.0/24,开销为1
④ RTA到达192.168.1.0/24下一跳是RTB,开销是2
⑤ RTA到达192.168.2.0/24下一跳是RTC,开销是2
实战演练如下
在R4和R7上查看OSPF的邻接关系
在R4上查看LSDB的情况
在R7上查看LSDB的情况
在R7上查看LSA-3的信息
R4到123.0.0.0/24网段的信息
26.0.0.0/24网段经过R2和R3转换成LSA-3向area 0中进行通告 Adv router的ID为2.2.2.2和3.3.3.3 开销 是R2或者R3到达26.0.0.0网段的开销 值为1
同样的,我们在area 2中的6.6.6.6网段的LSA-3是什么样的呢?
以R7为根进行SPF的计算,并画出其有向图
在R7上面查看OSPF的路由表信息(主要就是的加上area 1的路由开销 然后加上R4到各个网段的开销)
区域间路由防环机制
为防止区域间的环路OSPF定义了骨干区域和非骨干区域和三类LSA的传递规则
① OSPF划分了骨干区域和非骨干区域,所有非骨干区域均直接和骨干区域相连且骨干区域只有一个,非骨干区域之间的通信都要通过骨干区域中转,骨干区域ID固定为0
② OSPF规定从骨干区域传来的三类LSA不再传回骨干区域
① RTB将AREA1中1的一类、二类LSA转换成三类LSA,发布到区域0中
② RTC重新生成有关192.168.1.0/24网络的三类LSA并发布到Area 2中
③ 同理,RTE也将有关192.168.1.0/24网络的三类LSA发布到Area 3中
④ RTD又将192.168.1.0/24网络的三类LSA发布到Area 1中,从而形成了路由环路
虚连接的作用和配置
新建网络按照区域间的防环规则进行部署,可以避免区域间环路问题。但是部分网络可能因早期规划问题,区域间的连接关系违背了骨干区域和非骨干区域的规则
违背了OSPF区域的连接规则,如何解决?骨干区域必须是连续的,但是并不要求物理上连续,可以使用虚连接使骨干区域逻辑上连续
虚连接可以在任意两个区域边界路由器上建立,但是要求这两个区域边界路由器都有端口连接到一个相同的非骨干区域。在RTB和RTC之间建立了一条虚连接,以使Area 2穿越Area1连接到骨干区域
虚链路的应用场景(面试题)
把没有与骨干区域直接相连的非骨干区域通过一个非骨干区域(也叫传输区域)以逻辑通道的形式连接
通过一个非骨干区域连接连接分割的骨干区域;(或者说把两个骨干区域通过一个非骨干区域连接起来)
A和B间启用virtual link ,用来解决area 1/2/3 没有连接到backbone area
C和D间启用virtual link ,用来防止area 0断开而成为不连续的区域。同时也能解决次优路径问题,D访问地址1.2,流量走C和D之间的链路
关于区域0认证问题(面试题)
区域0认证中最大的问题就是R1和R2之间虚链路的问题。因为虚链路是工作在区域0。如果在区域0配置了认证,那么会影响到虚链路的建立,所以一定要虚链路的另一端配置区域0的认证
如果在AREA 0中做了认证操作,则必须在R2上做认证 认证方法有两个:
① 一个是在虚链路上做认证(可以理解是一个特殊的接口验证)
vlink-peer 2.2.2.2 md5 1 cipher hcie
② 另一个是创建一个区域0,在做认证。因为它会将认证自动复制到Vitual Link上