OSPF多区域原理与配置算法
n 生成OSPF多区域的缘由数据库
1. 生成OSPF多区域的缘由网络
? 改善网络的可扩展性负载均衡
? 快速收敛ide
2. OSPF区域的容量oop
划分多区域后,每一个OSPF区域里到底能够容纳多少台路由器?单个区域所支持的路由器数量的范围大约是30-200。但在一个区域内实际加入的路由器数量要小于单个区域所能容纳路由器的最大数量。这是由于还有更为重要的一些因素影响着这个数量,诸如一个区域内链路的数量,网络拓扑的稳定性、路由器的内存和CPU性能、路由汇总的有效使用和注入到这个区域的汇总LSA的数量等。正是因为这些因素,有时在一些区域里包含25台路由器可能都已经显得比较多了,而在另外一些区域内却能够容纳多于500台的路由器。性能
对于和区域相关的通讯量定义了下面的三种类型:学习
? 域内通讯量(Intar-Area Traffic):是指由单个区域内路由器之间交换的数据包构成的通讯量。spa
? 域间通讯量(Inter-Area Traffic):是指由不一样区域的路由器之间交换的数据包构成的通讯量。debug
? 外部通讯量(External Traffic):是指由OSPF区域内的路由器与OSPF区域外或另外一个自治系统内的路由器之间交换的数据包构成的通讯量。
OSPF被分红多区域的能力是依照分层路由实现的。当被划分红小区域之后,像从新计算拓扑数据库这样的操做就被限定在该小区域内,区域间则只须要通告一些汇总信息。例如:区域1内部发生了路由器的Up或者Down时,其余区域内的路由器不须要运行SPF算法来从新计算路由信息,这是由于那些问题被隔离在区域1的内部。
具体来讲,分层路由有如下优点:
? 下降了SPF运算的频率。由于详细的路由信息被保留在每一个区域的内部,无需泛洪所有链路状态的改变给全部其余区域。所以,只有那些受拓扑改变影响的路由器才须要从新运行SPF算法。
? 减小了路由表。当使用多区域时,每一个区域只保留本身区域的详细路由条目,而且不会通告这些条目到区域外部,区域边界路由器能够汇总一条或多条路由信息,在OSPF域间进行通告,这样既减小了LSA的数量,同时又保证了区域之间的连通性。
? 减少了链路状态更新报文(LSU)的流量。LSU包含多种LSA类型,也包括链路状态信息和汇总信息。分红多区域后,再也不是发送每一个网络的LSU,而是在区域间通告单个路径或者几个汇总路径的更新,从而有效的减少了穿越多个区域的LSU流量。
n 路由器的类型
路由器也像通讯量同样能够被分红和区域相关的几种类型:
? 内部路由器(Internal Router):是指全部接口都属于同一个区域的路由器。
? 区域边界路由器(Area Border Routers,ABR):是指链接一个或多个区域到骨干区域的路由器,而且这些路由器会做为域间通讯量的路由网关。于是,ABR路由器至少有一个接口是属于骨干区域的,并且必须为每个与之相连的区域维护不一样的链路状态数据库。正由于这个缘由,ABR路由器一般须要比通常的内部路由器有更多的内存和更高性能的路由处理器。ABR路由器将会汇总与它相连区域的拓扑信息给骨干区域,而后又将这些汇总信息传送给其余的区域。
? 自治系统边界路由器(Autonomous System Boundary Router,ASBR):能够认为是OSPF域外部的通讯量进入OSPF域的网关路由器,也就是说,ASBR路由器是用来把其余路由器协议学习到的路由器经过路由选择重分配的方式注入到OSPF域的路由器。一个ASBR路由器能够是位于OSPF域的自治系统内部的任何路由器,它能够是一台内部路由器或者ABR路由器。
n 区域的类型
OSPF路由协议将区域划分为不一样类型,包括骨干区域、标准区域、末梢区域、彻底末梢区域、非纯末梢区域等。根据互连区域的类型和数量不一样,OSPF提供了不一样类型的路由更新。
运行OSPF的整个区域属于一个自治系统(AS),除了AS的路由都属于外部路由。Backone是链接众区域的骨干层,跨区域的流量都要在骨干上经过,骨干的稳定性、健壮性相当重要。骨干上的路由器大都是区域边界路由器ABR。
1. 骨干区域Area 0
该区域的ID必定为0,它是链接全部其余区域的核心域,至关于交换网络的汇聚层。
2. 标准区域
该区域能够接收各类链路状态信息和汇总的路由通告。没有特殊定义的区域就是标准区域。
n 链路状态数据库
一台运行OSPF路由协议的路由器中,全部有效的LSA通告都被存放在它的链路状态数据库当中,正确的LSA通告将能够描述出一个OSPF区域网络拓扑的结构。
n 链路状态数据库的组成
每台路由器都建立了由每一个接口、对应的相邻节点和接口速率组成的数据库,链路状态数据库中的每一个条目都称为LSA(链路状态通告),常见的LSA有六种类型。
n 链路状态通告
常见的LSA有六种类型,分别是LSA一、LSA二、LSA三、LSA四、LSA五、LSA7。
? LSA1:路由器LSA
? LSA2:网络LSA
? LSA3:网络汇总LSA
路由器LSA(Router LSA):每一台运行OSPF路由协议的路由器都会产生路由器LSA通告。这个最基本的LSA通告列出了路由器全部的链路或接口,并指明了它们的状态和沿每条链路方向出站的代价。这些LSA通告只会在始发它们的区域内部进行泛洪。经过命令“show ip ospf database router” 能够查看数据库中列出的全部路由器LSA通告。还能够在这条命令后加上一个参数以指定一个路由器ID,从而观察到单个路由器LSA通告的详细信息。这些信息显示了记录在链路状态数据库中的完整的LSA信息。
网络LSA(Network LSA):每个多址网络(广播型和NBMA)中的指定路由器DR都将会产生网络LSA通告。可将DR路由器看作一个“伪”节点或一个虚拟路由器,用来描绘一个多址访问网络和与之相连的全部路由器。网络LSA通告列出了全部与之相连的路由器,也包括DR路由器自己。向路由器LSA同样,网络LSA也仅仅在产生这条网络LSA的区域内部进行泛洪。使用命令show ip ospf database network 能够查看一条网络LSA通告的信息。
网络汇总LSA(Network Summary LSA):是由ABR路由器始发的。ABR路由器将发送网络汇总LSA到一个区域,用来通告该区域外部的目的地址。实际上,这些网络汇总LSA就是ABR 路由器告诉在本身所属区域内的内部路由器它所能到达的目的地址的一种方法。一台ABR路由器也能够经过网络汇总LSA向骨干区域通告与它相连的区域内部的目的地址。在一个区域外部,且仍然在一个OSPF自治系统内部的默认路由,也能够经过这种LSA来通告。使用命令show ip ospf database summary能够显示链路状态数据库中的网络汇总LSA信息。
n OSPF多区域配置的验证及OSPF路由表
1. OSPF经常使用的检查命令
命令 说明
show ip route 查看路由表信息(直连/学习)
show ip route ospf 只查看OSPF学习到的路由
show ip protocol 查看OSPF协议配置信息
show ip ospf 查看在路由器上OSPF是如何配置的以及ABR的信息
show ip ospf database 查看LSDB内的全部LSA数据信息
show ip ospf interface 查看接口上OSPF配置的信息(进程ID、RouterID、Cost、Priority、邻居的数量)
show ip ospf neighbor 查看OSPF邻居和邻接的状态(Full表示邻居状态正常)
show ip ospf neighbor detail 查看OSPF邻居的详细信息(包括DR/BDR)
debug ip ospf adj 查看路由器“邻接”的整个过程
debug ip ospf packet 查看每一个OSPF数据包的信息(包括OSPF版本、RouterID、AreaID)
clear ip route 清空路由表
2. OSPF路由表
使用show ip route命令查看多区域OSPF实例中路由器的路由表。
在路由条目前的“O”表明OSPF区域内的路由,而“O IA”表明OSPF区域间的路由。
? 区域内路径(Intra-area Path)是指在路由器所在的区域内就能够到达目的地的路径。
? 区域间路径(Inter-area Path)是指在其余区域但仍在OSPF自治系统内的目的地路径。在路由表中,打上了IA标志的条目就是区域间路径,它老是至少经过一台ABR路由器。
3. 路由器对路由条目的选择
路由器在选择路由条目并将其添加到路由表中时,使用两个参数:Metrics(度量值)和Distance Metric(管理距离)。
? 度量值表明距离,由度量值来肯定寻路时的最优路由。
? 管理距离是指一种路由协议的路由可信度。
注意:
? OSPF路由协议中的度量值为接口代价(Cost);RIP路由协议中度量值表明距离(跳数)。
? 在OSPF中一条路由的代价是指到达目的网络的路由路径上全部出站接口的代价之和。
当路由器收到相同目的地址的路由条目时,首先比较管理距离,选择管理距离小的路由条目添加到路由表中。若是管理距离相同,则比较度量值,选择度量值小的路由条目添加到路由表中。
当收到目的地址、度量值和管理距离值都相同的路由条目时,路由表中会造成负载均衡的路由条目。
须要注意的是,OSPF路由协议为不一样类型的路由规定了不一样的优先级,即域内路由优先级高于域间路由。例如,若是一台路由器经过OSPF的SPF算法获得某一网段有度量值和管理距离相同的两条路径时,若是一条路径是域内而另外一条路径是域外,路由器会选择域内路由添加到路由条目中。
注意:
? 静态路由的管理距离默认是1,度量值是0。
? RIP协议的管理距离默认是120,度量值是跳数。
? OSPF协议的管理距离默认是110,度量值是接口代价。
在学习浮动路由时,就是对同一网段使用了不一样的管理距离(一条路由管理距离大,另外一条管理距离小),再让路由器选择最优的路由(可信度高的路由)添加到路由表中。当线路出现故障时,管理距离小的路由失效,管理距离大的路由为最佳路由,会被路由器选入路由表中。
须要注意的是,路由器转发数据时选择能够和目的地址最精确匹配的路由。例如,若是路由表中存在路由条目172.19.64.0/1八、172.19.64.0/24和172.19.64.192/27,而目的地址是172.19.64.205,那么最后一个路由条目将被选中。最精确的匹配应该老是最长匹配——拥有最长地址掩码的路由。若是路由器没有发现匹配的条目,它将发送一个ICMP目的不可达的消息给那个数据包的源地址,而且把这个数据包丢弃。若是最后匹配多条等价路由时,那么将会负载分担的利用多条等价路由。
n Stub区域及配置
除了骨干区域和标准区域以外,还有末梢区域(Stub)、彻底末梢区域(Totally Stubby)和非纯末梢区域(NSSA)。
n LSA4与LSA5
? LSA4:ASBR汇总LSA(ASBR Summary LSA)
? LSA5:自治系统外部LSA(Autonomous System External LSA)
1. LSA4
ASBR汇总LSA(ASBR Summary LSA):也是有ABR路由器始发的。ASBR汇总LSA除了所通告的目的地是一个ASBR路由器而不是一个网络外,其余的域网络汇总LSA都是同样的。使用命令show ip ospf database asbr-summary能够查看ASBR汇总LSA的信息。
注意:目的地是一个主机地址,而且掩码是0。一般ASBR汇总LSA通告的目的地老是一个主机地址,由于它是一条到达一台路由器的路由。
2. LSA5
自治系统外部LSA(Autonomous System External LSA):也称为外部LSA(External LSA),始发于ASBR路由器,用来通告到达OSPF自治系统外部的目的地或者是到OSPF自治系统外部的默认路由的LSA。外部LSA通告将在整个自治系统中进行泛洪。使用命令show ip ospf database external能够查看AS外部LSA的信息。
n 末梢区域和彻底末梢区域
在OSPF区域中,一些区域出口不多,对区域外的路由仅须要一条默认路由,为了减小区域内路由器的路由条目,能够把此区域配置为末梢区域。在Stub区域中仅仅须要域内的路由条目和一条指向区域边界路由器的默认路由就能实现全部的选路,因此在Stub区域中能够减小没必要要的LSA泛洪。
因为从Stub区域内到其余区域仅有一条默认路由,因此Stub区域有必定限制,即区域内不能有自治系统边界路由器(ASBR),而且它们不能为区域间的流量作转发。
Stub区域并不限制必定只有一个做为出口的区域边界路由器。可以进入或存在Stub区域的链路状态通告LSA的类型为一、二、3型,禁止四、五、7型进入Stub区域。
当区域配置为彻底末梢区域(Totally Stubby)时,在区域内除了域内路由外,只有一个默认路由。
知足如下四个条件的区域能够被认定为Stub或者Totally Stubby区域:
? 只有一个默认路由做为其区域的出口
? 区域不能做为虚链路的穿越区域
? Stub区域里无自治系统边界路由器ASBR
? 不是骨干区域Area0
1. 末梢区域(Stub Area)
末梢区域是一个不容许自治系统外部LSA通告在去内部进行泛洪的区域。若是在一个区域里没有学到类型5的LSA通告,那么类型4的LSA通告也是没必要要的了,由于这些LSA通告也将被阻塞。位于末梢区域边界的ABR路由器将使用网络会中LSA向这个区域通告一个简单的默认路由(目的地址是0.0.0.0)。在区域内部路由器上,全部和域内或域间路由不能匹配的目的地址都将最终匹配这条默认路由。因为默认路由是由类型3的LSA通告传送的,所以它将不会被通告到这个区域的外部去。
因为在一个末梢区域里,路由器的链路状态数据被减少了,所以,这些路由器的性能将获得提升,而且内存也获得节省。固然,在一个含有大量类型5的LSA通告的OSPF区域里,这种改进将更加显著。
? 和全部的区域同样,一个末梢区域内部的全部路由器也必须拥有相同的链路状态数据库。为了确保知足这个条件,全部末梢区域内的路由器都会在它们的Hello报文中设置一个标志E-bit,并将它设置为0。这样,这些末梢区域路由器将不接受其余路由器发送的任何E-bit为1的Hello报文。结果,末梢区域路由器将不能和其余非末梢区域的路由器创建邻接关系。
? 虚链接不能再一个末梢区域内进行配置,也不能穿过一个末梢区域。
? 末梢区域内的路由器不能是ASBR路由器。这个限制条件是很容易直观的理解的,由于ASBR路由器会产生类型5的LSA通告,而在一个末梢区域内不能存在类型5的LSA通告。
? 一个末梢区域能够拥有多台ABR路由器,可是由于默认路由的缘由,区域内部路由器将不能肯定哪一台路由器才是到达ASBR路由器的最优网关。
注意:配置成NSSA区域的路由器也不能和其余非NSSA区域的路由器造成邻接关系。
2. 彻底末梢区域(Totally Stubby Area)
若是经过阻塞类型5和类型4的LSA传播的方法来节省内存的话,那么要是可以把类型3的LSA也阻塞掉,不是能够节省更多的内存吗?对于这个问题,Cisco借助于末梢区域的概念提出了彻底末梢区域的概念。
彻底末梢区域(Totally Stubby Area)不只使用默认路由到达OSPF自治系统外部的目的地址,并且使用默认路由到达这个区域外部的全部目的地址。一个彻底末梢区域的ABR将不只阻塞AS外部的LSA,并且阻塞全部的汇总LSA,除了通告默认路由的那一条类型3的LSA。
n 配置末梢区域和彻底末梢区域
1. 配置Stub Area
Router(config-router)# area area-id stub
其中,area-id标识Stub区域的ID,能够是数字或者IP地址形式。此命令须要在Stub区域内的全部路由器上配置。
2. 配置Totally Stubby Area
Router(config-router)# area area-id stub no-summary
其中,area-id标识Stub区域的ID,能够是数字或者IP地址形式。no-summary使用此参数来生成Totally Stubby区域,仅用于ABR,以阻止ABR发送汇总链路通告到彻底末梢区域内。
n OSPF多域配置实例
实验环境
Benet公司有三家分公司,总公司和分公司之间使用专线链接,Benet公司要求配置路由器实现网络互通。
如上图所示为Benet公司的路由器链接示意图,经过配置路由器实现公司的内部全网互通,具体规划状况以下:
? R1和R2的互联地址:10.0.0.0/30,R1和R3的互联地址:10.0.0.4/30,R1和R4的互联地址:10.0.0.8/30.
? 使用路由器的Loopback接口地址做为Router ID,R1的Loopback0:1.1.1.1/32,R2的Loopback0:2.2.2.2/32,R3的Loopback0:3.3.3.3/32,R4的Loopback0:4.4.4.4/32。
? 使用Loopback接口模拟下带主机的地址网段,R1的Loopback1:192.168.1.0/24,R2的Loopback1:192.168.2.0/24,R3的Loopback1:192.168.3.0/24,R4的Loopback1:192.168.4.0/24。
具体步骤:
1. 配置路由器的接口地址、Loopback接口
2. 配置OSPF协议,实现内部网络互通
3. 验证网络访问是否正常
4. 若是将区域2设置为末梢区域,那么就要在R1和R4上分别作配置:
5. 若是将区域2设置为彻底末梢区域,那么就要在R1和R4上分别作配置: