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

1、RIP是基于跳数选路的----跳数小的优,不会考虑带宽问题,可能会导致选路不佳 
2、RIP的占用资源过多---30S的周期更新,使得链路中充斥着大量的广播报文 
3、仅支持小规模网络----RIP支持最大跳数为15

1、基本概念

  • OSPF是一个标准的IGP协议(AS内部使用)
  • OSPF的协议算法是链路状态型协议-font>—>传递拓扑
  • OSPF版本
  • OSPFv1、OSPFv2、OSPFv3
  • OSPF是携带真实掩码的(无类别的路由协议)
  • 优先级----10(华为)
  • 开销值:参考带宽/实际带宽(华为默认的参考带宽100Mbps)
  • OSPF是跨层封装协议----协议号为89
  • OSPF协议特点
  • OSPF传递的不是路由,是LSA(链路状态通告)
  • OSPF的更新方式
  • 触发更新
  • 30min的周期链路状态刷新
  • OSPF算法叫做SPF算法
  • OSPF是一种比较消耗路由器资源的协议,并且也会消耗链路资源
  • 更新方式
  • 使用组播
  • 224.0.0.5(所有OSPF路由器)
  • 224.0.0.6(一个MA网络中的DR/BDR接收的信息地址)

2、OSPF区域化结构

  • OSPF为了适应大中型网络环境,进行了结构化部署----区域划分
  • 我们把只有一个区域的OSPF网络称为单区域OSPF网络
  • 我们把只有多个区域的OSPF网络称为多区域OSPF网络
  • 区域划分的特点
  • 区域内部传递拓扑信息,区域间传递路由信息
  • 区域划分的标准是基于路由器的接口
  • 区域的编号----帮助设备区分信息的不同来源、方便管理
  • 32位二进制组成,也是点分十进制表现形式
  • 区域编号为0的区域—>他被称为骨干区域(有且只有一个),其他编号的区域被称为非骨干区域
  • 在单区域网络中,这个区域一定是骨干区域。
  • 在多区域网络中,所有的非骨干区域必须和骨干区域直接相连。
  • 区域边界路由器----ABR
  • 同时属于多个区域,并且一个接口对应一个区域,且至少有一个接口是属于区域0的
  • 区域间可以存在多个ABR,一个ABR也可以对应多个区域
  • 自治系统边界路由器----ASBR
  • 同时属于多个网络,例如某台路由器既属于OSPF网络,又属于RIP网络
  • 为什么要区域划分
  • 限制LSA的传播范围
  • 减少LSA的数量
OSPF的工作过程:5种数据包、7种状态机、2种关系、3种接口角色、4种路由器角色与3张表

3、OSPF的五种数据包

  • hello包
  • 周期保活、发现、建立邻居关系
  • 10s hello-time
  • 死亡时间hold-time====4倍的hello包时间
  • 如果在死亡时间内没有接收到对端邻居发送的hello报文,则认为邻居不存在
  • Router-ID
  • 全网唯一,标识路由器的身份
  • 32位二进制组成,由点分十进制形式表示
  • DBD包
  • 数据库表述报文
  • 内部包含了所有的拓扑的目录信息,本地数据库目录
  • LSR包
  • 链路状态请求报文
  • 请求获取未知的链路信息
  • LSU包
  • 链路状态更新报文
  • 携带真正的LSA信息的数据包
  • LSAck包
  • 链路状态确认报文

Lsa-链路状态,具体的一条一条路由信息或拓扑信息;但它不是一个包,是被lsu数据包来携带

4、OSPF的七个状态机

  • down:关闭状态----一旦启动OSPF协议后,则发出Hello报文,进入init状态
  • Init初始化:一旦接收到的hello包中,存在本地的Rid,进入下一个状态:
  • 2way双向通讯:邻居关系建立的标志

条件匹配:匹配成功进入下一状态,匹配失败,则停留在邻居关系

  • Exstart预启动:使用不携带目录信息的DBD包,进行主从关系的选举;RID大的为主,优先进入下一个状态,解决了目录共享时的无序
  • Exchange准交换:使用携带目标信息的dbd包,共享本地数据库目录
  • loading加载:查看完邻接的dbd信息后,对比本地,然后基于本地未知的lsa进行查询;使用lsr向对端查询,对端使用lsu来传输这些lsa信息,本地收到后需要lsack来进行确认
  • Full 转发状态:邻接关系的建立的标志;意味着邻接间,数据库的同步(一致)

