OSPF总结

OSPF

基础概念

开放式最短路径优先协议

  1. 适用范围:IGP
  2. 协议算法特点:链路状态型路由协议,SPF算法
  3. 协议是否传递网络掩码:传递网络掩码
  4. 协议封装:基于IP协议封装(跨层封装,三层),协议号89

OSPF数据包

Hello包(唯一一个不需要确认的包)

  • 周期性发送
    • 之所以周期发送是由于触发更新,只是为了保活,维持我们之间的通信,占用资源不大
    • 周期时间位10s或者30s;不同的网络类型发送周期不同(只与网络类型有关),链路带宽高时10s一个,链路带宽低时30s一个
    • 死亡时间:10s更新则为40s;30s更新为120s
    • poll时间:时间间隔
    • 重传间隔:5s;发送一个需要确认的包时,等待确认的时间为5s,5s位收到确认则再重新发送一遍
    • 传输延时:1s
  • 目的
    • 建立并维持OSPF 邻居关系
    • 邻居关系建立之后重当保活包功能
  • 数据包内容(OSPF的HELLO报头)
    • 网络掩码
    • Hello时间:10s或者30s
    • options:特殊区域位
    • 路由器的优先级:默认值为1(选择DR时需要比较,优先级可改,范围0~255,越大越优,0为放弃选举)
    • 死亡时间:40s或者120s
    • DR
    • BDR
    • 对方的router-id:第一个Hello包中不带

DBD包(靠DBD确认)

  • 功能

    • 主从选举:
      • 为什么选举主从:由主来控制LSA后期传问题
    • 数据库的描述包:给自己的LSA数据写一个目录
  • 数据包内容(DBD主从选举)

    • MTU:最大传输单元(华为默认不发为0)
      • 可以选择激活MTU,进入接口,输入ospf mtu-enable
      • 修改接口MTU值:(同时修改3层和2层的MTU值),在接口状态下输入mtu 1500
    • Options:特殊区域为
    • DB Description
      • R
      • I:1为第一个包;0不是第一个
      • M:0为最后一个包
      • MS:主从位;1为主,0为从
      • 序列号:从需要放弃自己的序列号,用主的序列号

    主从选举完成后,发送携带LSA头部信息的DBD包

LSR(LSU确认)

  • 链路状态请求
  • 按照DBD中报文的未知LSA头部进行请
  • 数据包内容

LSU(LSack确认)

LSack(自身的隐试确认)

OSPF状态机

down:关闭状态

停留这一状态原因:条件不匹配

  • ospf邻居还没有建立
  • 在建立过程中出现问题,邻居没有建立成功;比如40sHello包未回应,退回down状态,不再10s保活,则是在down状态下以Poll时间发送Hello包

init:初始化状态

  • 一旦开始发送hello后则进入此状态
  • 变为此状态后,等待对方恢复的一个Hello包,其中要是携带自己的router-id ,则进入下一状态

Attempt:尝试连接的状态(只会出现在NBMA网络中)

Two-way:双向通信状态(邻居状态建立完成)

停留这一状态原因:选不出DR/BDR

  • 接收到包含自己router-id 的对方hello报文
  • 点对点网络:不需要选取,可以继续进入下一状态
  • MA网络中
    • 会选举DR(指定路由器) BDR(备份指定路由器);一个区域只能有一个DR和一个BDR
    • 选举DR(接口概念)
      • 比较优先级(范围:0-255,默认优先级为1 ,越大越优)
      • 比较各自的router-id,越大越优
      • 等待时间与死亡时间一样多,40s之内选举,没有比自己大的则认为自己为DR
      • 先选出一个BDR,看40s之内是否还有比自己优的,没有则升级为DR

Exstart:预启动状态(停留这一状态原因:MTU不同)

  • 一旦开始发送主从DBD,则进入预启动状态
  • 进行主从选举

Exchange:预交换(问题:MTU不同)

  • 主从选举完成,则发送携带LSA头部信息的DBD(目录),进入预交换状态,会发送LSR数据包。(但是没有LSU)
  • 主从选举完成之后
    • 根据对方发来的DBD目录中的LSA ,选出自己没有的LSA条目,建立自己的请求列表,更具自己的请求列表逐条向对方请求
    • 一个LSR中只能带有一个请求条目,收到回复后才会请求下一条

Loading:加载状态(问题:路由器学习不了那么多的LSA)

  • 一旦发送LSU数据包,进入了加载状态,进行大量LSA的学习
  • 过程
    • 收到请求列表中所需要的LSA条目,建立对应的重传列表(LSU),并回复给对方所请求的LSA数据包
    • 对方收到了回复给自己的LSU,对比自己的请求列表,是自己请求的则回复一个LSack包,并且把自己请求列表中的这条条目删除
    • 收到确认的LSack包,则对照条目删除请求列表中的对应条目,表示确认对方已经学习到此条目

