OSPF路由协议详解

RIP动态路由协议存在局限性

RIP动态路由协议存在以下问题:

1、网络规模小,可扩展性差,最大只能支持15跳。

2、以跳数衡量,并非最优路径

3、收敛慢,更新RIP浪费网络资源

OSPF协议概要

      OSPF简述

        Open Shortest Path First,开放的最短路径优先协议。OSPF用于网际协议(IP)网络的链路状态路由协议。该协议使用链路状态路由算法的内部网关协议(IGP),在单一自治系统(AS)内部工作。

      OSPF特点

        OSPF支持区域的划分,区域内部的路由器使用SPF最短路径算法保证了区域内部的无环路。

        通过Cost(消耗)计算最佳路径。

        使用LS(Link State)算法。

      OSPF三大表项

        OSPF协议定义了三张表邻居表(Neighbor-Table)、拓扑表(Topology-Table)、路由表(Rouing-Table)。这三张表的关系层层递进,OSPF的区域中当有路由加入时,先通过邻居表相互发现,再通过邻居表汇总拓扑表,通过拓扑表,用SPF算法计算出路由表。

      OSPF区域划分

        OSPF的区域划分为:

                骨干区域(Backbone Area),类似于树的根;

                标准区域(Normal Area),类似于树的子节点;

                末梢区域(Stub Area),类似于树的叶,树的叶下面可能会挂其他网络环境;

                        衍生:完全末梢区域(Total Stub Area),树的叶下面确定不会再挂任何网络环境

                非完全末梢区域(Not So Stub Area,nssa),类似于树的叶,但是叶子下面仍然可能有不属于当前OSPF的网络环境。

                        衍生:完全非完全末梢区域(Total Not So Stub Area),树的叶子下面确定会再挂一段不属于当前OSPF的网络环境。

     OSPF路由器的种类

        IR--InternalRouter(区域内路由器)
        ABR--AreaBorderRouter(区域间路由器)ospf的区域之间
        BR(骨干区域路由器)
        ASBR--AreaSystemBorderRouter(区域系统自制路由器)

cc09ebc63eeb4c2aa964e9bcd76942da.png

        

     OSPF内某个网段内的DR/BDR选举

               对于OSPF来说,每个网段内都需要一个DR(主路由)和一个BDR(备份路由)。用以让单个网段内的路由形成树状结构。

      选举过程

                    方式一:选举自动
                网段上Router ID最大的路由器将被选举为DR,第二大的将被选举为BDR
                    方式二:手动
                可以设置路由的选举优先级范围是0-255,数值越大,优先级越高,默认1
                若优先级相同,需要比较Router ID
                如果路由器优先级被设置为0,它将不参加DR与BDR的选举
                     PS:优先级可以影响一个选举过程,但是不能强制更换已存在的DR或BDR路由器
                    两个组播地址:
                    224.0.0.5 代表所有ospf路由器
                            DR和BDR使用此地址来发送更新到所有其他路由器
                    224.0.0.6
                            代表DR和BDR,其他路由器都向此地址来发送链路状态信息更新


       选举DR和BDR的作用

        DR和BDR可以减少邻接关系的数量,从而减少链路状态信息以及路由信息的交换次数,这样可以节省带宽,降低对路由器处理能力的压力。
         PS:同一个网段内选举,路由器多的时候DR和BDR有多个

OSPF工作流程

从两个路由之间的通信

相互发现

f016346cfc044628871c72d09fdf77f9.png        

各状态的含义:

        down:未启动的阶段

        init:已经初始化启动,未查找到neighbor的状态

        2-way:已经查找到neighbor的状态

Hello报文相互传递邻居关系。

请求并更新数据

7e38d2fd24f84fd29a747f27850261f2.png

2c154a21a1d444a3b2090150cfa5e147.png

Exstart:做Master和Slave选举,目的是为了保证两个路由器之间传输数据的可靠性
Exchange:交换LSDB summaries,为了知道对方的缺失,并节省流量
Loading:LSR--LSU--LSAck数据同步(LSR:LS Request:请求缺失的LSA;LSU:LS Update:更新缺失的LSA条目,LSAck:确认更新)
Full:完成数据同步的状态

OSPF报文信息

Hello 

OSPF使用Hello分组建立和维护邻接关系。在一个路由器能够给其他路由器分发它的邻居信息前,必须先问候它的邻居们。

DBD(Data base Description)

DBD分组不包含完整的“链路状态数据库”信息,只包含数据库中每个条目的概要。当一个路由器首次连入网络,或者刚刚从故障中恢复时,它需要完整的“链路状态数据库”信息。此时,该路由器首先通过hello分组与邻居们建立双向通信关系,然后将会收到每个邻居反馈的DBD分组。新连入的这个路由器会检查所有概要,然后发送一个或多个链路状态请求分组,取回完整的条目信息。

DBD功能

        选取Master(主)和Slave(备)
        交换LSDB的summarie(摘要):主要为了同步LSDB之前节省网络流量

