文章目录
一、OSPF基础。
1.Router ID。
- 作用:唯一标识一台路由器。
- 默认配置:优先使用管理员手动配置的Router ID,管理员没有配置使用全局Router ID,全局Router ID如果管理员没有配置,路由器会使用第一个配置的IP地址作为自己的全局Router ID。
2.Cost。
- 默认计算方法:100MBit/s / 接口的参考带宽
- 以上公式如果计算结果为小数取整数部分;如果计算小于1,结果取1。
- 到目的网络的开销值等于源路由器到目的网络沿途所有路由器出接口的cost累加。
- 全网的接口带宽参考值应该保持一致,一条链路上不同接口的cost应该相同,因为不同可能会导致数据来回路径不一致。
4.单区域和多区域。
- 单区域弊端:LSDB维护的LSA过多,消耗设备资源;网络不稳定时,全网都会震荡;网络优化的手段减少,不能进行路由汇总。
- 多区域好处:可以进行故障的隔离,增强网络的稳定性
5.路由器类型。
- IR:所有接口都在同一个区域的路由器。
- ABR:连接2个以上的区域,至少有一个区域在区域0的路由器。
- BR:至少有一个接口属于骨干路由器。
- ASBR:引入其他协议的或者其他OSPF进程的路由器。
其他路由器是怎样知道ABR和ASBR的?
ABR和ASBR会在自身产生的1类LSA的option中描述自己是ABR或者ASBR。
6.报文类型。
OSPF报文封装在IP报文中,协议号是89,它一共有五种报文类型分别是:
- Hello报文:周期性发送,P2P、Broadcast默认间隔10s发送一次,P2MP、NBMA默认30s发送一次,用来发现和维持OSPF邻居关系。
- DD报文:描述本地LSDB的摘要信息,用于两台设备进行数据库同步
- LSR报文:用于向对方请求所需的LSA。
- LSU报文:用于向对方发送其所需要的LSA。
- LSAck报文:用来对收到的LSA进行确认。
7.网络类型。
OSPF一共定义了四种网络类型,分别是Broadcast、NBMA、P2MP、P2P。不同的网络类型使OSPF对报文的处理有所不同,默认情况下OSPF网路类型取决于链路层协议:
网络类型 | 含义 |
---|---|
广播类型(Broadcast) | 当链路层协议是Ethernet、FDDI时,缺省情况下,OSPF认为网络类型是Broadcast。 在该类型的网络中: (1)通常以组播形式发送Hello报文、LSU报文和LSAck报文。其中,224.0.0.5的组播地址为OSPF设备的预留IP组播地址;224.0.0.6的组播地址为OSPF DR/BDR( Backup Designated Router)的预留IP组播地址。 (2)以单播形式发送DD报文和LSR报文。 |
NBMA类型(Non-Broadcast Multi-Access) | 当链路层协议是帧中继、X.25时,缺省情况下,OSPF认为网络类型是NBMA。 在该类型的网络中,以单播形式发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文) |
点到多点P2MP类型(Point-to-Multipoint) | 没有一种链路层协议会被缺省的认为是Point-to-Multipoint类型。点到多点必须是由其他的网络类型强制更改的。常用做法是将非全连通的NBMA改为点到多点的网络。 在该类型的网络中: (1)以组播形式(224.0.0.5)发送Hello报文。 (2)以单播形式发送其他协议报文(DD报文、LSR报文、LSU报文、LSAck报文)。 |
点到点P2P类型(point-to-point) | 当链路层协议是PPP、HDLC和LAPB时,缺省情况下,OSPF认为网络类型是P2P。 在该类型的网络中,以组播形式(224.0.0.5)发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文)。 |
OSPF网络类型相互之间的影响?
相互之间的影响主要在建立邻居关系时的影响:
- P2P—Broadcast当hello、dead时间一致时,可以建立Full邻居关系, 路由无法计算。原因是:因为P2P把链路通过点到点来进行描述,Broadcast把链路通过伪节点来描述,导所以致2台路由器对链路理解不一致,SPF算法无法处理该现象。
- P2P—NBMA当hello、dead一致时,邻居无法建立。原因:发送报文的形式不同,NBMA只处理单播hello包。
- P2P—P2MP当hello、dead一致时,可以建立full邻居关系,路由可以计算。
- Broadcast—NBMA当hello、dead一致时,邻居无法建立。原因:发送报文的形式不同,NBMA只处理单播hello包。
- Broadcast–P2MP当hello、dead一致时,可以建立full邻居关系,路由无法计算。原因:因为P2MP把链路通过多个点到点来进行描述, BRO把链路通过伪节点来描述,导致2台路由器对链路理解不一致,SPF算法无法处理该现象。
- P2MP—NBMA不能建立邻居。原因:发送报文的形式不同,NBMA只处理单播hello包。
8.DR与BDR。
- 作用:避免了MA网络中路由器得两两建立邻居关系,节约了系统资源。
- 选举:接口优先级越大,优先成为DR,次大成为BDR;优先级相同则比较Router ID,Router ID越大优先成为DR,次大成为BDR;优先级值为0~255,值为0只能成为DRother。
- OSPF定义了一个Wait计时器,缺省等于Dead时间40s,2way状态后会启动WAIT计时器,这个时间用于搜集MA网络中具有DR选举资格的路由器。这就是为什么我们在以太网接口上配置OSPF时,邻居关系的建立总是很慢,而在串行接口上配置OSPF,邻居关系很快就建立起来了,串行接口不选举DR、BDR,无需经过WAIT计时器。
- DR/BDR在子网融合场景下会发生抢占:
假设初始情况下R1、R2处于一个LAN中,R3自己处于另外一个LAN中,大家的接口IP都是同网段的,但是属于不通的LAN。例如三台路由器都连接在同一台交换机上,但是R1、R2属于一个VLAN,R3属于另一个VLAN。那么三台路由器的接口激活OSPF后,R1会成为LAN1的DR,而R3会成为LAN2的DR,也就是他们各自发送出来的Hello消息中,都宣称自己就是DR。现在假设两个LAN连接了起来,这就会有问题了,因为同一个LAN中,有两人宣称自己是老大,这就得重新干一架,重新DR选举。
9.报文格式。
- 报文头部
Version | Message Type | Packet length | Source OSPF Router | Area ID | CheckSum | Authentication Type | Authentication data |
---|
- Hello报文
Network Mask | Hello Interval | Options | Router Priority | Router Dead Interval | DR | BDR | Active Neighbor |
---|
- DD报文
Interface MTU | Options | I | M | M/S | DD sequence number | LSA Headers |
---|
- Option字段详解
(1)DN:用来避免在MPLS VPN中出现环路。当PE向CE发送3类、5类和7类LSA时需要设置DN位,其他PE路由器从CE接收到该LSA时,不能够在它的OSPF路由计算中使用该LSA。
(2)O:该字段指出始发路由器支持Opaque LSA(类型9、类型10和类型11)。
(3)DC位:当始发路由器支持按需链路上的OSPF的能力时,该位将被设置。
(4)EA:当始发路由器具有接收和转发External-Attributes-LSA(type8 LSA)的能力时,该位被置位。
(5)N/P : N在Hello报文中起作用,P在7类LSA中起作用。
- N = 1 代表路由器发送Hello的接口在NSSA区域,支持7类LSA的泛洪以及同步。
- N = 0 代表该路由器发送该Hello的接口不在NSSA区域,不支持7类LSA的泛洪和同步。
- P = 1 该7类LSA可以转化为5类LSA。
- P = 0 该7类LSA不可以转化为5类LSA。
(6)MC位:当始发路由器支持转发组播数据包的能力时,该位将被置位。
(7)E = 1 代表可以发送和接收5类LSA。E = 0代表不可以发送和接收5类LSA。
(8)MT位:表示始发路由器支持多拓扑OSPF。
10.更新机制。
- 周期性更新:在稳定网络中,路由器对自身产生的LSA会每隔1800s周期性更新并泛洪给邻居,seq+1,Chksum重新计算,ls age = 1。
- 触发更新:当LSA的链路状态发生变化时,则立即更新,seq+1,Chksum重新计算,ls age = 1。
二、邻居/邻接关系的建立和状态机。
1.邻居关系的建立。
- R1的一个连接到广播类型网络的接口上激活了OSPF协议,并发送了一个Hello报文(使用组播地址224.0.0.5)。此时,RouterA认为自己是DR路由器(DR=1.1.1.1),但不确定邻居是哪台路由器(Neighbors Seen=0)。
- R2收到R1发送的Hello报文后,发送一个Hello报文回应给R1,并且在报文中的Neighbors Seen字段中填入R1的Router ID(Neighbors Seen=1.1.1.1),表示已收到R1的Hello报文,并且宣告DR路由器是R2(DR=2.2.2.2),然后R2的邻居状态机置为Init。
- R1收到R2回应的Hello报文后,将邻居状态机置为2-way状态,并发送一个Hello报文回应给R2,并且在报文中的Neighbors Seen字段中填入R2的Router ID(Neighbors Seen=2.2.2.2),表示已收到R2的Hello报文,并且宣告DR路由器是R2(DR=2.2.2.2),然后R2的邻居状态机置为two-way。
2.邻接关系的建立。
- R1、R2在迁移到two-way状态之后,紧接着会继续将状态迁移到Exstart。
- 邻居状态机变为ExStart以后,R1向R2发送第一个DD报文,在这个报文中,DD序列号被设置为552A(假设),Initial比特为1表示这是第一个DD报文,More比特为1表示后续还有DD报文要发送,Master比特为1表示R1宣告自己为主路由器。
- 邻居状态机变为ExStart以后,R2向R1发送第一个DD报文,在这个报文中,DD序列号被设置为5528(假设)。由于R2的Router ID比R1的大,所以R2应当为主路由器,Router ID的比较结束后,R1会产生一个NegotiationDone的事件,所以R1将状态机从ExStart改变为Exchange。
- 邻居状态机变为Exchange以后,R1发送一个新的DD报文,在这个新的报文中包含LSDB的摘要信息,序列号设置为R2在第二步里使用的序列号,More比特为0表示不需要另外的DD报文描述LSDB,Master比特为0表示R1宣告自己为从路由器。收到这样一个报文以后,R2会产生一个NegotiationDone的事件,因此R2将邻居状态改变为Exchange。
- 邻居状态变为Exchange以后,R2发送一个新的DD报文,该报文中包含LSDB的描述信息,DD序列号设为5529(上次使用的序列号加1)。
- 即使R1不需要新的DD报文描述自己的LSDB,但是做为从路由器,R1需要对主路由器R2发送的每一个DD报文进行确认。所以,R1向R2发送一个新的DD报文,序列号为5529,该报文内容为空。
- 邻居状态变为Loading之后,R1开始向R2发送LS request报文,请求那些在Exchange状态下通过DD报文发现的,而且在本地LSDB中没有的链路状态信息。
- R2收到LS Request报文之后,向R1发送LS Update报文,在LS Update报文中,包含了那些被请求的链路状态的详细信息。R1收到LS Update报文之后,将邻居状态从Loading改变成Full。
- R1向R2发送LS Ack报文,确认R2发送的LSA已被R1正确接收。LS Ack用来确保信息传输的可靠性。
3.状态机。
OSPF共有8种状态机,分别是:Down、Attempt、Init、2-way、Exstart、Exchange、Loading、Full。
• Down:邻居会话的初始阶段,表明没有在邻居失效时间间隔内收到来自邻居路由器的Hello数据包。
• Attempt:该状态仅发生在NBMA网络中,表明对端在邻居失效时间间隔(dead interval)超时前仍然没有回复Hello报文。此时路由器依然每发送轮询Hello报文的时间间隔默认为30s,向对端发送Hello报文。如果40s间隔内未收到邻居的Hello报文,则转为down状态。
• Init:收到Hello报文后状态为Init。
• 2-way:收到的Hello报文中包含有自己的Router ID,则状态为2-way;如果不需要形成邻接关系则邻居状态机就停留在此状态,否则进入Exstart状态。
• Exstart:开始协商主从关系,并确定DD的序列号,此时状态为Exstart。
• Exchange:主从关系协商完毕后开始交换DD报文,此时状态为Exchange。
• Loading:DD报文交换完成即Exchange done,此时状态为Loading。
• Full:LSR重传列表为空,此时状态为Full。
4.状态机迁移。
影响邻居建立的因素?
- Router ID不能冲突。
- Area ID必须一致。
- Authentication Type必须一致;Authentication data要一致。
- hello和daea时间间隔要一致。
- Option E,N bit取值要一致。
- 接口网络类型要一致。
- Broadcast和NBMA网络类型要求接口的子网掩码一致。
三、路由计算。
1.LSA的类型。
OSPF一共有六种常见的LSA,下面是LSA Headers信息:
Type | LS ID | Adv rtr | LS age | Len | Options | Seq | Chksum |
---|
它们的主要格式和作用如下:
(1)type1-LSA:Router-LSA
-
用于描述自身加入到OSPF进程的链路状态。
-
每台运行OSPF协议的路由器都会产生1条type 1的LSA。
-
区域内泛洪。
-
重要字段含义:
Type:Router
LS ID:产生这条LSA路由器的Router ID
Adv rtr:产生这条LSA的路由器的Router IDType 1 LSA定义4种link type,每一种link type由3个参数来进行描述,分别是link id、data、metric。
- Link type:stubnet 用于描述自身加入到OSPF进程中直连网络
Link ID:直连网络的网络号
data:直连网络的子网掩码
metric:自身到该网络的开销 - Link type:P2P 用于描述P2P/P2MP链路上的邻居
Link ID:该链路上邻居的Router ID
data:与邻居相连的接口地址
metric:自身到该邻居的OSPF开销 - Link type:transnet 用于描述Broadcast/NBMA链路上的邻居
Link ID:伪节点的Router ID,DR接口地址充当
data:与邻居相连的接口地址
metric:自身到该伪节点的OSPF开销 - Link type:virtual 用于描述vlink上的邻居
Link ID:vlink上邻居的Router ID
data:与邻居相连的接口地址
metric:虚链路的开销
- Link type:stubnet 用于描述自身加入到OSPF进程中直连网络
(2)type2-LSA:Network-LSA
- 用于描述这条链路上的连接着哪些路由器,即伪节点连接着拿些节点。
- 描述Broadcast/NBMA链路的网络号(将DR接口地址与DR接口的子网掩码做与运算)。
- 链路上的DR产生。
- 区域内泛洪。
- 重要字段含义:
Type : network
LS ID :伪节点的router id,DR 的接口地址充当
Adv rtr:DR的Router ID
Net mask : 255.255.255.0 DR接口的子网掩码(路由信息)
Attached Router 2.2.2.2 伪节点连接的节点(拓扑信息)
Attached Router 3.3.3.3
Attached Router 4.4.4.4
(3) type3-LSA:Sum-Net-LSA
- 用于描述区域间的路由,由ABR产生。
- 一条type 3的LSA只能描述一条路由。
- 只能在产生的区域内泛洪。
- 重要字段含义:
Type : Sum-Net
LS ID :区域间路由的网络号
Adv rtr: 产生该3类LSA的ABR的
Net mask: 255.255.255.0 区域间路由的掩码(路由信息)
metric: 1 ABR到该路由的开销
(4)type5-LSA:External-LSA
- 用于描述AS外部的路由
- 在整个AS内泛洪,而且参数不变
- 一条type 5的LSA只能描述一条外部路由
- 重要字段含义:
Type : External-LSA
LS ID :外部路由的网络号
Adv rtr: ASBR的Router ID
Net mask: 255.255.255.0 外部路由的掩码(路由信息)
Metric: 100 引入外部路由的默认开销值(ASBR到该路由的开销)
E type : 2 外部路由开销类型,有cost type-1、cost type-2,默认cost type-2
Forwarding Address : 0.0.0.0 转发地址
Tag : 1 路由的tag,根据tag方便对引入的外部路由做统一管理
(5)type4-LSA:Sum-Asbr-LSA
- 描述ABR到ASBR的开销
- ABR产生,区域类泛洪
- 重要字段含义:
Type :Sum-Asbr
LS ID :ASBR的Router ID
Adv rtr:ABR的Router ID
metric: 1 ABR到ASBR的开销
(6)type7-LSA:NSSA-LSA
- NSSA和Totally NSSA区域存在
- 描述AS外部路由
- 区域内泛洪
- 重要字段含义:
Type :NSSA
LS ID :外部路由的网络号
Adv rtr:ASBR的Router ID
Options : NP 该7类LSA允许进行7转5操作
Net mask : 255.255.255.0 外部路由的掩码
Metric: 1 引入时的外部路由开销
E type : 2 cost-type
Forwarding Address : 10.1.12.1 转发地址
Tag : 1 路由标记
2.防环和选路机制。
(1)区域内。
- 根据1、2类LSA,结合SPF算法,百分百无环路。之所以能做到无环,是因为路由器能够通过LSA描绘出区域的完整拓扑(包括所有接口的Cost)及网段信息。
- Type-1 LSA及Type-2 LSA,路由器能够描绘出区域内的拓扑及网段信息,从而运行SPF算法,计算出到达每个网段的最优路径,并将这些路径安装到路由表中,因此区域内的路由(Intra-Area Route)可以实现无环路。
(2)区域间。
- OSPF要求所有的非0区域必须与骨干区域直接相连,区域间路由需经由骨干区域中转。
OSPF要求所有的非0区域必须与骨干区域直接相连,区域间(Inter-Area Route)路由需经由骨干区域中转。这个要求使得区域间的路由传递不能发生在两个非0的区域之间,这在很大程度上规避了区域间路由环路的发生,也使得OSPF的区域架构在逻辑上形成了一个类似星型的拓扑 - 非骨干区域的3类LSA不会转换成骨干区域的3类LSA,即骨干区域3类LSA优于非骨干区域的三类。
- 1类、2类LSA路由优于3类LSA的路由。
X路由通过R1路由器转化为区域0的3类LSA,但是这条LSA不会在R2上进行路由计算,所以B还是走开销为100的路径,防止产生环路。 - ABR在区域0没有任何full邻居时才能使用非骨干区域的3类LSA进行区域间路由计算,two-way邻居可以计算。
R1和R4之间的链路断了,R1不能利用A1区域的3类LSA计算去往X的路由。只有当R1和R3之间的邻居关系断掉时,R1才能使用A1区域的3类LSA计算去往X的路由。
(3)区域外。
-
五类LSA没有防环机制,它并不需要防环机制,因为它可以依赖Type-1 LSA及Type-4 LSA来实现防环。
-
ABR通过优先使用区域0的4类LSA计算外部路由,区域0的4类优于非骨干区域4类。
-
通过多个区域的1类都能到达ASBR,并且cost相同则优先选择区域ID大的1类,如果cost不同则优先选择cost小的。
-
如果在区域0中引入外部路由:
- 当ABR在区域0有活跃的邻居时,ABR优先使用区域0中的1类LSA计算到ASBR的路由。
- 当ABR在区域0没有活跃的邻居时,ABR才使用区域1中的4类LSA计算到ASBR的路由。
-
如果在非骨干区域引入外部路由,ABR通过1类LSA和4类LSA都能计算出到ASBR的路径时:
- 开销不同,则选择到ASBR开销小的路径。
- 开销相同,则优先选择1类LSA计算出的路径,不会负载分担。
3.区域类型。
OSPF一共有五种区域类型,分别是:普通区域、STUB区域、Totally STUB区域、NSSA区域、Totally NSSA区域。
(1)普通区域:缺省情况下, OSPF 区域被定义为普通区域。 普通区域包括标准区域和骨干区域。
- 标准区域是最通用的区域,它传输区域内路由,区域间路由和外部路由。
- 骨干区域是连接所有其他 OSPF 区域的中央区域。骨干区域通常用Area 0表示。
(2)STUB 区域:
- 不允许引入外部路由。
- 不允许5类和4类LSA的泛洪。
- 为了保证到自治系统外的路由可达,由该区域的ABR产生缺省的3类LSA路由传播到区域内,让自身区域的IR能够访问外部路由。
(3)Totally STUB 区域:
- 不允许引入外部路由。
- 不允许5类、4类和3类LSA的泛洪。
- 为了保证到外部路由和其他区域的路由可达,由该区域的ABR产生缺省的3类LSA路由传播到区域内,让自身区域的IR能够访问外部路由。
(4)NSSA 区域:
- 5类LSA、4类LSA不在该区域进行泛洪。
- NSSA区域允许引入自治系统外部路由,由ASBR发布Type7 LSA通告给本区域,这些Type7 LSA在 ABR上转换成Type5 LSA,并且泛洪到整个OSPF域中。
- NSSA区域的ABR会产生一条缺省7类LSA让自身区域的IR能够访问其他区域的外部路由。
- NSSA区域有多个ABR时,Router ID大的执行7转5操作。
(5)Totally NSSA 区域:
- 5类LSA、4类LSA、区域间的3类不在该区域进行泛洪。
- NSSA区域的ABR会产生一条缺省3类LSA用于访问区域间路由。
- NSSA区域允许引入自治系统外部路由,由ASBR发布Type7 LSA通告给本区域,这些Type7 LSA在 ABR上转换成Type5 LSA,并且泛洪到整个OSPF域中。
- ABR会产生一条缺省7类LSA让自身区域的IR能够访问其他区域的外部路由。
4.特殊区域的防环和选路机制。
(1)末节区域和完全末节区域。
- Stub/Totally stub存在多个ABR时,ABR不会使用缺省3类LSA,进行缺省路由计算,这样做是防止环路产生。
- Stub/Totally stub存在多个ABR时,当某个ABR在区域0没有活跃的邻居时才使用缺省的3类LSA计算缺省路由。
(2)NSSA和Totally NSSA区域。
- 7类LSA只能在NSSA区域泛洪,NSSA区域Router ID大的ABR将7类LSA转化为5类LSA,并泛洪到其他区域。Adv rtr修改为自身的Router id,metric保持不变。在区域视图下配置:
nssa translator-always 可使Router id小的路由器也进行转5操作 nssa translator-always suppress-forwarding-address 将通过该NSSA ABR转换后生成的Type-5 LSA的FA(Forwarding Address)设置为0.0.0.0
- 在以上拓扑中,R1上引入一条外部路由X,R1作为ABR/ASBR将为区域1和区域0分别产生一条7类LSA和5类LSA。
- 如果7类LSA计算的去往外部路由X的开销和5类LSA计算的开销一致,R4访问外部路由负载分担,开销不同则选择开销小的路径。
- nssa no-import-route 设置不向NSSA区域引入外部路由
- nssa default-route-advertise 在ASBR上配置产生缺省的Type-7 LSA到NSSA区域,存在一条其他协议的缺省路由时才会产生7类的缺省。
5.OSPF对拓扑结构的描述。
- 路由器节点和stub网段。
- Transit网段。
- 点到点网段(两个接口处于不同网段)
- 点到点网段(两个接口处于相同网段)
四、OSPF特性。
1.快速收敛。
(1)快速收敛
- 增量最短路径优先算法I-SPF:只对受影响的节点进行路由计算;只第一次计算全部节点。
- 部分路由计算PRC:只对发生变化的路由进行重新计算;根据I-SPF 算出来的SPT 来更新路由。
- 智能定时器:对接口翻动等原因带来的网络不稳定,进行智能控制,减少LSA洪泛。
(2)按优先级收敛
本地有效,可以通过IP前缀列表等将特定路由过滤出来,通过对不同的路由配置不同的收敛优先级,达到重要的路由先收敛的目的,提高网络的可靠性。
[R]ip ip-prefix 1 permit 1.1.1.0 24
[R-ospf-1]prefix-priority high ip-prefix
当一个LSA满足多个策略优先级时,最高优先级生效。OSPF依次按区域内路由、区域间路由、自治系统外部路由顺序进行LSA计算,该命令可以使得OSPF按照指定的路由计算优先级分别计算这三类路由。收敛优先级的优先级顺序为:critical > high > medium > low。为了加速处理高优先级的LSA,泛洪过程中,需要按照优先级将相应的LSA分别存放在对应的critical、high、medium和low的队列中。
2.Database Overflow过载特性。
通过设置路由器上非缺省外部路由数量的上限,来避免数据库超限。OSPF网络中所有路由器都必须配置相同的上限值。这样,只要路由器上外部路由的数量达到该上限,路由器就进入Overflow状态,并同时启动超限状态定时器(默认超时时间为5秒),路由器在定时器超过5秒后自动退出超限状态。
OSPF Database Overflow过程:
- 进入Overflow状态时,路由器删除所有自己产生的非缺省外部路由。
- 处于Overflow状态中时,路由器不产生非缺省外部路由;丢弃新收到的非缺省外部路由且不回复确认报文;当超限状态定时器超时,检查外部路由数量是否仍然超过上限,如果超限则重启定时器,如果没有则退出超限状态。
- 退出Overflow状态时,路由器删除超限状态定时器;产生非缺省外部路由;接收新收到的非缺省外部路由并回复确认报文;准备下一次进入超限状态。
3.虚连接。
虚链路(Virtual-link):由于OSPF网络拓扑结构复杂,有时无法满足每个非骨干区域必须和骨干区域直接相连的要求,为解决此问题,OSPF提出了虚链路的概念。例如:当机房升级,需要进行割接操作,造成骨干区域被分割,但是不能影响现有业务的运作,就可能用到虚链路。
(1)虚链路的使用场景。
- 用于连接与骨干区域不相连的非骨干区域的场景。
- 用于连接不连续的骨干区域的场景。
- 用于连接两个非骨干区域或不存在骨干区域的场景。
- 用于骨干区域备份的场景
当AR4和AR5之间的链路Down,便会造成骨干区域不连续,会导致区域之间访问异常。比如AR4不能访问AR5,甚至不能访问AR3的G0/0/0接口,这个是因为AR3是ABR,不会使用非骨干区域的三类LSA(AR4对应的LSA由AR2转为三类LSA泛洪进行Area 1),所以非骨干区域的三类LSA就不会引入AR5所在的Area 0,导致AR5不能学到AR4对应的三类LSA。 - 做路径优化。
AR6正常访问1.1.1.1走的路径是AR6->AR4->AR3->AR2->AR1开销是131,这是因为骨干区域的3类LSA优于非骨干区域区域的三类LSA,所以AR4会优先使用骨干区域的3类计算路由,产生次优路径。这时如果在AR4和AR5之间建立一条虚链路,这时AR5传递给AR4的3类LSA也属于区域0,这样AR4就会优先将计算开销小的路由加入到路由表中,让AR6访问1.1.1.1走AR6->AR4->AR6->AR2->AR1,开销是21。
(2)虚链路的缺点。
- 不合理虚链路配置导致环路。
区域3有一条路由5.5.5.5/24,AR4将这条路由生成三类的LSA分别传给区域0的AR2、AR3和区域2中的AR3。因为区域0中的3类优于区域2中的3类,所以AR3会根据区域0的3类的LSA计算出去往5.5.5.5/24的下一跳是AR6的g0/0/1接口,AR2会根据区域0的3类LSA计算出去往5.5.5.5/24的下一跳是AR3的g0/0/1接口,由此产生环路。
AR10作为ASBR将为区域1和区域0各产生一条3类的LSA,AR8、AR9、AR7都将优先使用区域0中的3类LSA访问AR11。AR8的逻辑下一跳是AR10,但物理链路下一跳是AR9,AR9的下一跳是AR7,AR7的下一跳是AR8,由此形成了环路。 - 无法对区域0的路由做汇总,汇总可能会导致环路。
(3)虚链路特点。
- 原本的ABR通过虚链路得到的LSA1、LSA2、LSA3所计算出的路由,不会转换成虚链路所在区域的LSA3,目的是防环。
- 存在虚链路的ABR得到一条LSA3(非自身产生的),那么该LSA在自身区域0中存在,此时也要求此LSA3也必须在虚链路穿越的区域的LSDB也存在,否则将不会使用此LSA3计算路由。因为传输区域如果没有此LSA3,那么可能存在黑洞的可能。
- 存在虚链路的ABR,通告虚链路传来的LSA3和虚链路所经过的区域的其他ABR传来的3类LSA,在满足上一个条件的情况下,优先选择cost小的计算区域间的路由。
4.认证。
(1)认证分类。
- 接口认证:仅对接口上的OSPF报文做认证。
- 区域认证:对该区域的所有接口启用认证。
- 接口认证优先于区域认证。
(2)认证的作用。
- 认证设备的身份的真实性
- 协议报文的真实性,即防篡改,防伪造。
- 认证不解决协议报文加密问题,报文本身是明文。
(3)认证方式。
- 明文认证:通过报文携带认证的密码信息,比较密钥是否一致,一致即认证通过
- MD5:密钥不会携带在报文中,携带hash值,通过比较hash值是否一致,一致即认证通过。
- Null:默认,即无认证。
- hmac-md5
5.OSPF的团体属性。
在BGP传递vpnv4路由时会携带OSPF的团体属性,Domain ID,OSPF Route Type和Router ID。华为路由器默认只为非直连链路的OSPF路由产生团体属性。
-
OSPF DOMAIN ID <0.0.0.0 : 0>,华为路由器默认为0。可以在PE的OSPF视图下修改:domain x.x.x.x。
-
OSPF RT <0.0.0.0 : 1 : 0>
- 0.0.0.0代表区域0;
- 1代表1类LSA,即在本区域使用1类LSA计算的该路由;
- 0代表外部路由的开销类型,0 type1、1 type 2,只有是5、7类LSA时有效。
-
OSPF ROUTER ID <1.1.1.1 : 0>是PE设备的OSPF的Router ID。
- 路由协议的domain id与本端PE的OSPF的domain id相同,则对端site由1、2、3类计算的路由在引入时变成3类。
- 路由协议的domain id与本端PE的OSPF的domain id相同,则对端site由5、7类计算的路由在引入时变成5、7类。
- 路由协议的domain id与本端PE的OSPF的domain id不相同,则对端PE计算在将这些路由引入到自身OSPF区域时以5类LSA的形式引入。
注:PE设备在将自己直连网络引入到BGP,形成vpnv4路由是不会携带OSPF的团体属性,所以在对端PE将BGP的Vpnv4路由引入到自身OSPF时会以5类LSA的形式引入。
6.路由聚合。
指ABR可以将具有相同前缀的路由信息聚合到一起,只发布一条路由到其它区域。区域间通过路由聚合,可以减少路由信息,从而减小路由表的规模,提高设备的性能。 OSPF有两种路由聚合方式:
-
ABR聚合:ABR向其它区域发送路由信息时,以网段为单位生成Type3 LSA。如果该区域中存在一些连续的网段,则可以通过命令将这些连续的网段聚合成一个网段。这样ABR只发送一条聚合后的LSA,所有属于命令指定的聚合网段范围的LSA将不会再被单独发送出去。
- 区域间路由汇总默认继承明细路由开销最大的。
- 明细路由全都失效,汇总路由才会失效。
- 区域有多个ABR时都要进行汇总,不然会存在环路风险。
- 虚链路所在区域不能对区域0的路由汇总。
- 配置区域视图下:abr-summary x.x.x.x x
-
ASBR聚合:配置路由聚合后,如果本地设备是自治系统边界路由器ASBR,将对引入的聚合地址范围内的Type5 LSA进行聚合。当配置了NSSA区域时,还要对引入的聚合地址范围内的Type7 LSA进行聚合。如果本地设备既是ASBR又是ABR,则对由Type7 LSA转化成的Type5 LSA进行聚合处理。
- 配置OSPF进程视图下:asbr-summary x.x.x.x x
7. 缺省路由。
缺省路由是指目的地址和掩码都是0的路由。当设备无精确匹配的路由时,就可以通过缺省路由进行报文转发。由于OSPF路由的分级管理,Type3缺省路由的优先级高于Type5或Type7路由。OSPF缺省路由通常应用于下面两种情况:
- 由区域边界路由器(ABR)发布Type3缺省Summary LSA,用来指导区域内设备进行区域之间报文的转发。
- 由自治系统边界路由器(ASBR)发布Type5外部缺省ASE LSA,或者Type7外部缺省NSSA LSA,用来指导自治系统(AS)内设备进行自治系统外报文的转发。
OSPF缺省路由的发布原则如下表: