ospf

 

1 OSPF术语

OSPF(Open Shortest Path First开放式最短路径优先)是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomous system,AS)内决策路由。是对链路状态路由协议的一种实现,故运作于自治系统内部。著名的迪克斯加算法被用来计算最短路径树。与RIP相比,OSPF是链路状态协议,而RIP是距离矢量协议。不同厂商管理距离不同,思科OSPF的协议管理距离(AD)是110,华为OSPF的协议管理距离是150。

链路是路由器接口的另一种说法,因此OSPF也称为接口状态路由协议。OSPF通过路由器之间通告网络接口的状态来建立链路状态数据库,生成最短路径树,每个OSPF路由器使用这些最短路径构造路由表。

1、在OSPF的区域内,使用SPF算法计算路由,利用lsa报文收集链路状态,然后计算出无环路的域内路由。
2、而OSPF多个area间的路由是通过DV算法计算的,通过LSA的第3类报文来汇总域间路由。而DV算法是有缺陷的,无法保证学到最优路由,因此如RIP之类的协议只适合小型网络。

为了保证DV算法学到最优的OSPF路由,就需要对OSPF进行一定的优化,既然不能从SPF算法上进行改变,那么只能从网络结构上进行修改了。于是,OSPF设立了骨干区域:AREA 0,并规定,所有非骨干区域间通信必须通过区域0进行,形成了hub-spoken结构的OSPF网络。这样,所有非骨干区域没有了直连,不具备形成环路的条件,而骨干区域内SPF保证了没有环路。于是,一个完美的OSPF网络形成了。

1.1 Router-ID

如果路由器之间分不清谁是谁,没有办法确定各自的身份,那么通告的链路状态就是毫无意义的,所以必须给每一个OSPF路由器定义一个身份,就相当于人的名字,这就是Router-ID,并且Router-ID在网络中绝对不可以有重名,否则路由器收到的链路状态,就无法确定发起者的身份,也就无法通过链路状态信息确定网络位置,OSPF路由器发出的链路状态都会写上自己的Router-ID,可以理解为该链路状态的签名,不同路由器产生的链路状态,签名绝不会相同。

每一台OSPF路由器只有一个Router-ID,Router-ID使用IP地址的形式来表示,确定Router-ID的方法为:
1. 手工指定Router-ID。

下例是某路由器的一段配置,可以看出该路由器的router-id为手工指定。

#
ospf 1 router-id 10.10.190.255
import-route static
area 0.0.0.0
network 10.10.168.12 0.0.0.3
#

2. 路由器上活动Loopback接口中IP地址最大的,也就是数字最大的,如C类地址优先于B类地址,一个非活动的接口的IP地址是不能被选为Router-ID的。
3. 如果没有活动的Loopback接口,则选择活动物理接口IP地址最大的。

Router-ID只在OSPF启动时计算,或者重置OSPF进程后计算。

1.2 COST

cost指接口上运行ospf协议所需的开销。ospf路由条目存在cost值,当数据包到达路由器后,如果存在多条到达同一目的段的ospf路由条目,路由表中出现的将是cost值最小的路由条目。如果这些条目的cost值一样,则多条路径可实现数据包的负载均衡。

OSPF使用接口的带宽来计算cost。例如一个10 Mbit/s的接口,计算Cost的方法为:100M/10M = 10(其中100M为参考带宽,这个可以修改,但一般不推荐,因为参考带宽是一个全局性指标),所以一个10 Mbit/s的接口,OSPF认为该接口的Metric值为10,需要注意的是,计算中,带宽的单位取bit/s,而不是Kbit/s。如果路由器要经过两个接口才能到达目标网络,那么很显然,两个接口的Cost值要累加起来,才算是到达目标网络的Cost值,所以OSPF路由器计算到达目标网络的Cost值,必须将沿途中所有接口的Cost值累加起来,在累加时,同EIGRP一样,只计算出接口,不计算进接口。

 

以下是实例说明(附:ospf cost.topo):

ospf_第1张图片ospf_第2张图片

ospf_第3张图片ospf_第4张图片

ospf_第5张图片ospf_第6张图片

OSPF会自动计算接口上的Cost值,但也可以通过手工指定该接口的Cost值,手工指定的优先于自动计算的值。OSPF计算的Cost,同样是和接口带宽成反比,带宽越高,Cost值越小。到达目标相同Cost值的路径,可以执行负载均衡,最多6条链路同时执行负载均衡。

