OSPF防环

一、区域内防环

OPSF在区域内会产生俩类LSA:Router  LSA  ,Network LSA

路由器以自己为树根构建最短路径树 ,这里的最短路径树按两步形 成,第一步,仅考虑路由器和传输网络之间的连接。通过 Dijkstra 算 法,根据链路状态数据库的子集形成树。第二步,考虑末节网络连接, 作为叶子加入树。

区域内部OSPF对网络是通过Router  LSA  ,Network LSA来描述网络 的,最终路由器收到LSA构建出LSDB。

LSDB通过描述一个有向线段图来描述网络拓扑结构,该有向图的端点有 三种类型:路由器节点,Stub网段和Transit网段

Router LSA使用Link ID,Data,Type和Metric描述一条链路

类型有四种:如图所示

OSPF防环_第1张图片

Stub网段表示该网段只有数据入口,例如一个Loopback接口就是一个 Stub网段。

此胶片描述了路由器节点和Stub网段的表示方式。

Cost表示从一个端点到另一个端点的开销,该参数可以在OSPF接口上配 置,表示数据离开该接口(出接口)的开销。

OSPF防环_第2张图片

Transit网段有能力转发既不是本网段产生的,也不以本网段做为目的 地的数据。

有至少两台路由器的广播型网段或NBMA网段就是一种Transit网段。

从路由器到所连Transit网段的开销值就是连接到这个网段的接口所配 置的开销值。

从一个Transit网段到连接到这个网段的路由器的开销为0。(称为伪节 点)

OSPF防环_第3张图片

在描述点到点接口的Router-LSA中:

1. 通告一个到邻居路由器的点到点链接,Link ID设置为对端的Router  ID,Data设置为本地接口的IP地址;

2. 通告一个到该点到点网段的Stub连接,Link ID设置为该点到点网段 的网络号,Data设置为该点到点网段的网络掩码;

3. 上述两个连接的Cost值均为该点到点接口上的Cost值。

OSPF防环_第4张图片

LSDB描述两接口处于不同网段的点到点网段的规则如下:

两台路由器经由两条有向线段直接相连,每个方向一条。

两个接口的网段被表示成Stub网段。

每个路由器通告一个Stub连接到该路由器所连的网段。

OSPF防环_第5张图片

LSDB描述两接口处于同一网段的点到点网段的规则如下:

两台路由器经由两条有向线段直接相连,每个方向一条。

连接两个接口的网段被表示成Stub网段。

两个路由器同时通告Stub连接到该PPP网段。

OSPF防环_第6张图片

在描述广播型或NBMA型接口的Router-LSA中:

1. 如果接口状态是Waiting,或者该网段上只有一个运行OSPF的路由 器,或者该网段上没有DR,则通告一个通往该网段的Stub链接,Link  ID设置为该网段的IP网络号,Link Data设置为该网段的网络掩码;

其他情况下,通告一个通往该网段的Transit连接,Link ID设置为DR的 接口IP地址,Link Data设置为本地接口的IP地址。

2. 连接的开销值为接口的开销。

OSPF防环_第7张图片

OSPF防环_第8张图片

在描述广播型网段或者NBMA网段的Network-LSA中:

Link State ID设置为DR的接口IP地址。

Net mask设置为该网段的网络掩码。

Link State ID和Net mask做与运算,即可得出该网段的IP网络号。

在该LSA中,还包含一个连接到该网段的路由器列表。

从一个Transit网段到所连接的路由器的连接没有开销。

OSPF防环_第9张图片

计算过程

OSPF防环_第10张图片

根据上文描述上图拓扑在LSA传递完毕后生成有向图

OSPF防环_第11张图片

计算过程中首先初始化最短路径树,RTA将自己做为根节点添加到最短 路径树上

OSPF防环_第12张图片

RTA将自己添加到最短路径树上之后,检查自己生成的Router-LSA,对 于该LSA中所描述的每一个连接,如果不是一个Stub连接,就把该连接 添加到候选列表中,端点ID为Link ID,到根端点的开销为LSA中描述的 Metric值。本例中,添加端点4.4.4.4和2.2.2.2。

