OSPF
的五类包:
一,
1
,
,HELLO
包:建立和维护邻居关系。
HELLO
包中封装
router ID,
路由器
ID,
代表路由器身份的
IP
地址。默认:无环回口是,使用活动物理端口上的最大
IP
作为路由器的
ID,
建议使用环回口,作为环回口
ID.
(config)#init lo0
(config-if)#ip addr ip
掩码
(config-router)#router ospf
进程号
(config-router )#router-id ip
提示:
OSPF
路由器的
ID
,是在
OSPF
进程启动时定义的,为了使配置立即生效,应使用命令
#clear ip ospf process //
重新启动
OSPF
进程。
2.HELLO
包的发送时间,
10
秒。
3.
死亡时间(保持时间),在该时间内未收到
HELLO
包,认为邻居有故障,
40
秒。
4.
邻居信息,申明自己的邻居,
5.
区域
ID
:区域号。
6.
路由器的优先级:用于选举
DR
和
BDR.
7.
DR
的
IP
地址。
8.
BDR
是哪个
IP.
9.
验证密码。
10.
末节区域标识。
二,
DBD
(数据库描述包),
database description
描述链路状态信息。
三,
Request
包查询链路状态信息
四,
UPDATE
包。
更新链路状态信息。
五,
ACK
确认包,对可靠包的确认。
OSPF
的状态
;
1
,
Down state
:关闭状态,未收到邻居的
HELLO
包。
2
,
Init state
初始状态,路由器收到对方的
HELLO
包,把对方加入邻居表(单向)。
3
,
Two-way
:双边状态,路由器互为邻居。
备注:成为邻居的路由器中,没有
DR
和
BDR
,路由器之间的最终状态是双边状态,成为论据的路由器有
DR
和
BDR
,路由器之间的状态将进入准启动状态。
4
,准启动状态
;
协商谁先发链路状态信息。
Router ID
大的先发。
5
,
exchang state
交换状态。
6
,
loading state
加载状态,向邻居发送某链路状态的请求信息。
7,Full state
全,满状态,相互发送链路状态信息。
提示:两台路由器的最终状态是双边状态或全状态。
在R1上建立两个物理端口,IP地址分别是192.168.10.1和202.110.100.1,显然是两个大小不同的IP地址.
R2上也建立两个物理端口,和R1形成邻居关系,并且状态都由loading加载状态到full满状态.
利用show ip ospf 查看路由器的路由ID号.显然是我们刚才较大的那个IP地址.最好多做几个端口.效果会更明显.结论:当不存在环回口时.只有物理端口时,路由ID取IP地址较大的IP地址.
在R1上新建环回口,IP172.16.1.1
直接利用ospf路由将环回口发布出去,我们查看效果.
很显然,效果和刚才一样,没有变化.继续往下看.
删除刚才的ospf路由,让路由器重新学习路由,
再次发布路由
查看,我们看到了路由ID变成了172.16.1.1,是我们刚才配置的环回口的IP地址.
于是总结结论:当环回口和物理端口同时存在时,路由ID优先选取环回口作为路由ID.
再次建立物理端口,IP地址173.16.1.1,这次就不需要像刚才那样说明啦,直接重新学习路由,
发布路由,
显然,路由ID号是173.16.1.1,于是总结结论:
当有多个环回口和多个物理端口同时存在时,路由ID号优先选取环回口的IP地址作为路由ID.并且由大到小选取,然后再考虑物理端口.
另外,这里还存在一个问题,就是存在多台设备时,还可以手工指定路由ID号。
例如我们指定1.1.1.1作为路由ID号。应用命令:(config-router)#router-id 指定的IP地址。
]