HCIE课程笔记8-OSPF之基本概念

       OSPF是Open Shortest Path First的简称,是一种基于SPF算法的链路状态协议,同时OSPF也是一种内部网关协议。广泛应用于企业网络。

一 OSPF基本概念—拓扑和路由器类型

 

 

      OSPF整体拓扑如上图说是,OSPF把自治系统划分成逻辑意义上的一个或多个区域,所有其他区域必须与区域0相连。区域0称为骨干区域。

路由器类型:

  1. 区域内路由器(Internal Router):该类设备的所有接口都属于同一个OSPF区域。
  2. 区域边界路由器ABR(Area Border Router):该类路由器可以同时属于两个以上的区域,但其中一个接口必须属于骨干区域。ABR用来连接骨干区域和非骨干区域,它与骨干区域之间既可以是物理连接,也可以是逻辑上的连接。
  3. 骨干路由器(Backbone Router):该路由器至少有一个接口属于骨干区域。所有的ARB和位于Area0的内部路由器都是骨干路由器。
  4. 自治系统边界路由器ASBR(AS Boundary Router):与其他AS交换路由信息的路由器称为ASBR。ASBR并没有特定的位置要求,既可以位于普通的区域,也可以是ABR。只要一台OSPF路由器引入了外部路由的信息,它就成为ASBR。所以任意一台路由器都可以通过引入外部路由变成ABR。

拓扑所体现的IS-IS与OSPF不同点:

  1. 在OSPF中,一条链路只属于一个区域;而在IS-IS中,一条链路可以跨接不同的区域;
  2. 在IS-IS中,骨干网(Backbone)指的不是一个特定的区域;而在OSPF中,骨干区域特指Area 0;
  3. 在IS-IS中,Level-1和Level-2级别的路由器分别采用SPF算法,分别生成最短路径树SPT;在OSPF中,只有在同一个区域内才使用SPF算法,区域之间的路由需要通过骨干区域转发。

二 OSPF基本概念—网络类型

 

OSPF支持的网络类型:

  1. 广播(Broadcast)类型,当数据链路层协议是Ethernet、FDDI等时,缺省情况下,OSPF认为网络类型是Broadcast。在该类型的网络中,通常以组播形式发送Hello报文、LSU报文和LSAck报文。其中224.0.0.5的组播地址为OSPF路由器的预留IP组播地址;224.0.0.6的组播地址为OSPF DR的预留IP组播地址。以单播形式发送DD报文和LSR报文。
  2. 点对点P2P类型,数据链路层是PPP、HDLC等,此时以组播形式(224.0.0.5)发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文)。
  3. NBMA类型(Non-broadcast multiple access),当链路层协议是ATM或FR时,缺省情况下,OSPF认为网络类型是NBMA。在该类型的网络中,以单播形式发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文)。
  4. 点到多点P2MP(Point-to-Multipoint)类型,需手工配置,必须是由其他的网络类型强制更改的。在该类型的网络中以组播形式(224.0.0.5)发送Hello报文,以单播形式发送其他协议报文(DD报文、LSR报文、LSU报文、LSAck报文)。

 

 

DR/BDR概念(designated router ,指定路由器;backup designated router ,备份指定路由器 )

 

功能:

(1)减少邻接关系的数量,从而减少链路状态信息交换的次数。DRother只与DR/BDR建立完全邻接关系。DR与BDR之间建立完全邻接关系;

(2)DR产生产生网络LSA来描述NBMA网段或者广播网段信息。

 

DR/BDR选举规则:
(1)DR/BDR由OSPF的Hello协议选举,选举是根据端口的路由器优先级(Router Priority)进行的。

(2)如果Router Priority被设置为0,那么该路由器将不允许被选举成DR或者BDR。

(3)Router Priority越大越优先。如果相同,Router ID大者优先。

(4)DR/BDR不能抢占。

(5)如果当前DR发生故障,当前BDR自动成为新的DR,网络中重新选举BDR;如果当前BDR发生故障,则DR不变,重新选举BDR。

 

ISIS DIS与OSPF DR/BDR的不同点

(1)在IS-IS广播网中,优先级为0的路由器也参与DIS的选举,而在OSPF中优先级为0的路由器则不参与DR的选举。

(2)在IS-IS广播网中,当有新的路由器加入,并符合成为DIS的条件时,这个路由器会被选中成为新的DIS,原有的伪节点被删除。此更改会引起一组新的LSP泛红。而在OSPF中,当一台新路由器加入后,即使它的DR优先级值最大,也不会立即成为该网段中的DR;

(3)在IS-IS广播网中,同一网段上的同一级别的路由器之间都会形成邻接关系,包括所有的非DIS路由器。

 

 

