一、OSPF特性:

   1.IETF标准:开房协议,被不同厂商设备所支持


   2.无环路由协议:执行SPF算法,不会产生环路



   3.无类路由协议:支持VLSM和CIDR



   4.拥有不受限的跳计数:可以应用与大型网络



   5.层次型:容易拓展,路由器负担不会随着网络规模的增大而急剧增加



   6.区域化设计:减少路由更新的流量,降低内存、cpu和带宽的使用



   7.快速收敛:触发式更新



   8.支持验证:支持对区域和链路的验证




二、OSPF术语



    1.链路(link):接口被加入到OSPF进程中就被认为是OSPF的一个链路



    2.链路状态(link-state):包括IP地址和子网掩码、接口的网络类型、链路花费、链路上的邻居



    3.路由器ID(router id 即RID):①手工指定 ②换回接口中最高IP地址 ③所有激活的屋里接口中最高的IP地址



    4.邻居(neighbor):连接在一个公共的网络上



    5.邻接(adjacency):OSPF只与建立了邻接关系的邻居共享路由信息 但①不是所有的邻居都可以成为邻接关系 ②并不是有邻接关系的路由器都是邻居(虚电路)



    6.区域(area):OSPF以链路划分区域来实现分层设计。同一个AS(自治系统)内的路由器被划分在多个区域,跨越多个区域的路由器成为ABR(区域边界路由器)。Area 0 为骨干区域



    7.指定路由器(designated router 即DR):所有的DROther路由器都与DR和BDR建立邻接关系,DR代表该多路访问网络中的所有路由器,每台路由器都把拓扑变化发往DR和BRD,然后由DR通知该多路访问网络中的其他路由器



    8.备用的指定路由器(backup designated router 即BDR):当DR因故离线时,BRD转变成DR,接替DR的工作



    9.花费(cost):OSPF使用的唯一度量值就是花费。每条链路都有一个花费,可根据链路的带宽计算而来,也可以人为修改



三、OSPF包类型


