• 浅谈-动态路由之OSPF的理解


    路由

    在网络中,路由相当于就是一张地图,让路由器知道这个对应的IP数据包应该往哪端口、网段走;而这个“地图”我们称之为路由表,不同的目的IP路由表的下一个跳也不同,其生成方式有又有多种:

    • 静态路由:网络管理员手动定义的路由表条路
      • 默认路由:特殊的静态路由,路由表中没有的可以统一定义往这一路走。
    • 动态路由:通过路由协议来自动生成路由表条目,其中动态路由又有很多种,通过自治系统(AS)来划分
      • IGP(内部网关协议)RIP、OSPF、IS-IS、EIGRP
      • EGP(外部网关协议)BGP
    协议名协议算法备注
    RIP(路由信息协议) 距离矢量协议(DV)  
    OSPF(开放式最短路径优先) 链路状态协议(LS) 可以用在大型的企业核心网中
    IS-IS(中间系统到中间系统) 链路状态协议(LS) 这个协议我用比较少,和OSPF类似
    EIGRP(增强内部网关路由协议) 链路状态+距离矢量协议(LS+DV) 思科私有协议
    BGP(边界网关协议) 距离矢量协议(DV) 用在AS之间的路由协议,结合MPLS技术,实现不同AS内路由协议不同也可正常通信

    路由协议算法

    路由协议算法一般是两种,距离矢量协议和链路状态协议。

    距离矢量协议

    距离矢量路由协议算法,定期(比如RIP是30s)获取相邻路由器的路由表条目,对开销更低或者新的条目进行开销增加的操作,更新在自己的路由表条目。

    • 特点:开销小、路由器只知道邻居路由器的情况可能有不是最优的路由决策、收敛较慢;

    链路状态协议

    链路状态协议算法,获取最多使用Dijkstra算法,求出最短路径。

    • 特点:开销大、收敛快

    OSPF协议(协议号89)

    OSPF是我们最常用的动态路由协议。回归到我们动态路由的目的:

    让路由器能够自动地建立自己的路由表,并且能够根据实际情况的变化适时地进行调整。

    OSPF基本思想:

    每个路由器将已知的链路状态信息通告邻居,收敛后,每个路由器对全网的链路状态有相同的路由认识,也就是全部拓扑。单台路由器根据全部拓扑,使用Dijkstra计算路由。

    LSA和LSDB

    名词注解
    LSA(链路状态通告) LSA含有路由器链路状态的信息(比如路由器编号,直连网段,开销等),一台路由器对于一条LSA
    LSDB(链路状态数据库) 存在每台路由器中,由多条LSA组成,实现区域内部可以达到信息同步

     

    图1.LSA和LSDB

    DB和BDR

    • DR指定路由器(Designated Router),负责建立邻接和LSA的同步工作
    • BDR备份指定路由器(Back-up Designated Router)

    DR/BDR由于端口的优先级来进行选举,接口的DR优先级越大越优先

    DR和BDR会与其他所有路由器形成邻接关系并交换链路状态信息,其他路由器之间不直接交换链路状态信息

    组播地址传递

    组播IP功能
    224.0.0.5(AllSPFRouter) DRother侦听224.0.0.5
    224.0.0.6(AllDRouter) DR/BDR侦听224.0.0.6
    1. 在点到点网络,是连接单独的一对路由器的网络、PPP(点对点)网络上的有效邻居总是可以形成邻接关系的,在这种网络上,OSPF包的目标地址使用的是224.0.0.5来发送LSA等路由选择及更新信息,这个组播地址称为AllSPFRouters。
    2. 在广播型网络,比如以太网,Token Ring和FDDI,这样的网络上会选举一个DR和BDR,DR/BDR的发送的OSPF包的目标地址为224.0.0.5,运载这些OSPF包的帧的目标MAC地址为0100.5E00.0005;而除了DR/BDR以外的OSPF包的目标地址为224.0.0.6,这个地址叫AllDRouters。

    工作过程

    1. 发现邻居(A、B先相互发送Hello报文)
    2. 建立邻接关系(网络中选取DR和BDR,网络内所有的路由器只与DR和BDR建立邻接关系)
    3. 传递链路状态信息LSA(收敛以后区域内所有路由器具有相同的LSDB)
      1. 触发更新或定时(30min)更新
      2. 增量更新(只向邻居发送需要LSA)
    4. 计算最优路由(Dijkstra算法)
      1. 使用LSDB内的LSA,对应的生产加权的有向图,每台路由器自动计算自己最优的路径。

     

     图2.计算最优路由

    Area 区域划分

    • 使用划分的区域的方式,将大区域划分为若干个小区域。每个区域内只需要维护本区域内的LSDB,同时可以减少LSA泛洪范围。
    • 区域ID可以使用点32位点分十进制命名,也可以直接使用一个十进制数。area 0=area 0.0.0.0

    所有的区域以星型结构的方式与area0(骨干区域)直接连接。

    • 边界的路由器称之为ABR,可能端口1是area0端口2是area1。

    五种报文

    报文类型功能
    Hello 发现和维护邻居关系
    Database Description 交互链路状态数据库摘要
    Link State Request 请求特定的链路状态信息
    Link State Update 发送详细的链路状态信息
    Link State Ack 发送确认报文
  • 相关阅读:
    grafana 监控无图解决
    《数字图像处理-OpenCV/Python》连载:形态学图像处理
    华为审核被拒提示: 您的应用存在(最近任务列表隐藏风险活动)的行为,不符合华为应用市场审核标准
    Educational Codeforces Round 115 (Rated for Div. 2)
    一文让你彻底了解Linux内核文件系统(大总结)
    VSCODE 系列(三)Settings Sync同步设置
    Linux权限
    UG\NX二次开发 获取用户默认设置中的绘图信息 UF_PLOT_ask_session_job_options
    如何建设水利数字孪生流域
    TPM分析笔记(十)TPM 组织架构(TPM hierarchy)
  • 原文地址:https://www.cnblogs.com/alittlemc/p/16769983.html