【网络学习笔记】之【链路状态路由协议——OSPF(开放式最短路径优先协议)】

4 链路状态路由协议-OSPF(开放式最短路径优先协议)

4.1 优点

  • 无环路
  • 收敛快
  • 扩展性好
  • 支持认证

4.2 原理

OSPF的收敛过程由链路状态公告LSA(Link State Advertisement)泛洪开始,LSA中包含了路由器已知的接口IP地址、掩码、开销和网络类型等信息。收到LSA的路由器都可以根据LSA提供的信息建立自己的链路状态数据库LSDB(Link State Database),并在LSDB的基础上使用SPF算法进行运算,建立起到达每个网络的最短路径树。最后,通过最短路径树得出到达目的网络的最优路由,并将其加入到IP路由表中。

4.3 RouterID

【网络学习笔记】之【链路状态路由协议——OSPF(开放式最短路径优先协议)】

Router ID是一个32位的值,它唯一标识了一个自治系统(AS)内的路由器,管理员可以为每台运行OSPF的路由器手动配置一个Router ID。如果未手动指定,设备会按照以下规则自动选举Router ID:如果设备存在多个逻辑接口地址,则路由器使用逻辑接口中最大的IP地址作为Router ID;如果没有配置逻辑接口,则路由器使用物理接口的最大IP地址作为Router ID。

Router ID可以是任意的IP地址。

注意:重新配置Router ID后,需要重置OSPF进程来更新Router ID。如果RouterID重复了,不能建立邻居关系。

建议:手动配置Router ID,以防止Router ID因为接口地址的变化而改变。

4.4 DR&BDR

【网络学习笔记】之【链路状态路由协议——OSPF(开放式最短路径优先协议)】

  • DR可以减少广播型网络中的邻接关系的数量
  • DR&BDR可监听以224.0.0.6为目的地址的OSPF报文。
  • Drother只监听以224.0.0.5为目的地址的OSPF报文。

每一个含有至少两个路由器的广播型网络和NBMA网络都有一个DR和BDR。BDR在DR发生故障时接管业务,一个广播网络上所有路由器都必须同BDR建立邻接关系。

注意:BR&BDR是接口

4.4.1 DR&BDR 选举

  • DR/BDR选举不强占,即当网络中已经有DR角色了,优先级再高也不会马上强占,除非重启进程重新选举
  • DR是基于端口的DR优先级的值进行选举的,默认都为1,最大为255,如果优先级为0表示不参加选举,可以手动修改优先级:[R1-GigabitEthernet0/0/0]ospf dr-priority X
  • 优先级一致的情况下,通过比较Router ID较大的为DR。

4.5 邻居状态机与OSPF报文

【网络学习笔记】之【链路状态路由协议——OSPF(开放式最短路径优先协议)】