三 OSPF基本概念—报文类型

      OSPF报文直接运行于IP之上,IP协议字段号为89。OSPF有五种报文类型,但是OSPF报文头部格式都是相同的。除Hello报文外,其它的OSPF报文都携带LSA(Link-State Advertisement,链路状态通告)信息。

 

OSPF报文头部信息,所有的OSPF报文使用相同的OSPF报文头部。

  1. Version:OSPF协议号,应当被设置为2;
  2. Type:OSPF报文类型,OSPF共有五种报文;
  3. Packet length:OSPF报文总长度,包括报文头部。单位是字节。
  4. Router ID:生成此报文的路由器的Router ID。
  5. Area ID:此报文需要被通告到的区域。
  6. Checksum:是指一个对整个数据包(包括包头)的标准IP校验和。
  7. AuType:验证此报文所应当使用的验证方法。
  8. Authentication:验证此报文时所需要的密码等信息。

 

Hello报文

  1. Network Mask:发送Hello报文的接口的网络掩码;
  2. HelloInterval:发送Hello报文的时间间隔。单位为秒。
  3. Options:标识发送此报文的OSPF路由器所支持的可选功能。具体的可选功能不在本课程的讨论范围之列。
  4. Rtr Pri:发送Hello报文的接口的Router Priority,用于选举DR和BDR。
  5. RouterDeadInterval:宣告邻接路由器不继续在该网段上运行OSPF的时间间隔,单位为秒,通常为四倍的HelloInterval。
  6. Designated Router:发送Hello报文的路由器所选举出的DR的IP地址。如果设置为0.0.0.0,表示未选举DR路由器。
  7. Backup Designated Router:发送Hello报文的路由器所选举出的BDR的IP地址。如果设置为0.0.0.0,表示未选举的BDR路由器。
  8. Neighbor:邻接路由器的Router ID列表。表示本路由器已经从该邻居收到合法的Hello报文。

ppp链路Hello报文:

 

DD(DB description)报文:

  1. 接口MTU:是指在数据包不分段的情况下,始发路由器接口可以发送的最大IP数据包大小。当在虚连接时,该字段为0x0000。
  2. Option:同Hello报文。
  3. I位:当发送的是一系列DD报文中的第一个数据包时,该位置为1。后续的DD报文将该位置为0。
  4. M位:当发送的数据包还不是一个系列DD报文中的最后一个数据包时,该位置为1,如果是最后一个DD报文,则将该位置置为0。
  5. MS位:在数据库同步中用来确认协商过程中的序列号。
  6. DD Sequence Number:DD的报文序列号。
  7. LSA头部信息。

 

 

LSR(Link state request)报文:

  1. Link State Advertisement Type:用来指明LSA标识是一个路由器LSA、一个网络LSA还是其他类型的LSA。
  2. Link State ID:不同类型LSA的该字段意义不同;
  3. Advertising Router:始发LSA通告的路由器的路由器ID;

 

LSU报文:

(1)Number of LSA:指出这个数据包中包含的LSA的数量;

(2)LSA:明细LSA信息。

 

LSAck报文:

 

 

四 OSPF基本概念—LSA类型

  1. Router-LSA (Type1),由路由器产生,描述了路由器的链路状态和开销,本区域内传播;
  2. Network-LSA (Type2),由DR产生,描述本网段的链路状态,本区域内传播。
  3. Network-summary-LSA (Type3),由ABR产生,描述区域内某个网段的路由,区域间传播(除特殊区域);
  4. ASBR-summary-LSA (Type4),由ABR产生,描述到ASBR的路由,非ASBR所在区域传播(除特殊区域);
  5. AS-external-LSA (Type5),由ASBR产生,描述到AS外部的路由,OSPF域内传播(除特殊区域);
  6. NSSA LSA (Type 7),由ASBR产生,描述到AS外部的路由,仅在NSSA区域内传播。

 

LSA头部信息,除Hello报文外,其他的OSPF报文都携带LSA信息。

  1. LS age:该字段表示LSA已经生存的时间,单位是秒;
  2. Option:该字段指出了部分OSPF域中LSA能够支持的可选性能;
  3. LS Type:标识了LSA的格式和功能,常用的LSA有五种;
  4. Link State ID:根据LSA的不同而不同;
  5. Advertising Router:始发LSA的路由器的ID;
  6. Sequence Number:当LSA每次新的实例产生时,这个序列号就会增加。这个更新可以帮助其他路由器识别最新的LSA实例。
  7. Checksum:关于LSA的全部信息的校验和。因为Age字段所以校验和会随着老化时间的增大而每次都需要重新进行计算。
  8. Length:是一个包含LSA头部在内的LSA的长度。

 

