OSPF基本功能简介


OSPF基本功能
[三张表,四个过程,六个报文]

1 OSPF VS RIP

区别点RIPOSPF
名称路由信息协议开放最短路径优先协议
算子基于距离向量的路由选择协议基于链路状态的路由选择协议
度量跳数开销
限制16跳不限制
数据传送UDPIP
环路NULL
………………

2 三张表

2.1 邻居表

HELLO报文----相邻的路由器hello报文参数协商一致建立邻居,同时完成DR/DBR的选举

2.2 拓扑表(LSDB)

网段内是1类LSA,传递链路信息
指定路由器DR/DBR参与的是2类LSA,传递网段的链路信息
区域边界路由器ABR参与的是3类LSA,传递路由信息
自治域边界路由器ABSR参与的是5类LSA,传递外部路由信息
区域边界路由器ABR受5类LSA出发,会向区域发出4类LSA,传递到达ABSR的路由信息

2.3 路由表

SPF算法----生成各自的路由表

2.4 其他表

1 邻居表:记录所有的建立了邻居关系的路由器,也包含相关描述和邻居状态。
2 拓扑表(链路状态数据库LSDB):运行OSPF协议的路由器之间并不是交换路由表,而是交换彼此对于链路状态的描述信息。
3 路由表:运行OSPF协议的路由器在获得完整的链路状态描述之后,运用SPF算法惊醒计算,并且将计算出来的最优路由加入OSPF协议路由表中。
4 转发表(FIB表):Active状态的路由表有系统导入FIB表中,作为系统的转发以及。另外,在某些系统中,FIB表项也可能来源于ARP解析,即系统将通过ARP解析而得到的本地网段内的主机路由也添加到本地网段内的主机路由也添加到FIB表中。FIB表与路由表是同步更新的。
5 快速转发表:当一个数据流的第一个报文通过查找FIB表转发后,再告诉缓存中生成相应的转发信息,该数据流后续保温的转发就可以通过直接查找高速缓存来实现。

3 工作过程

1,每台路由器学习激活的直接相连的网络。
2,每台路由器和直接相连的路由器互交,发送Hello报文,建立邻居关系。
3,每台路由器构建包含直接相连的链路状态的LSA(Link-State Advertisement,链路状态通告)。链路状态通告(LSA)中记录了所有相关的路由器,包括邻路由器的标识、链路类型、带宽等。
4,每台路由器泛洪链路状态通告(LSA)给所有的邻路由器,并且自己也在本地储存邻路由发过来的LSA,然后再将收到的LSA泛洪给自己的所有邻居,直到在同一区域中的所有路由器收到了所有的LSA。每台路由器在本地数据库中保存所有收到的LSA副本,这个数据库被称作“链路状态数据库(LSDB,Link-State Database)”
5,每台路由器基于本地的“链路状态数据库(LSDB)”然后执行“最短路径优先(SPF)”算法,并以本路由器为根,生成一个SPF树,基于这个SPF树计算去往每个网络的最短路径,也就得到了最终的路由表。

3.1 邻居建立

邻居建立过程

DownUp -> Init->2-way->ExStart->Exchange->Loading->Full
(1) 接口up,发送Hello包,
(2) 收到Hello包,检查Hello中携带的参数,如果匹配,进入Init状态;并将该Hello包的发送者的Router ID,添加到Hello包(自己将要从该接口发送出去的Hello包)的邻居列表中。
(3) OSPF路由器接口收到邻居列表中含有自己Router ID的Hello包,进入Two-way状态,形成OSPF邻居关系,并把该路由器的Router ID添加到自己的OSPF邻居表中。
(4) 在进入Two-way状态后,广播、非广播网络类型的链路,在DR选举等待时间内进行DR选举。点对点没有这个过程。
(5) 在DR选举完成或跳过DR选举后,建立OSPF邻接关系,进入exstart(准启动)状态;并通过交换DBD交换主从路由器,由主路由器定义DBD序列号,Router ID大的为主路由器。目的是为了解决DBD自身的可靠性。
(6) 主从路由器选举完成后,进入Exchange(交换)状态,通过交换携带lsa头部信息的DBD包描述各自的LSDB。
(7) 进入Loading状态,对链路状态数据库和收到的DBD的LSA头部进行比较,发现自己数据库中没有的LSA就发送LSR,向邻居请求该LSA;邻居收到LSR后,回应LSU;收到邻居发来的LSU,存储这些LSA到自己的链路状态数据库,并发送LSAck确认。
(8) LSA交换完成后,进入FULL状态,同一个区域内所有OSPF路由器都拥有相同链路状态数据库。
(9) 定期发送Hello包,维护邻居关系。

