OSPF邻居邻接关系

原理概述:
OSPF网络中,路由器在发送任何链路状态信息之前,必须建立起正确的OSPF邻居建立关系。

OSPF路由器是使用Hello报文来建立邻居关系的。OSPF路由器会检查所收到的Hello报文中的各种参数,如Router-ID、Area-ID、认证信息、网络掩码、Hello时间间隔等。如果这些参数和接收接口上配置的对应参数都一一保持一致,则邻居关系就会建立起来,否则就无法建立起邻居关系。

OSPF路由器的邻居关系建立完成之后,下一步才是建立邻接关系。并不是所有的OSPF邻居关系之间都可以建立邻接关系,这取决于OSPF邻居关系之间的网络类型。例如,在点到点网络上,有效的OSPF邻居关系都可以进一步形成邻接关系。在广播型网络上,后选举DR和BDR;DR和BDR会与所有其他路由器都建立邻接关系,其他路由器都建立邻接关系,其他路由器都只与DR和BDR建立邻接关系。

实验目的:

理解OSPF邻居关系和OSPF邻接关系的含义及差别

观察OSPF邻居邻接关系的建立过程

观察OSPF链路状态数据库的同步过程

开始实验;实验拓扑如图所示:

OSPF之邻居邻接关系-编程之家

 

1:首先先把接口地址以及网络协议都配置好:

R1:#interface GigabitEthernet0/0/0ip address 10.0.123.1 255.255.255.0#interface GigabitEthernet0/0/1ip address 10.0.14.1 255.255.255.0#interface GigabitEthernet0/0/2ip address 10.0.15.1 255.255.255.0#interface NULL0#interface LoopBack0ip address 10.0.1.1 255.255.255.255#ospf 1area 0.0.0.0network 10.0.1.1 0.0.0.0network 10.0.123.0 0.0.0.255area 0.0.0.1network 10.0.14.1 0.0.0.0area 0.0.0.2network 10.0.15.1 0.0.0.0R2:
#interface GigabitEthernet0/0/0ip address 10.0.123.2 255.255.255.0#interface GigabitEthernet0/0/1#interface GigabitEthernet0/0/2#interface NULL0#interface LoopBack0ip address 10.0.2.2 255.255.255.255#ospf 1area 0.0.0.0network 10.0.2.2 0.0.0.0network 10.0.123.0 0.0.0.255R3:
#interface GigabitEthernet0/0/0ip address 10.0.123.3 255.255.255.0#interface GigabitEthernet0/0/1#interface GigabitEthernet0/0/2#interface NULL0#interface LoopBack0ip address 10.0.3.3 255.255.255.255#ospf 1area 0.0.0.0network 10.0.3.3 0.0.0.0network 10.0.123.0 0.0.0.255R4:#interface GigabitEthernet0/0/0ip address 10.0.14.4 255.255.255.0#interface GigabitEthernet0/0/1#interface GigabitEthernet0/0/2#interface NULL0#interface LoopBack0ip address 10.0.4.4 255.255.255.255#ospf 1area 0.0.0.1network 10.0.4.4 0.0.0.0network 10.0.14.4 0.0.0.0R5:
#interface GigabitEthernet0/0/0ip address 10.0.15.5 255.255.255.0#interface GigabitEthernet0/0/1#interface GigabitEthernet0/0/2#interface NULL0#interface LoopBack0ip address 10.0.5.5 255.255.255.255#ospf 1area 0.0.0.2network 10.0.5.5 0.0.0.0network 10.0.15.0 0.0.0.255

都配置完毕,在这里解释一下:

本实验模拟一个跨国企业网络场景,国内集团总部的路由器R1,R2,R3组成一个广播型网络,国外分公司1的路由器R4与国内集团总部核心路由器R1组成了一个点到点网络,国外分公司2的路由器R5与国内集团总部核心路由器R1组成了另一个点到点网络。

2:我们在每台路由器上都配置了OSPF协议,其中我们如开头的图也可以看出,R1,R2,R3之间的链路属于区域0,R1和R4之间的链路属于区域1,R1和R5之间的链路属于区域2。

配置命令如上所示;

我们配置完成后,查看R1的OSPF邻居建立情况:

OSPF之邻居邻接关系-编程之家

 

可以看到,R1的OSPF邻居关系都为FULL,说明邻居邻接关系已经成功建立,在R1上查看OSPF邻居状态的详细信息;

OSPF之邻居邻接关系-编程之家

 

