**OSPF (Open Shortest Path First开放式最短路径优先)**
    属于链路状态路由选择协议,并且是公有标准,
    理论上是没有网络规模限制的;
    支持网络的层次化设计,可以将网络分为2层。
    层,是通过“区域”的概念来进行区分的。
        -骨干区域  \\(area0)
        -非骨干区域
     所有的非骨干必须与骨干区域直接相连,才能正常通讯

           路由器因为区域的存在,也分为不同的类型: 
    -骨干路由器
            所有链路都属于骨干区域的路由器;
    -非骨干路由器
            所有链路都属于非骨干区域的路由器;

    -区域边界路由器(*) 【ABR:area border router 】
           必须同时连接着骨干区域和非骨干区域;
    -自治系统边界路由器【ASBR:】
            具有引入外部路由能力的路由器,叫做OSPF的 ASBR。

                    -工作原理
  1、建立邻居表
        仅仅使用 hello 报文。
        OSPF路由,仅仅在 OSPF 邻居路由器之间进行交换;

        邻居状态:
             down
             init
             2way
             Exstart(exchange start)
             exchange
             loading
             full           

  2、同步数据库 
          LSA-link state advertisement , 链路状态通告;

  3、计算路由表(通过SPF算法,对LSA进行计算,从而获得最终的路由条目)   

-OSPF报文:
    hello:
    dbd:database description ,数据库描述报文;
    lsr:link state request ,链路状态请求报文;
    lsu:link state update ,链路状态更新报文;
    lsack:link state ack ,链路状态确认报文;

**  -OSPF相关命令:**
    0、建立测试端口:
        [R1]interface loopback 0 
        [R1-loopback0]ip address 10.10.1.1 255.255.255.0            

        [R2]interface loopback 0 
        [R2-loopback0]ip address 10.10.2.2 255.255.255.0  

  1、配置OSPF
        [R1]ospf [process-id]   // 不写的话,默认是1;
        [R1-ospf-1] area 0  // 进入区域0;
        [R1-ospf-1-area-0.0.0.0] network 192.168.12.1 0.0.0.0 
                                   //精确宣告 192.168.12.1所在的链路
                                      进入 OSPF 区域0;
                                      那么 gi0/0/0,则启用 OSPF 1 :
                                          #可以发送 ospf 1 的包;
                                          #可以接收 ospf 1 的包;
                                          #可以将该端口的IP地址中的
                                            网络部分,放入 OSPF 1 的包;
                                            中,传输出去,给邻接路由器。
  2、验证
       display ospf [1] peer brief //查看OSPF邻居表的简要信息;
       display ospf [1] peer   //查看OSPF邻居表的详细信息;
       display ospf [1] brief //查看本地设备上的 OSPF 1 的相关信息;
       display ip routing-table //查看路由表中的OSPF路由 
                                     (确定路由的类型和属性)

=================================================================

OSPF邻居建立影响因素:

1、确保最小范围内链路是互相 Ping通 的;(交换)

   R1:Ping R2 ; 
   R2:Ping R1 ;

2、确保设备端口可以发送报文;
   #network要宣告正确的网络范围;     
   #确保接收OSPF报文的端口不能是“被动端口- silent-interface”
     (华为设备上的 OSPF 的 silent-interface , 既不能发,也不能收包)
     ospf 1  
       silent-interface gi0/0/0          

3、确保设备端口可以接收报文;
   #network要宣告正确的网络范围;
   #确保 ACL 是允许 OSPF 流量的;
   #确保接收OSPF报文的端口不能是“被动端口- silent-interface”
     (华为设备上的 OSPF 的 silent-interface , 既不能发,也不能收包)
    R1:
      acl name Deny-OSPF advance
         rule 5 deny ospf   source      192.168.12.2 0.0.0.0 
                            destination 224.0.0.5    0.0.0.0 
      interface gi0/0/0 
         traffic-filter inbound acl name Deny-OSPF

 4、确保 OSPF Hello 包中的关键参数一致;【比较hello中的参数】
   # 直接建立邻居关系的路由器,RID一定不能相同;
          [R1]ospf 1 router-id  x.x.x.x // 指定 OSPF 1 使用的 RID 
           reset ospf 1 process // 重启 OSPF 1,才能生效;
   # 区域ID必须相同;
          [R1]ospf 1
          [R1-OSPF-1]area 0 
          [R1-OSPF-1-area-0.0.0.0]undo network 192.168.12.1 0.0.0.0
          [R1-OSPF-1]undo area 0 
          [R1-OSPF-1]area 1
          [R1-OSPF-1-area-1]network 192.168.12.1 0.0.0.0 
   # 认证必须成功;
   # 子网掩码必须得相同(特殊情况下)   
   # hello 时间,必须相同;
         [R1]interface gi0/0/0 
         [R1-gi0/0/0]ospf timer hello 20 // 更改hello时,dead跟随变化
                                             之间倍数关系是 4 倍; 
   # dead  时间,也必须相同;
         [R1]interface gi0/0/0 
         [R1-gi0/0/0]ospf timer dead 41 //更改dead时,hello不变;
   # 特殊标记位,必须完全相同;
   # DR优先级,不能全为0;(特殊情况下)
         [R1]interface gi0/0/0 
         [R1-gi0/0/0]ospf dr-priority 0
   # 3层MTU,必须完全相同;

验证命令:
     display ospf peer brief  //查看 OSPF 的邻居表
     display ospf interface gi0/0/0  //查看OSPF的接口;

OSPF路由协议工作原理、认识与配置单区域_第1张图片OSPF路由协议工作原理、认识与配置单区域_第2张图片