计算机网络:OSPF协议概述
OSPF基本信息
- Open Shortest Path Frist
开放式最短路径优先路由协议
。 - 采用的是链路状态路由算法,
没有路由回环
。 - 属于自治系统(AS) 的协议,和RIP一样,主要用于
内部网关协议
。 - 和RIP不同的是,它使用区域划分,适用于大规模的网络。
- 支持
VLSM和CIDR
。 - 使用组播的方式发送协议报文。
- 支持验证。
- OSPF是基于IP的,在IP数据报里面的,协议号是89。
- OSPF是典型的停止等待协议,自身实现了可靠传输。
OSPF(Open Shortest Path First)是一个内部网关协议(Interior Gateway Protocol,简称IGP),用于在单一自治系统(autonomoussystem,AS)内动态选择路由。
与RIP相对,OSPF是链路状态路由协议,而RIP是距离向量路由协议。
OSPF是目前最流行的IGP,具有广泛的应用。
OSPF协议虽然是链路状态算法的路由协议,但是我们曾经说过链路状态算法每个路由器的路由变化都会影响到整个网络上的所有其他路由器,这样就限制了网络的规模。
OSPF使用了划分区域的方式解决了这个限制,使得OSPF突破了网络规模的限制。
OSPF基本概念
链路标识
- 用于唯一确定OSPF路由器
- 一个32位的无符号整数,整个自治系统内唯一
- 若不手动配置,一般取该路由器的所有接口的IP地址的最大值(本地回环地址优先)
链路状态:
- 路由器接口与相邻路由器接口的关系描述,即路由器的链接状态。
链路状态数据库
- 所有路由器的各个接口的链路状态
OSPF的链路代价
规定:
- 一条OSPF链路的代价定义为 :10^8 /bandwidth
- 一条OSPF路由的代价为其经过的所有链路代价的总和
OSPF规定的网络类型
全连通网络的问题
首先,全连通网络是指网络上任意连哥哥路由器之间都互为邻居。
构成n(n-1)/2个邻接关系。
但是:如果直连的路由器互相都建立邻接关系,会造成浪费带宽。
全连通网络的处理
设置DR和DBR两个骨干路由器。
- DR:指定路由器
- BDR:备份指定路由器
- DR负责通告路由,BDR在DR出现问题时变成DR。
选取DR和BDR的规则:
- 选取优先级最大的作为DR,优先级第二大的作为BDR。
- 如果没有设置优先级,那么就选取RouterID最大的。
选取规则
- 投票制:因为优先级大,所以“票”包就发给优先级大的路由器,它就变成了DR。
- 终生制:一旦选取,不可改变,直到发生不可逆转的故障。
在广播式网络或全连通NBMA网络中,任意两台路由器之间都需要传递路由信息(洪泛),如果网络中有N台路由器,则需要建立N*(N-1)/2个邻接关系。
任何一台路由器的路由变化,都需要在网段中进行N*(N-1)/2次的传递。这其中有大量的通告是不必要的且浪费带宽资源。
为了解决这个问题,OSPF协议指定一台路由器DR(Designated Router指定路由器)来负责传递信息。
所有的路由器都只将路由信息发送给DR,再由DR将路由信息发送给本网段内的其他路由器。两台不是DR的路由器称为DROther,它们不再建立邻接关系,也不再交换任何路由信息。
这样,在同一网段内的路由器之间只需建立N个邻接关系,每次路由变化只需进行2N次的传递即可。
OSPF的路由计算过程
每个路由器将自己的链路状态信息洪泛到整个网络,最终每个路由器获得链路状态数据库(LSDB),其中包括所有路由器的链路状态通告(LSA),从而形成网络的拓扑结构。最后以本路由器为根,通过最短路径算法获得到达其他网络的路由。
OSPF数据包格式
OSPF建立邻居关系
OSPF在通告路由的时候采用先通告路由摘要
(路由摘要比实际的路由信息要小的多),再通告对方没有的路由的方式。
OSPF在建立邻居关系时,首先会互相发送自己的路由信息摘要,当收到对方的数据库摘要时对于自己没有的路由信息会发送一个链路状态请求报文给对方,然后对方发送链路状态更新报文。此后,OSPF只发送路由更新信息。
OSPF发现路由的过程
在Exstart State,ospf路由器之间会协商以哪个路由器的序号为主,由于B的route ID大,所以以B的序号为准,进入Exchange State的状态采用可靠传输机制互相发送数据库摘要信息DBD。
OSPF划分区域
- OSPF由于具有划分区域的特性,所以它可以适用于更大的网络。
- 划分区域可以减少洪泛的范围
OSPF划分区域之后,通告路由的方式不再是纯粹的链路状态算法了。
区域内部使用链路状态算法交换路由,区域之间的路由通告由区域的边界路由器(ABR)负责。当区域1中的某个路由器通告路由时,不会洪泛到其他区域的路由器,只会通过区域1的ABR负责通告给其他区域的ABR,其他区域的ABR再根据链路状态算法通告自己区域的其他路由器。
实际上ABR之间的路由通告使用的是距离向量算法。通过上述的措施,OSPF可以支持大规模的网络,最高支持的路由器可以达到1千多台。
每个运行OSPF 协议的接口必须指名属于某一个特定的区域,区域用区域号(Area ID)来标识。区域号是一个从0开始的32 位整数。
必须要有骨干区域area0,所有区域应当和骨干区域物理上直连,保证不后悔出现路由环路的问题
虚连接
如果某个区域无法物理上和骨干区域连接,ospf将无法正确通告路由。
必须采用虚连接的方式,模拟一条线路,解决问题
与自治系统AS的外部通信
设置ASBR自治系统边界路由器
- ASBR(Autonomous System Boundary Router):将其他路由协议发现的路由重分布引入(redistribute)到OSPF 中的路由器。其他路由协议包括静态路由,接口的直接路由,IGP获得的路由和BGP路由。因此,ASBR 并不一定真的位于AS 的边界。
OSPF接口分类与路由器分类
OSPF 协议根据链路层媒体不同分为以下四种网络类型:
(Broadcast、NBMA、Point-to-Point、Point-to-Multipoint)
路由器根据在自治系统中的不同角色划分为:
(IAR、ABR、BBR(骨干区域路由器)、ASBR)
一个运行OSPF协议的接口状态根据接口的不同类型可划分为:
(DR、BDR、DROther、point-to-point)
简单描述了一下OSPF,尽快出一个基于PacketTracer的OSPF的路由配置。
本文来自博客园,作者:{Zeker62},转载请注明原文链接:https://www.cnblogs.com/Zeker62/p/15046185.html