可以看到,包含R1,R2,R3的广播网络已经完成了DR/BDR的选举,选举结果如图所示,10.0.123.2(R2)为DR,10.0.123.3(R3)为BDR。R1和R4之间,R1和R5之间的两个点到点网络都没有进行DR/BDR的选举。

在R1上查看广播型网络接口G0/0/0和点到点网络接口G0/0/1的详细信息

OSPF之邻居邻接关系-编程之家

 

可以看到,广播网络接口和点到点网络接口默认的Hello时间间隔都为10s,失效时间都为40s。

3:观察OSPF邻居邻接关系的建立过程

首先观察在广播网络上OSPF邻居邻接关系的建立过程。为了在R1上清晰地观察到广播网络上OSPF邻居邻接关系的建立过程,先关闭R1上的G0/0/0和G0/0/1接口。

[R1]int g0/0/1[R1-GigabitEthernet0/0/1]sh[R1-GigabitEthernet0/0/1]shutdown[R1-GigabitEthernet0/0/1]int g0/0/2[R1-GigabitEthernet0/0/2]sh[R1-GigabitEthernet0/0/2]shutdown

然后,在R1上查看OSPF邻居关系

OSPF之邻居邻接关系-编程之家

 

可以看到,R1和R2、R3的邻居关系都是Full,说明已经建立好了邻接关系。

现在,在R1上重启OSPF的进程,通过Debugging调试观察R1与R2之间的OSPF邻接关系的建立过程。

OSPF之邻居邻接关系-编程之家

 

[R1]int g0/0/0[R1-GigabitEthernet0/0/0]ospf dr-priority 0[R2]int g0/0/0[R2-GigabitEthernet0/0/0]ospf dr-priority 0

重启R1和R2上的OSPF进程后,先在DR路由器R3上查看OSPF的邻居建立情况

 OSPF之邻居邻接关系-编程之家

 

可以看到,R3为DR,网络中没有BDR,R3分别与R1和R2建立了邻接关系。

在路由器R1上查看OSPF邻居关系建立情况。

OSPF之邻居邻接关系-编程之家

 

 

可以看到,R1与DR路由器R3建立的是邻接关系,状态为FULL,而与DRouthers路由器R2只建立了邻居关系,状态2-Way。

在路由器R1上重启OSPF进程,通过Debugging调试观察OSPF邻居关系的建立过程。

 OSPF之邻居邻接关系-编程之家

 

实验观察到点到点网络中OSPF的邻居关系建立情况,开启R1上的两个接口G0/0/1

G0/0/2


[R1]int g0/0/1[R1-GigabitEthernet0/0/1]un sh[R1-GigabitEthernet0/0/1]un shutdown[R1-GigabitEthernet0/0/1]int g0/0/2[R1-GigabitEthernet0/0/2]un sh[R1-GigabitEthernet0/0/2]un shutdown

然后,在R1上查看OSPF邻居建立情况

OSPF之邻居邻接关系-编程之家

4:观察OSPF链路状态数据库的同步过程

查看报文情况

OSPF之邻居邻接关系-编程之家

 

从图中我们可以观察到OSPF协议的各种数据报文,它们反映LSDB的同步过程,同时也反映了OSPF邻居邻接关系建立的过程:首先,R1(10.0.14.1)和R4(10.0.14.4)通过Hello报文进行协商,然后通过数据库描述(DD:Database Description)报文、链路状态请求(LSR:Link State Ruquest)报文,链路状态更新(LSU:Link State Update)报文等,最终实现了LSDB的同步,并建立起OSPF邻接关系。

下面我们来分析一下R1和R4相互发送的Hello报文:

NO.21(Hello报文):

OSPF之邻居邻接关系-编程之家

 

NO.22(Hello报文):

OSPF之邻居邻接关系-编程之家

 

可以看出Hello报文中,包含了很多基本信息,例如,子网掩码为24位,Hello间隔时间为10s,路由器死亡时间间隔为40s,网络上没有DR和BDR。另外,R4发布的Hello报文中指出了活跃邻居为R1,这说明R1和R4成功建立了OSPF邻居关系;

NO.23(DD报文):

OSPF之邻居邻接关系-编程之家

 OSPF之邻居邻接关系-编程之家

 

NO:24(DD报文):

OSPF之邻居邻接关系-编程之家

 

可以发现首次交互的DD报文,其中一位、M位、MS位都设置为1。R1和R4都宣称自己为主路由器。这两个DD报文是不包含数据库摘要信息的。首次DD报文交互后,便可选举出Router-ID较大的R4为主路由器。

备注:如有错误,请谅解!

此文章为本人学习笔记,仅供参考!如有重复!!!请联系本人!