OSPF-1-OSPF的数据库交换(1)
一.OSPF路由器ID(RID)
选举过程:
1.使用router-id id 命令中配置的路由器ID
2.up着的环回接口最大的ip
3.up着的非环回接口最大ip
如果路由器的RID发生了变化,同一区域中的所有其他路由器将会执行新一轮的SPF计算,即使网络拓扑并没有发生任何变化,因为其他路由器无法取法这种变更仅仅是RID的变化,还是网络中更换了一台新路由器
二.建立邻居,交换数据库和建立邻接关系
OSPF使用IP协议号89,有5种类型的OSPF消息,具体如下:
Hello:用来发现邻居,使邻居关系进入2-Way状态,监控邻居后续的活动
DD或DBD(数据库描述):用来交换LSA头部,使其他路由器能够知道邻居的 LSA 列表和版本
LSR(链路状态请求):这个数据包中包含一个或多个LSA,发送方希望邻居提供有关这些LSA的完整信息
LSU(链路状态更新):这个数据包包含LSA的完整信息,用作LSR消息的响应或者表示拓扑变化事件
LSAck(链路状态确认):用来确认已经收到了LSU消息
LSA本身并不是OSPF消息,LSA是一种数据结构,保存在路由器的LSDB中,携带在LSU消息中进行交换
可以使用命令show ip ospf neighbor来查看邻居当前的状态
1.OSPF邻居状态:
这些是邻居的状态,它们表示的是路由器如何看待某个邻居,建立邻居的过程中可以暂时认为对方处于不同的状态,不过最终必须相同
Down:当正常邻接关系突然断开,会出现这种状态,如果一个邻居的状态是Down,表示路由器已经知道了这个邻居的IP地址
Attempt:只存在于NBMA(非广播多访问)和点到多点非广播网络中,进入此状态并以Hello包进行联系
Init:已经从邻居那里收到了有效地Hello包,但里边没有自己的RID,能确定可以接受到自己的数据包,但无法确定其他路由器是否收到了自己发送的数据包
2-Way:已经从邻居那里收到了有效的Hello包,而且这个包里也有自己的RID,这个状态确认两台路由器之间的相互可见,在多访问网络中,如果两台路由器不会形成完全邻接关系,它们就会稳定在2-Way
ExStart:已经确认了双向可见的状态,并且确定这台路由器要与邻居形成完全邻接关系。ExStart的目的在于建立主/从关系。路由器会通过交换空的DD包来比较它们的RID,根据RID决定主从,并且使用相同的起始序列号来确认后续的(Exchange)DD包
Exchange:建立主从后,邻居就会从ExStart状态进入Exchange状态。路由器之间会交换携带已知LSA的DD包,每台路由器建立一个LSA列表,之后其他路由器会下载这个列表
Loading:当邻居通告了完整LSA列表后,路由器发现它要从邻居下载其中一部分LSA,这时就会进入Loading状态。
Full:当路由器从邻居那里下载了所有需要的LSA,邻居就会从Exchange或Loading状态进入Full状态,这是两台路由器建立了完全邻接关系的稳定状态