SE 2014年4月1日

时间:2022-09-17 05:20:54

一、 描述OSPF报文都有哪些,其作用?

OSPF报文主要有:hello报文、DD报文、LSR报文、LSU报文和LSAck报文。

Hello报文主要用来建立和维护邻居关系。

DD报文是链路状态数据库的摘要信息,是以摘要的形式存在,用于两台路由器之间进行各自链路状态摘数据库的同步。

LSR报文的主要作用在于两台启用OSPF协议的路由器间通过对方发送的DD报文和自己本身的链路状态摘要比较后,发现本地不存在对方摘要中的某些链路状态信息或者对端的某些摘要内容比自己已知的要新的情况下而主动向对端路由器发起的更新请求包。

LSU报文主要作用是,当对端路由器接收到本端路由器发送的LSR报文后,向本端路由器传送的本端路由器所需的更新报文,主要用来本端路由器更新自己的链路状态数据库,进而使本端和对端路由器的链路状态数据库一致。

LSAck报文是对端路由器发送LSU报文过程中,由于无法确认本端路由器是否接收而要求发送确认信息,当本端路由器回复一个LSAck报文后,对端路由器才会认为本端路由器已经接收了自己发送的LSU报文。

二、 描述在广播类型的网络中选举DR和BDR的原因及过程。

当网络中的路由器启动OSPF进程后,路由器的接口便开始周期性的发送hello报文,寻找自己直连网段上存在的邻居,进而通过交换各自的链路状态数据库而建立邻接关系,由于在广播类型的网络或者NBMA类型的网络中,任意两台启用OSPF协议的路由器之间要建立邻接关系,这样如果网络中路由器的数目较多的情况下,每台路由器需要和其他路由器建立邻接关系的数目将会很多,这样多的邻接关系没有必要,也会让网络中的协议报文泛洪较为严重,协议报文会占用较多的网络资源,因此,提出了在广播类型的网络或者NBMA类型的网络中选出DR和BDR,网络中的其他路由器只和DR和BDR建立邻接关系,自己的链路状态数据库报文发送给网络中BDR,由DR负责组播的形式传送给网络上的其他路由器,这样就减少了每台路由器的邻接数,减少了协议报文的泛洪。

在广播类型的网络中,当一台路由器启用OSPF协议进程后,进程下宣告的地址对应的物理接口便会向目标为224.0.0.5的地址发送hello报文,初始的hello报文中以自己为DR,当其中的一个邻居接手到该包后,便会比较对端报文的中描述的出接口的优先级,如果比自己接收报文的接口优先级要高,那么便会在自己的hello报文中写入dr为对端路由器,反正则认为自己为DR,若两个接口的优先级一致时,会比较hello报文中的router id,数值大的为DR,路由器的优先级(处于某一网段的接口的优先级)的范围为0~255,数值越高,优先级相对应越高,当路由器的优先级为0时不参与DR和BDR的选举,永远成为DRother,当然,当网络中已经选择出DR和BDR后,新加入的路由器即使优先级和router id比网络中目前的DR和BDR都要高,但是网络中仍然不会重新选举,当网络中原有的DR失效或者重启ospf的进程后,才会进行下一轮的DR和BDR的选举过程。

三  实验练习

OSPF邻居关系建立过程与状态实验练习:

实验:

拓扑与需求

按照接口正确配置IP地址,在R1R2上启动OSPF路由协议,并且修改接口Hello时间来建立ospf邻接关系,最后使用调试信息查看ospf邻居关系建立的过程与状态的迁移。
同时 描述OSPF邻居关系建立的过程!

步骤:

1、 接口启用OSPF协议进程。

[RT1-ospf-1-area-0.0.0.0]network 10.0.0.1 0.0.0.0

[RT2-ospf-1-area-0.0.0.0]network 10.0.0.2 0.0.0.0

2、 进入各自的接口修改hello时间。

3、 [RT1-GigabitEthernet0/0/0]ospf timer hello 4

4、 [RT2-GigabitEthernet0/0/0]ospf timer hello 4

5、 进入RT2,将接口g0/0/0接口shutdown,RT1打开系统ospf 事件debug功能。

[RT2-GigabitEthernet0/0/0]shut

<RT1>terminal monitor

<RT1>terminal debugging

<RT1>debugging ospf event

6、 准备就绪后,重新激活RT2的G0/0/0口,在RT1的调试窗口观察如下:

OSPF 1: Nbr 10.0.0.2 Rcv HelloReceived State Down -> Init.

OSPF 1: Nbr 10.0.0.2 Rcv 2WayReceived State Init -> 2Way.

OSPF 1: Nbr 10.0.0.2 Rcv AdjOk? State 2Way -> ExStart.

OSPF 1: Nbr 10.0.0.2 Rcv NegotiationDone State ExStart -> Exchange.

OSPF 1: Nbr 10.0.0.2 Rcv ExchangeDone State Exchange -> Loading.

OSPF 1: Nbr 10.0.0.2 Rcv LoadingDone State Loading -> Full.

从建立邻接关系的网络中将RT2的g0/0/0口手动关闭后,邻居信息从RT1的邻居表中消失了,当G0/0/0口重新激活时,由于RT1和RT2的hello时间一致,因此两端同时发送hello报文,从RT2上来说,状态变为init,此时当RT2发现了RT1后,双方分别将对方加入到自己的邻居表中,此时,RT2由init状态变为2-way状态,在2-way状态后选择出DR和BDR,此时将进入EXStart状态,建立邻居关系的路由器间为交换链路状态数据库需要进行协商和确定哪一方为master和salve,master和slave确认完毕后,在这里假定RT2为master,RT1为slave,那么此时将进入Exchange状态,由master方,RT2开始向RT1发送自己的链路状态数据库,如果此时两者链路状态数据库一致,直接进入Full状态,如果RT1此时没有RT2的一部分链路状态数据库时,会向RT2发送更新请求包LSR,RT2向RT1发送LSU报文,此时状态为 Loading,当RT1回复确认并加载完成后,此时才进入Full状态。