HCIP(五)---OSPF的数据包、状态机、工作过程

动态路由协议

  • 在路由器间启动的一种协议,之后路由器间进行数据沟通,相互学习计算来获取之前未知的目标网段的路径

动态路由协议的分类

  • 基于AS进行分类

    AS之内运行—IGP协议 –内部网关路由协议 – RIP/OSPF/ISIS/EIGRP
    AS之间运行—EGP协议 -外部网关路由协议 – EGP/BGP

IGP协议的分类

  • 基于更新时是否携带子网掩码 — 有类别(不带掩码) 无类别 (携带掩码)

  • 基于工作特点进行分类

    距离矢量-DV : RIP/EIGRP 直接共享路由表 – 直接学习路由条目 更新量小
    链路状态-LS : OSPF/ISIS 共享拓扑信息 – 本地计算路由条目 更新量大

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

  • 无类别链路状态型路由协议

  • 公有协议;跨层封装到IP报头,协议号89; 组播更新:224.0.0.5 224.0.0.6

  • 触发更新、周期更新(30min);

  • 需要结构化的部署:区域划分 地址规划

数据包

  • 数据包结构

    结构除了每个包携带的data不一样外,其他的结构都一样
    在这里插入图片描述

  • 数据包种类

    Hello:用于邻居、邻接 发现、建立、保活 hello time 默认10s或30s,不需要ACK确认
    DBD:数据库描述包,不需要ACK确认,利用包的序列号确认
    LSR:链路状态请求
    LSU:链路状态更新
    LSack:链路状态确认
    在这里插入图片描述
    状态机

  • Down:一旦本地发出hello包进入下一个状态

  • Init:初始化 收到的hello包若存在本地的RID进入下一个状态

  • 2way:双向通讯 邻居关系建立的标志

  • 条件匹配:点到点网络将直接进入下一个状态; MA网络类型将进行DR/BDR选举,非DR/BDR间将无法进入下一状态;

  • Exstart:预启动 使用类似hello的无内容的DBD进行主从关系的选举,RID大为主优选进入下一状态

  • Exchange:准交换 使用真正的DBD进行数据库目录的共享,需要使用ACK确认

  • Loading:加载 使用LSR/LSU/LSAck来获取未知的LSA信息;

  • Full:转发 邻接关系建立的标志

工作过程

  • OSPF协议启动后,A向本地所有启动了OSPF协议的直连接口组播224.0.0.5发送hello包;该hello包中携带本地的全网唯一的router-id;
  • 之后对端B运行OSPF协议的设备将回复hello包,该hello包中若携带了A的routerid,那么A/B建立为邻居关系;生成邻居表;
  • 邻居关系建立后,邻居间进行条件匹配,匹配失败就停留于邻居关系,仅hello包周期保活;
  • 条件匹配成功可以开始建立邻接关系:
  • 邻接间共享DBD包,将本地和邻接的DBD包进行对比,查找到本地没有的LSA信息目录;
  • 之后使用LSR来询问,对端使用LSU应答具体的LSA信息,之后本地再使用ack确认,可靠;
  • 该过程完成后,生成数据库表
  • 再之后本地基于数据库表,启用SPF选路规则,计算到达所有未知网段的最短路径,然后加其加载到本地的路由表中;收敛完成,hello包周期保活,每30min再周期收发一次DBD来判断和邻接间数据库是否一致;

区域划分规则

  • 星型拓扑结构,区域0为中心骨干区域,其他大于0为非骨干站点区域;
  • 必须拥有ABR–区域边界路由器

HELLO包
hello包中邻居间必须完全一致的参数,任何参数不同,均导致邻居关系无法建立

  • 子网掩码(华为)发送hello包接口的源ip地址其掩码,为保证在同一网段
  • Hello dead time – OSPF接口网络类型相关
  • 认证字段 – 更新安全
  • 区域ID – 要求区域间存在ABR 不同区域在ABR上所以区域ID就相同
  • 末梢区域标记 --特殊区域

DBD包

  • DBD包中携带MTU值,要求邻居MTU值必须相同,否则将卡在exstart或exchange状态; 默认华为未开启MTU检测
[r1]interface GigabitEthernet 0/0/1
[r1-GigabitEthernet0/0/1]ospf mtu-enable
  • 隐性确认—不使用确认包,而是从设备复制主设备的序列号来确认收到了主的DBD
  • OSPF标记位 I M MS I为1本地发出的第一个DBD包
    M为0,表示本地发出的最后一个DBD; MS为1代表主,为0代表从;

邻居成为邻接关系的条件

  • 在点到点网络中,所有的OSPF邻居将直接建立为邻接关系;
  • 在MA网络中,为了避免大量的重复的LSA更新—因为OSPF需要邻接间进行DBD对比,故没有接口水分割机制;故必须进行DR/BDR选举,非DR/BDR间(drother间)仅建立邻居关系;—在每一个MA网段中均需要进行一次选举;
    例如:如下图:
    如果在该MA网络中不进行选举的话,就会有大量的LSA重复更新

在这里插入图片描述
选举后:
如下图,选出DR,非DR/BDR间不会建邻,不会共享路由信息,就会减少LSA的重复更新
在这里插入图片描述

  • 选举规则:

    优先级 数值大优,默认为1; 若为0为放弃选举;优先级一致,比较参选接口所有设备的router-id,数值大优;

修改参选接口的优先级
[r1-GigabitEthernet0/0/1]ospf dr-priority 2
切记:DR选举非抢占,故在修改优先级后,必须重启参选设备ospf进程来重新选举

三张表

  • 邻居表

    启动配置完成后,邻居间收发hello包,建立邻居关系;生成邻居表:

  • 数据库表

    邻居关系建立后,邻居间进行条件匹配,匹配成功者间可以建立为邻接关系;邻接关系间将使用DBD包进行主从关系选举,之后由主优先使用DBD进行数据库目录信息的共享,从而最终基于LSR/LSU/LSAck来获取未知的LSA信息;当收集到全网的LSA信息后,装载于本地的LSDB(链路状态数据库)–数据库表:

  • 路由表

    数据库建立后,本地基于SPF选路规则,计算到达未知网段最短路径加载于路由表中;

###注意

  • 在该图中,a1的流量是直接传到a2的,而不经过a2,因为中间的路由器是标准的区域边界路由器,可以进行区域间路由共享,不存在先到骨干区域,再到其他。

在这里插入图片描述

发布了49 篇原创文章 · 获赞 4 · 访问量 883

猜你喜欢

转载自blog.csdn.net/weixin_45404784/article/details/104917539
今日推荐