#
interface Vlanif2
ip address 192.168.1.1 255.255.255.0
ospf cost 2 //手工指定接口的cost值

1.3 链路(Link)

就是路由器上的接口,在这里,应该指运行在OSPF进程下的接口

1.4 链路状态(Link-State)

链路状态(LSA)就是OSPF接口上的描述信息,例如接口上的IP地址,子网掩码,网络类型,Cost值等等。

OSPF路由器之间交换的并不是路由表,而是链路状态(LSA),OSPF通过获得网络中所有的链路状态信息,从而计算出到达每个目标精确的网络路径。OSPF路由器会将自己所有的链路状态毫不保留地全部发给邻居,邻居将收到的链路状态全部放入链路状态数据库(Link-State Database),邻居再发给自己的所有邻居,并且在传递过程种,绝对不会有任何更改。通过这样的过程,最终,网络中所有的OSPF路由器都拥有网络中所有的链路状态,并且所有路由器的链路状态应该能描绘出相同的网络拓朴。

比如如今要计算一条地铁线路图,如上海地铁二号线某段的图,如果不直接将该图给别人看,图好比是路由表,如今只是报给别人各个站的信息,该信息好比是链路状态,通过告诉别人各个站左边一站是什么,右边一站是什么,别人也能通过该信息(链路状态),画出完整的线路图(路由表),如得到如下各站信息(链路状态):
★ 南京东路-站 (左边一站是人民广场,右边一站是陆家嘴)
★ 南京西路-站 (左边一站是静安寺,右边一站是人民广场)
★ 静安寺-站 (右边一站是南京西路)
★ 人民广场-站 (左边一站是南京西路,右边一站是南京东路)
★ 陆家嘴-站 (左边一站是南京东路)
还原线路图(路由表)如下:
静安寺 — 南京西路 — 人民广场 —南京东路 — 陆家嘴

从以上计算过程可以知道,因为得到各站的信息,就能画出整条线路图,而OSPF也同样根据路由器各接口的信息(链路状态),计算出网络拓朴图,OSPF之间交换链路状态,就像上面交换各站信息,而不像RIP和EIGRP直接交换路由表,交换路由表,就等于直接给人看线路图,可见OSPF的智能算法,比距离矢量协议对网络有更精确的认知。

1.5 OSPF区域

因为OSPF路由器之间会将所有的链路状态(LSA)相互交换,毫不保留,当网络规模达到一定程度时,LSA将形成一个庞大的数据库,势必会给OSPF计算带来巨大的压力;为了能够降低OSPF计算的复杂程度,缓存计算压力,OSPF采用分区域计算将网络中所有OSPF路由器划分成不同的区域,每个区域负责各自区域精确的LSA传递与路由计算,然后再将一个区域的LSA简化和汇总之后转发到另外一个区域,这样一来,在区域内部,拥有网络精确的LSA,而在不同区域,则传递简化的LSA。在一个区域内的路由器将不需要了解它们所在区域外部的拓扑细节。在这种环境下:路由器仅仅需要和它所在区域的其他路由器具有相同的链路状态数据库,链路状态数据库的减小也就意味着处理较少的LSA通告,大量的LSA泛洪被限制在一个区域里面。

 

ospf_第7张图片

区域的划分为了能够尽量设计成无环网络,所以采用了Hub-Spoke的拓朴架构,也就是采用核心与分支的拓朴,如下图:

ospf_第8张图片

区域的命名可以采用整数数字,如1、2、3、4,也可以采用IP地址的形式,0.0.0.1、0.0.0.2,因为采用了Hub-Spoke的架构,所以必须定义出一个核心,然后其它部分都与核心相连,OSPF的区域0就是所有区域的核心,称为BackBone 区域(骨干区域),而其它区域称为Normal 区域(常规区域),在理论上,所有的常规区域应该直接和骨干区域相连,常规区域只能和骨干区域交换LSA,常规区域与常规区域之间即使直连也无法互换LSA,如上图中Area 1、Area 2、Area 3、Area 4只能和Area 0互换LSA,然后再由Area 0转发,Area 0就像是一个中转站,两个常规区域需要交换LSA,只能先交给Area 0,再由Area 0转发,而常规区域之间无法互相转发。

