附录E(rfc2328)

ospf防环的作用 ospf防环有哪些?_OSPF


OSPF是一种基于链路状态型路由协议,其中3 类、5 类、7类LSA传递的是路由信息,link-id为传递路由条目网络号,并且不识别网络掩码;

区别不同的3/5/7类LSA使用 link-id、ADV router-id、LSA 序列号

若是接收,所有到IP网络号相同但网络掩码不同的 3/5/7类LSA不能区别只能学习先学习到的。

例如若R5路由器通过eigrp 学习到 AS 100中 的 10.1.0.0/16以及 AS 200中的10.1.0.0/24两 个网 段,若先将eigrp 100 中通过进入ospf产生5 类或7 类LSA,link-id 为10.1.0.0,此时再重发步 eigrp 200 ,则10.1.0.0/24路由无法重发步,导致不能与10.1.0.0/24网段通信。

出现了这样的问题是因为OSPF中使用路由信息 LSA 时不能识别网络掩码,所有在RFC文档2328中 的附录e中提出了解决办法

将进入OSPF 的3/5/7类LSA,网络号相同但网络掩码不同的LSA进入OSPF时进行其他的处 理方式具体如下:

  1. 若先将网络掩码长度较短的路由重发步,则先产生正常LSA,后将网络掩码长度较长LSA重发布时,则后进入的使用其对应的定向广播地址;
  2. 若先将网络掩码长度较长的路由重发步,则先产生正常LSA,后将网络掩码较短的LSA重发布进入时,则先删除源LSA,将网络掩码较短的LSA通告,并且sequenceNUM+1,再将网络掩 码较长的使用定向广播地址进行通告

查看路由

ospf防环的作用 ospf防环有哪些?_泛洪_02

注意:在附录E中解决办法需要注意两点
1.所有网络掩码是连续的
2.不存在一条外部路由的网络号正好与上述子网定向广播地址相同

例如:一条路由为10.1.1.0/32 ,一条路由为 10.1.1.0/30(先进入).,10.1.1.0/32正好与定向广播地址一致,则OSPF协议不能运行。…
OSPF防环机制
OSPF能够计算出无环的路由,那么OSPF究竟是如何规避路由环路的呢?OSPF与距离矢量路由协议不同,运行OSPF的路由器之间交互并不是路由信息,而是LSA,而路由器的计算正是基于网络中所泛洪的各种LSA,所以实际上OSPF路由的环路规避机制还得依赖LSA在环路避免上的设计。

  1. 域间防环
    路由器以自己为根建立最短路径树
    一、 先考虑路由器和传输网络之间的连接
    二、 考虑末节网络连接
    区域内部OSPF对网络是通过一类LSA,二类LSA来描述网络的,最终路由器收集到LSA构建出LSDB。LSDB描述一个有向线段来描述网络拓扑结构,该有向线段的端点有三种类型:路由器节点,stub网段,transit网段
    举例:


    NI为伪节点,到达路由器之间开销值为0,路由器到达节点并不知道节点还有哪些路由器,需要依靠二类LSA。

一类LSA类型

ospf防环的作用 ospf防环有哪些?_泛洪_03


运行OSPF的路由器都会产生Type-1 LSA,Type-1 LSA用于描述路由器的直连接口状态(接口IP信息或所连接的邻居,另外还有接口的Cost值),而且只在接口所属的区域内泛洪。Type-1 LSA使用各种类型的Link来描述路由器直连接口。Type-2 LSA则只出现在MA网络,由DR产生,用于描述接入该MA网络的所有路由器(Router-ID),以及该MA网络的掩码信息。

得益于区域内泛洪的Type-1 LSA及Type-2 LSA,OSPF路由器能够“在自己的脑海中”还原区域内的网络拓扑及网段信息。路由器为每个区域维护一个独立的LSDB,并且运行一套独立的SPF算法,同一个区域内的路由器,拥有针对该区域的相同LSDB,大家都基于这个LSDB计算出一颗以自己为根的、无环的最短路径树。之所以能做到无环,是因为路由器能够通过LSA描绘出区域的完整拓扑(包括所有接口的Cost)及网段信息。以下图所示的网络为例:

ospf防环的作用 ospf防环有哪些?_OSPF_04

R1、R2、R3及R4的接口均在Area0中,四台路由器都会产生Type-1 LSA并且在Area内泛洪。另外以太网链路由于缺省是广播型多路访问网络,因此会进行DR/BDR的选举,DR会产生Type-2 LSA并在区域内泛洪。在LSDB同步完成之后,每台路由器都拥有了整个区域的拓扑及网段信息,这些都是通过网络中泛洪的Type-1 LSA及Type-2 LSA拼凑出来的

ospf防环的作用 ospf防环有哪些?_OSPF_05


接下来,每台路由器都以自己为根,计算一颗无环的最短路径数,以R3为例,它的最短路径树可能像下面这个样子:

ospf防环的作用 ospf防环有哪些?_泛洪_06


所以,依赖Type-1 LSA及Type-2 LSA,路由器能够描绘出区域内的拓扑及网段信息,从而运行SPF算法,计算出到达每个网段的最优路径,并将这些路径安装到路由表中,因此区域内的路由(Intra-Area Route)可以实现无环路。

ospf防环的作用 ospf防环有哪些?_R3_07


2. 3类LSA以及4类LSA防环 (区域间防环)

  1. OSPF要求所有的非0区域必须与骨干区域直接相连,区域间路由需经由骨干区域中转。这个要求使得区域间的路由传递不能发生在两个非0的区域之间,这在很大程度上规避了区域间路由环路的发生,也使得OSPF的区域架构在逻辑上形成了一个类似星型的拓扑,如下图所示。
  2. ABR只能够将其所连接的区域的区域内部路由注入到Area0,也可以将区域内部路由及区域间的路由注入到非0常规区域。ABR从非骨干区域收到的Type-3 LSA不能用于区域间路由的计算。
    OSPF对ABR有着严苛的要求,区域间的路由传递的关键点在于ABR对Summary LSA的处理
  3. ospf防环的作用 ospf防环有哪些?_R3_08

  4. 在上图中,如果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,那么就会带来潜在环路的风险,如下图所示:
  5. ospf防环的作用 ospf防环有哪些?_OSPF_09

  6. 因此当一台ABR在非Area0的区域中收到Type-3 LSA时,虽然它会将其装载进LSDB,但是该路由器不会使用这些Type-3 LSA进行路由计算,当然它更不会将这些Type-3 LSA再注入回Area0中。因此在本段落的小标题中的这么一句话:“ABR只能够将其所连接的区域的区域内部路由注入到Area0,但是可以将区域内部路由及区域间的路由注入到非0常规区域”这句话,对应到上面的拓扑中,就是R3作为ABR,只能将其所连接的Area2内的区域内部路由注入到Area0(而不能将其在Area2内收到的3类LSA,也就是区域间路由注入Area0),但是可以将Area0的区域内部路由,以及R2注入到Area0的、用于描述Area1的区域间路由注入到非0常规区域Area2。
    这里有一个有意思的细节,就是如果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的区域间路由,但是一旦R2-R3之间的邻接关系建立起来,R3便不能再使用R4下发的Type-3 LSA计算区域间的路由,而只能使用在Area0中收到的、R2下发的Type-3 LSA进行路由计算,所以R3的路由表中,1.1.1.0/24的路由的下一跳将变为R2,即使从R2到1.1.1.0/24网络的Cost大于从R4走的路径,也不会切到R4上来。
  7. 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防环的作用 ospf防环有哪些?_泛洪_10


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

  1. Type-5 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来实现防环。