jianfen's blog

Information is beautiful

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

添加新评论 »

在这里输入你的评论...

勿忘初心,方得始终.