3.2 LSDB更新

LSDB更新

3.3 计算路由表

最短路径优先算法—最短路径问题是图论研究中的一个经典算法问题,旨在寻找图(由结点和路径组成的)中两结点之间的最短路径。算法具体的形式包括:
(1)确定起点的最短路径问题- 即已知起始结点,求最短路径的问题。适合使用Dijkstra算法。
(2)确定终点的最短路径问题- 与确定起点的问题相反,该问题是已知终结结点,求最短路径的问题。在无向图中该问题与确定起点的问题完全等同,在有向图中该问题等同于把所有路径方向反转的确定起点的问题。
(3)确定起点终点的最短路径问题- 即已知起点和终点,求两结点之间的最短路径。
(4)全局最短路径问题- 求图中所有的最短路径。适合使用Floyd-Warshall算法
(凑字数的一段)

4 报文和封装

4.1 包格式

OSPF和EIGRP一样,也被设计成一个网络层协议,协议号89
包格式
包格式解释如下:
数据链路层头部:OSPF使用的组播IP地址是224.0.0.5(非DR和BDR路由使用的地址)和224.0.0.6(DR和BDR使用的组播地址),这两个组播地址对应的MAC地址分别为:“01-00-5E-00-00-05"和"01-00-5E-00-00-06”。
包头部:协议号是89,源IP是发送路由的IP,目的IP是组播IP地址224.0.0.5或224.0.0.6。
OSPF头部:包括路由ID和所在的区域号、包的类型代码(5种类型的包代码)。
OSPF包对应的数据:不同包具有不同的内容。

4.2 包类型

1)Hello包
Hello报文用来建立和维护OSPF路由器间的邻接关系,它的主要作用是:发现OSPF邻居,建立和维护邻接关系;在多路访问中选择DR和BDR。OSPF泛洪链路状态通告给其他路由前需要先建立邻接关系,通过在OSPF协议的接口上发送Hello报文判断是否有其他OSPF路由器运行在相同的链路上。
双方要建立邻接关系,Hello报文中的区域号、Hello间隔和dead间隔、验证(如果有)以及区域类型都要一致。在广播(如以太网)和点对点链路(如串行线路)中,Hello间隔默认是10秒;dead时间默认是Hello间隔的4倍(40秒);非广播多路访问(NBMA),比如帧中继网络中默认Hello间隔是30秒。
2)DBD(Database Description,数据库状态描述包)DBD包是发送端对自己链路状态数据库的一个简短描述,接收路由器根据接收到的DBD包对比自己的链路状态数据库,检测发送端和接收端的链路状态数据库是否同步。
3)LSR(Link-State Request,链路状态请求包)接收端可以发送LSA来请求接收到的DBD中的某些详细信息。
4)LSU(Link-State Update,链路状态更新包)LSU用来更新OSPF路由信息,回复LSR请求。
5)LSAck(Link-State Acknowledgement,链路状态确认)当收到一个LSU,路由器发送LSAck确认

5 名词解析

OSPF(Open Shortest Path Frist):开放式最短路径优先协议,类似IS-IS协议。
LSA(Link State Advertisement):链路状态信息公告。
LSR(Link State Request):链路状态信息请求。
LSU(Link State Update):链路状态信息更新。
DR(Designated Router):指定路由器
BDR(Backup Designated Router):指定备份路由器
DD(Database Description):数据库描述
AS(autonomous system):自治域系统
STUB(stub):末梢区域
NSSA(not so stubby area):不完全末梢区域
ABR(Area Border Router):区域边界路由
ASBR(Autonomous System Border Router):自治系统边界路由
LSDB:链路状态数据库

  • 2
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值