OSPF防环_第13张图片

将候选列表中到根端点开销最小的端点移到最短路径树上

OSPF防环_第14张图片

当有新节点添加到最短路径树上的时候,则检查LS ID为新节点的link-id ID的LSA,本例中检查LS ID为2.2.2.2的LSA。

如果LSA中所描述的连接的Link ID在最短路径树上已经存在,则忽略该 连接。本例中,Link ID为1.1.1.1的连接被忽略,只有10.3.1.1的连接 被添加到候选列表中。到根端点的开销设置为此连接的Metric值(本例 中此连接的Metric值为1)与父端点(本例中此连接的父端点为 2.2.2.2)到根端点的开销(本例中此开销值为48)之和。

OSPF防环_第15张图片

将候选列表中到根端点的开销最小的端点移动到最短路径树上,本例 中,将10.3.1.1移到最短路径树上。

OSPF防环_第16张图片

检查LS ID为最新添加节点的端点ID的LSA,本例中检查LS ID为 10.3.1.1的LSA。

在所描述的连接中,忽略2.2.2.2,将3.3.3.3和4.4.4.4添加到候选列 表中。从Transit网段到所连路由器的开销为0。

如果在候选列表中出现两个端点ID一样但是到根端点的开销不一样的端 点,则删除到根端点的开销大的端点。

OSPF防环_第17张图片

将候选列表中到根端点的开销最小的端点移动到最短路径树上,本例 中,将3.3.3.3移到最短路径树上。

OSPF防环_第18张图片

检查LS ID为最新添加节点的端点ID的LSA,本例中检查LS ID为3.3.3.3 的LSA。

本例中,没有新端点被添加到候选列表中。

OSPF防环_第19张图片

将候选列表中到根端点的开销最小的端点移动到最短路径树上,本例 中,将4.4.4.4移到最短路径树上

OSPF防环_第20张图片

检查LS ID为最新添加节点的端点ID的LSA,本例中检查LS ID为4.4.4.4 的LSA。

本例中,没有新端点被添加到候选列表中。

如果在此时候选列表为空,则计算最短路径树的第一阶段结束。

OSPF防环_第21张图片

检查每个路由器端点的Router-LSA,计算Stub网段。

本例中,首先检查RTA的Router-LSA,共有三个Stub网段。

OSPF防环_第22张图片

OSPF防环_第23张图片

OSPF防环_第24张图片

二、OSPF区域间防环

Type-3 LSA及Type-4 LSA的防环

1) OSPF要求所有的非0区域必须与骨干区域直接相连,区域间路由需经由骨干区域中转。

OSPF要求所有的非0区域必须与骨干区域直接相连,区域间(Inter-Area Route)路由需经 由骨干区域中转。这个要求使得区域间的路由传递不能发生在两个非0的区域之间,这在很 大程度上规避了区域间路由环路的发生,也使得OSPF的区域架构在逻辑上形成了一个类似 星型的拓扑,如下图所示。

OSPF防环_第25张图片

2) ABR只能够将其所连接的区域的区域内部路由注入到Area0,但是可以将区域内部路由及 区域间的路由注入到非0常规区域。ABR从非骨干区域收到的Type-3 LSA不能用于区域间路 由的计算。

OSPF对ABR有着严苛的要求,区域间的路由传递的关键点在于ABR对Summary LSA的处理。

OSPF防环_第26张图片

在上图中,如果R3是一台普通的OSPF路由器(不是ABR),例如当它与R2没有OSPF邻居关系 时,它会根据R4在Area2中泛洪的Type-3 LSA计算出1.1.1.0/24路由并将路由加载进路由表 中。但是当R3与R2建立起OSPF邻接关系后,R3在Area0中就有了一个活跃的全毗邻连接,此 时如果它把描述1.1.1.0/24路由的Type-3 LSA再注入回Area0,那么就会带来潜在环路的风 险,如下图所示:

OSPF防环_第27张图片

因此当一台ABR在非Area0的区域中收到Type-3 LSA时,虽然它会将其装载进LSDB,但是该 路由器不会使用这些Type-3 LSA进行路由计算,当然它更不会将这些Type-3 LSA再注入回 Area0中。