Full:邻接状态

  • 双方LSA同步(双方LSA全部学习)
  • 双方的请求列表和重传列表都为空时,则为加载完成

OSPF(三表)

邻居表:查看邻居和邻接状态的

  • display ospf peer breef查看OSPF邻居表的摘要信息
    • Area ID 区域
    • 自己的接口 对应的在哪个区域
    • 建立关系的接口id
    • 状态
  • display ospf peer查看OSPF邻居表
    • 区域 对方建立关系的id(自己的接口) 关系
    • router-id:自己的 Address:
    • DR BDR MTU
    • 重传计时器:需要确认,规定时间内没有收到确认包则再重传一遍
    • 建立了多久

LSDB表:链路状态数据库

  • dis ospf 100 lsdb查看lsa目录信息

    • Type:LSA的类型,几类LSA
    • LinkState ID:链路ID,标记一条LSA,不同的LSA产生LinkID的方式不同
    • AdvRouter:产生这条LSA的路由器
    • Age:LSA的Age,LSA的老化时间,LSA是有一个存活时间的;最大老化时间为3600s
    • Len:长度
    • Sequence:序列号
    • 校验核(这里不显示出来)
      • Seq、校验和、Age三者来做新旧比较
      • LSA老化时间(若以上都相同,LSA age 之差小于15 ,越小越有,若大于15分钟,则无法比较认为都是最新的)
      • 先对比序列号,8~F F-0~7,当序列号到7FFF FFFE时,初始路由器把此条LSA的老化时间强行改为3600s,其他路由器删除此条目,初始路由器重新发送序列号8开始的LSA条目
    • Metric

路由表

  • dis ip rouring-rable pr ospf

    • 学习到的路由
    • 协议
    • 优先级
    • cost值

邻居建立条件

(在满足以下条件的时候,不同网络环境中是可以建立邻居或邻接关系的;点需要选DR的网络环境和不需要选择DR的网络环境之间可以建立邻居,LSA可以同步,但是LSA中的信息无法加表)

  1. router-id不同
  2. Area ID一致
  3. 认证类型一致
  4. hello时间与死亡时间一致
  5. 特殊区域标识(E(外部路由位,是否支持5类LSA;1为支持,0为不支持)=1 ;N(NSSA外部路由位,是否支持7类LSA;1为支持,0为不支持)=0 P=0(是否支持7类LSA转换为5类LSA,1支持,0为不支持))
  6. MA网络中,网络掩码必须一致
  7. 必须同时使用单播或组播更新
  8. 更新源检测(双方的IP地址必须在同一网段)

OSPF(LSA)