OSPF区域是基于路由器的接口划分的,而不是基于整台路由器划分的,一台路由器可以属于单个区域,也可以属于多个区域,如下图:

ospf_第9张图片

如果一台OSPF路由器属于单个区域,即该路由器所有接口都属于同一个区域,那么这台路由器称为Internal Router(IR),如上图中的R2,R3和R4;

如果一台OSPF路由器属于多个区域,即该路由器的接口不都属于一个区域,那么这台路由器称为Area Border Router (ABR),如上图中的R1,ABR可以将一个区域的LSA汇总后转发至另一个区域

如果一台OSPF路由器将外部路由协议重分布进OSPF,那么这台路由器称为Autonomous System Boundary Router (ASBR),如上图中,R5将EIGRP重分进OSPF,那么R5就是ASBR,但是如果只是将OSPF重分布进其它路由协议,则不能称为ASBR。

下例是某台路由器的一段配置,可以看出该路由器充当ASBR的角色,因为它引入了静态路由。

#
ospf 1 router-id 10.10.190.255
import-route static
area 0.0.0.0
network 10.10.168.12 0.0.0.3
#

从它的邻居路由器上也可以看出它是一台ASBR路由器:

ospf_第10张图片

 

可以配置任何OSPF路由器成为ABR或ASBR
由于OSPF有着多种区域,所以OSPF的路由在路由表中也以多种形式存在,共分以下几种:

  • 如果是同区域的路由,叫做Intra-Area Route,在路由表中使用O来表示;
  • 如果是不同区域的路由,叫做Inter-Area Route或Summary Route,在路由表中使用O IA来表示;
  • 如果并非OSPF的路由,或者是不同OSPF进程的路由,只是被重分布到OSPF的,叫做External Route,在路由表中使用O E2或OE 1来表示。
  • 当存在多种路由可以到达同一目的地时,OSPF将根据先后顺序来选择要使用的路由,所有路由的先后顺序为:
    Intra-Area — Inter-Area — External E1 — External E2,即 O — O IA — O E1 — O E2。

1.6 邻居(Neighbor)

路由器会将链路状态数据库中所有的内容毫不保留地发给所有邻居,要想在OSPF路由器之间交换LSA,必须先形成OSPF邻居,OSPF邻居靠发送Hello包来建立和维护,Hello包会在启动了OSPF的接口上周期性发送,在不同的网络中,发送Hello包的间隔也会不同,当超过4倍的Hello时间,也就是Dead时间过后还没有收到邻居的Hello包,邻居关系将被断开。

下图是hello和dead时间:

ospf_第11张图片

两台OSPF路由器必须满足4个条件,才能形成OSPF邻居,4个必备条件如下:

  • Area-id(区域号码)即路由器之间必须配置在相同的OSPF区域,否则无法形成邻居。
  • Hello and Dead Interval(Hello时间与Dead时间)即路由器之间的Hello时间和Dead时间必须一致,否则无法形成邻居。
  • Authentication(认证)路由器之间必须配置相同的认证密码,如果密码不同,则无法形成邻居。
  • Stub Area Flag(末节标签)路由器之间的末节标签必须一致,即处在相同的末节区域内,否则无法形成邻居。

1.7 邻接(Adjacency)

两台OSPF路由器能够形成邻居,但并不一定能相互交换LSA,只要能交换LSA,关系则称为邻接(Adjacency)。居之间只交换Hello包,而邻接(Adjacency)之间不仅交换Hello包,还要交换LSA

1.8 DR/BDR

当多台OSPF路由器连到同一个多路访问网段时,如果每两台路由器之间都相互交换LSA,那么该网段将充满着众多LSA条目,为了能够尽量减少LSA的传播数量,通过在多路访问网段中选择出一个核心路由器,称为DR(Designated Router),网段中所有的OSPF路由器都和DR互换LSA,这样一来,DR就会拥有所有的LSA,并且将所有的LSA转发给每一台路由器;DR就像是该网段的LSA中转站,所有的路由器都与该中转站互换LSA,如果DR失效后,那么就会造成LSA的丢失与不完整,所以在多路访问网络中除了选举出DR之外,还会选举出一台路由器作为DR的备份,称为BDR(Backup Designated Router),BDR在DR不可用时,代替DR的工作,而既不是DR,也不是BDR的路由器称为Drother,事实上,Dother除了和DR互换LSA之外,同时还会和BDR互换LSA。

