第一章OSPF 协议简单介绍OSPF 是由IETF 的IGP 工作组为IP 网络开发的路由协议。
OSPF 作为一种内部网关协议(Interior Gateway Protocol,IGP),用于典型网络中的路由器之间发布路由信息。
它是一种链路状态协议,区别于距离矢量协议(RIP),OSPF 具有支持大型网络、路由收敛快、占用网络资源少等优点,在目前应用的路由协议中占有相当重要的地位。
第二章OSPF 协议应用场合在当前典型网络络中,OSPF的应用场合基本上有以下三种:(1)典型网络中核心和汇聚都是支持OSPFv2 的三层交换机(2)典型网络核心或者汇聚层设备上建立了过多的静态路由,人工维护量过大(3)典型网络中的三层设备支持OSPFv2 但是仍然在使用RIP 协议的可以考虑做协议迁移。
在日常工作中常见的情况只有(1)和(2)两种。
第三章OSPF 协议基本规划OSPF网络协议在所有内部网关协议中是比较复杂的一种,这种复杂性和OSPF的协议原理密切相关,那么在设计典型网络中的OSPF我们具体需要考虑哪几方面的问题呢?在本节中将会为您一一介绍。
3.1保持OSPF 数据库的稳定性:Router-id的选择对于大型典型网络络OSPF设计和实施中我们需要考虑的第一点,就是Router-id的选择。
这是因为OSPF作为一种链路状态路由协议其计算路由的依据是LSA(链路状态宣告报文)数据库,每个运行OSPF的路由器都会发送并泛洪LSA报文到整个网络,这样网络中每个运行OSPF的路由器都会收集到其他设备发送过来的LSA 并且放入LSA 数据库中,然后开始进行SPF(最短路径转发)运算,计算出一棵以自己为根到其他网络的无环树。
由此可以看出保持每个路由器LSA 数据库的稳定性是保证OSPF 网络稳定的前提。
那么在LSA 数据库中对于不同OSPF 设备发送来的LSA 是如何进行区分的呢,答案就是使用Router-id。
如果一个路由器的Router-id 发生变化,那么此路由器的会重新进行LSA 泛洪,从而导致全网OSPF路由器都会更新其LSA数据库并且重新进行SPF计算,使得OSPF网络发生振荡。
因此选择一个稳定的Router-id是OSPF网络设计的首要工作。
了解了Router-id 的重要性后,我们来看看一个OSPF 路由器是如何选择Router-id 的,其选举原则基本上可以归纳为以下两点:(1)首先选择具有最高IP 地址的环回接口(2)如果没有环回接口的话则选择具有最高IP 地址的激活物理接口。
在一个OSPF路由器选举出Router-id 后,重启路由器或者重新配置OSPF 进程都会导致Router-id 的重新选举,如果OSPF路由器选择了一个激活物理接口的IP 地址作为Router-id的话,那么一旦其down掉,就有可能引起OSPF路由器的Router-id发生变更,因此选择物理接口是一种危险的做法。
在实际工程中,的推荐做法是首先规划出一个私有网段用于OSPF 的Router-id 选择。
例如:192.168.1.0/24. 在启用OSPF 进程前就在每个OSPF 路由器上建立一个环回口,使用一个32 位掩码的私有地址作为其IP,这个32位的私有地址不要发布在OSPF网络中.3.2层次化的网络设计:OSPF 区域的规划OSPF是一个需要层次化设计的网络协议,在OSPF网络中使用了一个区域的概念,从层次化的角度来看区域被分为两种:骨干区域和非骨干区域。
骨干区域的编号为0,非骨干区域的编号从1 到4294967295。
处于骨干区域和非骨干区域边界的OSPF路由器被称为ABR(区域边界路由器),处于非骨干区域的路由器被称为区域内部路由器。
由于OSPF 的区域边界处于路由器上,因此对于每个非骨干区域中都会存在至少一个ABR。
实际上OSPF区域的规划也就是把网络中的OSPF路由器做归类的过程。
在设计OSPF 区域时,我们首先需要考虑第一点的是网络的规模,对于小型的典型网络络,例如只有几台S3550作为核心和汇聚的网络可以考虑只使用一个AREA 0来完成OSPF规划。
这在本文中不予讨论。
但是在大型典型网络的OSPF网络中,网络的层次化设计是必须的。
对于大型的典型网络络,一般在规划上都会遵循核心,汇聚,接入的分层原则,而OSPF 骨干路由器的选择必然包含两种设备,一种是位于核心位置的设备,另一种是位于区域核心的汇聚设备,通常都是的高端产品如S6810E和S6806E. 非骨干区域的范围选择则是根据地理位置和设备性能而定,如果在单个非骨干区域中使用了较多的低端三层交换产品,由于其产品定位和性能的限制,应该尽量减少其路由条目数量,把区域规划得更小一些。
值得注意的是在施工中对于非骨干区域的AREA号定义,推荐使用AREA 10 ,20 ,30…来递增,这样可以提供AREA号上的冗余,便于客户增加区域。
3.3非骨干区域内部路由器的路由表项优化:特殊区域的使用前一节讲到在OSPF 的非骨干区域中使用的一般都是较为低端的三层交换机,其产品定位使得其不可能承受过多的路由条目,为了精简其路由条目数量可以采用一些特殊区域模式来进行路由表项的优化。
产品支持OSPF协议中定义的全部三种特殊区域模型:末梢区域(Stub Area),完全末梢区域(Totally Stub Area)和非完全末梢区域(NSSA Area)。
由于NSSA区域应用非常少,下面简单介绍一下前两种特殊区域的区别和应用场合:(1)末梢区域Stub Area处于末梢区域的内部路由器将不会出现重分布进入OSPF 网络的外部路由条目,并且拥有一条指向区域外部的默认路由。
(2)完全末梢区域Totally Stub Area处于完全末梢区域的内部路由器只有区域内部明细路由和指向区域外部的一条默认路由。
在绝大部分的情况下,典型网络中的非骨干区域中都仅仅需要知道默认路由出口在哪里,因此推荐把非骨干区域统一设置成完全末梢区域,这样将极大的精简非骨干区域内部路由器的路由条目数量,并且减少区域内部OSPF交互的信息量。
对于极少数存在特殊需求的网络,请根据实际情况灵活使用几种区域类型。
3.4骨干区域路由器的路由表项优化:非骨干区域IP子网规划和路由汇总对于OSPF 的非骨干区域来说使用特殊区域能够精简其内部路由器的路由表,那么对于OSPF 的骨干区域的路由器来说又是如何优化其路由表的呢?答案就是对非骨干区域使用的IP 网段作出合理规划以便于区域边界的汇总。
对于IP 网段的合理规划在本书中第三章《典型网络IP 地址规划设计》中已经有非常详细的说明,本章节就不再做过多的阐述。
推荐新建OSPF网络能够在前期就作出利于路由汇总的IP网络设计,对于扩建的网络尽量进行IP地址的重新规划,通过区域汇总能精简骨干区域路由器的路由表,减少骨干区域内OSPF交互的信息量,并且提高了路由表项的稳定性。
3.5OSPF默认路由的引入和选路优化:重分布静态和cost调整当前对于一个大型典型网络络来说,很大一部分的业务流量并不在典型网络内部,而是通往INTERNET出口,因此默认路由的引入也是典型网络络OSPF设计的一大要点。
对于OSPF网络的默认路由引入方式,推荐使用静态默认路由重分布到OSPF网络的方式进行。
在实际的大多数工程案例中,典型网络的出口往往不止一个,如何有效的将出口流量分担到多条链路上就成为了OSPF 设计中的一个难点。
虽然有很多种手段能够达到分担流量的目的,但是最简单也是最安全的方法是使用OSPF 内建的选路机制。
因为OSPF 路由器对一条路由的优劣衡量是通过计算其cost 值来实现的,cost 值小的路由会被路由器优先放入路由表。
通过调整OSPF 接口的cost 值可以使得路由器选择不同的链路出口来达到负载分担的目的。
不过在调整cost 值之前还有一项必须要做的工作。
因为OSPFv2 出现的时间较早,没有考虑到带宽的飞速发展,因此缺省情况下,OSPF计算cost值使用的参考带宽为100M,也就是说缺省情况下,OSPF把100M 带宽以上的端口统统认为其cost 是1。
很明显,在网络骨干带宽迈向10T的今天已经显得非常的不合时宜。
幸运的是设备提供了更改参考带宽的功能,使用auto-cost reference-bandwidth 命令选择一个合适的参考带宽成为OSPF网络建设中必须要做的一项工作。
对于OSPF网络的选路优化,推荐首先选择合适的参考带宽,然后通过调整OSPF 接口cost值来实现。
3.6OSPF 网络基本安全:阻止发往用户的OSPF 报文对于一个大型典型网络络来说,安全性是必须要考虑到的问题。
首先谈谈为什么需要避免终端用户窥探OSPF报文信息,这是因为如果用户能截获OSPF报文,那就意味着他已经知道如何加入此OSPF 网络。
此时要破坏这个OSPF 网络已经是轻而易举的事,接入一台路由器到OSPF 网络中,并且使得该路由器的OSPF 进程处于不稳定的状态中,会导致整个OSPF 网络发生振荡甚至瘫痪。
为了保证OSPF网络的安全与稳定,推荐在实际工程中使用闭塞接口(Passive-interface)的方式来阻止通往用户侧的OSPF报文。
第四章OSPF 案例分析和部署本章上一节对整个OSPF 典型网络络设计的六个基本原则作出了详细说明,下面我们来看看在实际工程中我们是如何运用这六个基本原则对OSPF进行设计和部署的。
图 1 某典型网络络拓扑图图 1 是某典型网络络的物理拓扑图,可以看到这是一个大型典型网络络,核心,汇聚,接入三层分明,拥有多出口到Internet,典型网络内部网络存在双链路冗余。
对于这种比较典型的网络结构,我们将如何进行OSPF的规划部署工作呢?下面将根据上一节提出的六条基本原则逐步进行此网络的设计和部署。
4.1保持OSPF 数据库的稳定性:规划和部署Router-id. 部署OSPF的首要工作就是规划和部署Router-id,在Router-id仅仅是一个OSPF设备的标识,因此不需要占用公共IP,使用一个合适的私有IP 地址段即可。
在此案例中我们选用的Router-id地址段为10.0.0.0/24.选取完Router-id 地址段后,接下来需要做的工作是在每个OSPF 设备上建立相应的Loopback 接口并设置相应的接口IP 为10.0.0.X/32。
具体配置以一号楼的S3550-24交换机为例:注意:不要在OSPF进程中发布loopback0 的接口地址,以减少无用的OSPF信息交互报文。
图 2 Router-id规划后的OSPF拓扑图4.2层次化的网络设计:OSPF 的区域规划在分配完Router-id后,接下来的工作就是对于整个OSPF网络进行区域划分。