外部路由引入
- OSPF内部与外部相邻的路由器成为
ASBR
,每个OSPF区域相邻的路由器成为ABR
- 向RTA的OSPF引入一条去往
10.1.60.0
网段的静态路由,又因为引入外部路由的OSPF路由器称为ASBR
ASBR
会生成一条五类LSA(AS-Exteral-LSA
),用于描述ASBR到达外部目的地- 与RTA(
ASBR
)相邻的路由器RTB与RTC会生成一条四类LSA(ASBR-Summary-LSA
),用于描述如何从ABR到达ASBR - 四类LSA和五类LSA用于OSPF路由器计算外部路由
- 四类LSA只能在一个区域内泛洪,五类LSA每泛洪到一个区域,相应区域的ABR都会生成一条新的四类LSA来描述如何到达ASBR
外部路由计算
ASBR
往同一区域内的ABR
发布五类LSA,告知如何从ASBR
到达外部路由器- 与
ASBR
同一区域的ABR
收到五类LSA后,向另一区域的ABR
发送四类LSA,告知如何从ABR
到达ASBR
报文类型
- HELLO报文
周期性发送,用于发现和维持OSPF邻居关系 - DD(Database Description packet)报文
用于描述LSDB的摘要信息,用于两台设备进行数据库同步。 - LSR(Link State Request packet)报文
用于向对方请求所需的LSA。设备只有在OSPF邻居双方成功交换DD报文后才会向对方发出LSR报文。 - LSU(Link State Update packet)报文
用于向对方发送其所需要的LSA。 - LSAck(Link State Acknowledgment packet)报文
用来对收到的LSA进行确认。
OSPF特点
- OSPF把自治系统
AS(Autonomous System)
划分成逻辑意义上的一个或多个区域 - OSPF通过
LSA(Link State Advertisement)
的形式发布路由 - OSPF依靠在OSPF区域内各设备间交互OSPF报文来达到路由信息的统一
- OSPF报文封装在IP报文内,可以采用单播或组播的形式发送
DR&BDR
DR
和BDR
是为减少OSPF流量的,OSPF会选择一个指定路由器(DR
)和一个备份路由器(BDR
)- 当OSPF网络发生变化时,
DR
会负责更新所有OSPF路由器,BDR
会监控DR
状态,在DR
故障时接替角色
区域类型
- 普通区域
缺省情况下,OSPF区域被定义为普通区域,其中包括标准区域和骨干区域
- 标准区域:最通用区域,传输区域间、区域内和外部路由
- 骨干区域:通常用
area 0
表示,连接所有其他OSPF区域的中央区域STUB区域
- 不允许发布自治系统外部路由,只允许发布区域内、区域间路由
- 在
STUB
区域中,路由器的路由表规模和路由信息传递数量大大减少 - 为了保证到自治系统外的路由可达,由
STUB
区域的ABR发布Network-summary-LSA(type3)
缺省路由传播到区域内,所有到自治系统外部和其他区域的路由都必须通过ABR才能发布 - 通常,STUB区域位于自治系统边界,是那些只有一个ABR的非骨干区域
在配置STUB区域时要注意:
- 不允许发布自治系统外部和与区间路由,只允许发布区域内路由
- 在
Totally STUB
区域中,同STUB
区域,路由表规模和路由信息传递数量大大减少 - 同
STUB
区域,由Totally STUB
区域的ABR
发布Network-summay-LSA(type3)
缺省路由传播到区域内,所有到自治系统外部和其他区域的路由都必须通过ABR
才能发布NSSA区域
NSSA
区域允许引入自治系统外部路由,由ASBR
发布NSSA LSA(type7)
通告给本区域,这些NSSA LSA
在ABR
上会转换成AS-external-LSA
,并泛洪到整个OSPF域中NSSA
区域同时保持自治系统内的STUB
区域特征- 该区域的
ABR
发布NSAA LSA(type7)
缺省路由传播到区域内,所有域间路由都必须通过ABR
才能发布 【域间路由:RIP、OSPF、IS-IS】配置NSSA区域时需要注意:
NSSA
区域允许引入自治系统外部路由,由ASBR
发布NSSA LSA(type7)
通告给本区域,这些NSSA LSA
在ABR
上会转换成AS-external-LSA
,并泛洪到整个OSPF域中Totally NSSA
区域同时保留自治系统内的Totally STUB
区域的特征- 该区域的
ABR
发布Network-summary-LSA
和NSAA LSA
缺省路由传播到区域内,所有域间路由都必须通过ABR
才能发布
LSA类型
- Router-LSA(type1)
每个设备都会产生,描述设备链路状态和开销,在所属的区域内传播 - Network-LSA(type2)
由DR
产生,描述本网段的链路状态,在所属的区域内传播 - Network-summary-LSA(type3)
由ABR产生,描述区域内某个网段的路由,并通告给发布或接受此三类LSA的非Totally STUB
和NSSA
区域 - ASBR-summary-LSA(type4)
由ABR
产生,描述从ABR
到ASBR
的路由,通告给除ASBR
所有区域的其他相关区域 - AS-external-LSA(type5)
由ASBR产生,描述到自治系统外部的路由,通告给所有区域(除了STUB
和NSSA
区域 - NSA LSA(type7)
由ASBR
产生,描述到自治系统外部的路由,仅在NSSA
区域内传播 - Opaque LSA(type9/10/11)
Opaque LSA
提供用于OSPF的拓展的通用机制
- 九类LSA仅在接口所在网段范围内传播。用于支持
GR
的Grace LSA
就是九类LSA的一种 - 十类LSA在区域内传播,用于支持
TE
的LSA
就是十类LSA的一种 - 十一类LSA咋自治域内传播,目前还没有实际应用的例子
路由器类型
https://pic-1300113763.cos.ap-shanghai.myqcloud.com/rs-2/2019-11-27_222141.png
- 区域内路由器(Internal Router)
该类设备的所有接口都属于同一个OSPF区域 - 区域内边界路由器ABR(Area Border Router)
ABR
可以同属于两个以上的区域,但必须有一个为骨干区域ABR
用来连接骨干区域和非骨干区域,也可以是逻辑上的连接
- 骨干路由器(Backbone Router)
- 该类设备至少有一个区域属于骨干区域
- 所有
ABR
和位于area 0
的内部设备都是骨干路由器
- 自治系统边界路由器ASBR(AS Boundary Router)
- 与其他自治系统交换路由信息的设备为
ASBR
ASBR
不一定位于AS
边界,可能是区域内设备,也可能是ABR
,只要引入了外部路由信息,就成为ASBR
OSPF网络类型
- 广播类型(Broadcast)
当链路层协议是Ethernet、FDDI
时,缺省情况下,OSPF认为网络类型是Broadcast
。
在该类型的网络中:
- 通常以
组播形式
发送Hello报文、LSU报文和LSAck报文
。其中,224.0.0.5
的组播地址为OSPF设备的预留IP组播地址
;224.0.0.6
的组播地址为OSPFDR/BDR( Backup Designated Router)的预留IP组播地址
。 - 以
单播形式
发送DD报文和LSR报文
- NBMA类型(Non-Broadcast Multi-Access)
当链路层协议是帧中继、X.25
时,缺省情况下,OSPF认为网络类型是NBMA。
在该类型的网络中,以单播形式
发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文
) - 点到多点P2MP类型(Point-to-Multipoint)
没有一种链路层协议会被缺省的认为是Point-to-Multipoint类型。点到多点必须是由其他的网络类型强制更改的
。常用做法
是将非全连通的NBMA改为点到多点的网络。
在该类型的网络中:
以组播形式
(224.0.0.5
)发送Hello报文
。
以单播形式
发送其他协议报文(DD报文、LSR报文、LSU报文、LSAck报文
)。 - 点到点P2P类型(Point-to-point)
当链路层协议是PPP、HDLC和LAPB
时,缺省情况下,OSPF认为网络类型是P2P
。
在该类型的网络中,以组播形式
(224.0.0.5
)发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文
)。
邻居状态机
- 在OSPF中,为了交换路由信息,邻居设备之间先要建立邻居关系,但邻居和邻接关系又不一样
- 邻居
OSPF设备启动后,会通过OSPF接口发送HELLO报文,收到HELLO报文的OSPF设备会检查报文里的参数,如果一致,两端设备就建立为邻居 - 邻接
建立邻居关系后,如果两端设备成功交换DD
和LSA
报文,才建立邻接关系
- OSPF有8中状态机,分别为
Down
、Attempt
、Init
、2-way
、Exstart
、Exchange
、Loading
、Full
- Down
邻居会话的初始阶段,表明没有在邻居失效时间间隔内收到来自邻居路由器的Hello数据包 - Attempt
Attemp
状态只会在NBMA
网络中发生,表明对端在邻居失效时间间隔超时后仍然没有回复Hello
报文,此时路由器依旧每发送轮询Hello
报文的时间间隔向对端发送Hello
报文 - Init
收到Hello
报文后,状态变更为Init
- 2-way
如果收到的HELLO包中有自己的router ID,则转换为2-way状态,若不需要形成邻接关系则停留在此状态,否则进入Exstart状态 - Exstart
协商主从关系,并确认DD序列号 - Exchange
主从协商完毕后开始交换DD报文 - Loading
DD报文交换完就是loading状态 - Full
LSR重传列表为空
OSPF报文认证
- 区域验证方式
- 接口验证方式(优先)
OSPF路由聚合
顾名思义,将前缀相同的路由信息聚合到一起,只发布这一条聚合后的路由到其他区域
- ABR聚合
将前缀相同的三类LSA聚合后,一起发布 - ASBR聚合
将前缀相同的五类LSA进行聚合
若配置了NSSA,就聚合前缀相同的七类LSA
若即使ASBR又是ABR,则对从七类转换到五类的LSA进行聚合
OSPF缺省路由
- 通常应用于:
- ABR(区域边界路由器)发布三类SUMMARY LSA,指导区域内的的设备进行报文转发
- ASBR发布五类ASE LSA或七类NSSA LSA,指导AS内设备进行
自治系统外
报文的转发
- OSPF缺省路由发布原则
- 具有对区域外的出口
- 若数据库里已有缺省LSA,就不再学习
- 若有依赖的路由,必须不能使区域内的路由,只能是区域外的路由。
- 缺省路由作用是指导报文的域外转发
OSPF路由过滤
OSPF可使用的路由策略:
- route-policy
- access-list(访问控制列表)
- prefix-list(地址前缀列表)
OSPF过滤可用于:
- 路由引入(import-route)
- 引入路由发布
引入后会向其他邻居发布引入信息,可以配置过滤规则来过滤向邻居发布的路由信息,只能ASBR可以配置 - 路由学习
- 区域间LSA学习
在ABR上配置对进入本区域的SUMMARY LSA进行过滤,只有ABR才有效 - 区域间LSA发布
在ABR中配置对本区域出方向的SUMMARY LSA进行过滤,只在ABR中有效
OSPF多进程
各个进程与进程之间不影响,但一个接口只能属于一个OSPF进程
典型例子就是VPN场景中的PE和CE之间运行OSPF,同时VPN骨干网上的IGP也采用OSPF。在PE上,这两个OSPF进程互不影响