随着Internet技术在全球范围的飞速发展,OSPF已成为目前Internet广域网和Intranet企业网采用最多、应用最广泛的路由协议之一。OSPF(Open Shortest Path First)路由协议是由IETF(Internet Engineering Task Force)IGP工作小组提出的,是一种基于SPF算法的路由协议,目前使用的OSPF协议是其第二版,定义于RFC1247和RFC1583。
――OSPF
路由协议是一种典型的链路状态(Link-state)的路由协议,一般用于同一个路由域内。在这里,路由域是指一个自治系统(Autonomous System),即AS,它是指一组通过统一的路由政策或路由协议互相交换路由信息的网络。在这个AS中,所有的OSPF路由器都维护一个相同的描述这个AS结构的数据库,该数据库中存放的是路由域中相应链路的状态信息,OSPF路由器正是通过这个数据库计算出其OSPF路由表的。
――
作为一种链路状态的路由协议,OSPF将链路状态广播数据包LSA(Link State Advertisement)传送给在某一区域内的所有路由器,这一点与距离矢量路由协议不同。运行距离矢量路由协议的路由器是将部分或全部的路由表传递给与其相邻的路由器。
直接相连的邻居路由器:
失去与邻居路由器的联系后,路由器通过Hello信息来确定邻居的存活状态。10秒内如果没有收到邻居的Hello信息,或者路由器向邻居所发送的Hello信息没有返回,路由器就会将该路由在路由表删除然后发送LSA通告区域内的其他路由器。
网络或区域内的其他路由器及其相连的网络:
路由器通过LSA来获悉其他路由器和网络,LSA被扩散到整个网络,他存储在拓扑表(LSDB)中。
前往每个目的的最佳路径:
使用SPF算法来计算前往网络中每个目的地的最佳路径。SPF算法是OSPF路由协议的基础。SPF算法有时也被称为Dijkstra算法,这是因为最短路径优先算法SPF是Dijkstra发明的。SPF算法将每一个路由器作为根(ROOT)来计算其到每一个目的地路由器的距离,每一个路由器根据一个统一的数据库会计算出路由域的拓扑结构图,该结构图类似于一棵树,在SPF算法中,被称为最短路径树。在OSPF路由协议中,最短路径树的树干长度,即OSPF路由器至每一个目的地路由器的距离,称为OSPF的Cost,其算法为:Cost = 100×106/链路带宽。在这里,链路带宽以bps来表示。也就是说,OSPF的Cost 与链路的带宽成反比,带宽越高,Cost越小,表示OSPF到目的地的距离越近。举例来说,FDDI或快速以太网的Cost为1, 2M 串行链路的Cost为48, 10M 以太网的Cost为10,56K串行线路的链路开销为1785。然后将根路由器到达每一个目的地的Cost值相加,最小值确定为最佳路径。
区域的概念:
OSPF
路由协议会把大规模的网络划分成多个小范围区域,以避免大规模网络所带来的弊病,从而提高网络性能。
中转区域(骨干区域Area0):主要功能为快速、高效的传输IP分组的OSPF域。中转区域将其他类型的OSPF区域连接起来,通常,中转区域中没有终端用户。根据定义,OSPF区域0(骨干区域Area0)为中转区域。
常规区域:主要功能为连接用户和资源的OSPF区域。常规区域通常是根据职能或地理位置划分的。默认情况下,常规区域不允许另一个区域使用其连接将数据流传输到其他区域。来自其他区域的所有数据流都必须经过中转区域(如区域0)。
OSPF协议推荐每个区域不超过50台机器。全网最多支持1024台路由器。
运行OSPF所维护的三个表:
邻居表:凡是路由器认为和自己有邻居关系的路由器,都会出现在这个表里。只有形成了邻居表,路由器才可能向其他路由器学习网络拓扑。
拓扑表:当路由器建立了邻居表之后,运行OSPF路由协议的路由器会互相通告自己所了解的网络拓扑建立拓扑表。在一个区域里,所有的路由器应该形成相同的拓扑表。只有建立了拓扑表之后,路由器才能使用SPF算法从拓扑表里计算路由。
路由表:路由器依靠路由表来为数据包进行路由操作。在运行OSPF路由协议的路由器中,当完整的拓扑表建立起来之后,路由器便会按照链路带宽的不同,使用SPF算法从拓扑表例计算出路由,记入路由表。
路由器标识(route ID):
路由器标识不是我们为路由器起的名字,而是路由器在OSPF路由协议操作中对自己标识。一般来说,在没有配置回环接口(Loopback interface,一种路由器上的虚拟接口,它是罗杰存在的,路由期上并没有这种物理接口,它是永久开启的。)时,路由期的所有物理接口上配置的最大的IP地址就是这台路由器的标识。如果我们在路由器上配置了环回地址接口,则不论环回地址上的IP地址是多少,该地址都自动成为路由器的标识。当我们在路由器上配置了多个环回接口时,这些环回接口中最大的IP地址将作为路由器的标识。
OSPF
基本配置
Router1:
interface ethernet 0
ip address 192.1.0.129 255.255.255.192
!
interface serial 0
ip address 192.200.10.5 255.255.255.252
!
router ospf 100
//100
是OSPF协议的进程号,范围是1-65535。在同一个使用OSPF路由器协议的网络中的不同的路由器可以使用不同的进程号。一台路由器可以启用多个OSPF进程。
network 192.200.10.4 0.0.0 .3 area 0
//network
发布加入OSPF协议中的接口的网段地址。
Area 0 将该端口发布在区域0中。
network 192.1.0.128 0.0.0 .63 area 1
!
Router2:
interface ethernet 0
ip address 192.1.0.65 255.255.255.192
!
interface serial 0
ip address 192.200.10.6 255.255.255.252
!
router ospf 200
network 192.200.10.4 0.0.0 .3 area 0
network 192.1.0.64 0.0.0 .63 area 2
!
Router3:
interface ethernet 0
ip address 192.1.0.130 255.255.255.192
!
router ospf 300
network 192.1.0.128 0.0.0 .63 area 1
!
Router4:
interface ethernet 0
ip address 192.1.0.66 255.255.255.192
!
router ospf 400
network 192.1.0.64 0.0.0 .63 area 1
!
相关调试命令:
show ip ospf
show ip ospf interface
show ip ospf neighbor
show ip route
项目:
荣新外企
IT
培训中心在上海成立了两家分支机构,需要与北京的两家分支机构互联。为了良好的拓展性,两个分支机构的路由器需要先分别连接到总公司的两台核心设备,然后再将两台核心设备互联。使用
OSPF
路由协议进行互联。
项目要求:
规划网络拓扑结构并配置设备。
多域的
OSPF
应用
virtual-link
:
1.
某一个域与骨干域不相连需要使用
virtual-link
2.
在一个
OSPF
网路中不能存在多个
OSPF
域如果存在
2
个以上的
OSPF
域需要启用
virtual-link
3.
virtual-link
命令表达方法:
area area-id virtual-link router-id
area-id
应使用需要将两个
area
串联的中间那个
area
的
id
,
router-id
使用对端设备的
router-id
。