赞
踩
目录
2.2.3 DD(Database Description,数据库描述)报文
2.2.4 LSR(Link State Request,链路状态请求)报文
2.2.5 LSU(Link State Update,链路状态更新)报文
2.2.6 LSAck(Link State Acknowledgment,链路状态确认)报文
3、认证类型:认证类型不一致,认证会失败,会导致ospf邻居建立不起来。
5、hello和dead一致,两台设备配置hello/dead时间不一致,会导致ospf邻居建立失败
6、silent-interface静默端口:在端口上配置静默端口命令,端口对于报文,不收不发,没有报文的交流,自然也就无法建立ospf邻居关系。
8、区域类型:stub-stub,nssa-nssa,普通-普通。
10、DR优先级:在MA网络中,DR优先级为0不参与DR选举,会卡在2-Way状态。
一、简略
二、详细
OSPF协议基于IP运行,协议报文直接采用IP封装,IP报文对应的协议号为89。每个OSPF报文都由OSPF header加上OSPF payload组成。
当验证类型为0时未作定义:
类型为1时为明文认证,此字段为密码信息:
类型为2时为密文认证,此字段包括Key ID、MD5验证数据长度、序列号的信息,MD5验证数据:
周期性发送,用来发现,建立和维护OSPF邻居关系。内容包括一些定时器的数值、DR(Designated Router,指定路由器)、BDR(Backup Designated Router,备份指定路由器)以及自己已知的邻居。
E:External Routing:如果置位表示支持5类LSA
N:NSSA Routing:如果置位表示支持7类LSA
4.Router Priority:路由器优先级,用于竞选DR/BDR,缺省为1
5.Router Dead Interval [sec]:失效时间=4*hello时间,如果在此时间内未收到邻居发来的Hello报文,则认为邻居失效。
6.Designated Router:DR路由器,使用Router-id标识
7.Backup Designated Router:BDR路由器,使用Router-id标识
8.Active Neighbor:邻居,使用Router-id标识
1、选举主从,确定序列号,为了后续可靠的交互DD报文做准备(不携带摘要信息)
2、发送描述本地LSDB的摘要信息(LSA头部),实现邻居之间LSDB的按需同步
3、自身摘要传递完毕,M会置位为0,路由器收到M置位为0的DD报文会进入Loading状态
4、LSA头部:LS Type、Link State ID、Advertising Router (三大要素标识唯一的一条LSA)
(1)Interface MTU: 限制发出的报文大小。华为默认不检查,所以是0,如果需要则需单独开启
(2)Options: 选项置位,都一样
(3)DB Description:DD报文描述置位
(R)保留位,目前没使用
(I) Init:如果置位表示是第一个DD报文,用来选举主从,Router ID越大越优
(M) More:如果置位表示后续还有带有LSA摘要信息的DD报文
(MS)Master:如果置位表示发送该DD报文的是Master
(4)DD Sequence:DD报文序列号,用于标识DD报文,只有Master产生序列号,每发送一次加1,保证DD报文有序的交互,隐形确认
向对方请求所需的LSA。两台路由器互相交换DD报文之后,得知对端的路由器有哪些LSA是本地的LSDB所缺少的,这时需要发送LSR报文向对方请求所需的LSA。内容包括所需要的LSA的摘要。
三大要素唯一标识一条LSA:
向邻居发送其所需要的LSA详细信息。通过LSU更新与撤销路由。
用来对收到的LSU报文里面的LSA进行确认,一个报文可对多个LSA进行确认。
根据三要素确认LSA
1、 Down(没有发现任何的 OSPF 邻居):开启了 OSPF 协议,但是没有收到邻居发送的 Hello 报文。
2、 Init(代表自身发现了邻居的存在,但是邻居并没有发现自身的存在):收到了邻居的 Hello 报文,但是没有在 Hello 报文中看到自身的Router ID。
3、 Two-Way:收到了邻居的 Hello 报文,同时在 Hello 报文看到自身的 Router ID。
4、 Exstart:邻居之间发送 DD 报文(不携带任何 LSA 的摘要信息),进行主从协商,确定序列号,为了保证后续可靠的交互DD 报文做准备
• 主从协商的规则:比较路由器的 Router ID,大为主,小的为从。
5、 Exchange:从向主发送一个带有 LSA 摘要信息的 DD 报文,主设备收到从的 DD 报文之后回复一个 DD 报文(里面携带了LSA 的摘要信息)同时序列号+1 告诉从你的 DD 报文我收到。
6、 Loading:收到M=0的DD报文,会进入loading状态,继续向对方发送 LSR 报文进行请求本地 LSDB 缺失的LSA,对方收到 LSR 报文之后,回复一个 LSU 报文里面携带LSA的详细信息,本端收到 LSU 报文之后回复 LSAcK,针对LSU 里面的 LSA 进行确认。
7.、Full:本地 LSDB 没有任何 LSA 的缺失,邻接关系建立。
1、邻居建立过程
(1) R1 在启动 OSPF 之后由于没有收到任何邻居发送的 OSPF 报文,因此状态为 Down,此时 R1 向外发送一个 Hello 报文,尝试发现邻居。
(2) 当 R2 收到 R1 发送的 Hello 报文之后,由于报文中没有携带自身的 Router ID,说明 R1 没有发现 R2 的存在,因此状态为Init。此时 R2 已经收到了 R1 发送的 Hello 报文,因此 R2 在向外发送 Hello 报文的时候会将 R1 的 Router ID 添加到已发现的邻居字段中(Active Neighbors)表示之前已经接收到了 R1 发送的 Hello 报文。
(3)当 R1 收到 R2 发送的 Hello 报文之后,由于报文携带了自身的 Router ID,说明 R2 之前已经收到了 R1 发送的 Hello 报文,证明 R2 已经知道了 R1 的存在。此时 R1 的状态会切换到 2-Way。由于 R1 已经收到了 R2 发送的 Hello 报文,因此 R1 在向外发送 Hello 报文的时候会将 R2 的 Router ID添加到已发现的邻居字段中(Active Neighbors)表示之前已经接收到了 R2 发送的 Hello 报文。
(4)当 R2 收到 R1 发送的 Hello 报文之后,由于报文携带了自身的 Router ID,说明 R1 之前已经收到了 R2 发送的 Hello 报文,证明 R1 已经知道了 R2 的存在。此时 R2 的状态会切换到 Tow-Way。
(5)双方的状态都进入到 2-Way 之后,OSPF 的邻居关系就建立成功了。
2、邻接建立过程
(6)在 DR 和 BDR 选举完成后,R1和R2会同时发送空的DD报文确定主从关系,同时状态变成Exstar状态,该 DD 报文格式为:
R2 发:DD(seq=Y I=1 M=1 MS=1)第一个 DD 报文,认为自己是主
由于 R2 的 router ID 更大,所以 R1 收到 R2 发送的 DD 报文后会承认R2 为主,同时主动发送使用序号为主的含有LSA摘要的DD(seq=Y I=0 M=1或0 MS=0)报文开始交互 LSA 摘要信息。如果摘要信息过多,会发送多条M=1 的DD报文,发最后一条DD报文的时候,M=0。R1进入Exchange状态,R2邻居状态依然Exstart。
(7)R2收到R1的DD后会发送LSR,并发送新的DD(seq=Y+1 I=0 M=1或0 MS=1)报文来描述自己的LSA摘要,同时进入Exchange状态。
DD报文隐式确认机制 R1是从,R2是主。
R1 通过重复R2 的序列号来确认已收到R2的DD报文。
(8)当R2发送最后一个DD(M=0)报文时,R1收到后认为LSA信息即将加载完成,于是将邻居状态变成loading状态(收到对方发送的 M=0的DD报文才会进入loading状态),R1作为Slave,R1需要对Master发送的最后一个DD报文进行确认,如果没有LSA就发送M=0空的DD报文同时用来帮助R2邻居状态变为loading,于是R2收到后也变成loading状态。
注意:如果主路由器的LSA较多,从路由器的LSA先描述完,依然会发送多个空DD(Seq=主,M=0)报文,第一个M=0的DD报文用来帮助主路由器邻居状态变为loading同时作为主路由器DD报文的确认,后续从路由器依然会发送M=0的报文对主路由器发送含有摘要的DD报文进行确认,最后当主路由器发送M=0的DD报文时,从路由器还会发送M=0的DD确认。
如果从的LSA较多,此时主的LSA先描述完,主为了报文的有序进行,会发送(seq+1 M=0)的空DD报文继续推进从发送含有LSA的摘要。
(9)最后,LSA全部加进LSDB完成后双方进入Full状态。
注意:LSR,LSU和邻居状态的变化无关,LSA加载完成就会进入FULL状态。
(10)OSPF 邻居关系和邻接关系区别:
邻居关系:只代表邻居之间互相发现彼此的存在,双方的LSDB并没有同步。
邻接关系:邻居之间不止互相发现了,同时LSDB 也进行了同步。
由于OSPF是被IP协议直接封装的路由协议(工作在网络层之上的路由协议),IP协议不具备可靠性机制。因此OSPF需要自己建立一套可靠性机制保障邻居能成功的同步。
在一个OSPF区域中,区域间的设备会周期性的发送路由更新信息,而非OSPF设备并不需要接收这些信息,并且这些信息还占用一定的带宽,因此可以将连接非OSPF设备的路由器接口配置为静默接口
当路由器的接口被配置为静默接口后,该接口可以生成LSA,但是不再收发和处理OSPF报文。
1、单个静默接口
[AR1-ospf-1]silent-interface GigabitEthernet 0/0/0
2、静默所有,放行需要建邻居的接口
- [AR1-ospf-1]silent-interface all
-
- [AR1-ospf-1]undo silent-interface GigabitEthernet0/0/0
(1)相邻路由器的router-id 不能相同,相同不能建立邻居。
(2)同一个区域不相邻设备的router-id可以相同,LSA泛洪有问题
2分别可以和1、3建立邻居
频繁刷新泛洪LSU报文,路由计算出现问题,产生路由震荡
解释一:收到了与自身设备产生的一样的LSA,会直接产生一条SEQ+1的LSA发布出去,影响路由计算。
解释二:假设 R1 宣告(network)一条路由 10.10.10.0/24,R1 会把这条 LSA(adv=1.1.1.1,type=1, LS ID=1.1.1.1 ,seq=80000001) 发送给 R2 ,R2 收到后会发给他的邻居 R3 ,R3 收到发现通 告者是 1.1.1.1 ,但是自己又没有这个网段,于是会给 R2 发送一个自己的 LSA1 (age=1s , seq=80000002),R2 收到后会与之前 adv=1.1.1.1 的 LSA1 进行比较,选择这条 seq 更大 的 LSA1,然后也会转发给 R1 ,R1 收到后发现自己有这个网段,又会发送一条新的 LSA1 (seq=80000003),会一直出现这样重复的情况,而导致路由动荡。
实验现象: R2 有时候有路由,有时候没路由,在一段时间后,有一台会自己修改Router ID
(3)不同区域不相邻的设备的router-id相同(前提区域内正常,代表ABR的router ID不一致)
在计算域间路由的时候由于3类LSA填充的ADV为ABR的Router ID,所以不影响路由计算。
在计算域外路由的时候,LSA泛洪有问题,会影响路由计算。
(1) MA网路中掩码必须一致,因为 MA 网络中所有路由器共用一个网段,只有一个 2类LSA来描述当前的网络拓扑和网络号,所以当掩码不一致时,无法通过一个2类LSA描述不同的掩码。
R2的一类LSA的TransNet描述的LS ID是10.0.234.3,而10.0.234.3附带的设备是R2和R3。即使可以建立邻居,虽然R2可以收到10.0.234.4这条2类LSA,但是R2自身的1类LSA的拓扑信息中并没有描述10.0.234.4这个信息,描述的是10.0.234.3这个DR,通过这个2类LSA描述的SPF节点中没有R4,从而与R4和R5断开连接,学不到彼此的路由。所以掩码和网段必须一致
(2) P2P网络中掩码之所以可以不一致是因为 P2P中有1类LSA 的 stub 类型来描述每一个网络的掩码信息,并且在PPP链路中 NCP 阶段,两台路由器会互推自己的 IP地址,并且以 32 位主机路由的方式加入自己的路由表,所以P2P网络中建立邻居不需要掩码一致。
注意:如果底层为MA网络,通过命令修改成P2P网络,两个设备可以建立邻居,但是不通,因为在封装二层的时候还是需要MAC地址,ARP依然会请求mac,ARP为广播报文,两者不在一个网段,ARP请求不到对方MAC,封装二层失败,导致不通。
(1)如果slave接口MTU<master接口MTU,那么从路由器的邻居状态将卡在exstart,主路由器中的邻居状态将卡在exstart:
R1:Router ID=10.1.1.1,MTU=1500,R2:Router ID=10.2.2.2,MTU=1600
两者互相发送不含摘要的DD(I=1,M=1,MS=1)报文,由于R2接口MTU大于R1接口MTU,R1收到R2的DD会丢弃,没人和自己竞选,选举不出主从来,一直发空DD报文,卡在Exstart状态;R2收到R1的DD报文会比较Router ID,比较结果自己是Master,等待slave发送含有摘要的DD报文,但没人发,R2还会发选举主从的DD报文,所以也卡在Exstart状态。
(2)如果slave接口MTU>master接口MTU,那么从路由器的邻居状态将卡在exchange,主路由器的邻居状态将卡在exstart:
R1:Router ID=10.1.1.1,MTU=1600,R2:Router ID=10.2.2.2,MTU=1500
R1收到R2的DD可以处理,比较出自己是从,会主动发Seq为R2含有摘要的DD报文,进入Exchange状态;R2收到R1的DD不会处理,没人和自己竞选,选举不出主从来,一直发空DD报文,卡在Exstart状态。
FAQ:查看邻居建立失败的原因:
display ospf error
查看最近down掉的邻居的信息:
display ospf 1 peer last-nbr-down
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。