菜单
本页目录

OSPF(开放最短路径优先协议)整理

一、OSPF特点

  • 无环性:天然无环,避免路由环路。
  • 支持区域划分:通过划分区域,优化路由计算。
  • 链路状态:基于链路信息发现并计算路由。
  • 维护LSDB(链路状态数据库):保存链路状态信息。
  • 路由传递:不直接传递路由,而是通过链路状态更新。

二、OSPF作用

  • 发现、计算和维护最优IP路由

三、OSPF工作过程

  1. 建立邻居并维护邻居关系
  2. 同步链路信息
  3. 更新链路状态信息
  4. 同步计算路由
  5. 维护路由表

四、OSPF报文

报文格式

  • 通用报文头 + 具体类型细节。

报文类型

  1. Hello报文
  2. DB描述报文(DD)
  3. 链路状态请求报文(LSR)
  4. 链路状态更新报文(LSU)
  5. 链路状态确认报文(LSAck)

五、OSPF网络类型

  1. 广播网络:有DR/BDR选举。
  2. 点到点(P2P)网络:无DR/BDR选举。
  3. 非广播多点可达(NBMA)网络:通过手动配置模拟广播。
  4. 点到多点(P2MP)网络:无需DR/BDR,直接通信。
  5. 虚链路(VLink)网络
    • 用于将非骨干区域连接到骨干区域。
    • 应用场景:
      1. 非骨干区域与骨干区域无直连。
      2. 骨干区域被分割。
    • 建立方式:通过Router-ID建立。

六、OSPF通信地址

helloDD报文LSULSA
Broadcast224.0.0.5单播单播224.0.0.5或者224.0.0.6
组播224.0.0.5单播单播224.0.0.5或单播
PtoP224.0.0.4224.0.0.4224.0.0.4224.0.0.4
NBMA单播单播单播单播
VLink单播单播单播单播

七、OSPF认证

认证类型

  1. 接口认证:仅对特定接口生效,需链路中所有接口一致。
  2. 区域认证:对整个区域生效,需区域内所有设备一致。

认证模式

  1. 明文认证:密码以明文传递(例如:simple)。
  2. 密文认证:密码通过加密方式传递(例如:md5HMAC)。

密码保存方式

  1. 明文保存:密码以明文存储。
  2. 密文保存:密码加密存储。

注意

  • 认证类型和模式需一致,否则无法建立邻居。
  • 接口认证优先于区域认证。

八、OSPF状态机

  1. Down:未建立邻居。
  2. Attempt:NBMA网络中尝试发现邻居。
  3. Init:发送Hello报文但未收到回应。
  4. 2-Way:邻居协商成功,建立邻接关系。
  5. ExStart:主从协商,发送首个DD报文。
  6. Exchange:同步LSA摘要(LSA Header)。
  7. Loading:发送LSR、LSU以同步链路详细信息。
  8. Full:完成链路同步。

九、OSPF邻居建立

通过发送Hello报文实现邻居建立

邻居建立的步骤:

  1. 发送初始Hello报文

    • 本端设备发送第一个Hello报文,此时对端设备也会发出自己的第一个Hello报文。
    • 这些Hello报文中的邻居信息字段为空(共2个Hello报文交互)。
  2. 收到对端Hello报文并更新邻居信息

    • 本端设备收到对端第一个Hello报文后,会结合自身的配置信息进行邻居协商。
    • 协商成功后,本端会向对端发送一个包含邻居信息的Hello报文(这是本端的第二个Hello报文,网络中的第3个Hello报文)。
    • 此时,本端的邻居关系已经建立完成。
  3. 对端处理并确认邻居关系

    • 对端设备按照同样的逻辑,回复一个包含邻居信息的Hello报文(网络中的第4个Hello报文)。
    • 至此,双方的邻居关系完全建立。

邻居建立完成的标志性事件:

  1. 状态进入 2-Way
    邻居关系进入 2-Way 状态,表明基础的Hello交互已完成。
  2. 在收到的Hello报文中找到自己的 Router-ID
    表示对端设备已将本端作为邻居。
  3. 收到对端的回复Hello报文
    最后一个确认Hello报文标志着邻居关系稳定。

邻居协商的成功条件:

以下字段必须协商一致,才能成功建立邻居:

  1. OSPF版本一致
    确保通信协议兼容性。
  2. Router-ID 不同
    Router-ID是设备唯一标识,必须不同。
  3. 区域ID相同
    OSPF同一区域的设备才能建立邻居关系。
  4. 认证类型相同
    双方需要配置相同的认证方式(如明文、MD5等)。
  5. 认证密钥相同
    如果启用了认证,双方密钥必须一致。
  6. 子网掩码相同
    确保设备在同一个逻辑子网中。
  7. Hello周期一致
    双方发送Hello报文的时间间隔必须一致。
  8. 邻居超时时间一致
    超时时间是Hello报文丢失后等待的时间。
  9. Option字段一致
    描述设备支持的OSPF功能。
  10. 网络类型相同
    如广播、点对点等网络类型必须匹配。
  11. 邻居地址不是子接口地址
    子接口地址不能发送协议报文。
  12. 接口启动OSPF功能
    接口需要启用OSPF协议。
  13. 接口状态为双UP
    接口的物理和协议状态都必须处于UP。
  14. NBMA或vLink中必须手动指定邻居
    在非广播多路访问网络(NBMA)或虚链路(vLink)中,必须显式配置邻居。

Hello报文的关键字段:

  1. 子网掩码
    确保设备在同一子网中。
  2. Hello周期
    表示发送Hello报文的时间间隔。
  3. Hello老化时间
    邻居超时时间,超时后邻居关系失效。
  4. Option字段
    描述设备支持的OSPF功能(如外部路由等)。
  5. DR优先级
    确定设备在网络中的角色(如DR、BDR)。
  6. DR设备和BDR设备
    当前网络中选举出的指定路由器和备份指定路由器。
  7. 邻居信息
    包含本设备已知的邻居列表。

通过上述Hello报文交互和字段协商,OSPF能够确保邻居关系的正确建立,为后续的链路状态同步和路由计算奠定基础。


OSPF邻接建立过程整理

1. 主从协商

确定摘要信息同步的顺序,通过 两个DD报文 完成:

  • 主从设备选举规则:根据设备的 Router-ID 值决定,值越大者为主(Master)。
  • 完成标志
    1. 主设备收到 I、M、MS 比特位为0 的 DD 报文。
    2. 从设备发送 I、M、MS 比特位为0 的 DD 报文。

2. 摘要同步

同步 LSA 的头信息,基于 三个DD报文 实现:

  • 完成标志
    1. 从设备发送第三个 DD 报文(不携带LSA头)。
    2. 主设备收到从设备发送的不带LSA头的DD报文。
DD报文字段
  • 接口MTU:描述分片信息,默认关闭。
  • Option
    • I位:初始化标志,第一次发送携带。
    • M位:如果携带,表示后续还有更多DD报文。
    • MS位:标志主设备。
  • DD序列号:描述LSA新旧程度。
  • LSA头:描述LSA唯一性。

3. 明细同步

通过 LSRLSU 报文 实现:

  • LSR报文:请求LSA更新,包含:
    • LS Type:LSA类型。
    • LS ID:链路状态ID。
    • Advertising Router:通告路由器的 Router-ID。
  • LSU报文:传输具体的LSA明细,内容包括:
    • LSA头 + 各类型LSA明细内容。
LSA头字段
  • LS Age:生存时间。
  • Options:设备支持的OSPF功能。
  • LS Type:LSA类型。
  • Link State ID:描述的具体内容视LSA类型而定。
  • Advertising Router:通告路由器的Router-ID。
  • LS Sequence Number:描述LSA新旧。
  • LS Checksum:校验字段。
  • Length:总大小。
LSA新旧判断
  1. Sequence Number:越大越新。
  2. Checksum:越大越新。
  3. Age:越小越优;差值超过 900秒 时,更新为新LSA。

4. 维护确认

在邻接关系建立后,定期发送Hello报文保持邻接关系。


问题整理

  1. 版本不同不能建立邻居原因
    OSPF版本不兼容,无法协商。

  2. Router-ID相同对邻居关系的影响

    • 直连设备:Router-ID相同无法建立邻居。
    • 非直连设备:邻居关系可建立,但可能影响路由计算。
    • 跨区域设备:需手动调整 Router-ID,避免计算错误。
  3. 区域ID不同能否建立邻居
    无法建立。只有在相同区域内设备才能同步路由。

  4. 掩码不同的影响

    • 广播网络、NBMA:掩码需一致。
    • 点到点网络:掩码可不同。
    • 点到多点网络:可通过命令跳过掩码检查。
  5. Option字段的作用及影响
    描述路由器功能支持,功能不一致则无法同步路由,邻居无法建立。

  6. 网络类型不同的邻居关系

    • 广播与点到点:无法计算路由。
    • 广播与点到多点:需修改时间参数。
    • 广播与NBMA:报文发送方式不同,不可建立。
    • V-Link与其他类型:因单播/组播差异,无法建立。
  7. 子接口地址限制
    子接口地址不能发送协议报文。

  8. V-Link不建议使用原因
    路由计算复杂,性能占用高,维护困难。

  9. V-Link建立邻居的报文源地址
    V-Link会在区域内自动查找邻居路径,通过物理接口发送单播Hello报文。

  10. NBMA的Attempt状态
    每30秒发送Hello,探测邻居是否支持OSPF。

  11. LSR无Option字段的原因

    • Option字段已包含在DD和LSU报文中。
    • LSR仅针对摘要请求,无需再次携带Option。