zoukankan      html  css  js  c++  java
  • OSPF路由协议详解

    概述:

          OSPF 全称为Open Shortest Path First,也就开放的最短路径优先协议,因为OSPF是由IETF开发的,它的使用不受任何厂商限制,所有人都可以使用,所以称为开放的,而最短路径优先(SPF)只是OSPF的核心思想,其使用的算法是Dijkstra算法。

    工作过程:

         

    OSPF特点:

    • 可适应大规模网络
    • 使用组播更新,属于触发更新(组播地址:224.0.0.5,224.0.0.6)
    • 快速收敛
    • 使用SPF算法构造无环网络
    • 具有区域划分。
    • 使用LSA报文来交换路由信息

    基本概念:

    Router ID:ospf区域内唯一标识路由器的ip地址。

    Router ID选取规则:

    • 选取路由器loopback接口上数值最高的ip地址
    • 没有loopback接口,在物理端口中选取ip地址最高的
    • 也可以使用router-id命令指定Router ID(32位公网IP地址)

    区域ID:

    • 区域ID可以表示成一个十进制的数字
    • 也可以表示成一个ip

    DR和BDR的选举方式

    自动选举DR和BDR

    • 网段上Router ID最大的路由器将被选举位DR,第二大的将被选举为BDR

    手工选择DR和BDR

    • 优先级范围是0~255,数值越大,优先级越高,默认为1
    • 如果优先级相同,则需要比较Router ID
    • 如果路由器的优先级被设置为0,则不参与选举

    OSPF的三张表

    • 邻居表

            2台路由器的OSPF要协同工作,基本要求就是二者形成全毗邻的邻接关系,而邻居表存储了OSPF路由器邻居的状态和邻居的其他信息。

    • 拓扑数据库(LSDB)

            OSPF用LSA来描述网络拓扑信息,LSDB中存储着路由器产生或者受到的LSA。

    • OSPF路由表

            基于LSDB进行SPF算法运算,计算出的路由存储在此表中,也就是说用于实际数据传送的路由存在此处

    OSPF中消息数据包的类型(5种)

    OSPF协议7种状态分析:

    ----------------------------                                           ---------------------------
    | | 112.18.17.1/30                                                      112.18.17.2/30 | |
    | 路由A |--------------------------------------------------------------------| 路由B |
    | |                                                                                                       | |
    ----------------------------                                           ----------------------------
                            E0                                                        E1
                                              【Down State】
                       I am route ID 112.18.17.1/30, and I see no one
    -------- ---------------
    |Hello|----------》》》--------------------------------------------------------》》》----------|to 244.0.0.5|
    -------- ---------------
                   E0                                                                                   E1
                                                【Init State】
    Router B
    Neighbor list
    112.18.17.1/30 init E1
    I am route ID 112.18.17.2/30, and I see 112.18.17.1
    -------- -------
    | to A |----------《《《--------------------------------------------------------《《《---------|Hello|
    -------- -------
    Router A
    Neighbor list
    112.18.17.2/30 init E0
                            【Two-Way State】 ###此时只是建立邻居关系,还没有建立连接关系

    ########################################################################################
    第一个DBD不包含LSA头部吗,只是RID,
    1:init=0 不是第一个DBD
    M:more=1表示后读DBD
    MS:master=1表示主
    ---------------------------- -                                       --------------------------
    | | 112.18.17.1/30                                               112.18.17.2/30 | |
    | 路由A |----------------------------------------------------------------- --| 路由B |
    | | | |
    ----------------------------                                           ---------------------------
                           E0                                                 E1


                                           【Exstart State】
    I will start exchange because I have router ID 112.18.17.1
    --------
    | DBD |----------》》》--------------------------------------------------------》》》---------------
    --------
    No ,I will start exchange because I have a higher router ID
    -------
    -------------------《《《--------------------------------------------------------《《《---------|DBD|
    -------
    选主从的目的,是谁先发DBD,这和选DR、BDR是两个概念

                                      【Exchange State】
    Here is a summary of my LSDB -------
    -------------------《《《--------------------------------------------------------《《《---------|DBD|
    -------

    -------- Here is a summary of my LSDB
    | DBD |----------》》》--------------------------------------------------------》》》---------------
    --------
    ########################################################################################
    ---------------------------- ---------------------------
    | | 112.18.17.1/30                                                       112.18.17.2/30 | |
    | 路由A |----------------------------------------------------------------- --| 路由B |
    | | | |
    ----------------------------                                           ----------------------------
                     E0                                                                    E1


                       -------- Thanks for the information ---------
    |LsAck|----------《《《--------------------------------------------------------》》》----------|LsAck|
    -------- ---------
                                           【Loading State】

    -------- I need the complete entry for net work 112.18.16.0
    | LSR |----------》》》--------------------------------------------------------》》》---------------
    --------
    Here is the entry for network 112.18.16.0 ------
    -------------------《《《--------------------------------------------------------《《《---------|LSU|
    ------

    --------                           Thanks for the information
    |LsAck|------------》》》--------------------------------------------------------》》》----------
    --------
                                                      【Full State】

     OSPF的三种通信量:

    1. 域内通信量:单个区域内的路由器之间交换数据包构成的通信量
    2. 域间通信量:不同区域的路由器之间交换数据包构成的通信量
    3. 外部通信量:ospf域内的路由器与ospf域外或另一个自治系统内的路由器之间交换数据包构成的通信量

    ospf链路状态数据库

    链路状态数据库的组成

    • 每个路由器都创建了由每个接口、对应的相邻节点和接口速度组成的数据库
    • 链路状态数据库中每个条目称为LSA(链路状态通告),常见的有六种LSA类型

    道阻且长,行则将至!加油! --不是冷漠
  • 相关阅读:
    Gates entitled as knight
    the next generation Office
    Beautiful songs
    一则比较搞笑的新闻:【人才】微软招募英才 机会不容错过
    About cmt lint tools
    Alpha's blog open !
    抱歉!
    新闻:IBM的新工具CHIPHOPPER! 一套能够极大扩展Linux应用范围的新工具、新资源和新软件
    读书笔记:Thinking in Java (一)
    The best coders are:/什么是最牛的程序员
  • 原文地址:https://www.cnblogs.com/bushilengmo/p/13221265.html
Copyright © 2011-2022 走看看