OSPF(Open Shortest Path First开放式最短路径优先 -链路状态路由协议
OSPF分为OSPFv2和OSPFv3两个版本,其中OSPFv2用在IPv4网络,OSPFv3用在IPv6网络
思科OSPF的协议管理距离(AD)是110,华为OSPF的协议管理距离是10
通告网络接口的状态来建立链路状态数据库,生成最短路径树,每个OSPF路由器使用这些最短路径构造路由表
-
Attempt: 只适于NBMA网络,在NBMA网络中邻居是手动指定的,在该状态下,路由器将使用HelloInterval取代PollInterval来发送Hello包。
-
Init: 表明在DeadInterval里收到了Hello包,但是2-Way通信仍然没有建立起来。
-
two-way: 双向会话建立,而RID彼此出现在对方的邻居列表中。(若为广播网络:例如:以太网。在这个时候应该选举DR,BDR。)
-
ExStart: 信息交换初始状态,在这个状态下,本地路由器和邻居将建立Master/Slave关系,并确定DD Sequence Number,路由器ID大的的成为Master。
-
Exchange: 信息交换状态,本地路由器和邻居交换一个或多个DBD分组(也叫DDP),DBD包含有关LSDB中LSA条目的摘要信息。
-
Loading: 信息加载状态:收到DBD后,将收到的信息同LSDB中的信息进行比较。如果DBD中有更新的链路状态条目,则向对方发送一个LSR,用于请求新的LSA。
-
Full: 完全邻接状态,邻接间的链路状态数据库同步完成,通过邻居链路状态请求列表为空且邻居状态为Loading判断
SPF的八种状态机:
1.down
刚启动OSPF进程,还未收到邻居的任何信息。
2.attempt
只发生NBMA网络中,使用单播更新,发送HELLO分组,但从邻居没有收到任何信息。
3.init
只有一方收到的另一方的HELLO数据包,并且在邻居字段中收到对方的route-id.
4.two-way
本路由器收到对方的HELLO数据包,并且在邻居字段中看到自己的route-id.
5.exstart
在交换DBD之前阶段选出主/从路由器。
6.exchange
完成协商交换DBD.
7.loading
向对方发送LSA请求分组确定自己少哪些LSA,发送LSU告诉对方自己详细的LSA信息。并用LSA ACK确认。
8.full
数据同步,完成邻接关系。
OSPF邻居关系停在各状有态的原因:
一.OSPF邻居表为空
1.接口上没有启动OSPF
2.访问列表阻止了HELLO包分组。
3.hello间隔与DEAD时间不匹配。
4.区域ID不匹配。
5.PASSWD不对。
6.一个OSPF邻接体存在第二个IP地址。
7.frame-relay map中缺少broadbast关键字。
二.OSPF邻居关系停在ATTEMPT状态:
1.错误配置了neighbor语句。
2.ACL阻止了HELLO分组。
3.NBMA中单播中断。
三.OSFP邻居关系停在INIT状态:
1.hello在某一边丢失。
2.验证某一边启用。
四.OSPF邻居在TWO-WAY:
1.二边的优先级都为0
五.OSPF邻居停滞exstart/EXCHANGE状态
1.不匹配接口的MTU(可以使用ip ospf mtu-ingore忽略,在MTU小的一方打)
2.在邻居上有重复的ROUTE-ID.
(120/1)代表120是最大管理距离,1是当前的跳数,也是就说这是个rip协议,静态路由。
思科各路由协议的优先级排名(从高到低)
DIRECT | 0
STATIC | 1
EIGRP Summary | 5
eBGP | 20
内部 EIGRP | 90
IGRP | 100
OSPF | 110
IS-IS | 115
RIP | 120
EGP | 140
外部EIGRP | 170
iBGP | 200
未知 | 255