ospf_第12张图片

其实,DR与BDR并没有任何本质与功能的区别,只有在多路访问的网络环境,才需要DR和BDR,DR与BDR的选举是在一个二层网段内选举的,即在多个路由器互连的接口范围内,与OSPF区域没有任何关系,一个区域可能有多个多路访问网段,那么就会存在多个DR和BDR,但一个多路访问网段,只能有一个DR和BDR。

选举DR和BDR的规则为:
★比较接口优先级
选举优先级最高的成为DR,优先级数字越大,表示优先级越高,被选为DR的几率就越大,次优先级的为BDR,优先级范围是0-255,默认为1,优先级为0表示没有资格选举DR和BDR。
★Route-Id大小
如果在优先级都相同的情况下,Route-Id 最大的成为DR,其次是BDR,数字越大,被选为DR的几率就越大。
因为所有路由器都能与DR和BDR互换LSA,所以所有路由器都与DR和BDR是邻接(Adjacency)关系,而Drother与Drother之间无法互换LSA,所以Drother与Drother之间只是邻居关系。
在一个多路访问网络中,选举DR和BDR是有时间限制的,该时间为Wait时间,默认为4倍的Hello时间,即与Dead时间相同,如果OSPF路由器在超过Wait时间后也没有其它路由器与自己竞争DR与BDR的选举,那么就选自己为DR;当一个多路访问网络中选举出DR与BDR之后,在DR与BDR没有失效的情况下,不会进行重新选举,也就是在选举出DR与BDR之后,即使有更高优先级的路由器加入网络,也不会影响DR与BDR的角色,在越出选举时间(Wait时间)后,只有DR与BDR失效后,才会重新选举。DR失效后,会同时重新选举DR与BDR,而在BDR失效后,只会重新选举BDR。
DR和BDR与Drother的数据包处理会有所不同,所有OSPF路由器,包括DR与BDR,都能够接收和传递目标地址为224.0.0.5的数据包。
只有DR和BDR才能接收和传递目标地址为224.0.0.6的数据包。
由此可见,Drother路由器将数据包发向目标地址224.0.0.6,只能被DR和BDR接收,其它Drother不能接收;而DR和BDR将数据包发向目标地址224.0.0.5,可以被所有路由器接收。

 


2 OSPF基础

2.1 OSPF的特点

  • OSPF把自治系统划分成逻辑意义上的一个或多个区域;
  • OSPF通过LSA(Link State Advertisement)的形式发布路由;
  • OSPF依靠在OSPF区域内各设备间交互OSPF报文来达到路由信息的统一;
  • OSPF报文封装在IP报文内,可以采用单播或组播的形式发送。

2.2 报文类型

ospf_第13张图片 

2.3 LSA类型

由于OSPF协议定义了多种路由器的类型,因而定义多种LSA通告的类型也是必要的。

LSA报文主要分LSA头部和LSA信息字段。所有类型的LSA报文,其LSA头部包含的字段都是一样的,唯一不同的是Link state ID字段含义。在LSA头部中,我们主要关心以下三个字段:

  • Link-State Advertisement Type:LSA类型
  • Link state ID:链路状态ID。

                    在Router-LSA中,Link-State ID字段代表始发该LSA的设备的Router ID
                    在Network-LSA中,Link-State ID字段的含义是DR接口上的IP地址
                    在Network-summary-LSA中,Link-State ID字段代表该LSA所描述的网络的网络地址
                    在ASBR-summary-LSA中,Link State ID表示该LSA所描述的ASBR的Router ID
                    在AS-external-LSA中,Link State ID代表外部网络目的IP地址

  • Advertising Router:通告路由器

NSSA LSA所有的字段与AS-external-LSA字段均相同,只是泛洪的区域不同,AS-external-LSA是在整个AS泛洪,而NSSA LSA仅仅是在NSSA区域中泛洪。

NSSA区域允许引入外部路由,但外部路由信息的NSSA LSA只能在本区域泛洪,那外部路由如何能传递给整个自治域呢?Type7 LSA在ABR(R3)上转换成Type5 LSA,并且泛洪到骨干区直至整个自治域中。这样就将外部路由引入到了除NSSA区域的其他区域。

