OSPF协议

1 OSPF 是一种公有协议
2 OSPF 的网络 是没有网络规模限制的
3 OSPF 支持层次化的网络设计(2层 骨干区域与非骨干区域)
分层设计
骨干区域
非骨干区域
表示 十进制
点分十进制
举例 area 0 area 2
area 0.0.0.1 area 0.0.0.2
注意
OSPF网络中
所有非骨干区域必须连着骨干区域

osfp 工作过程

1 建立邻居-邻居表

通过参数进行协商,满足邻居的建立条件
show ip ospf neigihbor (路由器邻接表/邻居表)
凡是出现在这个表中的设备 都称之为邻居  
只有当状态成为full的时候 才可以称之为邻接 两边设备的数据库 必须完全一致 
邻居不一定邻接 但邻接一定是邻居
show ip ospf neigihbor
neighbor ID表示的是对端设备的OSPF router-id
 pri 
 state (state/role) 表示的是对端设备的状态以及角色 
 down 邻居之间的关系挂掉了 
 inint 初始化状态 表示受到了对方发送来的OSPF包 

 attempt 该状态只有在单播环境下 才可以看到
 two-way 双向通信状态 表示对方发送的OSPF包中 包含着自己的信息
 exstart 交换初始化状态
             主要目的是为了确定交换过程中的主从关系
             从而实现 后期的交换过程 是稳定的 可靠的
 exchange 交换状态 在该状态进行数据库的同步 本质上交换的其实仅仅是数据库的目录
 loading 加在状态 该状态加在的双方数据库中的真实的条目
 full 完全邻接状态 该状态表示双方的数据库内容 完全一致了

2形成数据库-LSDB(link-state database)

该表中包含的就是数据库条目
即 LSA- link state advertisement
链路状态通告

3计算路由 - 路由表

每一个OSPF路由器 都会基于数据库中的LSA
进行路由计算 通过SPF算法 从而形成 最终的路由表 基于SPF算法计算出的路由 不会出现环路

OSPF 报文类型

Hello 用于建立 维护 与拆除邻居关系
         该报文是周期性发送
           周期是10s(广播网络 点到点)
           邻居的存活时间是 40s

           周期 30s (非广播网络)
           邻居存活时间 120s 
DBD database description  数据库描述报文
      用于交换 同步数据库之前的准备工作
LSU 链路状态更新 里面包含是LSA (链路状态通告) 
LSAck 链路状态确认报文,确保LSA的可靠传输
LSR 链路状态请求 

OSPF配置

R1(config)router ospf 1 启用OSPF进程1
R1(config-router)#router 1.1.1.1(可以不设置) 为路由器起一个名字
R1(config-router)#network 10.1.1.0 0.0.0.255 area 0
R1(config-router)#network 192.168.1.0 0.0.0.255 area 0
network 192.168.1.1 0.0.0.0 area 0
network的作用
RIP/IGRP/EGIRP
1 network 后面跟的是一个ip地址范围
2 network 后面根的ip地址所覆盖的本地设备的接口 都启用了该路由协议 (OSPF)
该端口可以发送该协议的报文
该端口可以接收该报文的协议
将该端口上的ip地址中的网络部分放入协议报文中 传输出去

相关验证命令

show ip ospf neighbor 查看邻居表
show ip ospf database 查看数据库
show ip route ospf 查看ospf的路由表
show ip protocols 查看当前设备上运行的所有动态路由协议
show ip ospf 查看OSPF 的相关信息

OSPF中的路由器角色

骨干路由器- 所有端口都属于骨干区域
非骨干路由器 所有端口都属于非骨干区域
区域边界路由器 ABR(area border router) 区域边界路由器 同时连着骨干区域与非骨干区域的路由器
作用 把非骨干区域里面的路由算出来放入骨干区域中

注意 只有在 广播网络环境中 建立邻居的路由器之间才会有这种角色划分
常见的广播网络环境 ethernet 即以太网

任何类型的路由协议 引入路由条目的方式

1 network 仅仅是针对设备本地的直连路由
通过该方式引入到协议的数据库中的路由 称为内部路由
2 redistribute 重分发/ 重发布
通过该方式引入到协议的数据库中的路由 称为外部路由
该方式 可以引入设备本地的所有类型的路由
命令
config#router ospf 1
redistribute static subnets

相同点 都可以将路由引入到数据库中
不同点 network仅仅针对直连
redistribute 可以引入所有类型
不同点 network 命令匹配的链路 可以收/发 OSPF
redistribute 命令 没有让一个端口收/发 OSPF报文的功能