OSPF协议基础:
1、宣告OSPF的路由器从所有启动OSPF协议的接口上发出HELLO报文,两台ROUTER共享一条公共数据链路,并且能够相互成功协商各自HELLO报文中所指定的参数。那么它们就成为邻居(Neighbor)
2、邻接关系(Adjacency)建立是交换HELLO报文信息的路由器类型和交换HELLO报文信息的网络类型决定的
3、每一台ROUTER都会在所有形成邻接关系的邻居之间发链路通状态通告(Link State Advertisement,LSA) LSA 主要是通告描述了路由器所有的链路信息(OR 接口)和链路状态信息。由于链路状态信息的多样性。OSPF协议定义了许多LSA类型
4、每一个收到从邻居ROUTER发出的LSA通告的 ROUTER都会把这些LSA通告记录在它的链路状态数据库当中,并且发送一份LSA的拷贝给该ROUTER的其它所有邻居
5、通过LSA扩散到整个区域。所有的ROUTER都会形成同样的链路状态数据库
6、当所有的ROUTER的数据库都完全相同时,每一台路由器都将以它本身为根,使用SPF算法去计算一个无环路的拓朴图。来描述它所知道的到达每一个目的地的最短路径(最小的路径代价),这个拓朴图就是SPF算法树
7、每一台路由器都将从SPF算法树中构建出自己的路由选择表
说明:当所有的链路状态信息扩散到一个区域内的所有路由器上---也就是说,链路状态数据库同步了,---并且成功创建路由选择表时,OSPF协议就变成了一个“安静”的协议。邻居之间交换的HELLO报文称为KEEPALIVE(保持)报文。并且每隔30MIN重传一次LSA。
Router ID是在OSPF区域内唯一标识一台路由器的IP地址.这个IP地址首先他选取所有的LOOPBACK接口上数值最高的IP地址,如果ROUTER没有配置IP地址的LOOPBACK接口,那么ROUTER将选取它所有的物理接口上数值最高的IP地址。用作路由器的ID接口不一定非要运行OSPF协议。
使用LOOPBACK地址作为ROUTER ID有两个好处:
一个是LOOPBACK接口比任何其它的物理接口都更稳定,因为只要路由器启动,这个环回接口就处于活动状态,只有这个ROUTER失效时它才会失效。
二是:它具有良好控制ROUTER ID的能力。
OSPF路由器利用HELLO报文通告它的ROUTER ID来开始建立和邻居的关系。
HELLO报文协议服务于以下几个目的:
1、它是发现邻居路由器的方法;
2、在两台路由器成为邻居之前,需要通过HELLO报文协议通告这两台路由器必须相一认可的几个参数;
3、HELLO报文在邻居路由器之间担当KEEPALIVE的角色;
4、它确保邻居路由器之间的双向通信;
5、它用来在一个广播网络OR非广播多址(nbma)的网络上选取指定路由器(Designated Router,DR)和备份指定路由器(Backup Designated Router,BDR)
在思科路由器上面,HELLO默认10S发送一次,可以通过ip ospf hello-interval来更改
路由器的无效时间间隔是默认HELLO时间间隔的4倍可以通过ip ospf dead-interval来更改
一个HELLO报文包含以下部分:
始发路由器的路由器的ID(Router ID)
始发路由器接口的区域ID (Area ID)
始发路由器的接口的地址掩码
始发路由器接口的认证类型和认证信息
始发路由器接口的HELLO时间间隔
始发路由器接口的路由器无效时间间隔
路由器的优先级
指定路由器(DR)和备份指定路由器(BDR)
标识可选的性能的5个标记位
始发路由器的所有有效邻居的路由器的ID
一台路由器从它的邻居路由器收到一个HELLO报文时,它将检验这个HELLO报文携带的区域ID、认证信息、网络掩码、HELLO间隔时间、路由器无效时间间隔以及可选项的数值是否和接收接口上配置的对应值相符合,不符合,这个HELLO就不要,邻接关系也无法建立,
OSPF协议定义了5种网络的类型
广播型网络(Broadcast)
非广播多址(NBMA)网络
点到点网络(Point-to -Point)
点到多点网络(point-to -multipoint)
虚电路(virtual links).