路由优先级缺省:算法
OSPF内部:10数据库
静态:60安全
OSPF外部(O_ASE):150网络
BGP:255ide
Open Shortest Path First,基于SPF算法的链路状态的内部网关协议oop
适应范围广:支持各类规模的网络,最多可支持几百台路由器。性能
快速收敛:在网络的拓扑结构发生变化后当即发送更新报文,使这一变化在自治系统中同步。学习
无自环:因为OSPF根据收集到的链路状态用最短路径树算法计算路由,从算法自己保证了不会生成自环路由。spa
区域划分:容许自治系统的网络被划分红区域来管理。路由器链路状态数据库的减少下降了内存的消耗和CPU的负担;区域间传送路由信息的减小下降了网络带宽的占用。操作系统
路由分级:使用4类不一样的路由,按优先顺序来讲分别是:区域内路由、区域间路由、第一类外部路由、第二类外部路由。
支持验证:支持基于区域和接口的报文验证,以保证报文交互和路由计算的安全性。
组播发送:在某些类型的链路上以组播地址发送协议报文,减小对其余设备的干扰。
OSPF报文头部信息,全部的OSPF报文使用相同的OSPF报文头部。
Version :OSPF协议号,应当被设置成2。
Type:OSPF报文类型,OSPF共有五种报文。
Packet length:OSPF报文总长度,包括报文头部。单位是字节。
Router ID:生成此报文的路由器的Router ID。
Area ID:此报文须要被通告到的区域。
Checksum:是指一个对整个数据包(包括包头)的标准IP校验和。
AuType:验证此报文所应当使用的验证方法。
Authentication:验证此报文时所须要的密码等信息。
周期性发送,用来发现和维持OSPF邻居关系,以及进行DR(Designated Router,指定路由器)/BDR(Backup Designated Router,备份指定路由器)的选举。
² Network Mask:发送Hello报文的接口的网络掩码。
² HelloInterval:发送Hello报文的时间间隔。单位为秒(缺省P2P、Broadcast类型接口发送Hello报文的时间间隔为10秒,P2MP、NBMA类型接口发送Hello报文的时间间隔为30秒)。
² Options:标识发送此报文的OSPF路由器所支持的可选功能。主要为E位,是否洪泛AS-external-LSA,N/P位,处理7类LSA(详见RFC 2382附录A.2)
² Rtr Pri:发送Hello报文的接口的Router Priority,用于选举DR和BDR。
² RouterDeadInterval:宣告邻居路由器不继续在该网段上运行OSPF的时间间隔,单位为秒,一般为四倍HelloInterval。
² Designated Router:发送Hello报文的路由器所选举出的DR的IP地址。若是设置为0.0.0.0,表示未选举DR
² Backup Designated Router:发送Hello报文的路由器所选举出的BDR的IP地址。若是设置为0.0.0.0,表示未选举BDR路由器。
² Neighbor:邻居路由器的Router ID列表。表示本路由器已经从该邻居收到合法的Hello报文。
NBMA或广播网络才有DR/BDR字段,其他类型该字段值为0
描述了本地LSDB(Link State DataBase,链路状态数据库)中每一条LSA(Link State Advertisement,链路状态通告)的摘要信息,用于两台路由器进行数据库同步。
² 接口MTU:是指在数据包不分段的状况下,始发路由器接口能够发送的最大IP数据包大小。当在虚链接时,该在段为0x0000。
² Option:同hello报文。
² I位:当发送的是一系列DD报文中的第一个数据包时,该为置位为1。后续的DD报文将该位置位0。
² M位:当发送的数据包还不是一个系列DD报文中的最后一个数据包时,该为置为1。若是是最后一个DD报文,则将该为置为0。
² MS位:在数据库同步中,主要用来确认协商过程当中的序列号。
² DD Sequence Number:DD的序列号报文。
² LSA头部信息。
DD初始交互时(exstart)没有携带LSA头部信息
向对方请求所需的LSA。两台路由器互相交换DD报文以后,得知对端的路由器有哪些LSA是本地的LSDB所缺乏的,这时须要发送LSR报文向对方请求所需的LSA。
² Link State Type:用来指明LSA标识是一个路由器LSA、一个网络LSA仍是其余类型的LSA。
² Link State ID:不一样类型LSA该字段意义不一样。
² Advertising Router:始发LSA通告的路由器的路由器ID。
请求的LSA由LSA类型、链路状态标识和通告路由器组成。
LSR的目的IP:P2P类型为224.0.0.5,广播网络/NBMA类型是单播IP。
此时,OSPF刚创建,只请求DD阶段交互的LSA,OSPF FULL后还会update路由信息,但不会有新的LSR。
向对方发送其所须要的LSA。LSU必须被LSAck确认,能够一个ack包确认多个或者隐式确认(发送相同的LSU,如广播链路DRother发送LSU给DR,DR须要把这个洪泛给其余DRother,该DRother收到LSU后即算确认)
² Number of LSA:指出这个数据包中包含的LSA的数量。
² LSA:明细LSA信息
用来对收到的LSA进行确认。
² Header of LSA:LSA头部信息。
LSAck包可能发送到多播地址AllSPFRouters或AllDRouters或者使用单播
LSA头部信息,除Hello报文外,其它的OSPF报文都携带LSA信息。(DD 初始报文(exstart主从协商)也没有携带)
l LS age:此字段表示LSA已经生存的时间,单位是秒。
l Option:该字段指出了部分OSPF域中LSA可以支持的可选性能
l LS type:此字段标识了LSA的格式和功能。经常使用的LSA类型有五种。
l Link State ID:根据LSA的不一样而不一样。
l Advertising Router:始发LSA的路由器的ID。
l Sequence Number:当LSA每次新的实例产生时,这个序列号就会增长。这个更新能够帮助其余路由器识别最新的LSA实例。
l Checksum:关于LSA的所有信息的校验和。由于Age字段,因此校验和会随着老化时间的增大而每次都须要从新进行计算。
l Length:是一个包含LSA头部在内的LSA的长度。
DD报文只有LSA头部(除初始报文外(exstart主从协商),初始报文没有LSA信息)
路由器产生,描述了路由器的链路状态和开销,本区域内传播,Router-LSA必须描述始发路由器全部接口或链路。
l Link State ID:是指始发路由器的路由器ID。
l V:设置为1时,说明始发路由器是一条或者多条具备彻底邻接关系的虚链路的一个端点。
l E:当始发路由器是一个ASBR路由器时,该为置为1。
l B:当始发路由器是一个ABR路由器时,该为置为1。
l Number of links:代表一个LSA所描述的路由器链路数量。
l Link Type:置为1表示点到点链接一台设备;置为2表示链接一个transit网络,能够理解为广播网络;置为3表示链接subnet网络,通常该地址为环回口地址;置为4表示虚链路。
l Link ID:Link Type置为1表示邻居路由器的路由器ID;Link Type置为2表示DR路由器的接口的IP地址;Link Type置为3表示IP网络或子网地址;Link Type置为4邻居路由器的路由器ID。
l Link Data:Link Type置为1表示和网络相连的始发路由器接口的IP地址;Link Type置为2表示和网络相连的始发路由器接口的IP地址;Link Type置为3网络的IP地址或子网掩码。
l ToS,暂不支持。
l Metric:是指一条链路或接口的代价。
DR产生,描述本网段的链路状态,本区域内传播
l Link State ID:是指DR路由器接口上的地址。(LSA头部)
l Network Mask:指定这个网络上使用的地址或者子网的掩码。
l Attached router:列出该多路访问网络上与DR造成彻底邻接关系且包括DR自己的全部路由器的路由器ID。
ABR产生,描述区域内某个网段的路由,区域间传播(除特殊区域)
l Link State ID:对于3类LSA来讲,表示所通告的网络或子网的IP地址。对于4类LSA来讲表示所通告的ASBR路由器的路由器ID。(LSA头部)
l Network Mask:对于3类LSA来讲,表示所通告的网络的子网掩码或者地址。对于4类LSA来讲,该字段没有实际意义,通常置为0.0.0.0。
l Metric:直到目的地址的路由的代价。
ABR产生,描述到ASBR的路由,OSPF域内传播(除特殊区域)
l Link State ID:对于3类LSA来讲,表示所通告的网络或子网的IP地址。对于4类LSA来讲表示所通告的ASBR路由器的路由器ID。
l Network Mask:对于3类LSA来讲,表示所通告的网络的子网掩码或者地址。对于4类LSA来讲,该字段没有实际意义,通常置为0.0.0.0。
l Metric:直到目的地址的路由的代价。
ASBR产生,描述到AS外部的路由,OSPF域内传播(除特殊区域)
l Link State ID:目的地的IP地址。
l Network Mask:指所通告的目的地的子网掩码或地址。
l E:用来指定这条路由使用的外部度量的类型。若是该E bit设置为1,那么度量类型就是E2;若是该E bit设置为0,那么度量类型就是E1。
l Metric:指路由的代价。由ASBR设定。
l Forwarding Address:是指到达所通告的目的地的数据包应该被转发到的地址。若是转发地址是0.0.0.0,那么数据包将被转发到始发ASBR上。
l External Route Tag:标记外部路由。
根据RFC2382,须要在区域内或区域间有下一跳的路由!
由ASBR产生,描述到AS外部的路由,仅在NSSA区域内传播。
Forwarding Address:若是网络一台NSSA ASBR路由器和邻接的自治系统之间是做为一条内部路由通告的,那么这个FA就是这个网络的下一跳地址。若是网络不是做为一个条内部路由通告的,那么这个FA地址将是NSSA ASBR路由器的路由器ID。
l 7类LSA是为了支持NSSA区域而新增的一种LSA类型,用于描述引入的外部路由信息。
l 7类LSA由NSSA区域的自治域边界路由器(ASBR)产生,其扩散范围仅限于边界路由器所在的NSSA区域。
l NSSA区域的区域边界路由器(ABR)收到7类LSA时,会有选择地将其转化为5类LSA,以便将外部路由信息通告到OSPF网络的其它区域。
l 缺省路由也能够经过7类LSA来表示,用于指导流量流向其它自治域。
Opaque LSA提供用于OSPF的扩展的通用机制。其中:
l Type9 LSA 仅在接口所在网段范围内传播。用于支持 GR 的Grace LSA 就是 Type9 LSA 的一种。
l Type10 LSA 在区域内传播。用于支持 TE 的 LSA 就是 Type10LSA 的一种。
l Type11 LSA 在自治域内传播,目前尚未实际应用的例子
全部其余区域必须与区域0相连
拓扑所体现的IS-IS与OSPF不一样点:
l 在OSPF中,每一个链路只属于一个区域;而在IS-IS中,每一个链路能够属于不一样的区域;
l 在IS-IS中,单个区域没有骨干与非骨干区域的概念;而在OSPF中,Area0被定义为骨干区域;
l 在IS-IS中,Level-1和Level-2级别的路由都采用SPF算法,分别生成最短路径树SPT而在OSPF中,只有在同一个区域内才使用SPF算法,区域之间的路由须要经过骨干区域来转发。
缺省状况下, OSPF区域被定义为普通区域。普通区域包括标准区域和骨干区域。
l 标准区域是最通用的区域,它传输区域内路由,区域间路由和外部路由。
l 骨干区域是链接全部其余 OSPF 区域的中央区域。骨干区域一般用Area 0 表示。
不容许发布自治系统外部路由,只容许发布区域内路由和区域间的路由。在STUB区域中,路由器的路由表规模和路由信息传递的数量都会大大减小。为了保证到自治系统外的路由可达,由该区域的ABR发布Type3缺省路由传播到区域内,全部到自治系统外部的路由都必须经过ABR才能发布。
l 骨干区域不能配置成Stub区域。
l 若是要将一个区域配置成Stub区域,则该区域中的全部路由器都要配置Stub区域属性。
l Stub区域内不能存在ASBR,即自治系统外部的路由不能在本区域内传播。
l 虚链接不能穿过Stub区域。
l Stub区域不容许自治系统外部的路由(Type5 LSA)在区域内传播。
l 区域内的路由器必须经过ABR学到自治系统外部的路由。实现方法是ABR会自动产生一条缺省的Summary LSA(Type3 LSA)通告到整个Stub区域内。这样,到达自治系统的外部路由就能够经过ABR到达。
不容许发布自治系统外部路由和区域间的路由,只容许发布区域内路由。在Totally STUB区域中,路由器的路由表规模和路由信息传递的数量都会大大减小。为了保证到自治系统外的路由可达,由该区域的ABR发布Type3缺省路由传播到区域内,全部到自治系统外部的路由都必须经过ABR才能发布。
l Totally Stub区域既不容许自治系统外部的路由(Type5 LSA)在区域内传播,也不容许区域间路由(Type3 LSA)在区域内传播。
l 区域内的路由器必须经过ABR学到自治系统外部和其余区域的路由。
l ABR会自动产生一条缺省的Summary LSA(Type3 LSA)通告到整个Stub区域内。
NSSA区域容许引入自治系统外部路由,由ASBR发布Type7 LSA通告给本区域,这些Type7 LSA在ABR上转换成Type5 LSA,而且泛洪到整个OSPF域中NSSA区域同时保留自治系统内的STUB区域的特征。该区域的ABR发布Type3缺省路由传播到区域内,全部域间路由都必须经过ABR才能发布。
为了将NSSA区域引入的外部路由发布到其它区域,须要把Type-7 LSA转化为Type-5 LSA以便在整个OSPF网络中通告。
l option字段P用于告知转化路由器该条7类LSA是否须要转化。
l 进行转化的是NSSA区域中Router ID最大的区域边界路由器(ABR)。
l 只有P置位而且Forwarding Address不为0的Type-7 LSA才能转化为Type-5 LSA。Forwarding Address用来表示发送的某个目的地址的报文将被转发到Forwarding Address所指定的地址。
l 知足以上条件的缺省7类LSA也能够被转化。
l 区域边界路由器产生的7类LSA不会置位P-bit。
注意事项
Ø 在NSSA区域中,可能同时存在多个边界路由器。为了防止路由环路产生,边界路由器之间不计算对方发布的缺省路由。
Totally NSSA区域容许引入自治系统外部路由,由ASBR发布Type7 LSA通告给本区域,这些Type7 LSA在ABR上转换成Type5 LSA,而且泛洪到整个OSPF域中。Totally NSSA区域同时保留自治系统内的Totally STUB Area区域的特征。该区域的ABR发布Type3缺省路由传播到区域内,全部域间路由都必须经过ABR才能发布。
NSSA和Totally NSSA
l NSSA区域容许引入少许经过本区域的ASBR到达的外部路由,但不容许其余区域的外部路由ASE LSA(Type5 LSA)在区域内传播。即到达自治系统外部的路由只能经过本区域的ASBR到达。
l Totally NSSA区域既不容许其余区域的外部路由ASE LSA(Type5 LSA)在区域内传播,也不容许区域间路由(Type3 LSA)在区域内传播。
NSSA区域内存在两种缺省路由,由ASBR产生的第七类缺省路由和ABR产生的第三类缺省路由(彻底NSSA区域)。
1. 区域内路由器(Internal Router):该类设备的全部接口都属于同一个OSPF区域。
2. 区域边界路由器ABR(Area Border Router):该类路由器能够同时属于两个以上的区域,但其中一个接口必须在骨干区域。ABR用来链接骨干区域和非骨干区域,它与骨干区域之间既能够是物理链接,也能够是逻辑上的链接。
3. 骨干路由器(Backbone Router):该类路由器至少有一个接口属于骨干区域。全部的ABR和位于Area0的内部路由器都是骨干路由器。
4. 自治系统边界路由器ASBR(AS Boundary Router):与其余AS交换路由信息的路由器称为ASBR。ASBR并不必定位于AS的边界,它多是区域内路由器,也多是ABR。只要一台OSPF路由器引入了外部路由的信息,它就成为ASBR(外部路由只能由ASBR汇总)
当链路层协议是Ethernet、 FDDI时,缺省状况下, OSPF认为网络类型是Broadcast。
在该类型的网络中:
l 一般以组播形式发送 Hello 报文、LSU 报文和 LSAck 报文。其中,224.0.0.5 的组播地址为 OSPF 设备的预留 IP 组播地址; 224.0.0.6的组播地址为 OSPF DR/BDR 的预留 IP 组播地址。
l 以单播形式发送 DD 报文和 LSR 报文。
当链路层协议是帧中继、 X.25时,缺省状况下, OSPF认为网络类型是NBMA。在该类型的网络中,以单播形式发送协议报文( Hello报文、 DD报文、LSR报文、 LSU报文、 LSAck报文)。
没有一种链路层协议会被缺省的认为是Point-to-Multipoint类型。点到多点必须是由其余的网络类型强制更改的。经常使用作法是将非全连通的NBMA改成点到多点的网络。
在该类型的网络中:
l 以组播形式( 224.0.0.5)发送 Hello 报文。
l 以单播形式发送其余协议报文( DD 报文、 LSR 报文、 LSU 报文、LSAck 报文)。
当链路层协议是PPP、 HDLC和LAPB时,缺省状况下, OSPF认为网络类型是P2P。
在该类型的网络中,以组播形式( 224.0.0.5)发送协议报文( Hello报文、 DD报文、 LSR报文、 LSU报文、 LSAck报文)。
l 减小邻居关系的数量,从而减小链路状态信息和路由信息的次数。Drother只与DR/BDR创建彻底邻接关系。DR与BDR之间创建彻底邻接关系。
l DR产生网络LSA来描述NBMA网段或者广播网段信息。
DR/BDR选举规则
DR/BDR由OSPF的Hello协议选举,选举是根据端口的路由器优先级(Router Priority)进行的。
1. 若是Router Priority被设置为0,那么该路由器将不容许被选举成DR或者BDR。
2. Router Priority越大越优先。若是相同,Router ID大者优先。
3. DR/BDR不能抢占。
4. 若是当前DR故障,当前BDR自动成为新的DR,网络中从新选举BDR;若是当前BDR故障,则DR不变,从新选举BDR。
区域内路由
区域间路由
这类路由的可信程度高一些,因此计算出的外部路由的开销与自治系统内部的路由开销是至关的,而且和OSPF自身路由的开销具备可比性。
到第一类外部路由的开销=本设备到相应的ASBR的开销+ASBR到该路由目的地址的开销。
这类路由的可信度比较低,因此OSPF协议认为从ASBR到自治系统以外的开销远远大于在自治系统以内到达ASBR的开销。因此, OSPF计算路由开销时只考虑ASBR到自治系统以外的开销,即到第二类外部路由的开销=ASBR到该路由目的地址的开销。
l Option可选字段出如今每个Hello数据包、DD和每一个LSA中的。
l Option字段容许路由器和其余路由器进行一些可选性能的通讯。
Option字段包含信息
Option字段解释:
l DN:用来避免在MPLS ×××中出现环路。当3类、5类和7类LSA中设置了DN位以后,接收路由器就不可以在它的OSPF路由计算中使用该LSA。
l O:该字段指出始发路由器支持Opaque LSA(类型9、类型10和类型11)。
l DC位:当始发路由器支持按需链路上的OSPF的能力时,该位将被设置。
l EA:当始发路由器具备接收和转发外部属性LSA的能力时,该位被置位。
l N位:只在Hello数据包中。N=1代表路由器支持7类LSA。N=0代表该路由器将不接收和发送NSSA LSA。
l P位:只用在NSSA LSA。该位将告诉一个非纯末节区域中的ABR路由器将7类LSA转换为5类LSA。
l MC位:支持MOSPF。
l E位:当始发路由器具备接收OSPF域外部LSA的能力时,该位置位。在全部5类LSA和始发于骨干区域以及非末节区域的LSA中,该位置为1。而始发与末节区域的LSA中,该位置为0。若是Hello报文中该位代表一个接口具备接收和发送5类LSA的能力。
l MT位:表示始发路由器支持多拓扑OSPF。
R2路由与LSA:
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/0 O_ASE2 150 1 23.1.1.3 GE0/1
AS External Database
Type LinkState ID AdvRouter Age Len Sequence Metric
External 0.0.0.0 6.6.6.6 106 36 80000001 1
R4路由与LSA:
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/0 O_INTER 10 3 34.1.1.3 GE0/0
Type LinkState ID AdvRouter Age Len Sequence Metric
Router 4.4.4.4 4.4.4.4 474 60 80000002 0
Sum-Net 0.0.0.0 2.2.2.2 502 28 80000001 1
R3上路由与LSA:
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/0 O_NSSA2 150 1 23.1.1.2 GE0/0
Type LinkState ID AdvRouter Age Len Sequence Metric
NSSA 0.0.0.0 2.2.2.2 272 36 80000001 1
R3上路由与LSA:
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/0 O_NSSA2 150 1 34.1.1.4 GE0/1
Type LinkState ID AdvRouter Age Len Sequence Metric
NSSA 0.0.0.0 4.4.4.4 57 36 80000002 1
R3路由与LSA:
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/0 O_NSSA2 150 1 23.1.1.2 GE0/0
34.1.1.4 GE0/1
Type LinkState ID AdvRouter Age Len Sequence Metric
NSSA 0.0.0.0 2.2.2.2 137 36 80000001 1
NSSA 0.0.0.0 4.4.4.4 319 36 80000002 1
R3路由与LSA:
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/0 O_INTER 10 2 23.1.1.2 GE0/0
Type LinkState ID AdvRouter Age Len Sequence Metric
Sum-Net 0.0.0.0 2.2.2.2 160 28 80000001 1
若是在ABR上配置了nssa default-route-advertise ,将会同时产生一条第七类缺省路由LSA和一条第三类缺省路由LSA。对于NSSA中的其余路由器来讲,将会优选第三类的缺省路由。
R3路由与LSA:
Destination/Mask Proto Pre Cost NextHop Interface
0.0.0.0/0 O_INTER 10 2 23.1.1.2 GE0/0
Type LinkState ID AdvRouter Age Len Sequence Metric
Sum-Net 0.0.0.0 2.2.2.2 24 28 80000001 1
NSSA 0.0.0.0 2.2.2.2 14 36 80000001 1
若是在彻底NSSA区域的ASBR配置了nssa default-route-advertise,将有可能引发NSSA区域内路由环路,R3的缺省路由指向R2,R2的缺省路由指向R3
对于R2,它会同时收到ABR发布的第三类缺省路由和ASBR发布的第七类缺省路由,所以它会选择第三类缺省路由加入它的路由表,因此RTB的路由表中缺省路由0.0.0.0的下一跳指向ABR
对于ABR来讲,因为ABR会接收ASBR发布的第七类缺省路由,因此它会把第七类的缺省路由加入本身的路由表中,ABR到ASBR的下一跳是R3,所以ABR的路由表中缺省路由0.0.0.0的下一跳指向RTB;
这样在ABR和RTB之间就存在一条由缺省路由0.0.0.0产生的环路,致使ABR和RTB到外部区域的数据均不能正确转发。
l 在普通区域ASBR上配置产生的是第五类缺省路由,传播的区域是整个的ospf域;
l 在NSSA区域配置产生的是第七类或第三类缺省路由,传播的区域是整个NSSA区域。
l 普通区域:不管是在ABR或是ASBR上配置default-route-advertise命令时,都须要在本路由器上已存在一条其余路由协议产生或静态配置的缺省路由时,才会发布第五类缺省路由。若是使用always关键字,则不管ABR、ASBR上是否有缺省路由都会向整个ospf域发布缺省路由。
l Stub区域与彻底stub区域,该区域的ABR生成一条缺省路由0.0.0.0 传播到区域内(3类)。
l NSSA区域:若是在ASBR上使用nssa default-route-advertise命令,则一样须要在本路由器上已存在一条其余路由协议产生或静态配置的缺省路由时,才会发布第七类缺省路由;若是在ABR上使用nssa default-route-advertise命令,则不管是否存在其余路由协议产生或静态配置的缺省路由,都会发布第七类缺省路由。
l 彻底NSSA区域的ABR要发布第三类缺省路由,首先必须存在至少一个骨干区域的full邻居。知足存在骨干区域full邻居的条件以后,彻底NSSA区域的ABR会自动产生一条第三类的缺省路由。
l 普通区域:若是ABR或ASBR本身发布了第五类缺省路由,则它就不会再接受别的路由器发布的第五类缺省路由。在区域的lsdb中,能够存在多个第五类缺省路由LSA。若是普通区域中的路由器本身没有发布第五类缺省路由,则它会从其余路由器发布的多个第五类缺省路由中选择一个最优的加入路由表。
l NSSA区域:在NSSA区域中的普通路由器(非ABR或ASBR)若是同时收到第三类缺省路由和第七类缺省路由,将会优选第三类缺省路由加入路由表。
l NSSA区域:当ABR发布第三类缺省路由,同时ASBR发布第七类缺省路由时,ABR也会学习ASBR发布的缺省路由。这种状况下NSSA区域有可能出现路由环路。
l 另外若是NSSA区域中多台非ABR的ASBR同时配置nssa default-route-advertise,它们是否会发布第七类缺省路由则依赖于原来路由表中其余路由协议或静态配置的缺省路由的preference值。若是全部ASBR的路由表中缺省路由的preference值都大于150,这时只会有一个ASBR会发布第七类缺省路由,其它的ASBR都学习该ASBR发布的第七类缺省路由,区域的lsdb中只会有一条七类缺省路由的LSA;若是有一部分ASBR的路由表中preference值小于150,那么这些ASBR都会发布第七类缺省路由,而且本身的路由表中的缺省路由不会被其余的ASBR发布的第七类缺省路由更新(路由表优选preference值小的路由加入),其它那些路由表中原来缺省路由preference值大于150的ASBR都不会发布第七类缺省路由,它们只接受其它ASBR发布的缺省路由,而且将该路由加入路由表,此时区域的lsdb中能够有多条七类缺省路由的LSA。
若是在彻底NSSA区域的ASBR配置了nssa default-route-advertise,将有可能引发NSSA区域内路由环路,区域内的路由器会选择ABR的三类缺省路由,ABR会选择ASBR的7类缺省路由,致使ABR与区域内路由器环路。
ASBR以5了或7类LSA引入外部路由时,设定FA来标明正确的AS出口位置。
RFC规定的操做:
l 若是LSA描述的目标网络为N。N的地址经过LSA中LS ID和LSA体中的网络掩码计算而来。在路由表中查找生成该LSA的ASBR。若是不存在该ASBR的表项(好比ASBR不可达),那么对该LSA不作操做。
l 不然,该LSA就描述了到达AS外部网络N的路径。检查AS-external-LSA中的‘转发地址’,这个地址就是发往该目标网络N的数据包应该被送达的地址。
l 若是转发地址被设为0.0.0.0,包应当被转发到ASBR。……..
l 若是转发地址不是零,那么在路由表中查找FA。匹配FA的路由表项必须是区域内或区域间路径,若是没有符合条件的表项存在,那么对该LSA不作操做。
l 在RFC中规定,当收到5类LSA并作路由计算时,要求首先看引入该5类LSA的ASBR是否路由可达,不然就不对该LSA作处理。当FA非0时,存在相似的问题,须要查找覆盖FA的区域内或者区域间路由,若是存在才进行处理。
CMW是H3C网络产品使用的操做系统,CMW对FA的填写做了以下规定:
l OSPF在ASBR的下一跳接口启用;
l ASBR的下一跳接口没有被设置为被动接口;
l ASBR的下一跳接口不是OSPF P2P或P2MP类型的;
l ASBR的下一跳接口地址是落在OSPF协议中发布的网络范围以内;
l 除此以外,其它状况FA都填为0.0.0.0。
思科参考The Effects of the FOrwarding Address on Type 5 LSA Path Selection(转发地址对类型 5 LSA 路径选择的影响)及Common ROuting Problem with OSPF Forwarding Address(与 OSPF 转发地址有关的常见路由问题).
l 若是 ASBR 重分配路由且在这些路由的下一跳接口上未启用 OSPF,则转发地址设置为 0.0.0.0。
l 在下列条件下,转发地址字段将设置为非零地址:
n 在 ASBR 的下一跳接口上启用了 OSPF,而且
n ASBR 的下一跳接口在 OSPF 下是非被动的,而且
n ASBR 的下一跳接口并不是 是点对点的,而且
n ASBR 的下一跳接口并不是 是点到多点的,而且
n ASBR 的下一跳接口地址属于在 router ospf 命令中指定的网络范围。
n 在除以上条件以外的任何其余条件下,转发地址均设置为 0.0.0.0
1. 若是有Loopback接口配置了,就选IP地址数值最大的Loopback地址;
2. 若是没有配置Loopback接口地址,就选IP地址数值最大的物理接口地址.
3. 若是当前OSPF进程正在运行,Router ID即便是从新手工配置或计算都不会立刻生效,而须要OSPF进程从新启动才会生效
4. 为何新路由器启动后我不能配置OSPF? 由于OSPF运行是须要一个肯定的Router ID做为路由器标志的,这个东西对于OSPF来讲很是重要,在OSPF的各种协议报文中都要用到.因此,要么你在OSPF中明确指定Router ID
外部 OSPF 路由只能由 ASBR 进行汇总
OSPF路由的优先级从高到低的次序是:Intra-Area>Inter-Area>Type 5 AS-External>Type 7 AS-External.在这种状况下,应该优先的是Type 5路由.注意,对表明同一子网的路由来讲,首先比较的是路由优先级才是总的cost.
RFC2328在选路时,不是最优先考虑COST的,是要考虑路由的类型及区域的类型的,好比它认为通过通过普通区域的路由好于通过骨干区域的路由。
(1)当RFC 2328兼容RFC 1583时,全部到达ASBR的路由优先级相同(引入的路由按开销大小比较)。当RFC 2328不兼容RFC 1583时,非骨干区的区域内路由优先级最高,区域间路由与骨干区区域内路由优先级相同,优选非骨干区的区域内路由,尽可能减小骨干区的负担;
(2)若存在多条优先级相同的路由时,按开销值优选,优选开销值小的路由;
(3)若存在多条开销值相同路由时,按路由来源区域的区域ID选择,优选区域ID大的路由。
OSPF 共有 8 种状态机,分别是: Down、 Attempt、 Init、 2-way、 Exstart、 Exchange、 Loading、 Full。
l Down:邻居会话的初始阶段,代表没有在邻居失效时间间隔内收到来自邻居路由器的 Hello数据包。
l Attempt:该状态仅发生在 NBMA 网络中,代表对端在邻居失效时间间隔( dead interval)超时后仍然没有回复 Hello 报文。此时路由器依然每发送轮询 Hello 报文的时间间隔( poll interval)向对端发送 Hello 报文。
l Init:收到 Hello 报文后状态为 Init。
l 2-way:收到的 Hello 报文中包含有本身的 Router ID,则状态为 2-way;若是不造成邻接关系则邻居状态机就停留在此状态,不然进入 Exstart 状态。
l Exstart:若是造成邻居关系,则从 Init 状态转到 Exstart 状态,开始协商主从关系,并肯定 DD的序列号。
l Exchange:主从关系协商完毕后开始交换 DD 报文,此时状态为 Exchange。
l Loading: DD 报文交换完成即 Exchange done,此时状态为 Loading。
l Full: LSR 重传列表为空,此时状态为 Full。
l Down:这是邻居的初始状态,表示没有从邻居收到任何信息。
l Init:在此状态下,路由器已经从邻居收到了Hello报文,可是本身不在所收到的Hello报文的邻居列表中,表示还没有与邻居创建双向通讯关系。在此状态下的邻居要被包含在本身所发送的Hello报文的邻居列表中。
l 2-Way:在此状态下,双向通讯已经创建,可是没有与邻居创建邻接关系。这是创建邻接关系之前的最高级状态。若是网络为广播网络或者NBMA网络则选举DR/BDR。
在造成邻居关系过程当中,须要对Hello报文携带的参数进行协商:
l 若是接收端口的网络类型是广播型,点到多点或者NBMA,所接收的Hello报文中Network Mask字段必须和接收端口的网络掩码一致,若是接收端口的网络类型为点到点类型或者是虚链接,则不检查Network Mask字段;
l 所接收的Hello报文中的Hello和Dead字段必须和接收端口的配置保持一致;
l 所接收的Hello报文中的认证字段须要一致;
l 所接收的Hello报文中的Options字段中的E-bit(表示是否接收外部路由信息)必须和相关区域的配置保持一致。
l 所接收的Hello报文中的区域字段必须一致。
1. 邻居状态机变为ExStart之后,R1向R2发送第一个DD报文,在这个报文中,DD序列号被设置为552A(假设),Initial比特为1表示这是第一个DD报文,More比特为1表示后续还有DD报文要发送,Master比特为1表示R1宣告本身为主路由器。
2. 邻居状态机变为ExStart之后,R2向R1发送第一个DD报文,在这个报文中,DD序列号被设置为5528(假设)。因为R2的Router ID比R1的大,因此R2应当为主路由器,Router ID的比较结束后,R1会产生一个NegotiationDone的事件,因此R1将状态机从ExStart改变为Exchange。
3. 邻居状态机变为Exchange之后,R1发送一个新的DD报文,在这个新的报文中包含LSDB的摘要信息,序列号设置为R2在第二步里使用的序列号,More比特为0表示不须要另外的DD报文描述LSDB,Master比特为0表示R1宣告本身为从路由器。收到这样一个报文之后,R2会产生一个NegotiationDone的事件,所以R2将邻居状态改变为Exchange。
4. 邻居状态变为Exchange之后,R2发送一个新的DD报文,该报文中包含LSDB的描述信息,DD序列号设为5529(上次使用的序列号加1)。
5. 即便R1不须要新的DD报文描述本身的LSDB,可是作为从路由器,R1须要对主路由器R2发送的每个DD报文进行确认。因此,R1向R2发送一个新的DD报文,序列号为5529,该报文内容为空。
6. 邻居状态变为Loading以后,R1开始向R2发送LS request报文,请求那些在Exchange状态下经过DD报文发现的,并且在本地LSDB中没有的链路状态信息。
7. R2收到LS Request报文以后,向R1发送LS Update报文,在LS Update报文中,包含了那些被请求的链路状态的详细信息。R1收到LS Update报文以后,将邻居状态从Loading改变成Full。
8. R1向R2发送LS Ack报文,确保信息传输的可靠性。LS Ack报文用于泛洪对已接收LSA的确认。
l 只对受影响的节点进行路由计算
l 只第一次计算所有节点
I-SPF改进了这个算法,除了第一次计算时须要计算所有节点外,每次只计算受到影响的节点,而最后生成的最短路径树SPT与原来的算法所计算的结果相同,大大下降了CPU的占用率,提升了网络收敛速度。
l 只对发生变化的路由进行从新计算
l 根据I-SPF 算出来的SPT 来更新路由
PRC的原理与I-SPF相同,都是只对发生变化的路由进行从新计算。不一样的是,PRC不须要计算节点路径,而是根据I-SPF算出来的SPT来更新路由。在路由计算中,叶子表明路由,节点则表明路由器。SPT变化和叶子变化都会引发路由信息的变化,但二者不存在依赖关系,PRC根据SPT或叶子的不一样状况进行相应的处理:
Ø SPT变化,PRC处理变化节点上的全部叶子的路由信息。
Ø SPT没有变化,PRC不会处理节点的路由信息。
Ø 叶子变化,PRC处理变化的叶子的路由信息。
Ø 叶子没有变化,PRC不会处理叶子的路由信息。
l 对接口翻动等缘由带来的网络不稳定,进行智能控制,减小LSA洪泛
l 其余做用略
智能定时器,OSPF智能定时器分别对路由计算、LSA的产生、LSA的接收进行控制,加速网络收敛。OSPF智能定时器能够经过如下两种方式来加速网络收敛:
Ø 在频繁进行路由计算的网络中,OSPF智能定时器根据用户的配置和指数衰减技术动态调整两次路由计算的时间间隔,减小路由计算的次数,从而减小CPU的消耗,待网络拓扑稳定后再进行路由计算。
Ø 在不稳定网络中,当路由器因为拓扑的频繁变化须要产生或接收LSA时,OSPF智能定时器能够动态调整时间间隔,在时间间隔以内不产生LSA或对接受到的LSA不进行处理,从而减小整个网络无效LSA的产生和传播。
智能定时器对路径计算的做用:
Ø 根据本地维护的链路状态数据库LSDB,运行OSPF协议的路由器经过SPF算法计算出以本身为根的最短路径树,并根据这一最短路径树决定到目的网络的下一跳。经过调节SPF的计算间隔,能够抑制网络频繁变化可能致使的占用过多带宽资源和路由器资源。
Ø 在必定组网环境下(例如对路由收敛时间要求较高的环境),能够指定以毫秒为单位的时间间隔,用来增长路由计算的频度,从而加快路由的收敛。
Ø 当OSPF的链路状态数据库(LSDB)发生改变时,须要从新计算最短路径。若是网络频繁变化,因为不断的计算最短路径,会占用大量系统资源,影响路由器的效率。经过配置智能定时器,设置合理的SPF计算的间隔时间,能够避免占用过多的路由器内存和带宽资源。
Ø 使能智能定时器后:
n 初次计算SPF的间隔时间由start-interval参数指定。
n 第n(n≥2)次计算SPF的间隔时间为hold-interval×2(n-1)。
n 当hold-interval×2(n-1)达到指定的最长间隔时间max-interval时,OSPF连续三次计算SPF的时间间隔都是最长间隔时间,以后,再次返回步骤1,按照初始间隔时间start-interval计算SPF。
l 可以让某些特定的路由优先收敛的一种技术
能够经过IP前列表等将特定路由过滤出来,经过对不一样的路由配置不一样的收敛优先级,达到重要的路由先收敛的目的,提升网络的可靠性。
经过设置路由器上非缺省外部路由数量的上限,来避免数据库超限。OSPF网络中全部路由器都必须配置相同的上限值。这样,只要路由器上外部路由的数量达到该上限,路由器就进入Overflow状态,并同时启动超限状态定时器(默认超时时间为5秒),路由器在定时器超过5秒后自动退出超限状态。
OSPF Database Overflow过程
l 进入Overflow状态时,路由器删除全部本身产生的非缺省外部路由。
l 处于Overflow状态中,路由器不产生非缺省外部路由,丢弃新收到的非缺省外部路由且不回复确认报文,当超限状态定时器超时,检查外部路由数量是否仍然超过上限,若是超限则重启定时器,若是没有则退出超限状态。
l 退出Overflow状态时,删除超限状态定时器,产生非缺省外部路由,接收新收到的非缺省外部路由,回复确认报文,准备下一次进入超限状态。
l 是指在两台ABR之间经过一个非骨干区域创建的一条逻辑上的链接通道,修复被分割的区域0
l 虚链接必须在两端同时配置方可生效
l 为虚链接两端提供一条非骨干区域内部路由的区域称为传输区域
l 传输区域不能是末节
Ø 在部署OSPF时,要求全部的非骨干区域与骨干区域相连。不然会出现有的区域不可达的问题。
Ø 经过虚链接,两台ABR之间直接传递OSPF报文信息,他们之间的OSPF路由器只是起到一个转发报文的做用。因为OSPF协议报文的目的地址不是这些路由器,因此这些报文对于他们而言是透明的,只是看成普通的IP报文来转发。
Ø 虚链接部署不当时有可能产生环路。
l 接口认证
l 区域认证
l Null
l Simple
l MD5
l HMAC-MD5
当两种验证方式都存在时,优先使用接口验证方式。