Router-LSA,Router-LSA必须描述始发路由器所有接口或链路。

  1. Link State ID:是指始发路由器的路由器ID;
  2. V:设置位1时,说明始发路由器是一条或者多条具有完全邻接关系的虚链路的一个端点;
  3. E:当始发路由器是一个ASBR路由器时,该位置为1;
  4. B:当始发路由器是一个ABR路由器时,该位置为1;
  5. Number of links:表明一个LSA所描述的路由器链路数量;
  6. Link Type:值为1表示为点到点网络,常见的PPP链路需要使用点到点网络描述;值为2表示连接一个transit网络,有至少两台路由器的广播型网段或NBMA网段就是一种Transit网段;值为3表示连接stubnet网络一般该网络上不存在邻居关系如只有一个 出口的以太网或回环接口;值为4表示虚链路;
  7. Link ID:值为1表示邻居路由器的路由器ID;值为2表示DR路由器的接口的IP地址;值为3时表示IP网络或子网地址;置为4时表示邻居路由器的路由器ID;
  8. Link Data:值为1时表示和网络相连的始发由器接口的IP地址;值为2时表示和网络相连的始发路由器接口的IP地址;值为3时表示网络的子网掩码;值为4时表示始发路由器的虚链路接口的IP地址;
  9. ToS,暂不支持
  10. Metric:指一条链路或接口的开销。

 

Network-LSA

  1. Link State ID:是指DR路由器的接口地址;
  2. Network Mask:指定这个网络上使用的地址或者子网的掩码;
  3. Attached router: 列出该多路访问网络上于DR形成完全邻接关系且包括DR本身的所有路由器的路由器ID。

 

 

Network-summary-LSA和ASBR-summary-LSA

  1. Link State ID:对于3类LSA来说,表示所通告的网络或子网的IP地址。对于4类LSA来说表示所通告的ASBR路由器的路由器ID;
  2. Network Mask:对于3类LSA来说,表示所通告的网络的子网掩码。对于4类LSA来说,该字段没有实际意义,一般置为0.0.0.0;
  3. Metric:始发路由器到目的地址的路由的开销。

 

AS-external-LSA

  1. Link State ID:表示所通告的网络或子网的IP地址;
  2. Network Mask:指所通告的网络的子网掩码;
  3. E:用来指定这条路由使用的外部度量的类型。如果E bit设为1,那么度量类型就是E2;如果E bit设为0,那么度量类型就是E1;
  4. Metric:指路由的代价。由ASBR设定;
  5. Forwarding Address:是指到达所通告的目的地的数据包应该被转发到的地址。如果转发地址是0.0.0.0,那么数据包将被转发到始发ASBR上;
  6. External Route Tag:标记外部路由;

NSSA LSA

  1. Forwarding Address:如果所引入外部路由的下一跳在OSPF路由域内,则Forwarding Address直接设置为所引入外部路由的下一跳;如果所引入外部路由的下一跳不在OSPF路由域内,则Forwarding Address设置为该ASBR上某个OSPF路由域内的Stub网段(例如Loopback0接口)的接口IP地址,有多个Stub网段时选IP地址最大者。

五 OSPF基本概念—Option 字段

 

 

Option字段:Option可选字段出现在每一个Hello数据包、DD和每个LSA中,允许路由器和其他路由器进行一些可选性能的通信。

 

Option字段解释:

  1. DN:用来避免在MPLS v*n中出现环路。当PE向CE发送3类、5类和7类LSA时需要设置DN位2,其他PE路由器从CE接收到该LSA时,不能够在它的OSPF路由计算中使用该LSA;
  2. O:该字段指出始发路由器支持Opaque LSA(类型9、类型10和类型11);
  3. DC位:当始发路由器支持按需链路上的OSPF的能力时,该位将被设置;
  4. EA:当始发路由器具有接收和转发External-Attributes-LSA (type8 LSA)的能力时,该位被置位;
  5. N位:只用在Hello数据包中。N=1表明路由器支持7类LSA。N=0表明该路由器将不接受和发送NSSA LSA。
  6. P位:只用在NSSA LSA。该位将告诉NSSA区域的ABR路由器将7类LSA转换为5类LSA。
  7. MC位:当始发路由器支持转发组播数据包的能力时,该位将被置位。
  8. E位:当始发路由器具有接收AS-external-LSA(type5 LSA)的能力时,该位被置位。在所有5类LSA和始发于骨干区域以及非末节区域的LSA中,该位置为1。而始发于末节区域的LSA中,该位置为0.如果Hello报文中该位被置位则表明该接口具有接收和发送5类LSA的能力。
  9. MT位:表示始发路由器支持多拓扑OSPF。