• OSPF协议


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

    无类别IGP协议;链路状态型;基于LSA收敛,故更新量较大,为在中大型网络正常工作,需要进行结构化的部署 --- 区域划分、ip地址规划

    组播更新 --- 224.0.0.5 224.0.0.6 支持等开销负载均衡

    支持触发更新 30min周期更新 跨层封装协议,协议号89;

    数据包 --- 5种

    Hello --- 邻居的发现,关系的建立,周期保活

    DBD --- 数据库描述包

    LSR --- 链路状态请求

    LSU --- 链路状态更新 -- 携带各种LSA

    LSack --- 链路状态确认

    OSPF状态机

    Down 一旦接收到hello包进入下一个状态机

    Init 初始化 接收到的hello包中,若存在本地的RID,进入下一状态

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

    条件匹配:点到点网络直接进入下一个状态机 MA网络将进行DR/BDR选举(40S)

    非DR/BDR之间不能进入下一个状态机

    Exstart -- 预启动 使用不携带目录信息的DBD包进行主从关系选举,RID数值大为主,优先进入下一个状态机; 主从目的主要在于信息交互的有序性,避免同时收发造成网络拥塞

    Exchange 准交换 -- 使用DBD携带目录信息,进行共享

    Loading 加载 -- 查看完邻接的目录信息后,针对本地未知的LSA,使用LSR包进行查询,对端使用LSU进行应答, 本地接收到LSA后使用ack进行确认 --- 获取未知的LSA信息

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

    OSPF的工作过程

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

    邻居关系建立后,将进行条件的匹配,匹配失败将维持邻居关系,仅hello包周期保活即可;

    匹配成功可以建立邻接(毗邻)关系;邻接关系间将使用DBD/LSR/LSU/LSack来获取本地未知的LSA信息;获取完成后,邻接关系间数据库同步一致;--- 数据库表

    之后本地基于本地的数据库所有内容整理出有向图--->最短路径树结构--->将本地到达所有未知网段的最短路径加载于本地的路由表中;

    收敛完成后,邻居间仅hello包周期保活即可;每30min邻接关系间周期比对数据库目录,

    若不一致将马上使用LSU和LSACK进行不一致部分收敛;

    拓扑突变 :

    1)新增网段:直连新增网段设备,用LSU直接进行触发更新

    2)断开网段:直连断开网段设备,用LSU直接进行触发更新

    3)无法沟通:dead time 为hello time4倍;在dead time到时时将断开邻接、邻居关系,删除路由;

    OSPF的基础配置

    [r1]ospf 1 router-id 1.1.1.1
    [r1-ospf-1]

    启动时可以定义进程号,进程号仅具有本地意义;

    每一个OSPF进程均需要RID,全网唯一;生成顺序:手写--环回接口最大数值的ip地址 -- 物理接口上数值最大的ip地址

    [r1-ospf-1]area 0
    [r1-ospf-1-area-0.0.0.0]network 1.1.1.1 0.0.0.0
    [r1-ospf-1-area-0.0.0.0]network 12.1.1.0 0.0.0.255

    宣告:1)区域划分 2)激活接口--可以收发ospf的信息 3)传递接口信息--该接口信息将被共享给其他邻接

    区域划分规则:

    1. 星型拓扑 --- 区域0为骨干,大于0为非骨干,所有非骨干必须连接到骨干区域方可正常共享路由

    1. 区域间必须存在ABR -- 区域边界路由器

    [r2]display ospf peer 查看邻居信息
    [r2]display ospf peer brief 查看邻居表

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

    hello包:

    周期收发 hello time 10s 或30s dead time为hello time 4倍

    邻居间hello包中必须完全一致的参数:否则无法建立邻居关系

    1)hello 、dead time 2)区域ID --区域划分规则--ABR 3)认证字段

    4)末梢区域标记 -- 特殊区域 5)华为系还要求邻居间直连接口ip的子网掩码必须一致;

    [r2]display ospf lsdb 查看数据库表

    LSDB-链路状态数据库--所有LSA的集合

    邻居关系建立后,关注条件,条件不匹配设备间维持邻居关系,仅hello包周期保活即可;

    条件匹配的设备间,将使用DBD/LSR/LSU/LSack来获取所有本地未知的LSA信息,完成数据库同步 --- 数据库表

    关于DBD包的扩展知识点:

    1)Ospf的DBD包中将携带接口的MTU值,要求邻接间的MTU必须一致,否则将卡在exstart或exchange状态机;

    华为默认未开启MTU检测

    [r1-GigabitEthernet0/0/1]ospf mtu-enable 在直连邻接的接口上开启,必须两端均开启

    2)DBD包中的标记位

    I M MS I为1标识该DBD包为本地发出的第一个DBD M为1标识该DBD包不是本地发出的最后一个DBD包 MS 为1标识本地为主,为0代表

    3)隐性确认

    主从被选举后,从将使用主的序列号为确认接收到了主的DBD包,即使从设备已经不需要发送DBD,依然要使用未携带信息的DBD来进行隐性确认;

    邻接关系间数据库同步完成后,本地基于数据库生成---有向图 ---> 最短路径树--->将本地到达所有未知网段的最短路径加载于本地的路由表中;

    默认优先级为10 ,度量为cost值;

    Cost=开销=参考带宽/接口带宽 默认参考为100M 当接口带宽大于参考带宽时,cost值为1;OSPF优选整段路径cost值之和最小为最短路径

    故当接口带宽大于参考带宽的网络可能导致选路不佳,建议修改参考带宽

    [r1]ospf 1
    [r1-ospf-1]bandwidth-reference ?
    INTEGER<1-2147483648> The reference bandwidth (Mbits/s)
    [r1-ospf-1]bandwidth-reference 1000 切记:全网设备参考带宽需要修改一致

    [r1]display ospf routing 查看所有本地学习以及共享出去的OSPF路由

    邻居关系成为邻接关系的条件 --- 和网络类型有关

    点到点 --- 所有邻居直接建立为邻接关系

    MA---由于OSPF协议需要邻接关系间进行数据库对比,故不支持接口水分割;若两两间均为邻接关系,将可能出现大量的重复更新;因此,在MA网络中ospf协议将进行DR/BDR选举,所有非DR/BDR设备间维持邻居关系,不进行数据库共享;

    选举规则:1)先比较参选接口的优先级 0-255 默认为1,大优

    2)若优先级相同,比较参选的RID,数值大优

    若需要干涉选举,可以修改参选接口的优先级

    [r1]int g0/0/1
    [r1-GigabitEthernet0/0/1]ospf dr-priority 3

    切记:选举是非抢占的,故修改后该网段依然维持原有角色,若希望重新选举,需要重启该网段所有设备的OSPF进程;

    reset ospf process 重启ospf进程
    Warning: The OSPF process will be reset. Continue? [Y/N]:y

    建议直接将DR优先级修改最大,BDR次大,其他设备优先级修改为0,0标识不参选,可以不同重启任何设备的ospf进程;

  • 相关阅读:
    【毕业设计】stm32微信天气机器人 - 物联网 嵌入式 单片机
    Elasticsearch的高级查询
    base64编码是啥?
    Modbus TCP什么场景用?
    Springboot 根据数据库表自动生成实体类和Mapper,只需三步
    IDEA+maven+Springboot工程创建超详细过程示例
    React魔法堂:size-sensor源码略读
    游戏解包获取游戏中的资源文件(以怪物圣所为例)
    浏览器主页被篡改怎么办,主页被篡改恢复方法
    mysql常用命令
  • 原文地址:https://blog.csdn.net/ZRSAI/article/details/128782967