描述LSA的三种东西

  • Type:LSA的类型,几类LSA
  • LinkState ID:链路ID,标记一条LSA,不同的LSA产生LinkID的方式不同
  • AdvRouter:产生这条LSA的路由器
  • 一类LSA:router -LSA
    • 功能:产生本路由器针对某个区域的路由信息和拓扑信息;一个路由器针对一个区域产生一条一类LSA
    • 传播范围:只能在本区域内传输,中止于ABR
    • Link ID :产生者的router-id
    • ADV router:产生者的router-id
    • 特性:
      • 在单个区域中分别产生一条1类LSA,若存在MA网络,1类LSA不完整,需要配合二类LSA生成路由信息以及拓扑信息
    • LSA数据包(dis ospf lsdb roter 所查的linkID)
      • Type:类型router
      • LS ID:
      • Adv:
      • 存活时间
      • Len:字节
      • 特殊区域
      • 序列号
      • 校验和
      • Link cout:代表我这个一类LSA是由几部分构成(由*区分)
        • link ID
          • 类型为TransNet时,此ID为此网络范围的DR
        • Data
          • 类型为StubNet时,为掩码
          • 类型为TransNet时,自己连接DR的接口
          • 类型为point-to-point时,自己用于连接
        • Link Type
          • StubNet(末节网络):表示路由信息
          • point-to-point:表示拓扑信息,点对点的
          • TransNet:表示拓扑信息,传输网络仅限于MA网络,需要选DR、BDR
          • virtual link :虚链路
        • 开销值:0为本地环回
        • Priority
  • 二类LSA:network LSA ,网络LSA(只能由DR产生)
    • 功能:用于在MA网络中,描述本网络路由器的数量以及本MA网络的网络掩码;一个MA网络只产生一条二类LSA
    • 传播范围:只能在本区域内传输,中止于ABR
    • Link ID:DR接口的IP地址
    • ADV router:DR所在路由器的router-ID
    • 特性
      • 只会出现在MA网络,用于补充1类LSA(1.MA网络的掩码2.MA网络路由器的数量)
    • LSA数据包
      • Type:类型Network
      • LS ID:
      • Adv:
      • 存活时间
      • Len:字节
      • 特殊区域
      • 序列号
      • 校验和
      • 网络掩码
      • Priority
        • 可达的路由器
  • 三类LSA:summary LSA,汇总LSA
    • 功能:用于在区域之间传递路由信息
    • 传播范围:只能在一个区域内传输,想传输到下一个范围,由连接下一个范围的ABR重新产生新的三类LSA
    • link-id :传递路由的网络号(一个范围)
    • ADV router:默认为所在区域ABR的router-id
    • 特性
      • 在穿越不同区域时,有其他的ABR重新产生(ADV router 是变化的)
      • 功能是在区域间传输路由,但是不是直接传输,是进入新的区域时是产生的新的LSA
    • LSA数据包
      • Type:类型Sum-Net
      • LS ID:
      • Adv:
      • 存活时间
      • Len:字节
      • 特殊区域
      • 序列号
      • 校验和
      • 网络掩码
      • 开销值
  • 五类LSA:外部LSA
    • 功能:用于在整个OSPF中传递外部路由(原本不属于OSPF域)
    • 传播范围:在整个OSPF域中传输
    • Link id :传递外部路由的网络号(一个网络范围)
    • ADV router :产生该LSA的router-id(产生本LSA的ASBR的router-id ,一般为重发布的路由器)
    • LSA数据包
      • Type:类型External
      • LS ID:
      • Adv:
      • 存活时间
      • Len:字节
      • 特殊区域
      • 序列号
      • 校验和
      • 网络掩码
      • 度量值:重发布到OSPF后度量值初始化为1(种子度量值),可以修改
      • E type:类型,默认为类型2
        • 类型1:传递过程中此条LSA的度量值是需要累加的
        • 类型2:此条LSA的种子度量值在OSPF中传递时是不发生改变的
      • Forwarding Address:转发地址
        • 5类LSA FA地址规则:
          • 默认不产生,若连接其他协议的接口运行了OSPF 协议并且网络类型为BMA,则FA地址为重发布之前路由的下一跳地址
          • 若网络类型为P2P,则不会产生FA地址
      • Tag:标签
      • Priority
  • 四类LSA:summary,ASBR LSA
    • 功能:除了产生5类LSA所在区域,用于通告ASBR位置;告诉其他路由器,产生五类LSA的路由器在哪里
    • 传播范围:一个区域范围,想传输到下一个范围,由连接下一个范围的ABR重新产生新的四类LSA
    • Link id:ASBR的router-id,重发布的路由器的router-id
    • ADV router:默认ASBR所在区域的ABR的router-id,重发布路由器所在的区域与骨干区域连接的ABR产生
    • 特性
      • 在穿越不同区域时,有新的ABR重新产生(与3类LSA一致)
    • LSA数据包
      • Type:类型Sum-Asbr
      • LS ID:
      • Adv:
      • 存活时间
      • Len:字节
      • 特殊区域
      • 序列号
      • 校验和
      • 开销值
  • 七类LSA:NSSA LSA
    • 功能:在NSSA区域中,传递外部路由
    • 传播范围:NSSA区域内
    • Link id:传递路由网络号
    • ADV router:产生该LSA的router-id
    • 特性
      • 默认为类型2 ,度量值为1 ;携带了FA地址(转发地址)
    • LSA数据包
      • Type:类型NSSA
      • LS ID:0.0.0.0
      • Adv:产生这条7类LSA缺省的ABR的router-id
      • 存活时间
      • Len:字节
      • 特殊区域
      • 序列号
      • 校验和
      • 网络掩码:0.0.0.0
      • 开销值(种子度量值):1
      • E type:类型,默认为类型2
        • 类型1:传递过程中此条LSA的度量值是需要累加的
        • 类型2:此条LSA的种子度量值在OSPF中传递时是不发生改变的
      • 转发地址(FA地址):产生这条LSA的路由器的router-id
        • 当5类或7类LSA中携带了FA地址,则计算路径开销值时计算的是当前路由器到达FA地址的开销值之和+种子度量值。(若FA地址不可达,则路由不能加表)
        • 默认7类LSA 产生FA地址,5类LSA不产生的(7转5的5类LSA 携带FA地址)
        • 7类LSA 产生规则:
          • 默认产生的FA地址为产生该类LSA的ASBR最大的环回接口地址
          • 若连接其他协议的接口也运行了OSPF协议,网络类型为BMA,则产生的7类LSA中FA地址为连接其他接口对应的下一跳地址
          • 若网络类型为P2P,则FA地址依然为环回接口中IP地址最大的

