前言
什么是OSPF?
OSPF(OpenShortestPathFirst,开放最短路径优先)是IETF(InternetEngineering
TaskForce,互联网工程任务组)组织开发的一个基于链路状态的内部网关协议。目前针对
IPv4协议使用的是OSPFVersion2。
OSPF是如何工作的?
每台OSPF路由器根据自己周围的网络拓扑结构生成LSA(链路状态通告),并发送给
周围的OSPF路由器;每台路由器都会收集其他路由器的LSA,所有LSA放在一起便组成了
lsdB(链路状态数据库)。OSPF路由器将lsdB转换成一张拓扑图,再根据SPF算法算出到
每个节点的最短路径。
OSPF的优点
1.Open,开放,兼容性好,各厂家支持。
2.SPF算法为树形算法,清晰区域内真实网络拓扑,路由计算精确,无环
3.相对于RIP,没有跳数限制,可支持中大型网络。
4.相对于RIP,收敛速度更快
5.相对于RIP,以接口Cost(默认由带宽决定)来判断路由优劣,而不是基于跳数。
OSPF的区域
一个OSPF网络可以划分为多个区域(Area),如果只包含一个区域,则这样的OSPF网络称为单区域OSPF网络;如果一个OSPF网络包含了多个区域,则这样的OSPF网络称为多区域OSPF网络。
在OSPF网络中,每一个区域都会有对应的编号,Area-ID,其中ID可以是任意十进制数字。
一般称Area-ID为0的区域称为骨干区域,其他区域称为标准区域。单区域的OSPF网络只包含一个区域,所以这个区域必须是骨干区域(不用Area0照样可以,只是不利于扩展)。
在多区域的OSPF网络之中,所有非骨干区域的网络都必须与骨干区域直接相连,非骨干区域不允许直连。所以,标准区域之间的通信必须通过骨干区域中转才能进行。
OSPF区域中的4种路由器
IR:如果一台OSPF路由器属于单个区域,即该路由器所有接口都属于同一个区域,那么这台路由器称为IR(InternalRouter)。
ABR:如果有一台路由器的某些接口属于Area0,其他接口属于别的区域,则这样的路由器被称为ABR(区域边界路由)。
ASBR:如果有一台路由器是与本网络(OSPF)之外的网络(例如RIP、EIGRP、静态路由等)相连,且将外部网络的路由信息引入本网络,这样的路由器称为ASBR(自治系统边界路由器)。
骨干路由器(BackboneRouter):该类路由器至少有一个接口属于骨干区域。因此,所有的ABR和位于Area0的内部路由器都是骨干路由器。
OSPF中支持的4种网络类型
1.广播类型(Broadcast)
2.NBMA类型Non-BroadcastMulti-Access)
3.点到多点P2MP类型(Point-to-Multipoint)
4.点到点P2P类型(point-to-point)
链路状态LSA
OSPF是一种基于链路状态的路由协议,相对于RIP协议通过矢量判断路径的跳数,它更注重路径的状态。链路状态(LSA)就是OSPF接口上的描述信息,例如接口上的IP地址,子网掩码,网络类型,Cost值等等。
的
这样,网络中所有的OSPF路由器都拥有整个网络的链路状态,能通过链路状态描绘出相同的网络结构。
OSPF的5种数据报文
1.Hello报文:周期性发送,用来发现和维持OSPF邻居关系。
2.DD报文:描述本地lsdB(LinkStateDatabase链路状态数据)的摘要信息,用于两
台设备进行数据库同步。
3.LSR报文:用于向对方请求所需的LSA。
4.LSU报文:用于向对方发送其所需要的LSA。
5.LSAck报文:用来对收到的LSA进行确认。
OSPF建立邻接关系过程的7个状态
1.down:双方路由器没有进行任何交互
2.Init:此状态只能交换hello报文,无任何其他信息
3.two-way:hello报文交换之后,达到two-way状态,建立邻居关系
4.Exstart:进行主从关系选举,确定谁先发送DD报文
5.Exchange:交互DD报文,建立各自拓扑表。
6.Loading:请求对方路由信息,交互LSA,LSU,LSACK报文
7.Full:建立邻接关系,lsdB同步。
邻居和邻接
在OSPF中,邻居(Neighbor)和邻接(Adjacency)是两个不同的概念。
OSPF路由器启动后,便会通过OSPF接口向外发送Hello报文。收到Hello报文的OSPF路由器会检查报文中所定义的参数,如果双方一致就会形成邻居关系。
形成邻居关系的双方不一定都能形成邻接关系,这要根据网络类型而定。只有当双方成功交换DD报文,交换LSA并达到lsdB的同步之后,才形成真正意义上的邻接关系
OSPF的建立过程
OSPF的建立过程可以简单分为以下3个过程
1>建立邻居关系
2>建立各自的拓扑表
3>建立邻接关系
1.建立邻居关系。
双方路由器初始为down状态,连接之后进入init状态,开始互相交换hello数据
包,通过hello报文得到路由器基本信息之后,进入two-way状态,开始建立邻居关系。
邻居关系建立之后进入exstart状态。
2.建立各自的拓扑表
进入exstart状态后确立主从关系,互相交换LSA摘要信息之后变为exchange状态
3.建立邻接关系
正在同步lsdb(链路状态数据库),但还未同步完成,两台设备的关系是loading
完成lsdb同步,进入full状态,成立邻接关系。
在此我整理了一份资料,算是给能看到这里的朋友一个福利,包括常见网络故障排查方法文档,常见路由器交换机配置视频以及网工资料包。
需要获取这份网工资料包的小伙伴可以直接转发 关注后私信(学习)即可获取哦!
,