OSPF总结笔记

OSPF:开放式最短路径优先协议

OSPF是一个内部网关协议IGP,使用SPF算法,是对链路状态路由协议的一种实现,用于在单一自治系统内决策路由。

一、OSPF特点

  1. 传递网络掩码,基于IP协议封装(跨层封装),协议号为89

  2. 需要结构化的部署:区域划分、地址规划。

  3. 传递信息称作LSA,LSA链路状态通告,包含路由信息和拓扑信息。
    路由LSA:描述本路由器上接口的路由信息。
    拓扑LSA:描述路由器之间的连接信息。

  4. 更新方式:触发更新、30分钟的链路状态刷新。

  5. 更新地址:组播和单播更新;
    组播地址:224.0.0.5(ALL SPF router) 224.0.06(ALL DR router)

  6. 支持路由认证

  7. 支持手工汇总

  8. 支持区域划分

  9. OSPF比较消耗设备资源

  10. 在OSPF路由计算过程中采用的是Dijkstra算法。OSPF路由器会利用此算法来计算出最短路径树(SPT)。每台OSPF路由器都会发送一种易于解读都报文——链路状态通告(LSA),向邻居路由器描述本机以及本机所连接的链路。

二、OSPF区域

  1. 区域划分的意义:减少LSA的数量、减少LSA的传播范围。
  2. 区域的划分是基于接口(链路)的。
  3. 区域的标记:十进制或者类似于IP地址A.B.C.D
  4. 区域的分类:
    骨干区域:区域标记为0或0.0.0.0
    非骨干区域:区域标记不等于0或0.0.0.0
  5. 区域设计原则:向日葵型网络结构
    OSPF网络中必须存在唯一的骨干区域(单区域除外)
    若存在非骨干区域,非骨干区域必须与骨干区域直接相连
  6. OSPF中路由器的角色
    骨干路由器:所有接口属于area 0
    非骨干路由器:所有接口都不属于area 0
    ABR:区域边界路由器,能够产生3类LSA的路由器
    ASBR:自制边界系统路由器,能够产生5类或7类LSA的路由器

三、OSPF消息数据包

类型描述用途
1Hello用来发现邻居、选举DR/BDR,维护OSPF邻居关系
2DBD (数据库描述)用在数据库交换过程中,确立主/从关系,交换LSA包头,以及确定首个序列号
3LSR (链路状态请求)用在DBD交换过程中,请求本路由器已知的特定LSA
4LSU (链路状态更新)用来向已发出LSR数据包,以请求特定LSA的邻居,发送完整的LSA
5LSack (链路状态确认)用来确认本路由器已收到的LSU数据包

Hello:

Hello数据包是OSPF 1 类数据包。Hello数据包的作用是:让两台OSPF路由器建立起邻居关系。在MA/NBMA网络环境中,Hello数据包选举OSPF路由器的DR/BDR。通过广播介质发送时,Hello数据包的目的IP地址为224.0.0.5;通过非广播介质发送,其目的IP地址为单播IP地址。

  • 用于邻居路由发现、建立和保活。
  • 周期性发送,周期时间为10s或30s(根据不同的网络类型默认10s或30s)

在这里插入图片描述

Network Mask: 表示发送Hello数据包(参与OSPF进程)的路由器接口的网络掩码。仅只有广播介质(MA网络环境中)才会检查此字段值。
Hello Interval: 表示每隔多长时间发送一次Hello数据包,单位为秒。对于两台尝试建立OSPF邻接关系的路由器来说,Hello 和 Dead 时间必须一致。其中Broadcast和P2P,此字段值为10s;其他网络环境中,此字段值为30s。
Options: 表示(发送Hello数据包的)路由器所支持的能力。Options字段的格式如下所列:
DN位,为MPLS/VPN所用。
O位用于不透明LSA(opaque LSA)详见RFC2370。
DC位表示路由器支持按需电路特性。参考网上博文 OSPF DC按需链路技术剖析
EA位表示路由器支持(接收及转发)外部属性LSA。
N/P位表示路由器支持非完全端区域(not-so-stubby area,NSSA)。
MC位表示路由器具备组播OSPF能力。
E位,E位置位时,表示路由器具备接收外部LSA的能力。
T位 表示路由器支持ToS(通常为0)。
Router Prionrity : 默认情况下,此字段值被设置为1。在选举DR/BDR时起着重要作用;OSPF路由器发送Hello数据包中路由器优先级字段值越高,越有可能成为DR。此字段值为0,则不参与DR选举。
Dead Intervar: 默认情况下,此字段值是Hello Interval字段值的4倍。表示一段以秒为单位的时间。
Designated Router: 表示DR路由器的IP地址。若DR不存在或尚未发现,此字段值为0.0.0.0。DR通过Hello协议选举而出。具有最高优先级的路由器(所发Hello数据包中路由器优先级字段值最高的路由器)将成为发包接口所处网络内的DR。在路由器优先级字段值相等的情况下,Router-ID值最高的路由器(所发Hello数据包中指定路由器字段值最高的路由器)将成为(发包接口所处网络内的)DR。可以说OSPF是接口敏感型的协议。
Backup Designated Router: 标识BDR,指明BDR的接口IP地址。若无BDR,此字段值为0.0.0.0。BDR通过Hello协议选举而出。
Neighbor: 包含通过Hello数据包获知的邻居路由器的Router-ID。

