OSPF开放最短路径优先 RFC2328
广泛的应用在城域网
链路状态路由协议的工作原理:
路由器和路由器之间相互交互LSA(链路状态通告),形成LSDB(链路状态数据库),根据LSDB运行SPF算法,形成转发信息数据库即路由表
每个一个路由器都是以自己为中心,算出到任意节点的最短路径
三张表
邻居表:存放了所有直连的邻居的信息
拓扑表:存放整个区域的所有链路状态信息
           同一个区域内 LSDB相同
路由表:转发信息数据库
 
OSPF的精华部分
OSPF的区域
传输区域:骨干区域 area 0
常规区域:普通区域 非area0
将对拓扑的局部影响限制在区域内部
普通区域必须和骨干区域直连
 
减少了SPF算法的运行的频率
将详细的LSA的泛洪限制在区域边界
OSPF适用于大型的网络
 
ABR区域边界路由器
ASBR 自治系统边界路由器
 
OSPF的邻居关系
路由器之间互发hello 需要检查hello里面的4个参数
OSPF hello  目的地址224.0.0.5 或者 单播
多路访问 10s holdtime 40s
广域网链路 30s holdtime 120s
 
完全邻接关系-首先要形成邻居关系
OSPF才会正常的工作
 
网络类型
1 WAN 点到点
所有邻居都能形成完全邻接关系
2 LAN 多路访问
DR:指定路由器 收集链路上所有路由器的LSA 然后分发给所有的DRother
BDR:备份指定路由器
在多路访问的链路上面 所有路由器都会和DR和BDR形成完全邻接关系 DRother和DRother形成two-way(双向)状态 不交互LSA
DR的选举是基于链路的 每条多路访问的链路必须选一个DR
 
OSPF的数据包
1 hello
2 DD 链路状态数据库的描述信息
3 LSU 链路状态更新 (详细的LSA)
4 LSR 链路状态请求
5 LSack 
 
OSPF的报文格式
1 版本  版本2 IPv4   版本3 IPv6
2 类型 1-2-3-4-5
3 数据包长度
4 route-id
5 区域ID
6 校验和
7 验证类型 0 没有验证     1 使用简单明文密码验证     2 使用MD5验证
8 验证
9 数据
 
 
OSPF的hello报文
1 route-id
在一个OSPF的区域里用来标识唯一的一个路由器
1 使用route-id命令来配置route-id
2 使用换回口IP最大的IP地址作为route-id
3 使用物理接口IP最大的IP地址作为route-id
 
2 hello时间和死亡时间 就是holdtime时间
  邻居之间必须匹配 一致
  只要修改了hello时间 holdtime 自动就是hello时间的4倍
 
3 邻居 存放邻居的route-id
4 区域的ID
邻居之间必须匹配 一致
5 路由器的优先级  用来选举DR的
6 DR/BDR的ip地址
7 验证字段
邻居之间必须匹配 一致
8 末节的标志
邻居之间必须匹配 一致
 
OSPF邻居关系的状态机
1 INIT 初始化状态
2 双向 选举DR/BDR
           如果停留在此状态 说明邻居是DRother的关系
3 预启动状态 比较route-id 由route-id大的启动交换
4 交换状态 交换DD报文 描述信息
5 加载状态  加载详细的LSA          LSR<->LSU
6 完全邻接状态
DR/BDR->DRother 224.0.0.5
DRother->DR/BDR 224.0.0.6
除了Hello包 剩下的适用这个原则
 
OSPF的基本配置
R2(config)#router ospf 1 进程号 本地意义
R2(config-router)#network 192.168.1.2 0.0.0.0 a 0
R2(config)#int lo 0
R2(config-if)#ip ospf 1 area 2
 
R2#clear ip ospf process 清理OSPF的进程
 
R1(config-if)#ip ospf hello-interval 5 修改OSPF的hello时间
 
DR的选举
1 比较接口的优先级
缺省为1 如果接口优先级为0 代表不参加选举
2 比较route-id route-id大的成为DR
稳定原则:先启动OSPF进程的成为DR
即使来了一个route-id大的 也不会抢占当前的DR 除非清理OSPF的进程
修改OSPF接口的优先级
R1(config-if)#ip ospf priority 0
 
OSPF的网络类型
一 点到点
串口:HDLC PPP
不需要选举DR/BDR
OSPF自动适应网络的类型
 
二 多路访问
   以太网技术为代表
DR:指定路由器 收集链路上所有路由器的LSA 然后分发给所有的DRother
BDR:备份指定路由器
在多路访问的链路上面 所有路由器都会和DR和BDR形成完全邻接关系 DRother和DRother形成two-way(双向)状态 不交互LSA
DR的选举是基于链路的 每条多路访问的链路必须选一个DR
 