ospf_第14张图片

1、Router-LSA:区域内的路由器交流完这类lsa后,都知道本区域有哪些路由器(图这种数据结构中的“顶点”的概念形成了)

ospf_第15张图片

 

2、Network-LSA:区域内的路由器交流完这类lsa后,都知道本区域路由器之间的关联情况(图这种数据结构中的“边”的概念形成了,有了1,2类lsa的交互,拓扑就形成了)

ospf_第16张图片

 

3、Network-summary-LSA:ABR将所涉区域内的网络段(由lsa头部中的Link state ID + lsa信息字段中的Netmask构成)通告给其他区域。

ospf_第17张图片

 

4、ASBR-summary-LSA:ABR将ASBR的位置告诉ASBR所在区域外的其他区域中的路由器。于是大家都知道ASBR在哪。

ospf_第18张图片

 

5、AS-external-LSA:有了ASBR-summary-LSA,ASBR就可以将去AS外部的路由(由lsa头部中的Link state ID + lsa信息字段中的Netmask构成)在整个AS区域内泛洪了。

ospf_第19张图片

 

2.4 路由器类型

ospf_第20张图片

ospf_第21张图片

2.5 路由类型

AS区域内和区域间路由描述的是AS内部的网络结构,AS外部路由则描述了应该如何选择到AS以外目的地址的路由。OSPF将引入的AS外部路由分为Type1和Type2两类。下表中按优先级从高到低顺序列出了路由类型。

ospf_第22张图片

ospf_第23张图片      ospf_第24张图片

 

有实例更有说服力!见下图:

ospf_第25张图片ospf_第26张图片

ospf_第27张图片

 

去掉type 1的配置后,默认就是type 2类型了,如下图示:

ospf_第28张图片  ospf_第29张图片

ospf_第30张图片

 

2.6 区域类型

2.6.1 Stub区域Totally Stub区域的由来

ospf_第31张图片

Stub区域:为保证到自治系统外的路由依旧可达,Stub区域的ABR将生成一条缺省路由,并发布给Stub区域中的其他非ABR路由器。一般情况下,Stub区域位于自治系统的边界,是只有一个ABR的非骨干区域。

Totally Stub区域:Stub区域能够起到减少区域内路由表项规模的作用,但是这似乎还不够彻底,实际上也可以不关心区域间的路由细节,而仅预留一个到达其他区域的出口即可。这种情况下可以将这个区域配置成Totally Stub区域。

 

2.6.1 NSSA(Not So Stubby Area)区域Totally NSSA区域的由来

ospf_第32张图片

NSSA区域:在Stub区域特性基础上,NSSA区域允许本区域ASBR引入的外部路由在该区域内传播。

Totally NSSA区域:在Totally Stub区域特性基础上,Totally NSSA区域允许本区域ASBR引入的外部路由在该区域内传播。

所以此俩区域中的NS俩字母要表达的意思是,本区域可以引入外部路由,出现了ASBR路由器。存在7类的缺省LSA,由ABR产生,在本区域传播;ASBR可手动配置产生7类缺省LSA,也只在本区域传播。ASBR产生的7类LSA经过ABR时转成5类LSA并传播给AS中的其他区域。

而此四种区域中的Totally一词要表达的意思是,这类区域不需要知道去AS中其他区域该怎么走,也即不存在3类非缺省的LSA,只存在3类的缺省LSA,由ABR产生。

 

LSA在各区域的管理规则如下:

ospf_第33张图片

                               图1 Stub区域的LSA管理规则

 

ospf_第34张图片

                           图2 Totally Stub区域的LSA管理规则

 

ospf_第35张图片

                                图3 NSSA区域的LSA管理规则

 

ospf_第36张图片

                           图4 Totally NSSA区域的LSA管理规则

 

 

OSPF各种特殊区域允许出现的LSA总结如下表所示

骨干区域

Type1、Type2、Type3、Type4、Type5

标准区域

Type1、Type2、Type3、Type4、Type5

Stub区域

Type1、Type2、Type3、Type3缺省路由

Totally Stub区域

Type1、Type2、Type3缺省路由

NSSA区域

Type1、Type2、Type3、Type7、Type7缺省路由

Totally NSSA区域

