OSPF


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

ospf的协议优先级:10

 


LSAs的泛洪


  1. 运行链路状态路由协议的路由器彼此之间的是LSA(链路状态通告);
  2. 链路:路由器接口;
  3. 状态:描述接口以及其与邻居路由器之间的关系;
  4. 简单理解为路由器建立协议邻居之后,交互LSA描述自己直连的接口状态(包括接口开销、与邻居路由器之间的关系)的通告。

 


LSDB的组建


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


SPF算法


  1. 经过SPF算法计算,每台路由器都计算出一棵以自己为根的、无环的、拥有最短路径的树。
  2. 路由器根据SPF得出最短路径树,并将其装载进路由表中。


OSPF基本概念


  1. Route-        ID:在OSPF        domain中唯一ospf路由器,建议指定,除非重新指定并重启,否则不会改变。
  2. cost:度量值;每一个接口都有一个开销值;一条路由的开销值由该路由的起源一路到达本地的所有入接口cost值得总和。


OSPF报文(五种)


  1. hello:建立和维护邻居关系;
  2. DBD:  链路状态数据库描述信息(描述LSDB中LSA头部信息)
  3. LSR:链路状态请求,用于向OSPF邻居请求链路状态信息
  4. LSU:链路状态更新(包含一条或多条LSA)
  5. LSACK:对LSU中的LSA进行确认





OSPF三张表


  1. 邻居表:hello报文用于发现直连链路上的其他OSPF路由器;路由器在各个激活OSPF的接口上维护的邻居都列在邻居表中;
  2. 链路状态数据库LSDB:OSPF将自己产生的LSA以及邻居通告的LSA搜集并存储在LSDB中,OSPF用LSA来扫描网络拓扑信息;
  3. 路由表:LSDB进行SPF计算得到最短路径树,并存储在OSPF路由表中。


LSA详解


  • 路由LSA(Router-LSA):1类
  • 描述路由器的特殊角色,如virtual-link,ABR,ASBR;通过在相关位置置1来体现;
  • 描述本路由器在某个区域内部的直连链路(接口)以及接口COST值;
  • 产生:每台路由器都会产生一条
  • 泛洪范围:本区域内
  • 描述的内容:接口IP地址、网络类型、到达接口所需的开销


  • 网络LSA(Network-LSA):2类
  • 在MA(多路访问型网络如:帧中继、以太网)网络中才会存在,由DR产生;
  • 泛洪范围:本区域内,不允许跨越ABR;
  • 描述的内容:DR接口IP、网段、掩码、邻居的Router         ID
  • 2类LSA没有cost字段,结合1类LSA在一个区域内便可得到最短路径树。


  • 网络汇总LSA(Network Summary LSA):3类
  • ABR产生,区域间泛洪
  • 归纳1、2类LSA,生成3类LSA并泛洪到其他区域


  • ASBR汇总LSA(ASBR Summary LSA):4类
  • ASBR所在区域的ABR产生,区域间泛洪
  • 用来告诉与ASBR不在同一区域的其他路由器ASBR信息


  • AS外部LSA(AS external LSA):5类
  • ASBR产生,整个OSPF domain内泛洪

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

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


  • NSSA外部LSA(NSSA external LSA):7类
  • ASBR产生,在NSSA内泛洪
  • 外部路由信息到达ABR时,由ABR负责将7类LSA转换成5类LSA并传播


特殊区域


  • 末梢区域(stub area)
  • stub区域将禁止4、5类LSA进入该区域;允许3类LSA和默认路由(3类)
  • 区域的ABR自动下发一条默认路由(3类LSA)进入该区域,以确保区域内可以访问区域外网络;
  • stub区域内的所有路由器都需要配置stub,否则它将无法与其他stub area         route建立邻居关系;


  • 完全末梢区域(totally stub        area)
  • stub区域将禁止3、4、5类LSA进入该区域;
  • 区域的ABR自动下发一条默认路由(3类LSA)进入该区域,以确保区域内可以访问区域外网络;
  • stub区域内的所有路由器都需要配置stub,否则它将无法与其他stub area         route建立邻居关系;


  • 非完全末梢区域(not-so-stubby        area/nssa)
  • 末梢区域需要引入外部路由,将区域设置为NNSA;
  • 阻挡骨干区域过来的4、5类LSA,同时允许本地引入外部路由,以7类LSA的形式在NNSA中泛洪;
  • 通过转化为5类LSA向骨干区域泛洪


  • 完全末梢区域(totally        not-so-stubby area/nssa)
  • 阻止骨干区域过来的3、4、5类LSA;由ABR下发3类的默认路由进入NSSA
  • 允许本地引入外部路由,以7类LSA的形式在NNSA中泛洪;
  • 通过转化为5类LSA向骨干区域泛洪



https://blog.51cto.com/amonos/1943879