4.5.1 OSPF报文

  • OSPF报文封装在IP报文中,协议号为89

  • OSPF报文类型有5种:

    • Hello 报文(发现邻居,选取DR
    • DD(Database Description)数据库描述报文(首先比较(Seq)主从关系,比较后DR先发送LSDB摘要
    • LSR(Link State Request)链路状态请求报文(如果发现自己没有的,就发送LSR请求报文
    • LSU(Link State Update)链路状态更新报文
    • LSACK(Link State Acknowledgment)链路状态回复报文

4.5.2 OSPF 状态

【网络学习笔记】之【链路状态路由协议——OSPF(开放式最短路径优先协议)】

邻居和邻接关系建立的过程如下:

  1. Down:这是邻居的初始状态,表示没有在邻居失效时间间隔内收到来自邻居路由器的Hello数据包。

  2. Attempt:此状态只在NBMA网络上存在,表示没有收到邻居的任何信息,但是已经周期性的向邻居发送报文,发送间隔为HelloInterval。如果RouterDeadInterval间隔内未收到邻居的Hello报文,则转为Down状态。

  3. Init:在此状态下,路由器已经从邻居收到了Hello报文,但是自己不在所收到的Hello报文的邻居列表中,尚未与邻居建立双向通信关系。

  4. 2-Way:在此状态下,双向通信已经建立,已经建立邻居关系,但是没有与邻居建立邻接关系。这是建立邻接关系以前的*状态。

  5. ExStart:这是形成邻接关系的第一个步骤,邻居状态变成此状态以后,路由器开始向邻居发送DD报文主从关系是在此状态下形成的,初始DD序列号也是在此状态下决定的。在此状态下发送的DD报文不包含链路状态描述。

  6. Exchange:此状态下路由器相互发送包含链路状态信息摘要的DD报文,描述本地LSDB的内容。

  7. Loading:相互发送LSR报文请求LSA,发送LSU报文通告LSA

  8. Full:路由器的LSDB已经同步。

4.5.3 邻居与邻接

  • 邻居(Neighbor):

    • OSPF路由器启动后,便会通过OSPF接口向外发送Hello报文用于发现邻居。状态到达2-way 即可称为建立了邻居关系。
  • 邻接(Adjacency):

    • 只有当双方成功交换DD报文,并同步LSDB后,达到Full状态,才形成真正意义上的邻接关系。
  • 运行OSPF的路由器之间需要交换链路状态信息和路由信息,在交换这些信息之前路由器之间首先需要建立邻接关系。

4.6 OSPF支持网络类型

【网络学习笔记】之【链路状态路由协议——OSPF(开放式最短路径优先协议)】

  • 缺省情况下,OSPF认为以太网的网络类型是广播类型,PPP、HDLC的网络类型是点到点类型。
  • 缺省情况下,P2P、Broadcast类型接口发送Hello报文的时间间隔的值为10秒;P2MP、NBMA类型接口发送Hello报文的时间间隔的值为30秒。

4.7 OSPF 区域类型

划分OSPF区域可以缩小路由器的LSDB规模,减少网络流量。
【网络学习笔记】之【链路状态路由协议——OSPF(开放式最短路径优先协议)】

ABR:RTA,只有一个接口在骨干区域

ASBR:RTE,只要一个接口引入了外部路由。(ABR也可以是ASBR。)

4.8 OSPF 开销

【网络学习笔记】之【链路状态路由协议——OSPF(开放式最短路径优先协议)】

  • OSPF的接口开销=带宽参考值/带宽 (参考值缺省为100Mbit/s)
  • 可以通过bandwidth-reference命令来设置带宽参考值。还可以通过ospf cost命令来手动为一个接口调整开销(流量出口调整)。
  • 1M=1000K=1000000b,如一个64kbit/s串口的开销为1562,一个E1接口(2.048 Mbit/s)的开销为48。

配置

[RTA]ospf router-id 1.1.1.1
[RTA-ospf-1]area 0
[RTA-ospf-1-area-0.0.0.0]network 192.168.1.0 0.0.0.255
# 配置骨干路由
[RTA]display ospf peer 
# 查看邻居相关的属性,包括区域、邻居的状态、邻接协商的主从状态以及DR和BDR情况。
RTA]interface GigabitEthernet0/0/0
[RTA-GigabitEthernet0/0/0]ospf authentication-mode md5 1 goktech
# OSPF认证,参数1表示接口加密认证中的认证密钥ID,它必须与对端上的key-id一致。
# ospf authentication-mode simple | cipher 
[R1-GigabitEthernet0/0/0]ospf dr-priority 255
# 优先级取值范围为0-255,值越高越优先。缺省情况下,接口优先级为1。
[Huawei-GigabitEthernet1/0/0] ospf timer hello 15
# 使此接口发送Hello包时间为15秒(默认10)
[Huawei-GigabitEthernet1/0/0] ospf timer dead 60
# 使此接口邻居失效时间为60s(默认40)
上一篇:DR-CAN的动态系统建模与分析学习笔记(14)二阶系统频率响应_数学推导部分


下一篇:DR-CAN的动态系统建模与分析学习笔记(12)二阶系统的性能分析与比较_科学分析方法