OSPF域间防环
Type-3 LSA及Type-4 LSA的防环
1)OSPF要求所有的非0区域必须与骨干区域直接相连,区域间路由需经由骨干区域中转。OSPF要求所有的非0区域必须与骨干区域直接相连,区域间(Inter-Area Route)路由需经由骨干区域中转。这个要求使得区域间的路由传递不能发生在两个非0的区域之间,这在很大程度上规避了区域间路由环路的发生,也使得OSPF的区域架构在逻辑上形成了一个类似星型的拓扑,如下图所示2) ABR只能够将其所连接的区域的区域内部路由注入到Area0,但是可以将区域内部路由及区域间的路由注入到非0常规区域。ABR从非骨干区域收到的Type-3 LSA不能用于区域间路由的计算。OSPF对ABR有着严苛的要求,区域间的路由传递的关键点在于ABR对Summary LSA的处理。在上图中,如果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,那么就会带来潜在环路的风险,如下图所示:
因此当一台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——典型的距离矢量行为
4)Type-3 LSA还涉及了DN比特位,该位在LSA得头部的option字段中,用于在MPLS VPN环境下的环路规避
DN位:PE生成Type3,Type5与Type7 LSA(cisco设备只对Type3 LSA复位,华为Type5也置位)发布给CE时,将标志位DN置位,其他类型LSA的DN值为0。PE路由器的OSPF进程在进行SPF计算时,忽略DN置位的Type3,Type5,Type7 LSA
DN位的作用是防止路由环路。当PE收到DN置位的LSA不会进行处理,这样就防止了在CE双归的场景下,由于一个PE从CE学到另一个PE产生的LSA而产生的环路。
关闭DN位检测
capability vrf-lite cisco命令
dn-bit-check disable are 华为关闭Type5 LSA
dn-bit-check disable summary 华为关闭Type3 LSA
OSPF域外防环
Type-4 LSA及Type-5 LSA的防环
Type-4 LSA实际上与Type-3 LSA都是Summary LSA只不过一个是Network Summary LSA----用于描述网段路由,另一个则是ASBR Summary LSA----用于描述ASBR,他们使用的防环机制是一致的
1)当一台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来实现防环。
2)Type5 LSA存在一个Route tag的标记,当一条路由通过PE进入到一个AS中,Type5 LSA中的Route tag位会记录As号,当PE收到Type5 LSA,会查看包中的Route tag,如果Route tag的值与PE所处的As号相同,PE就会拒绝接受该Type5 LSA,这样就防止了在CE双归的场景下,由于一个PE从CE学到另一个PE产生的5类LSA而产生的环路。
华为设备是DN位与Route tag都会发生变化
cisco设备是对于Type5 LSA只会Route tag发生变化