OSPF协议面试真题及拓展问答
- 2026-11-05 21:20:18
一、基础概念
1.1什么是OSPF?OSPF的全称是什么,属于哪一类路由协议,基于什么传输协议,端口号是多少?
OSPF全称开放式最短路径优先(Open Shortest Path First),属于链路状态路由协议,运行在IP层,协议号89,无UDP/TCP封装。它依靠Dijkstra(迪杰斯特拉)算法计算最短路径,支持VLSM、无类路由。
1.2 OSPF的管理距离(AD)、开销Cost计算公式是什么?
华为设备中OSPF内部路由优先级10,外部路由150;思科AD:内部110,外部110。Cost=10⁸/接口带宽(bps),10⁸是参考带宽,千兆及以上链路默认Cost为1,可手动修改参考带宽。
1.3 OSPF和RIP的核心区别?
①RIP是距离矢量协议,OSPF是链路状态协议;
②RIP基于UDP 520端口,跳数最大15跳,收敛慢;OSPF协议号89,无跳数限制,收敛快;
③RIP传递路由条目,OSPF传递LSA链路状态信息;
④RIP周期性广播更新,OSPF触发更新+Hello保活;
⑤RIP不支持大型网络,OSPF支持划分多区域,适合大规模组网。
二、邻居与邻接关系、DR/BDR
2.1 OSPF邻居建立的状态机有哪7种?
Down→Init→2-Way→ExStart→Exchange→Loading→Full
Down:无邻居;
Init:收到对方Hello,单方向识别;
2-Way:双向通信正常,选出DR/BDR(广播型网络邻居到此为止,不继续建立邻接);
ExStart:协商主从、DD序列号;
Exchange:交互DD报文,交换LSA摘要;
Loading:请求、发送完整LSA;
Full:邻接建立完成,LSDB同步。
2.2 什么是DR、BDR?为什么需要DR/BDR?哪些网络类型会选举DR?
DR指定路由器,BDR备份指定路由器。广播型(以太网)、NBMA网络会选举DR/BDR。作用:减少网段内OSPF邻接关系数量,降低LSA泛洪开销,避免大量设备两两建立Full邻接造成资源压力。所有其他路由器只和DR、BDR建立Full邻接,DRother之间保持2-Way。
2.3 DR/BDR选举规则是什么?
①接口OSPF优先级(0~255,越大越优先,优先级=0代表不参与选举);
②优先级相同,比较Router ID,Router ID大的当选DR,次大当选BDR;非抢占式,选举完成后新上线高优先级设备不会抢占DR。
2.4 OSPF的网络类型分为哪4种?各自特点?
广播型(Broadcast,以太网,自动选DR,Hello 10s,死亡时间40s);
NBMA(非广播多路访问,帧中继,手动指定邻居,Hello30s,死亡120s,选DR);
P2P(点到点,PPP/HDLC,不选DR,Hello10s);
P2MP(点到多点,不选举DR,Hello30s)。
三、Router-ID
3.1 RouterID的作用,以及选取规则?
Router ID是OSPF路由器唯一标识,32位,格式同IP。
选取顺序:
①手动配置的Router-ID(优先级最高,推荐手动配置);
②取设备环回口最大IP;
③取物理接口最大UP的IP;没有IP则OSPF进程无法启动。修改Router-ID必须重启OSPF进程才生效。
四、LSA详解
4.1 OSPF常见LSA类型、产生者、泛洪范围、作用?
Type1一类LSA(Router LSA):所有路由器产生,本区域内泛洪,描述路由器直连链路、链路开销;
Type2二类LSA(Network LSA):DR产生,本区域泛洪,描述广播/NBMA网段的掩码、网段内所有接入路由器;
Type3三类LSA(Network Summary LSA):ABR产生,跨区域泛洪,传递区域间路由;
Type4四类LSA(ASBR Summary LSA):ABR产生,跨区域泛洪,通告ASBR的位置;
Type5 五类LSA(AS External LSA):ASBR产生,整个OSPF域泛洪,引入外部路由(静态、RIP等外部路由);
Type7七类LSA(NSSA LSA):NSSA区域内ASBR产生,仅NSSA区域泛洪,在NSSA的ABR上转换成Type5 LSA。
4.2 什么是ABR、ASBR?
ABR区域边界路由器,同时连接骨干区域Area0和其他非骨干区域,负责传递三类LSA; ASBR自治系统边界路由器,负责把外部路由引入OSPF,生成5类或7类LSA,一台路由器可以同时是ABR+ASBR。
五、OSPF区域、特殊区域
5.1 OSPF为什么必须有骨干区域Area0?
OSPF要求所有非骨干区域必须和Area0直连,骨干区域负责区域间路由转发,防止路由环路;非骨干区域之间不能直接交换路由。不连续骨干需要虚链路(Virtual-link)修复。
Stub区域(末梢区域)、Totally Stub、NSSA、Totally NSSA区别?
Stub:过滤5类外部LSA,ABR下发一条默认三类LSA;允许1、2、3类LSA;不能存在ASBR;
Totally Stub(完全末梢):过滤3、4、5类LSA,仅ABR下发一条默认三类LSA;
NSSA(非纯末梢):拒绝5类LSA,允许本区域ASBR生成7类LSA;ABR下发默认三类LSA;可以存在ASBR引入外部路由;
TotallyNSSA:过滤3、4、5类LSA,仅允许1、2、7类LSA,ABR下发默认路由。
5.2 虚链路Virtual-link作用、注意事项?
用于修复骨干区域不连续、非骨干区域没有直连Area0的场景,把中间的传输区域当作隧道,逻辑连通Area0;注意:虚链路属于临时方案,不推荐长期部署;只能穿越普通区域,不能穿越Stub/NSSA;虚链路的两端都必须是ABR。
六、路由优选、防环
6.1 OSPF路由优先级顺序?
区域内路由(IntraArea)>区域间路由(InterArea)>外部Type1>外部Type2
Type1:外部开销+内部链路开销累加;
Type2:默认只比较外部引入开销,内部链路开销忽略,是默认类型。
6.2 OSPF的防环机制有哪些?
①区域划分,区域间路由由ABR控制;
②LSA序列号、老化时间、校验;
③SPF最短路径算法保证无环;
④特殊区域过滤LSA减少环路风险;
⑤五类LSA携带转发地址,四类LSA定位ASBR。
七、报文、定时器
7.1 OSPF有哪5种报文?
Hello:邻居发现、保活、协商参数;
DD(数据库描述):LSA摘要信息交互;
LSR(链路状态请求):请求需要的完整LSA;
LSU(链路状态更新):携带完整LSA;
LSAck(链路状态确认):确认收到LSU报文。
7.2 Hello报文里面携带哪些必须一致的参数,否则邻居起不来?
Hello间隔、死亡时间、区域号、认证信息、区域标记(Stub/NSSA标记);子网掩码(广播型网络校验)。Router-ID不需要相同。
八、故障排查
8.1 OSPF邻居卡在Init状态是什么原因?卡在2-Way、ExStart、Loading?
Init:收到Hello但是对方没有收到自己的Hello,单通、ACL拦截、单方向链路故障;
卡在2-Way:网络类型是广播型,DRother之间正常就是2-Way;如果本应该建立Full却卡在2-way,检查接口优先级是否0;
ExStart:DD报文协商主从失败,MTU不一致、重复Router-ID、链路不稳定;
Loading:LSA请求报文丢包,LSDB同步失败,ACL拦截LSU/LSR报文。
8.2 OSPF学到路由但是ping不通怎么排查思路?
①检查路由表是否存在对应OSPF路由;
②检查下一跳可达;
③检查LSA是否完整;
④检查接口是否放通OSPF报文;
⑤检查防火墙/ACL拦截ICMP;
⑥外部路由检查Type5转发地址是否可达。
九、拓展面试题
9.1 OSPF的LSA老化时间是多久?刷新机制?
LSA最大老化时间3600s,路由器每30min自动泛洪刷新自身产生的LSA,重置老化计时器。
9.2 OSPF的SPF多久执行一次?
默认SPF计算延迟5s,抑制间隔10s;LSA变化触发SPF计算,频繁震荡会大量消耗CPU。
9.3OSPF支持认证吗?分哪两种?
支持区域认证、接口认证;认证模式:明文认证、MD5/HMAC-SHA密文认证。