OSPF属于链路状态路由选择协议,并且是公有标准,理论上是没有网络规模限制的,支持网络的层次化设计,可以将网络分为2层,是通过“区域”的概念来进行区分的。
-骨干区域 -非骨干区域
所有的非骨干必须与骨干区域直接相连,才能正常通讯。
路由器因为区域的存在,也分为不同的类型:
-骨干路由器:所有链路都属于骨干区域的路由器;
-非骨干路由器:所有链路都属于非骨干区域的路由器;
-区域边界路由器(*) 【ABR:area border router 】:必须同时连接着骨干区域和非骨干区域;
-自治系统边界路由器【ASBR:】:具有引入外部路由能力的路由器,叫做OSPF的 ASBR
工作原理
- 建立邻居表:仅仅使用 hello 报文,OSPF路由,仅仅在 OSPF 邻居路由器之间进行交换
- 同步数据库:LSA-link state advertisement , 链路状态通告
- 计算路由表
实验拓扑图:
实验步骤: - 路由以及loopback 配置ip地址
R1: 192.168.1.1/24 loopback1: 1.1.1.1/24
R2 :192.168.1.2/24 loopback1: 2.2.2.2/24
[r2]interface LoopBack 1
[r2-LoopBack1]ip add 2.2.2.2 255.255.255.0 - 配置ospf
[r2]ospf 1
[r2-ospf-1]area 0
[r2-ospf-1-area-0.0.0.0]net 192.168.1.2 0.0.0.0(精确宣告自己的直连网段接口ip地址)
R1同样思路配置
配置完成ospf宣告之后,就会建立邻居,会弹出很多条目;
上面的1---6就是路由器通过ospf 建立邻居的几个状态,
下面抓取报文分析下:R1 :
R2:
分析:
- Router ID 不一样
- 从图中2可以看出ospf 发包是以组播的方式(224.0.0.5)
- 通过4 可以看出ospf 的区域ID是保持一致的
- 通过5可以看出 hello 包是10 s发一次,且相同
- 通过7可以看出dead 时间是40s,且相同
- 通过6 可以看出options (特殊标记位)是一样的
验证:1. 修改router ID与r1相同,重启ospf 1
修改了router ID相同之后,邻居断开了,说明直接建立邻居关系的路由器,router id一定不能相同
2. 修改区域ID为除0以外数字
所以建立邻居的路由,区域id必须一样
3. 修改hello时间 20s
[r2]in gi 0/0/0
[r2-GigabitEthernet0/0/0]ospf timer hello 20
查看 [r2]dispaly ospf brief 并查看邻居表 [r2]dis ospf p bri所以hello时间必须要相同,同时hello时间变化,dead时间也变化了,并且是4倍hello的变化
4. 修改dead时间为100s,出现以下提示
所以dead时间也要保持一致
综上所述:
- 直接建立邻居关系的路由器,router id一定不能相同
- 所以建立邻居的路由其,区域id必须一样
- 建立邻居关系的路由器,hello时间必须要相同,同时hello时间变化,dead时间也变化了,并且是4倍hello的变化
- 建立邻居关系的路由器,dead时间也要保持一致
通过以上几点分析,可以在网络路由出现问题时提供一些思路
转载于:https://blog.51cto.com/13558034/2067973