这里有一个有意思的细节,就是如果R3连接R2的接口虽然激活了OSPF(而且属于Area0), 但是不与R2形成邻接关系(例如R2连接R3的接口不激活OSPF),那么此时R3其实并不算是 严格意义上的ABR(虽然它产生的Type-1 LSA中B-bit会被置位,但是它在Area0中并没有全 毗邻的邻居),因此它会将Area2内收到的Type-3 LSA用于区域间路由的计算,所以在R3的 路由表中能看到1.1.1.0/24的区域间路由(下一跳为R4),但是一旦R2-R3之间的邻接关系 建立起来,R3将不能再使用R4下发的Type-3 LSA计算路由,而仅能使用从Area0中收到 的、R 2下发的Type-3 LSA进行区域间路由计算,所以此时R3路由表中1.1.1.0/ 24路由的 下一跳为R2,而且即使这条路径的Cost要比从R4走更大(例如将R3连接R 2的接口Cost调 大),R3也始终不会走R4到达1.1.1.0/24,除非R2挂掉,或者R2-R3丢失邻接关系。这个现 象在思科、华为的真机上验证过了,两者均是如此实现。

3) ABR不会将描述一个Area内部的路由信息的Type-3 LSA再注入回该区域中。

实际上,OSPF区域间路由的传递行为,很有点距离矢量路由协议的味道。以下图为例,在 Area1中,R1及R2都会泛洪Type-1 LSA、Type-2 LSA,两台路由器都能够根据这些LSA计算 区域内路由,而R2作为ABR还担负着另一个责任,就是向Area0通告区域间的路由,实际上 它是向Area0中注入用于描述Area1内路由的Type-3 LSA,而这些Type-3 LSA是不会发回 Area1的——是的,类似水平分割行为对吧?接下来R3利用这些Type-3 LSA计算出了区域间 的路由,并且为Area2注入新的Type-3 LSA用于描述区域间的路由,而这些Type-3 LSA同样 的不会被注入回Area0。

R2在向Area0通告Type-3 LSA,为每条区域间路由携带上Cost值,这个值就是它自己到达各 个目标网段的Cost,而R3收到这些Type-3 LSA并计算路由时,路由的Cost就是在R2所通告 的Cost值的基础上,加上R3自己到R2的Cost值,然后,R3向R4通告这些区域间的路由时也 携带者自己到达目标网段的Cost,而R4到达目标网段的Cost则是在R3的通告值基础上累加 自己到R3的Cost——典型的距离矢量行为。

OSPF防环_第28张图片

Type-4 LSA实际上与Type-3 LSA都是Summary LSA,只不过一个是Network Summary  LSA——用于描述网段路由,另一个则是ASBR Summary LSA——用于描述ASBR,他们使用的 防环机制是一致的。

三、OSPF域外防环

利用type-4 LSA防环

当一台OSPF路由器将外部路由引入OSPF域后,它就成为了一台 ASBR,被引入的外部路由以Type-5 LSA在整个OSPF域内泛洪。一台 路由器使用Type-5 LSA计算出路由的前提是两个,其一是要收到 Type-5 LSA,其二是要知道产生这个Type-5 LSA的ASBR在哪里。与 ASBR接入同一个区域的路由器能够根据该区域内泛洪的Type-1 LSA 及Type-2 LSA计算出到达该ASBR的最短路径,从而计算出外部路 由。而其他区域的路由器就没有这么幸运了,因为ASBR产生的 Type-1 LSA只能在其所在的区域内泛洪,所以才需要Type-4 LSA。 因此其他区域的路由器在获取Type-4 LSA后便能计算出到达ASBR的 最短路径,进而利用该ASBR产生的Type-5 LSA计算出外部路 由。Type-5 LSA将会被泛洪到整个OSPF域,表面上看,它本身并不 具有什么防环的能力,但是实际上,它并不需要,因为它可以依赖 Type-1 LSA及Type-4 LSA来实现防环。

你可能感兴趣的:(OSPF防环)