Type1、Type2、Type7、Type3缺省路由、Type7缺省路由

 

ospf_第37张图片

 

ospf_第38张图片

 

2.7 OSPF支持的网络类型

ospf_第39张图片

OSPF根据链路层协议类型,将网络分为如下四种类型:

ospf_第40张图片

实例如下图所示:

ospf_第41张图片

2.8 STUB区域

STUB区域是一些特定的区域,STUB区域的ABR不传播它们接收到的自治系统外部路由,在这些区域中路由器的路由表规模以及路由信息传递的数量都会大大减少。
STUB区域是一种可选的配置属性,但并不是每个区域都符合配置的条件。通常来说,STUB区域位于自治系统的边界,是那些只有一个ABR的非骨干区域。
为保证到自治系统外的路由依旧可达,该区域的ABR将生成一条缺省路由,并发布给STUB区域中的其他非ABR路由器。

配置STUB区域时需要注意下列几点:

  • 骨干区域不能配置成STUB区域。
  • 如果要将一个区域配置成STUB区域,则该区域中的所有路由器都要配置STUB区域属性。
  • STUB区域内不能存在ASBR,即自治系统外部的路由不能在本区域内传播。
  • 虚连接不能穿过STUB区域。

2.9 NSSA区域

OSPF NSSA(Not-So-Stubby Area)区域是OSPF特殊的区域类型。NSSA区域与STUB区域有许多相似的地方,两者都不传播来自OSPF网络其它区域的外部路由。差别在于STUB区域是不能引入外部路由,NSSA区域能够将自治域外部路由引入并传播到整个OSPF自治域中。

当区域配置为NSSA区域后,为保证到自治系统外的路由可达,NSSA区域的ABR将生成一条缺省路由,并发布给NSSA区域中的其他路由器。

配置NSSA区域时需要注意下列几点:

  • 骨干区域不能配置成NSSA区域。
  • 如果要将一个区域配置成NSSA区域,则该区域中的所有路由器都要配置NSSA区域属性。
  • 虚连接不能穿过NSSA区域。

2.10 邻居状态机

OSPF共有8种状态机,分别是:Down、Attempt、Init、2-way、Exstart、Exchange、Loading、Full。

  • Down:邻居会话的初始阶段,表明没有在邻居失效时间间隔内收到来自邻居路由器的Hello数据包。
  • Attempt:该状态仅发生在NBMA网络中,表明对端在邻居失效时间间隔(dead interval)超时后仍然没有回复Hello报文。此时路由器依然每发送轮询Hello报文的时间间隔(poll interval)向对端发送Hello报文。
  • Init:收到Hello报文后状态为Init。
  • 2-way:收到的Hello报文中包含有自己的Router ID,则状态为2-way;如果不形成邻接关系则邻居状态机就停留在此状态,否则进入Exstart状态。
  • Exstart:如果形成邻居关系,则从Init状态转到Exstart状态,开始协商主从关系,并确定DD的序列号。
  • Exchange:主从关系协商完毕后开始交换DD报文,此时状态为Exchange。
  • Loading:DD报文交换完成即Exchange done,此时状态为Loading。
  • Full:LSR重传列表为空,此时状态为Full。

2.11 OSPF报文认证

OSPF支持报文验证功能,只有通过验证的OSPF报文才能接收,否则将不能正常建立邻居。

路由器支持两种验证方式:

  • 区域验证方式
  • 接口验证方式

当两种验证方式都存在时,优先使用接口验证方式。

2.12 OSPF路由聚合

路由聚合是指ABR可以将具有相同前缀的路由信息聚合到一起,只发布一条路由到其它区域。

区域间通过路由聚合,可以减少路由信息,从而减小路由表的规模,提高设备的性能。

ospf_第42张图片         ospf_第43张图片

OSPF有两种路由聚合方式:

  • ABR聚合

ABR向其它区域发送路由信息时,以网段为单位生成Type3 LSA。如果该区域中存在一些连续的网段,则可以通过命令将这些连续的网段聚合成一个网段。这样ABR只发送一条聚合后的LSA,所有属于命令指定的聚合网段范围的LSA将不会再被单独发送出去。

  • ASBR聚合

配置路由聚合后,如果本地设备是自治系统边界路由器ASBR,将对引入的聚合地址范围内的Type5 LSA进行聚合。当配置了NSSA区域时,还要对引入的聚合地址范围内的Type7 LSA进行聚合。

