【OSPF】协议特点基础笔记

日期: 2016-10-22 更新: 2020-04-08 分类: 网络工程

[OSPF]协议特点基础笔记

OSPF(Open Shortest Path First开放式最短路径优先/接口敏感型协议)是一个内部网关协议:

链路(LINK)= 路由器接口
状态(state)= 描述接口以及其邻居路由器之间的关系

  • 特点:
    IGP内部网关路由协议
    链路状态型协议(link-State)
    支持无类VLSM CIDR   
    OSPF报文封装在IP报文中三层协议无端口所有有协议号89
    组播224.0.0.5/224.0.0.6(MA多路访问网络)

说道距离矢量和链路状态协议区别:
PS :DV = Distance Vector (距离矢量) LS = Link status (链路状态)

  • DV和LS比较
    1.LS协议和DV协议最根本的区别是 LS协议会获取该路由的详细拓扑信息
    2.即使EIGRP所谓拓扑表为只有路由信息并无topology信息
    3.DV协议总是以传闻的方式去直接获取路由只知晓从哪个接口收到路由
    4.LS协议必须分层(划分区域)而DV协议不需要

  • 再说说LS协议划分区域的好处:
    1.减少路由条目(域间汇总)
    2.本地拓扑变化只会影响一个区域(汇总后明细down不会影响其他区域)
    3.LSA细节化(节省带宽)

  • 分层要点:

    area 0 (传输区域 骨干区域)
    只要一个接口在area0
    backbone routers(骨干路由器->area0)
  • ABR(area border router)

    所有区域必须和area 0相接如果不是则需要其他技术

OSPF建立邻接关系的过程:
HELLO(建邻居) -> link-state database (存放LSA) -> SPF算法(树形结构无环) -> 路由表(最优路由)
topology table (路由+拓扑)

  • down state(关闭状态)
    1.    尚未交互信息
        OSPF: Interface Serial1/0 going Up
        OSPF: rcv. v:2 t:1 l:48 rid:2.2.2.2
              aid:0.0.0.0 chk:E694 aut:0 auk: from Serial1/0

————————->224.0.0.5—–

  • init state(初始化状态)
    1.    开始发送HELLO包(自己Route ID)
        OSPF: rcv. v:2 t:1 l:48 rid:2.2.2.2
              aid:0.0.0.0 chk:E694 aut:0 auk: from Serial1/0

  • Two-way state(双向状态)
    1.    收到一个HELLO包,发现自己route ID
        OSPF: 2 Way Communication to 2.2.2.2 on Serial1/0, state 2WAY

扩展:到这里2个接口已经是neighbor(邻居)但是要达到adjacency(邻接)关系需要按下面要求:
    1.    neighbor只交互了HELLO包
    2.    adjacency交互了LSA才能形成
    3.    邻接一定是邻居反之不是

————MA网络(选举DR/BDR通过HELLO报文)和P2P网络————

扩展:OSPF网络类型:
   1.Point-to-Point WAN links:所有邻居都会成为邻接关系
   MA网络:  
       1.    BMA   (以太网)
       2.    NBMA    (帧中继)
       由于多路访问使得频繁建立邻接关系组播流量庞大

       为了减小发送LSA频率(寻找班长和副班长)
               DR: designated 指定路由器
               BDR: backup 备份路由器
               DROTHERS和DR,BDR形成adjacency
               DROTHERS and DROTHERS只形成tow-way(交互完HELLO包)

            MA网络建立邻居
               224.0.0.5  DR/BDR发送信息
               224.0.0.6  DRothers监听与DR/BDR发送信息 当拓扑变动drothers通过.6组播发送给DR/BDR

           DR选举顺序:
               1.较大的pirority (default=1)
               2.较大的route ID
           DR/BDR选举特点:
               1.**DR/BDR非抢占**
               2.当DR 接口 down BDR变成DR
                  DRothers再选BDR
               3.DR/BDR/DROTHER是接口概念(接口敏感性协议)
               4.不同网段分别选DR

  • exstart state
    1.互发Route ID选择主从关系(first DBD包)
             发送DBD是会附带序列号和标示:
                 init         More      master/Slave
     隐式确认:
        1.根据主路由器的序列号
        发送:Send DBD to 2.2.2.2 on Serial1/0 seq 0x606 opt 0x52 flag 0x7 len 32
        接收:rcv. v:2 t:2 l:32 rid:2.2.2.2 aid:0.0.0.0 chk:7E02 aut:0 auk: from Serial1/0
        Rcv DBD from 2.2.2.2 on Serial1/0 seq 0x23F4 opt 0x52 flag 0x7 len 32  mtu 1500 state EXSTART
            NBR Negotiation Done. We are the SLAVE
    本地R1 route ID : 1.1.1.1 所以为slave同步为master序列号0x23F4