5、条件匹配(选举)

  • 三种接口角色
  • 指定路由器—DR
  • 备份指定路由器----BDR
  • 其他路由器—DROther
  • OSPF成为邻接关系的条件—根据网络类型不同而不同
  • MA网络(以太网)类型
  • 多路访问–在一个网段中的节点数量不限制;不是当下连接了几个节点;而是该网络类型允许最终连接多个节点 —以太网
  • 点到点网络类型
  • 在一个网段内只能存在两个节点 — 串线链路
  • 点到点网络邻居关系直接成为邻接关系;
  • MA网络中,将进行DR/BDR的选举;在一个网段中仅DR/BDR与其他路由器为邻接关系;非DR/BDR之间为邻居关系
  • 角色之间的关系
  • DR与BDR—邻接
  • DR与DRother—邻接
  • BDR与DRother—邻接
  • DRother与DRother----邻居
  • 选举规则
  • 先比较该网段所有参选设备接口的优先级,越大越优;默认优先级为1;取值范围0-255,0标识不参选
  • 若所有参选者优先级相同,比较参选设备的RID,数值大优
  • 选举的范围
  • 一个广播域,进行一次DR/BDR的选举
  • 选举模式
  • 非抢占性的
  • 一旦选举成功,不会因为新加入的设备而重新选举
  • 若需要重新选举,则需要重启OSPF进程
  • reset ospf 1 process
  • 干涉选举
  • 1、DR优先级最大,BDR次大 – 切记OPSF的选举是非抢占性的;故在修改完优先级后,需要所有路由器重启OSPF进程
  • 2、DR优先级最大,BDR次大,其他路由器优先级为0,无需重启设备
  • 修改接口优先级
  • [r3-GigabitEthernet0/0/0]ospf dr-priority 0
  • 当修改接口优先级为0时,则认为不参与选举
  • 在一个MA网络中,可以没有BDR,但是一定要有DR

6、OSPF的工作过程

  • OSPF协议启动后,路由器A向本地所有启动了OSPF协议的直连接口,使用组播地址224.0.0.5发送hello报文;hello报文中携带了本地的全网唯一的RID值;之后对端路由器B也将回复hello报文,该hello报文中若携带了对端A的RID值,则A与B建立邻居关系,并生成邻居表
  • 邻居关系建立后,邻居间进行条件匹配,匹配失败就停留在邻居关系,仅使用hello报文保活;若条件匹配成功,则可以开始建立邻接关系。
  • 邻接间共享DBD报文,将本地与邻接的DBD包进行对比,查找本地没有的LSA信息,之后使用LSR报文来询问,对端使用LSU报文来回复具体的LSA信息,之后本地使用LSAck报文进行显性确认,该过程完成后,生成数据库表(LSDB表)。
  • 在之后,本地基于数据库表,启用SPF算法,生成有向图—>最短路径树—>计算本地到达所有未知网段的最短路径,然后将其加载到本地的路由表中。此时收敛完成。
  • 最后,收敛完成后,邻居和邻接关系间均hello包每10s保活;每30min一次邻接关系间的周期数据库比对,保障一致;

7、结构突变

  • 新增网络
  • 直接使用更新包(LSU)告知邻居路由器
  • 断开网段
  • 直接使用更新包告知邻居路由器
  • 无法沟通
  • hello包10s发送一次,若40s时间未接收到对端发来的hello报文,即超出死亡时间
  • 断开邻接关系,删除路由

8、基本配置

[r1]ospf 1 router-id 1.1.1.1 //启动OSPF进程1,并配置rid为1.1.1.1 如果不进行手工配置RID,最大环回IP地址>最大物理接口IP地址 
[r1-ospf-1]area 0 //进入骨干区域 
[r1-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.255 //宣告,使用反掩码的形式宣告; 反掩码:32位二进制,使用点分十进制表示,由连续的0和连续的1组成,0表示IP的对 应位不变,1表示IP对应位可变 
[r1-ospf-1-area-0.0.0.0]network 12.1.1.1 0.0.0.0 
[r1-ospf-1-area-0.0.0.0]network 0.0.0.0 255.255.255.255

宣告 – 需要使用反掩码,来匹配宣告的IP地址范围:

1、激活接口 – 可以收发OPSF的信息

2、被选中接口的拓扑信息可以共享给邻接

3、区域划分

  • OSPF邻居表
  • [r1]display ospf peer //查看邻居表
  • [r1]display ospf peer brief //查看邻居简表
  • OSPF数据库表
  • [r2]display ospf lsdb //查看数据库简表
  • OSPF路由表
  • [r1]display ip routing-table protocol ospf

9、OSPF扩展配置

  • 修改参考带宽
  • [r1-ospf-1]bandwidth-reference 1000
  • 一台设备修改参考带宽后,所有设备均需要修改
  • 缺省路由(默认路由)----一般在ABR上配置
  • 非强制性下发
  • [r3-ospf-1]default-route-advertise //路由器中必须有缺省路由存在
  • 强制性下发
  • [r3-ospf-1]default-route-advertise always
  • 静默接口
  • 只接接不发,一般在连接用户的接口配置
  • [r3-ospf-1]silent-interface GigabitEthernet 0/0/1
  • 认证
  • 支持在邻居间的接口上配置认证秘钥
  • 认证类型
  • 不认证—0
  • 明文认证-1
  • 密文认证-2
  • [r1-GigabitEthernet0/0/0]ospf authentication-mode md5 1 cipher 123456
  • 双方都要配置,并且key ID保持一致
  • 区域汇总:
  • OSPF协议不支持接口汇总;只能在ABR上将a区域拓扑计算所得路由,共享给b区域时进行汇总
[r2]ospf 1
[r2-ospf-1]area 0
[r2-ospf-1-area-0.0.0.0]abr-summary 1.1.0.0 255.252.0.0

R2为一台连接区域0和其他区域的ABR;以上操作将区域0学习到的拓扑计算所得到的路由,传递给其他区域时进行汇总,汇总网端1.1.0.0/22

  • 加快收敛
  • 邻居间计时器 10s hello time 40s dead time
  • 邻居间,修改本端的hello time,本端的dead time自动4倍关系匹配;但OSPF中邻居间的hello time 和dead time必须完全一致,否则无法建立邻居关系
  • [r1-Gin]ospf timer hello 5