如果本地设备既是ASBR又是ABR,则对由Type7 LSA转化成的Type5 LSA进行聚合处理。

2.13 OSPF缺省路由

缺省路由是指目的地址和掩码都是0的路由。当设备无精确匹配的路由时,就可以通过缺省路由进行报文转发。由于OSPF路由的分级管理,Type3缺省路由的优先级高于Type5或Type7路由。

OSPF缺省路由通常应用于下面两种情况:

  • 由区域边界路由器(ABR)发布Type3缺省Summary LSA,用来指导区域内设备进行区域之间报文的转发。
  • 由自治系统边界路由器(ASBR)发布Type5外部缺省ASE LSA,或者Type7外部缺省NSSA LSA,用来指导自治系统(AS)内设备进行自治系统外报文的转发。

OSPF缺省路由的发布原则如下:

  • OSPF路由器只有具有对外的出口时,才能够发布缺省路由LSA。
  • 如果OSPF路由器已经发布了缺省路由LSA,那么不再学习其它路由器发布的相同类型缺省路由。即路由计算时不再计算其它路由器发布的相同类型的缺省路由LSA,但数据库中存有对应LSA。
  • 外部缺省路由的发布如果要依赖于其它路由,那么被依赖的路由不能是本OSPF路由域内的路由,即不是本进程OSPF学习到的路由。因为外部缺省路由的作用是用于指导报文的域外转发,而本OSPF路由域的路由的下一跳都指向了域内,不能满足指导报文域外转发的要求。

不同区域缺省路由发布原则如下表所示:

ospf_第44张图片

2.14 OSPF路由过滤

OSPF支持使用路由策略对路由信息进行过滤。缺省情况下,OSPF不进行路由过滤。
OSPF可以使用的路由策略包括route-policy,访问控制列表(access-list),地址前缀列表(prefix-list)。

OSPF路由过滤可以应用于以下几个方面:

  • 路由引入

OSPF可以引入其它路由协议学习到的路由。在引入时可以通过配置路由策略来过滤路由,只引入满足条件的路由。

  • 引入路由发布

OSPF引入了路由后会向其它邻居发布引入的路由信息。
可以通过配置过滤规则来过滤向邻居发布的路由信息。该过滤规则只在ASBR上配置才有效。

  • 路由学习

通过配置过滤规则,可以设置OSPF对接收到的区域内、区域间和自治系统外部的路由进行过滤。
该过滤只作用于路由表项的添加与否,即只有通过过滤的路由才被添加到本地路由表中,但所有的路由仍可以在OSPF路由表中被发布出去。

  • 区域间LSA学习

通过命令可以在ABR上配置对进入本区域的Summary LSA进行过滤。该配置只在ABR上有效(只有ABR才能发布Summary LSA)。

  • 区域间LSA发布

通过命令可以在ABR上配置对本区域出方向的Summary LSA进行过滤。该配置只在ABR上配置有效。

 

 

3 OSPF配置任务

无论是哪种类型的路由器,都必须先使能OSPF,否则OSPF协议将无法正常运行。在进行各项配置的时候应该先做好网络规划,错误的配置可能会导致相邻路由器之间无法相互传递信息,甚至导致路由信息的阻塞或者产生路由环路。

ospf_第45张图片

 ospf_第46张图片

 ospf_第47张图片

 ospf_第48张图片

配置任务详解参考

 

6 OSPF疑问

1、一个运行ospf协议的自治系统中,能包括两个骨干区域(也即区域0)吗?

2、区域0的完整性和不完整性是个什么概念?用图说明下?

3、虚连接上面除了两端外允许存在其他路由器吗?如下图中红色箭头所指

ospf_第49张图片

 

【参考】

1、http://support.huawei.com/enterprise/docinforeader!loadDocument.action?contentId=DOC1000009561&partNo=10072#dc_feature_ospf_0003

2、http://baike.baidu.com/view/6234950.htm?fromId=64365

3、ospf配置实验(一)

4、ospf配置实验(二)

5、h3c-三层技术-IP路由配置指导

6、路由重分布route redistribution(红茶三杯ccie)

7、ccieteam.com

 

你可能感兴趣的:(数据库,网络,数据结构与算法)