DBD:

DBD数据包是OSPF数据包的第2种类型,常用在(OSPF邻居路由器之间的)数据库交换期间。

  • 数据库描述,通俗地讲是LSA的集合。
  • 首个DBD数据包用来建立主/从(Master and Slave)路由器。
  • 选举“主”路由器亦会用此数据包来设置(确定)初始化序列号。
  • Router-ID值最高的路由器会成为“主”路由器,并发起数据库同步。

在这里插入图片描述

Interface MTU: 此字段值指明发包接口(发送DBD数据包的路由器接口)所能发出的数据包的最大长度,单位为字节。由OSPF虚链路发出的DBD数据包的接口MTU字段值必须设置为0。
Options: 与Hello数据包所含字段相同。
I位: 此位置1时,则表示邻居双方发出的首个DBD数据包。
M位: 此位置1时,则表示DBD数据包尚未发送完毕。
MS位: 主/从位。此位置1时,表示在DBD交换过程中,发包路由器为“主”路由器,此位置0时,则为“从”路由器。
DBD Sequence Number: 此字段包含由“主”路由器设置的唯一值(序列号),在数据库交换过程中使用。只有“主”路由器才能增加此字段的值(序列号的值)。
LSA Headers: 此字段包含若干链路状态数据库包头。

LSR:

向对端路由器请求LSA,其动作行为发生在dbd报文后。
链路状态请求数据包时OSPF数据包的第3种类型,在部分路由数据库信息“遗失”或“过时”的情况下发送。LSR数据包用来重新取回“遗失”的路由数据库中的精确信息。DBD交换过程完毕后,邻居双方(主/从路由器)还会互发LSR数据包,请求对方发送DBD交换过程中通告过的LSA

LS Type:标识所请求的LSA类型。
LS-ID:表示特定LSA的链路状态ID。
Advertising Router:包含生成LSA的路由器的Router-ID。

LSU:

向对端发送其拥有的LSA。
链路状态更新数据包是OSPF数据包第4种类型,OSPF路由器会发此类数据包来实施LSA的泛洪。单个LSU数据包内会包含多条LSA。OSPF路由器也会发送LSU数据包,来回应(邻居路由器发出的)LSU数据包。以泛洪方式发出的LSA由LSA确认数据包进行确认。只要有一条未经确认的LSA,(OSPF路由器就会)每隔重传间隔时间重传一次。

LSACK:

收到对方的LSA时发送,相当于TCP中的ACK。
链路状态确认数据包是OSPF数据包的第5种类型,用来对每条LSA进行确认。OSPF路由器也会发送LSack数据包,来应答LSU数据包。可用单个LSack数据包一次性确认收到的多条LSA。LSack数据包负责LSU数据包的可靠传输。

链路状态确认数据包以组播的方式发送。若(发送LSack数据包的)路由器为DR/BDR,则IP包头的组播目的IP地址为224.0.0.5(所有SPF路由器地址)。否则,LSack数据包IP包头的组播目的IP地址为226.0.0.6(DR/BDR地址)。

四、OSPF邻居状态机制

邻居关系建立条件:

  1. router-id 必须不同
  2. area ID 相同
  3. 认证: 认证类型 (不认证=0 明文认证=1 MD5=2) 认证数据
  4. hello时间,dead时间
  5. 特殊区域标识(E(外部路由位)=1 ; N(NSSA外部路由位)=0 P=0)
  6. MA网络中,网络掩码必须一致
  7. 必须同时使用单播或组播更新
  8. 更新源检测(双方的IP地址必须在同一网段)

在这里插入图片描述

状态状态描述
Down (失效)表明OSPF路由器尚未从邻居路由器收到任何OSPF协议数据包。
Init (初始)初始化状态,一旦开始发送hello报文,进入初始化状态。
Two-way 双向通信状态 (邻居状态)接收到包含自己router-id 的对方hello报文。
Exstart(预启动状态)一旦开始发送主从DBD,则进入预启动状态。
Exchange (预交换)主从选举完成,则发送携带LSA头部信息的DBD,进入预交换状态,会发送LSR 数据包。(但是没有LSU)
Loading (加载状态)一旦发送LSU数据包,进入了加载状态,进行大量LSA的学习。
Full (邻接状态)双方LSA同步(双方LSA全部学习)

邻居状态下(two-way): MA的网络中会选举DR(指定路由器) BDR(备份指定路由器) DR选举: 1.比较优先级 (范围:0-255,默认优先级为1 ,越大越优) 2.比较各自的router-id,越大越优 注意:1.DR抢占是关闭的 2.DR是一个接口概念 3.优先级范围0-255,数字为0代表不参与选举 4.先 选举BDR ,再升级为DR

主从选举: 发生在exstart状态,通过双方的router-id进行比较,router-id大的一方为主。 发送的 主从选举DBD,DBD中包含了MTU值(默认思科直接启用,华为中默认不包含MTU,可以使用命令 激活传递MTU值的功能,若双方的MTU值不同则卡在exstart 状态)。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值