工作原理

两个相邻的Router通过Hello报文建立邻区关系, 然后通过交换链路状态信息建立邻接关系,之后根据SPF算法计算出目的路由的最短路径加入路由表中。
过程中使用了5种报文,3个阶段,4张表和7种状态。

5种报文:

  • Hello 报文: 建立并维护邻居。
  • DBD报文: 发送链路状态头部信息。
  • LSR 报文: 发送需要的路由的请求。
  • LSU报文: 需要的信息 返回去邻区。
  • LSAck: 确认收到的LSU.

3个阶段:

  • 邻区发现:通过Hello报文建立邻居关系。
  • 路由通告:邻区之间发送链路状态数据库形成邻接关系。
  • 路由计算:根据SPF算法去计算中全路由表中的最佳路由(路径最短的)

4张表:

  • 邻居表:记录邻居关系的路由器.[1]
  • 拓扑表:记录链路状态信息。[1]
  • 路由表: 记录链路状态数据库中的最佳路由。[1]
  • 全局路由:跟其他路由比较得出。
[1] 查看OSPF命令:
 
show ip ospf neighbor  # 查看邻居表
show ip ospf database   # 查看LSDB数据库
show ip ospf route    # 查看路由表

7种状态:

  1. Down: 未检测到活动邻居
  2. Initi: 发出Hello包
  3. Two-way: 收到互发的hello包
  4. Exstart: 确认主从关系(DR/BDR)[2]
  5. Exchange: 交换链路数据信息
  6. Loading: LSR和LSU的交换
  7. Full: 邻居关系完全邻接
[2] DR和 BDR的选举规则:
  *不参与选举的Router称为DRother, 成员*

 1. 根据路由器优先级确定,默认为1(范围0~255,0不参与选举),优先级越大越优先
 2. 根据Router-ID确定,一般手动命令“Router-ID”
 3. 如果没有Router-ID,选举环回口地址最大的
 4. 如果没有环回口,选举接口地址最大的

OSPF网络优点:

- 适用于中大型网络
 - 组播触发更新:  最大生存1小时,30 分钟更新一次。
 - 收敛速度快: 如果网络结构改变,将会以最快速度发送更新。采用周期短的hello维护邻居关系
 - 开销作为度量值: 开销跟带宽有关, 带宽越大开销越小,带宽越小开销越大
 - 避免环路:最短路径算法避免环路

OSPF设计原则

所有非骨干区域要连接骨干区域 area 0;
非骨干区域无法连接area 0, 采用虚链路技术解决;
建议多出口网络,避免单一故障。

OSPF 数据包格式

进行单个数据包调试: Debug ip osfp packet

ospf报文默认时间 ospf lsu报文_路由器

OSPF网络类型

ospf报文默认时间 ospf lsu报文_ospf报文默认时间_02

OSPF LSA类型

  1. LSA 1 Router 最准确的LSA每个路由器都会产生, 在本区域内传播
    承载本地Router所有直连网段的信息,前缀,掩码,OSPF网络类型
查看类型1的LSA:
show ip ospf database router adv-router ROUTER-ID
  1. LSA 2 Network
    只要广播网或NBMA的DR产生, 在本区域内传播
    承载区域内所有成员路由器的直连网段信息,前缀,掩码,OSPF网络类型
    LSA1和LSA2只在本区域内传播,不会穿越ABR
查看类型2的LSA:
show ip ospf database network adv-router ROUTER-ID
  1. LSA 3 Summary
    始发区域的ABR产生域间路由 O IA 在OSPF区域内传播, 穿越一个区域,下一跳改为此区域的ABR的Router-ID
    承载区域内所有ospf成员路由器的直连网段信息,前缀,掩码,OSPF网络类型
    默认LSA3是不汇总的,有多少路由,本区域就宣告多少给其他区域
查看类型3的LSA:
show ip ospf database summary adv-router ROUTER-ID
  1. LSA 4 ASB
    始发区域的ABR产生,在OSPF区域内传播, 穿越一个区域,下一跳改为此区域的ABR的Router-ID
    承载ASBR的Router-ID,给其他路由器指明了ASBR的位置
    有几个ASBR,就有几个LSA4// 有4 就有5
查看类型4的LSA:
show ip ospf database asbr-summary adv-router ROUTER-ID
  1. LSA 5 外部LSA
    始发区域的ASBR产生,在OSPF区域内传播,AS内宣告,下一跳不变就是ASBR的Router-ID,
    宣告外部网络网段给AS内部。 默认不汇总,几个外部网络,就几条LSA5
查看类型5的LSA:
show ip ospf database external adv-router ROUTER-ID
  1. LSA 7 NSSA
    NSSA 非纯末梢区域: 必须是非骨干区域,并且具有ASBR出口的区域 LSA 7和LSA 5格式是相同的
    区别: LSA7是NSSA区域传递的外部路由; LSA 5是骨干区域传递的外部路由
    由NSSA区域的始发ASBR产生,NSSA区域的ABR将LSA 7转成LSA 5传递给Area 0, LSA 7 转 LSA 5是自动转化的,不可逆的转换。下一条是NSSA区域的ABR router-id, 只在NSSA区域内传播
    路由标志:O N1/N2
查看类型7的LSA:
show ip ospf database nssa-external adv-router ROUTER-ID

OSPF 路由标志

路由标志及说明:

O : 域内路由,由LSA 1和LSA 2产生并通告
O IA: 域间路由,由LSA 3通告
O E1/E2[3] : 外部路由,由LSA 5 通告或者来自AS外的网络

[3]外部路由O E1/E2的区别:
      O E1是要计算域内路径开销的
      O E2是不计算域内路径开销,默认为O E2(重分布时可以手动指定为 E1)
  两个都出现的时候,优先选择O E1,路由开销会更加精确。

OSPF 过载保护、被动接口

过载保护:

如果其他Rrouter的LSA条目众多会很消耗路由器资源,此时可以通过限制LSA数目来达到保护的目的

R1(config-router) max-lsa  12000   ---   ? 可以查看有哪些限制条件
定义一个百分比值,当收到LSA的条数超过我指定的值,进行相应的操作,用于限定路由器所能收到的LSA条数
maximum-number   所允许收到LSA的最大条数
[threshold-percentage]  所允许收到LSA的百分比,maximum-number的百分比,默认75%
[warning-only]    只发送警告,不做其它动作,默认是关闭的
[ignore-time]     超过最大值后进入ignore状态的时间,默认5分钟,5分钟后恢复
[ignore-count]    超过多少次后,一直进入ignore状态
[reset-time]      一直进入ignore状态后多长时间重置所有邻居

被动接口
通过设置被动接口来禁用路由器更新和建立邻居关系。多用于末节区域

命令:
passive- interface default   ** 默认全部接口为被动接口
passive-interface s0/1   **设置s0/1为被动接口,不收也不发hello包