扩展 LSA序列号(sequence numbering):
1.线性(从小到大)
2.圆形
3.棒棒糖(线性(负)和圆形的结合)


  • exchange state
    1.交互DBD目录
    Send DBD to 2.2.2.2 on Serial1/0 seq 0x23F4 opt 0x52 flag 0x0 len 32
    rcv. v:2 t:2 l:52 rid:2.2.2.2 aid:0.0.0.0 chk:990E aut:0 auk: from Serial1/0
    Rcv DBD from 2.2.2.2 on Serial1/0 seq 0x23F5 opt 0x52 flag 0x3 len 52  mtu 1500 state EXCHANGE
    Send DBD to 2.2.2.2 on Serial1/0 seq 0x23F5 opt 0x52 flag 0x0 len 32
    rcv. v:2 t:2 l:32 rid:2.2.2.2 aid:0.0.0.0 chk:7E06 aut:0 auk: from Serial1/0
    OSPF: Rcv DBD from 2.2.2.2 on Serial1/0 seq 0x23F6 opt 0x52 flag 0x1 len 32  mtu 1500 
    state EXCHANGE
    OSPF: Exchange Done with 2.2.2.2 on Serial1/0
    MTU 1500 相同在DBD报文中所以这也是达到FULL的条件(Maximum Transmission Unit 最大传输单元)

  • loading state
    1.交互LSR LSU
        Rcv LS UPD from 2.2.2.2 on Serial1/0 length 64 LSA count 1

扩展:
LSA接收方式:
1. 不存在该LSA->add to database -> Send LSACK->Flood LSA->calculate放入路由表
2. 收到相同LSA->比较序列号判断新旧->相同丢弃/不同则回溯源端LSU

OSPF算法(dijkstra's SPF):
     every router in an area has the identical link-state database
 在同一区域内的每台路由器都有统一链路数据库
 每台路由器以自己为根计算一个树形最优无环路径
 cost = 10^8/带宽(bps)
 10^8/1.544*10^6 = 64 10^8 = 100M  1.544是T1链路的速率Mbps
 **路由方向入接口相加就是到达链路的cost值**
 **数据方向出接口相加就就是达到链路的cost值**

Full state
1. lsack
Synchronized with 2.2.2.2 on Serial1/0, state FULL


扩展:
OSPF更新方式
1. 触发更新
2. 周期更新(每30分钟泛洪/60分钟老化)


OSPF报文内容和类型

[ospf packet types]
1)Version Number(OSPF版本号)
2)Type
        1.HELLO                        
                    HELLO
                        包含内容:
                                1.router ID
                                2.hello and dead intervals *
                                        1)    10S/40S         Point-to-Point
                                        2)    30s/120s        MA
                                3.neighbors
                                4.area ID*
                                5.router priority
                                6.DR ip address
                                7.BDR ip address
                                8.authentication password*
                                9.stub area flag *
                                PS: *部分一致才能建立邻居
        2.DBD
                    database Description
                        1.    LSA摘要-目录 
                        2.    隐式确认序列号同步
                        3.    MTU需要一致(最大传输单元 单位:字节  英文:Maximum Transmission Unit)

        3.LSR
                    Link-state Request
                        1.发送需要LSA的摘要信息

        4.LSU
                    Link-state Update
                        1.更新给对方对应的详细LSA信息

        5.LSACK
                    Link-state Acknewledgment
                        1.LSACK只对LSU确认


3)Packet Length
4)Route ID
        1)选举方式:
            1.手工指定(任意,唯一标示)
            2.loopback口最大的IP地址
            3.物理接口最大的IP地址
5)Area ID
6)Check-sum
7)authen-tication Type
        1.无
        2.明文
        3.密文
8)authen-tication(秘钥)
Data