OSPF


OSPF(Open Shortest  Path First开放式最短路径优先)是一个内部网关协议(Interior Gateway  Protocol,简称IGP),用于在单一自治系统(autonomous  system,AS)内决策路由。是对链路状态路由协议的一种实现,隶属内部网关协议(IGP),故运作于自治系统内部。著名的迪克斯加算法(Dijkstra)被用来计算最短路径树。与RIP相比,OSPF是链路状态协议,而RIP是距离矢量协议。

ospf的协议优先级:10

 


LSAs的泛洪


  1. 运行链路状态路由协议的路由器彼此之间的是LSA(链路状态通告);

  1. 链路:路由器接口;

  2. 状态:描述接口以及其与邻居路由器之间的关系;

  3. 简单理解为路由器建立协议邻居之后,交互LSA描述自己直连的接口状态(包括接口开销、与邻居路由器之间的关系)的通告。

 


LSDB的组建


  1. 路由器将从接口上搜集到的LSAs放入自己的LSDB数据库中,通过LSDB,路由器就清楚了全网的拓扑,因为LSDB中所存储的每条LSA都是有网络中个路由器产生并且描述其直连接口各项目信息的条目。


SPF算法


  1. 经过SPF算法计算,每台路由器都计算出一棵以自己为根的、无环的、拥有最短路径的树。

  2. 路由器根据SPF得出最短路径树,并将其装载进路由表中。


OSPF基本概念


  1. Route-        ID:在OSPF        domain中唯一ospf路由器,建议指定,除非重新指定并重启,否则不会改变。

  1. cost:度量值;每一个接口都有一个开销值;一条路由的开销值由该路由的起源一路到达本地的所有入接口cost值得总和。


OSPF报文(五种)


  1. hello:建立和维护邻居关系;

  1. DBD:  链路状态数据库描述信息(描述LSDBLSA头部信息)

  1. LSR:链路状态请求,用于向OSPF邻居请求链路状态信息

  1. LSU:链路状态更新(包含一条或多条LSA

  1. LSACK:LSU中的LSA进行确认


OSPF三张表


  1. 邻居表:hello报文用于发现直连链路上的其他OSPF路由器;路由器在各个激活OSPF的接口上维护的邻居都列在邻居表中;

  2. 链路状态数据库LSDBOSPF将自己产生的LSA以及邻居通告的LSA搜集并存储在LSDB中,OSPFLSA来扫描网络拓扑信息;

  3. 路由表:LSDB进行SPF计算得到最短路径树,并存储在OSPF路由表中。


LSA详解


    • 路由LSARouter-LSA):1

      • 描述路由器的特殊角色,如virtual-linkABRASBR;通过在相关位置置1来体现;

      • 描述本路由器在某个区域内部的直连链路(接口)以及接口COST值;

      • 产生:每台路由器都会产生一条

      • 泛洪范围:本区域内

      • 描述的内容:接口IP地址、网络类型、到达接口所需的开销


    • 网络LSANetwork-LSA):2

      • 在MA(多路访问型网络如:帧中继、以太网)网络中才会存在,由DR产生

      • 泛洪范围:本区域内,不允许跨越ABR

      • 描述的内容:DR接口IP、网段、掩码、邻居的Router         ID

      • 2LSA没有cost字段,结合1LSA在一个区域内便可得到最短路径树。


    • 网络汇总LSANetwork Summary LSA):3

      • ABR产生,区域间泛洪

      • 归纳12LSA,生成3LSA并泛洪到其他区域


    • ASBR汇总LSAASBR Summary LSA):4

      • ASBR所在区域的ABR产生,区域间泛洪

      • 用来告诉与ASBR不在同一区域的其他路由器ASBR信息


    • AS外部LSAAS external LSA):5

      • ASBR产生,整个OSPF domain内泛洪

外部网络的路由信息、所需的开销

  • 外部网络信息重发部入OSPF,借入5LSAOSPF中传播


    • NSSA外部LSANSSA external LSA):7

      • ASBR产生,在NSSA内泛洪

      • 外部路由信息到达ABR时,由ABR负责将7LSA转换成5LSA并传播


特殊区域


    • 末梢区域(stub area

      • stub区域将禁止45LSA进入该区域;允许3LSA和默认路由(3类)

      • 区域的ABR自动下发一条默认路由(3LSA)进入该区域,以确保区域内可以访问区域外网络;

      • stub区域内的所有路由器都需要配置stub,否则它将无法与其他stub area         route建立邻居关系;


    • 完全末梢区域(totally stub        area

      • stub区域将禁止345LSA进入该区域;

      • 区域的ABR自动下发一条默认路由(3LSA)进入该区域,以确保区域内可以访问区域外网络;

      • stub区域内的所有路由器都需要配置stub,否则它将无法与其他stub area         route建立邻居关系;


    • 非完全末梢区域(not-so-stubby        area/nssa

      • 末梢区域需要引入外部路由,将区域设置为NNSA

      • 阻挡骨干区域过来的45LSA,同时允许本地引入外部路由,以7LSA的形式在NNSA中泛洪;

      • 通过转化为5LSA向骨干区域泛洪


    • 完全末梢区域(totally        not-so-stubby area/nssa

      • 阻止骨干区域过来的345LSA;由ABR下发3类的默认路由进入NSSA

      • 允许本地引入外部路由,以7LSA的形式在NNSA中泛洪;

      • 通过转化为5LSA向骨干区域泛洪