了解OSPF路由协议
鉴于早期距离矢量协议所造成的诸多网络问题,网络设计者又开发了更新、更先进的路由协议——链路状态路由协议。OSPF路由协议就是一种链路状态路由协议。随着Internet技术在全球范围的飞速发展,OSPF已成为目前Internet广域网和Intranet企业网采用最多、应用最广泛的路由协议之一。OSPF(Open Shortest Path First)路由协议是由IETF(Internet Engineering Task Force)IGP工作小组提出的,是一种基于SPF算法的路由协议,目前使用的OSPF协议是其第2版,定义于RFC 1247和RFC 1583。
作为一种链路状态的路由协议,OSPF将链路状态广播数据包LSA(Link State Advertisement)传送给在某一区域内的所有路由器,这一点与距离矢量路由协议不同。运行距离矢量路由协议的路由器是将部分或全部的路由表传递给与其相邻的路由器。
OSPF路由协议也是一种IGP协议,它只能在工作在自治域系统内部,不能跨自治域系统工作。对比距离矢量路由协议,OSPF路由协议具有快速收敛与适用范围更广的优势。
在大型的网络拓扑结构中,如果每台路由器都将自己学到的整个网络的路由信息传送更新的话,将会严重地占用带宽资源,对于像荣新外企IT培训中心这样以传输音频、视频为主的数据时,更会出现音频、视频传输的不流畅。而OSPF路由协议很好地解决了这些问题。在刚刚开始工作的时候,首先和相邻的路由器建立邻居关系,形成邻居表,然后互相交换自己所了解的网络拓扑。路由器在没有学习到全部网络拓扑是不会进行任何路由操作的,因为这时候的路由表是空的。只有当路由器学到了全部的网络拓扑,建立了拓扑表(也称链路状态数据库)之后,他们会使用最短路径优先(SPF)算法,从拓扑表中计算出非常好的路由。因为,所有运行OSPF路由协议的路由器都维护着相同的拓扑表,路由器可以自己从中计算路由,所以这些路由器不需要周期性的发送路由更新包,这样便有效地降低了带宽的使用率。
提示:
使用OSPF协议对路由设备需要考虑,虽然OSPF路由协议对带宽的占用降低,但是由于它需要针对整个网络拓扑结构做出计算,所以对路由器的硬件设施,包括CPU、内存等都有较高的要求。
在运行OSPF路由协议的网络里,当网络拓扑发生了变化,例如,一条物理线路出现了故障。发现该变化的邻居路由器会向其他路由器发送触发的路由更新包——链路状态更新包(LSU)。在LSU中包含了关于发生变化的网段信息,链路状态通告(LSA)。接收到该更新包的路由器,会继续向其他路由器发送更新,同时根据LSA中的信息,在拓扑表里重新计算发生变化网段的路由。由于没有对链路的保持时间,OSPF路由协议的收敛速度是相当快的,这一点对于大型的网络是非常关键的。
OSPF路由协议还可以把一个大型的网络划分区域,这点跟IS-IS相似,不同的是在OSPF中会有一个唯一的骨干区域。这样对于路由信息的汇总起了很好的作用,对于设备的采用也可以根据其所在区域的位置选择不同成本的设备,对工程成本有了很好的规划。这种特性也使OSPF路由协议能够在大规模的路由网络中正常高效地工作。
1.链路
将运行OSPF路由协议的路由器所连接的网络线路称为链路。
路由器会检查其所连接的网络状态,然后将该信息由自己的所有接口向邻居传送,这个过程称为“泛洪(Flooding)”。运行OSPF路由协议的路由器,由邻居处得到关于链路的信息,并且将该信息继续向其他邻居传送。
2.链路状态
链路的工作状态,是正常工作,还是发生故障,这些相关的信息称为链路状态。
在OSPF中,只需要发送链路状态信息就可以确保对网络的掌握。也是通过这种信息来交换学习路由信息。
3.区域
OSPF路由协议会把大规模的网络划分成多个小范围的区域,以避免大规模网络所带来的弊病,从而提高网络性能。OSPF中区域的划分是非常重要的内容,很多公司的面试题都会涉及到这个方面,后面会具体了解OSPF。
4.邻居
在同样运行OSPF路由协议的两台路由器物理直连时,就可以成为邻居关系。只有成为了邻居关系它们互相才能交换路由信息。当线路出现问题时,可以通过查看邻居状态来排除故障。
5.链路开销
OSPF路由协议通过计算链路的带宽来计算非常好的路径的选择。每条链路根据带宽不同会有不同的度量值,这个度量值在OSPF路由协议中称作“开销(Cost)”。
10Mbps的以太网的链路开销是10,16Mbps令牌环网的链路开销是6,FDDI或快速以太网的开销是1,2M串行链路的开销是48,56KB串行线路的开销为1785。
路由器将整条路径的开销相加,所得之和最小的值为非常好的路径。
6.邻居表
与EIGRP、IS-IS一样,OSPF路由协议也需要维系3张表。最基础的就是邻居表。
凡是与路由器同在OSPF路由协议中并且物理直连的路由器都会被收录在该表中,只有形成了邻居表,路由器才可能像其他的路由器学习拓扑结构。
7.拓扑表
当路由器建立了邻居表之后,运行OSPF路由协议的路由器会互相通告自己所了解的网络拓扑建立拓扑表。在一个区域里,所有的路由器应该形成相同的拓扑表。只有建立了拓扑表之后,路由器才能使用SPF算法从拓扑表里计算路由。
8.路由表
路由器依靠路由表来为数据包进行路由操作。在运行OSPF路由协议的路由器中,当完整的拓扑表建立起来之后,路由器便会按照链路带宽的不同,使用SPF算法从拓扑表例计算出路由,记入路由表。
9.路由器标识(Route ID)
路由器标识不是为路由器起的名称,而是路由器在OSPF路由协议操作中对自己的标识。一般来说,在没有配置回环接口(Loopback Interface:一种路由器上的虚拟接口,它是逻辑存在的,路由器上并没有这种物理接口,它是永久开启的。)时,路由器的所有物理接口上配置的最大IP地址就是这台路由器的标识。如果在路由器上配置了回环地址接口,则不论回环地址上的IP地址是多少,该地址都自动成为路由器的标识。当在路由器上配置了多个回环接口时,这些回环接口中最大的IP地址将作为路由器的标识。
在实际工程中,可能会遇到没有设置Route ID的情况,由路由器默认的最大物理接口地址为Route ID,而这个接口并没有连接任何设备,也就是Shut Down状态,在这时不管这台路由器的其他接口状态如何,OSPF都将随着Route ID的Shut Down而不启动。所以,在设置Route ID时一定要选用Loopback地址作为Route ID,因为这个地址是永久不关闭的,而且最好有完善的规划。
10.LSA与LSU
路由器对某一条线路的状态更新称为LSA,对一组链路的状态更新称为LSU,LSU更新包里可包含多个LSA。
11.DR与BDR
当几台路由器工作在同一网段上时,为了减少网段中路由信息的交换数量,OSPF路由协议定义了DR和BDR。负责收集网络中的链路状态通告,并将他们集中发给其他的路由器。BDR实际上是DR的备份,在DR本身没有问题时,BDR并不工作,一旦DR出现了问题BDR就会接替DR的工作。在实际工程中,DR与BDR的概念应用并不广泛。