OSPF LSA的限制

  • 划分区域
  • 特殊区域:在某一个区域需要限制LSA的数量(不能在骨干上做)
  • stub 区域(末节区域)
    • 出现这个区域的原因:
      • 此区域的路由器性能弱,学习不了那么多的LSA
    • stub区域控制LSA的方法:
      • 由于5类LSA的数量最不可控,则过滤5类LSA,5类没有了,4类也没有存在的意义了,一起过滤
      • stub区域边界ABR会自动产生3类缺省LSA,保证stub区域路由器与外网保持通信
    • 特点:
      • 不能出现4、5类LSA
      • 特殊区域不能使用虚链路
      • stub区域不能为骨干区域
      • 若设置stub区域,存在该区域的所有路由器都必须设置
      • 特殊区域标识E=1(外部路由位,是否支持5类LSA;1为支持,0为不支持,默认为1)
    • ABR产生的3类缺省LSA的数据包
      • Type:类型Sum-Net
      • LS ID:0.0.0.0
      • Adv:产生这条缺省的ABR的router-id
      • 存活时间
      • Len:字节
      • 特殊区域
      • 序列号
      • 校验和
      • 网络掩码:0.0.0.0
      • 开销值(种子度量值):1
  • 完全的末节区域
    • 出现这个区域的原因
      • stub区域中有了3类LSA的缺省,所以其他区域的3类LSA也可以不需要
    • 完全的末节区域控制LSA的方法
      • 在stub区域基础上,由ABR过滤所有的3类LSA,只保留3类缺省LSA
  • NSSA区域(非完全末节区域)
    • 出现这个区域的原因
      • 为了保护与外部其他协议相连的区域,不学习4、5类,但是还是要学习外部协议的路由
    • NSSA区域控制LSA的方法
      • 依旧过滤4、5类LSA
      • 边界ABR自动产生7类缺省LSA,保证NSSA区域路由器与外网保持通信
      • 7类LSA只能在本NSSA区域中转发,其他区域学习不到,与其他OSPF区域相连的ABR将7类LSA中转换为5类LSA,此5类LSA中携带FA地址,此时这个产生5类LSA的路由器为ASBR,同时这个路由器会给其他不与它直连的区域发4类LSA
      • 其他区域,路由表查到的LSA中携带FA地址则看FA地址,此时不看4类LSA,若FA地址不可达,则路由不能加表;当过滤掉FA地址后,则查看4类LSA
    • 特点:
      • 不能出现4、5类LSA
      • 特殊区域不能使用虚链路
      • NSSA区域不能为骨干区域
      • 若设置NSSA区域,存在该区域的所有路由器都必须设置
      • 允许进行重发布(允许出现ASBR),产生7类LSA
      • 特殊区域标识:E=0(外部路由位,是否支持5类LSA;1为支持,0为不支持,默认为1);N=1(NSSA外部路由位,是否支持7类LSA;1为支持,0为不支持,一般默认为0)
      • 7类LSA只能转5类,5类转不了7类
      • 为了防环,当一个路由器上既有NSSA也有正常区域,会产生不同类LSA,重发布给NSSA区域的7类LSA是不支持7转5的;优化则可以在连接正常与NSSA区域的边界路由器上关闭重发布7类LSA,直接走ASBR产生的7类LSA
    • ABR产生的7类缺省LSA的数据包
      • Type:类型NSSA
      • LS ID:0.0.0.0
      • Adv:产生这条7类LSA缺省的ABR的router-id
      • 存活时间
      • Len:字节
      • 特殊区域
      • 序列号
      • 校验和
      • 网络掩码:0.0.0.0
      • 开销值(种子度量值):1
      • E type:2
      • 转发地址(FA地址):产生这条7类缺省LSA的路由器的router-id
  • 完全的非完全的末节区域
    • 完全的非完全的末节区域控制LSA的方法
      • 在NSSA区域的基础上继续过滤3类LSA,产生3类缺省LSA的
    • 特点:
      • 当完全的非完全的末节区域里的路由器同时学习到了3类和7类缺省LSA,则优先3类,不管什么情况下3类都优于7类
    • LSA汇总(只能针对纯路由的LSA汇总(3、5、7类))
      • 3类LSA汇总
        • 位置:产生该3类LSA 的路由器上
        • 度量值:所有明细路由中metric最大的
      • 5类LSA汇总
        • 位置:产生该5类LSA的ASBR上
      • 7类LSA汇总
        • 位置:产生该7类LSA的ASBR上
      • 7转5过程中汇总
        • 位置:产生该7转5类LSA的ASBR上
    • LSA过滤(只能针对纯路由的LSA过滤)
      • 针对3、5、7、7转5类LSA 进行过滤:在汇总的命令后面+ not-advertise(不通告)
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值