一、题目
[R1]ospf
[R1-ospf-1]area 1
[R1-ospf-1-area-0.0.0.1]network 10.0.12.0 0.0.0.255
如配置所示,管理员在R1上配置了OSPF,但R1学习不到其他路由器的路由,那么可能的原因是()。
A. 此路由器没有配置认证功能,但是邻居路由器配置了认证功能
B. 此路由器配置时,没有配置OSPF进程号
C. 此路由器配置的区域ID和它的邻居路由器的区域ID不同
D. 此路由器在配置oSPF时没有宣告连接邻居的网络
二、答案
ACD
三、解析
A正确:如果R1没有配置认证,但是邻居路由器配置了认证(比如MD5认证),那么R1将无法与邻居路由器形成邻接关系,从而无法学习路由
B错误:从配置中可以看出,R1配置了的OSPF进程号为1
C正确:在OSPF中,区域ID用于标识不同的OSPF区域。如果R1与其邻居配置在不同的区域,那么它们之间将形成ABR(区域边界路由器)关系,而不是完全邻接关系。但是,这通常不会阻止R1学习其他路由器的路由,除非在特殊配置下(如区域间路由汇总)。然而,如果R1与邻居路由器之间的区域ID不同,且配置不当,那么确实可能导致R1学习不到路由。
D正确:在OSPF中,路由器必须在其上运行OSPF的接口上宣告网络,这样OSPF才能知道哪些网络是本地的,并且才能将它们包含在路由计算中。如果R1没有宣告连接邻居的网络,那么它将不会向邻居发送关于这些网络的路由信息,同时也不会从邻居那里学习这些网络的路由。
四、扩展 – OSPF五种报文
OSPF路由协议,是一个链路状态路由协议。OSPF协议通过在IP数据包中携带特定的协议号,实现路由器之间的通信和交换路由信息。在OSPF协议中,有以下几种报文类型:
- Hello报文 Hello报文是OSPF协议中最基础的报文类型,主要用于在邻居之间建立并维护链路状态。路由器通过发送Hello报文,向相邻的OSPF路由器宣告自己的存在。Hello报文中包含有路由器的ID、路由器优先级、链路状态检查时间以及邻居路由器的ID等信息。
- DD(Database Descriptor)报文 DD报文是用来同步邻居路由器之间的链路状态数据库(Link State Database,简称LSDB)的,DD报文在邻居路由器之间交换LSDB的信息,以判断两者之间的数据库是否同步。DD报文包含LSDB的摘要信息以及对方路由器所缺失的LSDB的信息。
- LSR(Link State Request)报文 LSR报文用于向邻居路由器请求缺失的链路状态信息。当路由器收到DD报文之后,如果LSDB没有同步,则会向邻居路由器发送LSR报文,请求缺失的链路状态信息。
- LSU(Link State Update)报文 LSU报文用于向邻居路由器发送本路由器的链路状态信息。LSU报文可以是单播报文或者是组播报文,路由器会在向某个邻居路由器发送LSU报文之前,先向该邻居发送LSR报文,确认该邻居缺失哪些链路状态信息。
- LSAck(Link State Acknowledgment)报文 LSAck报文用于确认接收到的LSU报文。当路由器收到LSU报文之后,会向发送该报文的路由器发送LSAck报文,以确认收到LSU报文。