NBMA的网络
  代表性 FR ATM
 非广播多路访问  需要选举DR和BDR
 OSPF认为NBMA的网络不能传递广播的数据包,所有不会向外发送hello包,即使这个NBMA的网络可以传递广播
 解决方案
一 手动指定邻居
R1(config-router)#neighbor 192.168.1.2
R1(config-router)#neighbor 192.168.1.3
 
二修改网络类型
R1(config-if)#ip ospf network broadcast
broadcast  non-broadcast  point-to-multipoint point-to-point
R1(config-if)#ip ospf network point-to-multipoint
将所有接口以/32的LSA的形式通告出去  会修正下一跳的错误
 
点到多点非广播多路访问
要选举DR 操作和NBMA是一样的
帧中继的子接口配置为点到多点
R1(config)#int s0/0.1 multipoint
R1(config-subif)#frame-relay map ip 192.168.1.2 102 broadcast
帧中继的子接口的点到点的配置
R1(config)#int s0/0.1 point-to-point
R1(config-subif)#frame-relay interface-dlci 102
 
OSPF不连续区域的解决方案
1 虚链路
 专门用来连接不连续的区域
 R1(config-router)#area 1 virtual-link 2.2.2.2
                                穿越的区域ID    对端的route-id
2 GRE隧道技术
 
 
OSPF的LSA的类型
1 路由器LSA
   每个路由器都会产生类型1的LSA 它是最基础的LSA
   只会在区域内泛洪
2 网络LSA
  只会有DR/BDR产生
  收集类型1的LSA 发送综合类型2的LSA
  只能在区域内传递
3类汇总的LSA
   由ABR产生 向外掩盖了区域内的LSA的特征
   会泛洪到整个AS
  汇总的LSA 并不是汇总路由
    3类LSA和路由非常相像 所以能够在ABR上执行汇总操作
4 ASBR汇总的LSA
   由ASBR通告的 执行汇总的操作
   会在整个AS内部泛洪
5 外部的LSA
   由ASBR来通告的
   原封不动的通告的 不会更改通告的源 包含了某条外部链路的详细信息
 
R1#sh ip ospf database router查看LSA的详细信息
 
OSPF的路由的类型
O 区域内部路由
O IA 区域间路由
O E1 外部路由 加了AS内部的开销
O E2 外部路由  没有加AS内部的开销  默认的
 
 
OSPF的开销
Cost=100MB/bandwithMB
R1(config-router)#auto-cost reference-bandwidth 1000
R1(config-if)#ip ospf cost 1 手动修改接口开销
 
OSPF的汇总
一 在ABR上汇总
R3(config-router)#area 2 range 172.16.0.0 255.255.252.0
                   汇总网段所在的区域
二 在ASBR上汇总
R4(config-router)#summary-address 192.168.0.0 255.255.252.0
 
OSPF的末节的区域
一 末节区域
如果是末节区域或者是完全末节区域
1 区域内的路由器可以是ABR 但不能是ASBR
2 区域内所有路由器必须全部配置为末节区域
3 区域0不能是末节区域
 
末节区域
只接受汇总的LSA(类型3) 不接受外部的LSA(类型5)
ABR会向区域内通告一条缺省路由
R1(config-router)#area 1 stub
 
完全末节区域
只接受类型1和类型2的LSA 不接受类型3 类型4 类型5的LSA
ABR   也会通告一条缺省路由
R1(config-router)#area 1 stub no-summary
 
不那么完全末节区域 NSSA
传递外部LSA(类型5) 在NSSA的区域内外部LSA以类型7的LSA定义
在出去NSSA的时候变成 类型5
R3(config-router)#area 2 nssa
默认是不分发缺省路由
R3(config-router)#area 2 nssa default-information-originate
 
完全末节的不那么完全末节区域
过滤类型3和类型4的LSA 然后ABR会向区域内通告一条缺省路由
其他特点和NSSA是一样的
 
R3(config-router)#area 2 nssa no-summary
 
缺省路由的分发 向整个AS分发缺省路由
R1(config-router)#default-information originate always
 
OPSF的验证
支持两种方式的验证
一 简单密码明文验证
R1(config-if)# ip ospf authentication
R1(config-if)#ip ospf authentication-key cisco
二 MD5的验证
R2(config-if)#ip ospf authentication message-digest
R2(config-if)#ip ospf authentication-key cisco
 
Auth Data: 5ccded19c80c49e599e73f6b8b10a94b