1.hello 
 
 
 
 
        ①建立和维护OSPF路由器间的邻接关系 ②再多路访问网络中选择DR和DBR 
 
 
 
 
      2.DBD(database description,数据库状态描述包) 
 
 
 
 
        发送LSDB的简短描述,对比接收路由器和本地的LSDB,检测LADB是否同步 
 
 
 
 
      3.LSR(link-state request,链路状态请求包) 
 
 
 
 
        接收路由器可以发送LSR来请求发送路由器DBD中的某些条目的详细信息 
 
 
 
 
      4.LSU(link-state update,链路状态更新包) 
 
 
 
 
        更新OSPF路由信息,回复LSR请求。 
 
 
 
 
        LSU被分成多种类型的LSA(link-state advertisement,链路状态通告),如:类型1——router LSA;类型2——network LSA 
 
 
 
 
      5.LSAck(link-state Acknowledgement,链路状态确认) 
 
 
 
 
        当一个LSU被收到时,路由器发送LSAck进行确认 
 
 
 
 
  
 
 
 
  四、OSPF邻居关系建立阶段 
 
 
 
 
      1.down:初始状态,没有任何交换信息 
 
 
 
 
      2.init:初始化阶段,收到了邻居的hello报文,但邻居还没发现自己 
 
 
 
 
      3.two-way:双向阶段,建立了邻居关系,但不能共享路由信息 
 
 
 
 
      4.exstart:准备开始交换阶段,用hello分组来协商路由器的主/从关系 
 
 
 
 
      5.exchange:开始交换阶段,将本地的LSDB用DBD报文来描述,发送给邻居 
 
 
 
 
      6.loading:加载阶段,发送LSR报文向邻居请求对方的路由条目的详细信息 
 
 
 
 
      7.full:完全邻接状态,路由器变成full adjacency 
 
 
 
 
  
 
 
 
  五、配置解析 
 
 
 
 
      1.OSPF进程号(process-id),取值范围1-65535,仅具有本地意义,与同一个区域中的OSPF路由器进程号没有关系,进程号不同不影响连接关系的建立 
 
 
 
 
      2.EIGRP的AS号,则必须相同,才能交互路由信息 
 
 
 
 
      3.一台路由器的不同接口可以属于多个OSPF区域,相邻路由器的接口要在同一个区域内才能建立邻接关系 
 
 
 
 
      4.如果一台路由器的所有接口都运行OSPF,,可以节约时间使用简化的配置写法:network 0.0.0.0 0.0.0.0 area 0 。但show run时,会发现命令被自动修改为:network 0.0.0.0 255.255.255.255 area 0。 
 
 
 
     
 
 

    int lo0 
  
 
  

    ip ospf network point-to-print 
  
 
 
 
      6.接口优先级主要用于DR和BDR的选举,默认是1. 点对点链路不需要选举DR和BDR,接口优先级是0,显示“-”。查看接口优先级可用: 
 
 
 

     show ip ospf interface_ 
   
 
  

        7.在同一个区域内的所有OSPF路由器的拓扑数据库都是一样的 
  
 
  

      show ip ospf database 
    
 
   

         8.所有的DROther路由器由于DR和BDR建立邻接关系,DROther路由器之间停留在two-way状态,路由器邻接关系的减少,可以加速网络的收敛 
   
 
   

         9.224.0.0.5是DROther路由器的组播地址;224.0.0.6是DR和BDR的组播地址 
   
 
   

         10.广播型多路访问的网络有以太网、令牌环和FDDI;非广播型多路访问的网络有帧中继、X.25和SMDS 
   
 
   

         11.点对点(PPP或HDLC封装)或点对多点(由管理员手工配置)的网络中不需要选举DR和BDR 
   
 
   

         12.手工配置了RID以后,要是配置生效,需要重启路由器或者重启OSPF进程。 
   
 
   

      reload   重启路由器 
    
 
    

      clear ip ospf process   重启OSPF进程 
    
 
    

          13.OSPF路由器的Router ID 可以是一个并不存在的IP地址,更不需要路由可达,仅仅标识路由器的名字,不用于路径的寻址 
    
 
    

          14.优先使用环回接口作为RID,是因为换回接口比物理接口更稳定,除非手工关闭接口,否则只要路由器正常运行,环回接口就一直有效 
    
 
    

          15.DR和BDR的选择规则:① 接口优先级最高的路由器选为DR,次高的选为BDR  ②接口优先级相同时,Router ID最高的路由器被选为DR或BDR ③除DR和BDR之外的路由器称为DROther 
    
 
    

          16.OSPF为了保障网络的相对稳定性,DR和BDR的选举没有采用抢占机制,根据选择规则选举DR、BDR和DROther 
    
 
    

          17.事实上,按照启动OSPF进程的顺序,最先启动的将会成为DR,其次的成为BDR,最后的成为DROther 
    
 
    

          18.有一种让路由器永远是DR的方法,那就是把网络中其他的路由器接口的优先级都设成0。优先级0表示该接口不参与DR和BDR的选举 
    
 
    

        int f0/0 
      
 
      

        ip ospf priority 0 
      
 
     

           19.DR和BDR的选举是基于接口的,而不是基于路由器的。一台路由器可能是某一个网段的DR,也可能同时是另一个网段的BDR,还可能是第三个网段的DROther 
     
 
     

           20.OSPF的度量值(即花费cost)的计算公式: 
     
 
     

        Cost = 100Mb/s / 实际的链路带宽 
      
 
      

        Cost结果小于1的,取最小非零整数1 
      
 
      

        show int f0/0  内容中的 BW 8000000 Kbit 即为带宽 
      
 
      

        show ip ospf int f0/0 内容中的 Cost:1 即为花费值 
      
 
      

        auto-cost reference-bandwidth 10000  参考带宽改成1000Mb/s 
      
 
      

            21.若要区分100Mb/s、1000Mb/s和10000Mb/s链路,可以使用10000Mb/s作为参考带宽: 
      
 
    

       auto-cost reference-bandwidth 10000  参考带宽改成1000Mb/s

http://blog.51cto.com/kindit/1020666