报文详情

       LSA-type:LSA的类型

               1:Router-LSA

               2:Network-LSA

               3:Network-summary-LSA

               4:ASBR-summary-LSA

               5:AS-external-LSA

               7:NSSA-External-LSA

        Link State ID:该LSA所描述的那部分链路的标识

        Advertising Router:产生此LSA的路由器ID

        LS sequence number:用于检测旧的和重复的LSA

LSR(Link State Request)

        LSR分组用来请求邻居发送其链路状态数据库中某些条目的详细信息。当一个路由器与邻居交换了数据库描述分组后,如果发现它的链路状态数据库缺少某些条目或某些条目已过期,就使用LSR分组来取得邻居链路状态数据库中较新的部分。

LSU(Link State Update)

        LSU分组被用来应答链路状态请求分组,也可以在链路状态发生变化时实现洪泛(flooding)。在网络运行过程中,只要一个路由器的链路状态发生变化,该路由器就要使用LSU,用洪泛法向全网更新链路状态。
    用来向对端路由器发送所需要的LSA。LSA(Link State Advertisement),是LSDB里面的单条详细信息

LSAck(Link State Acknowledgment)

        LSAck分组被用来应答链路状态更新分组,对其进行确认,从而使得链路状态更新分组采用的洪泛法变得可靠。

OSPF同网段内路由器的通信

拓扑图

68c79c3cfe2c43b38dbd6d9c212dda87.png

图中AR1、AR2、AR3、AR4在同一网段内。会进行DR/BDR选举。

各路由器之间的信息交互

        非DR、BDR的路由器(OR)只与DR、BDR同步数据
    1、如图:AR1和AR2分别为DR和BDR时,AR3和AR4就不会相互更新数据,状态为2-way的状态

ee5da5a7d79b467297ddbe99c3fd8fd1.png
    2、OR和DR和BDR直连的时候,不直连的时候还是会Full状态

同一网段内路由更新的组播报文:

如果DR有更新
    DR会发送LSU,组播消息224.0.0.5
    BDR会发送LSAck到224.0.0.5
    OR会发送LSAck,到224.0.0.6
如果BDR有更新
    BDR会发送LSU到224.0.0.5
    DR会发送LSAck到224.0.0.5
    OR会发送LSAck到224.0.0.6
如果OR有更新
    OR会发送LSU到224.0.0.6
    DR会发送LSU到224.0.0.5
    BDR会发送LSAck到224.0.0.5

OSPF同区域间路由器的通信

标准区域间的网络通信Link State DateBase

举例拓扑:

骨干区域内网段:10.0.12.0/24 、10.0.13.0/24

图中各路由类型:

BR:AR1

ABR:AR2、AR3

ASBR:AR6

观察各路由器的lsdb

LSA的type类型

type = 1:Router-LSA,路由器LSA,由普通路由发布

type = 2:Network-LSA,网络LSA,由DR发布

type = 3:Network-summary-LSA,网络汇总LSA,由ABR发布

type = 4:ASBR-summary-LSA,ASBR汇总LSA,由ASBR发布

type = 5:AS-external-LSA,自治系统外部LSA,由AS系统边界路由ASBR发布

BR:AR1

ABR:AR2、AR3

内部包含area 0 和 area 44的数据,以及外部网络环境

area 0包含去往area 44的LSA:Sum-Net 10.44.56.0

area 0包含去往area 55的LSA:Sum-Net 10.55.34.0

area 44包含去往area 0内网段的LSA:Sum-Net 10.0.12.0、Sum-Net 10.0.13.0

ASBR:AR6

包含去往area 44和外部网络的信息

可见,标准区域内的路由包含所有所有的网络拓扑,ABR/ASBR包含连接的两个area的LSAs。

当网络拓扑扩大,ospf的网络拓扑会变得很大,因此引入树叶(末梢区域)的概念

具体细分为以上所说的OSPF区域划分的那些区域。详见如下。

OSPF不同区域类型路由器的通信

网络拓扑

ABR:

        AR3:末梢区域的路由,有一条Sum-Net 0.0.0.0的缺省路由,作用是该区域内部路由找ip时没有在该区域的路由统统通过默认路由出去,往AR2走。

AR5:NSSA区域的路由,有一条NSSA路由,NSSA 192.168.55.0,指向非当前ospf的网络环境;还有一条NSSA路由,0.0.0.0,指向当前nssa区域的出口AR4。

AR9:

完全stub区域,与AR3对比,sum-net汇总成单条记录,表示:该区域的默认出口为:AR8

AR11

完全NSSA,与AR5比较,sum-net也汇总成了单条记录0.0.0.0,表示该区域的默认出口为AR10。

OSPF区域类型总结

 骨干区域:不能设置成nssa或者stub

 标准区域:包含type 1 2 3 4 5 7

 末梢区域:包含type 1 2 3

 完全末梢区域:包含type 1 2 【单条缺省的3】

 NSSA:包含type 1 2 3 7

 完全NSSA:包含 type 1 2 【单条缺省的3】7

 *完全的区域类型:设置了no-summary,导致type 3会变成一条缺省LSA*

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值