OSPF
1.OSPF 邻居建立的过程中影响关系建立的因素有哪些?
路由器ID
接口的区域ID
接口的地址掩码(如果是MA网络),Broadcast、NBMA、P2MP都检查掩码
接口的认证
接口的Hello和 dead 计时器
area 区域
MTU
帧中继map映射缺少broadcast关键字
2.OSPF邻居状态机?或者OSPF从down到full的过程?
* Down:邻居会话的初始阶段,表明没有在邻居失效时间间隔内收到来自邻居路由器的Hello 数据包。
* Attempt:该状态仅发生在NBMA网络中,表明对端在邻居失效时间间隔(dead interval)超时后仍然没有回复Hello报文。此时路由器依然每发送轮询Hello报文的时间间隔(poll interval)向对端发送Hello报文。
* Init:本状态表示已经收到了邻居的Hello报文,但是对端并没有收到本端发送的Hello报文
* 2-way:互为邻居。本状态表示双方互相收到了对端发送的Hello报文,建立了邻居关系。如果不形成邻接关系则邻居状态机就停留在此状态,否则进入Exstart状态。在广播和NBMA网络类型中,一个路由器仅与designated router (DR) 和backup designated router (BDR)建立Full状态关系,而和其他路由器最终停留在2-way状态。在点对点和电对多点网络类型中,路由器和所有相连接的路由器最终都达到Full状态。在2-Way状态的结束之前,广播网络和NBMA网络类型中的DR和BDR选举出来。
* Exstart:协商主/从关系。建立主/从关系主要是为了保证在后续的DD报文交换中能够有序的发送。
* Exchange:交换DD报文。本端设备将本地的LSDB用DD报文来描述,并发给邻居设备
* Loading:正在同步LSDB。两端设备发送LSR报文向邻居请求对方的LSA,同步LSDB
* Full:建立邻接。两端设备的LSDB已同步,本端设备和邻居设备建立了邻接状态。
3.OSPF网络类型
-
广播类型(Broadcast):当链路层协议是Ethernet,FDDI时,缺省情况下,OSPF认为网络类型是broadcast。
- 以组播形式发送Hello,LSU,LSAck,其中Hello报文发送间隔为10s,失效间隔为40s。
- 以单播形式发送DD,LSR
-
非广播多路访问类型(NBMA):当链路层协议是帧中继,X.25时,缺省情况下,OSPF认为网络类型为NBMA。
- 以单播形式发送Hello,BD,LSR,LSU,LSAck,其中Hello报文发送间隔为30s,失效间隔为120s。
-
点到点类型(P2P):当链路层协议是PPP,HDLC,LAPB时,缺省情况下,OSPF认为网络类型为P2P。
- 以组播形式(224.0.0.5)发送(Hello、DD、LSR、LSU、LSACK)
-
点到多点(P2MP):没有一种链路层协议OSPF会认为网络类型为P2MP,常见情况下,把非全互连的NBMA改为P2MP。
- 以组播形式(224.0.0.5)发送Hello,其中Hello报文发送间隔为30s,失效间隔为120s。
- 以单播形式发送(DD、LSR、LSU、LSACK)
- 以组播形式(224.0.0.5)发送Hello,其中Hello报文发送间隔为30s,失效间隔为120s。
4.为什么需要选举主从关系?
OSPF是基于IP工作的,IP是一个无连接的协议.同时,OSPF又没有其它的确认机制来保证DD报文可靠的传输。所以,选举主从是为了保证DD报文有序、可靠的交互。另外DD的序列号还能充当确认的作用。
5.mtu在哪里协商,是怎么协商的?如果协商不通过,会出现什么问题?
exstart阶段会进行协商。(华为默认不协商。报文中MTU的字段填充为0)MTU协商规则:对方DD报文中mtu字段的值<=接收报文接口的mtu值。如果协商不通过会导致邻接关系停留在exstart状态,无法建立full的邻接关系。
6.如果mtu不协商会带来什么问题?
如果不协商mtu,可能会出现接口收到的OSPF报文的比接口mtu大的情况。此时路由器就会丢弃这个报文,导致数据同步无法完成.邻居状态停留在exchange或loading中。
7.ospf在设计的时候为什么不直接泛洪LSU?
路由器直接泛洪lsdb里所有的lsa,邻居重复接收到已经存在的lsa。造成带宽资源的浪费与设备性能的消耗。即OSPF在设计的时候,先与邻居交互发送携带LSA摘要信息的DD报文描述自身的数据库,然后再向邻居请求缺少的LSA信息,减少对带宽资源的消耗
8.ospf为什么用组播地址来建立邻居?
1. 便于发现邻居
2. 只有使能ospf协议的路由器才会解析ospf报文(监听224.0.0.5/224.0.0.6),减小其它设备的性能消耗
9.为什么P2P网络类型可以不用比较掩码?
P2P网络类型的路由器可以独立表达自己接口的所有网络(使用stub类型的1类LSA),彼此间没有关系,建立邻居关系没有限制,所以P2P网络类型建立邻居关系时既不检查掩码,也不检查源地址。(默认底层为ppp链路,不同网段也可访问)
10.OSPF设计有几种网络类型?
11.两端的网络类型不一致时,会不会建立邻居?能建立邻居,路由是否正常?
-
NBMA只能与NBMA建立full邻接关系,与其他网络类型都无法建立FULL的邻居关系;(单播发现邻居)
-
broadcast与P2P,能建立full邻接关系,但不能正常计算路由;(构建的拓扑不一致)
-
broadcas与P2MP,通过修改hello/deadtimer可以建立full邻接关系,但也不能计算路由;
-
P2P与P2MP,通过修改hello/deadtimer可以建立full邻接关系,路由计算也正常。
- 总结(因为OSPF的hello报文中没有描述网络类型的字段。能否建立邻居关系主要看hello报文的发送间隔、holdtime,和hello报文的发送方式;路由计算是否正常,主要看是否选举DR;)
12.OSPF为什么会设计那么多网络类型?
OSPF多用于企业网环境,企业网拓扑结构复杂,链路种类繁多。设计多种的网络类型可以对应不同的链路以及不同的网络拓扑。
13.为什么P2P网络不需要选举DR,而MA网络需要选举DR?
因为P2P网络中两台路由器点对点互联(互联设备少),选举DR,再由DR来描绘拓扑信息,只会让拓扑的描绘更加复杂;
而在MA网络中,一个接口可能会有多个邻居,选举DR后,描绘的拓扑时会比较简单(各个节点连接到DR上,而不需要互相连接);
另外在MA网络中DRother只和DR/BDR建立邻接关系,可以减少邻接关系的数量,减少报文的交互。
14.MA网络中DRother只和DR/BDR建立邻接关系,这一机制是如何实现的?
在exstart状态中,DD报文是通过单播方式发送的。
15.为什么NBMA无法和其他网络类型建立邻居关系?
因为NBMA是通过手动、单播的方式发现邻居、发送hello报文的,而其他网络类型即使配置了peer,也不会单播的发送hello报文。
16.以太网链路将网络类型改为P2P,接口不在同一网段是否能建立OSPF邻接关系?
可以,因为P2P是以DIP:224.0.0.5发送OSPF的hello报文的,而只要宣告进OSPF进程中的接口就等于加入了这个组,所以AR1和AR2接口即使不在同一网段,也能建立邻居关系,同时也能学习到路由。但是无法互访,因为底层链路是以太网链路,不同网段互访需要有路由以及相应的2层封装
17.DR和BDR的作用竞选规则?
DR在多路访问中可以减少邻接关系和LSA的泛洪,BDR提供备份
竞选规则:1.接口优先级数字越大越优先(0-255,0优先级不能参与DR、BDR选举)2.RouterID越大越优先
18.waittime的作用是什么?
在waittimer时间内收集MA网络中的路由器信息,防止后期发生抢占。实现方式:发出第一份hello报文的时候就开始计时,40s之内不会认为自己是DR。如果40s超时之后,还是没有收到携带DR、BDR参数字段的Hello报文,就认为自己是DR,并发出hello包(DR字段为自己的接口IP地址)。
19.waittime太短会导致什么问题?
可能导致MA网络提前收敛,没有让最优的路由器成为DR
20.路由器如何判断这个MA网络的DR和BDR已经选举成功?
通过查看Hello报文中的DR/BDR字段是否为0.0.0.0
21.如果有DR优先级为255的路由器接入,是否会发生抢占?
1.不会:当网络已经收敛完成,已经选择出了DR时,新接入进来的路由器会等待40s。这40s之内会收到填充有DR、BDR字段的hello报文。新路由器不会再参与竞选;
2.会:网络中没有选举出DR,因为可能原来的网络中没有一台路由器参选DR(即优先级都为0),那么新进来的优先级为255的路由器,则会在40s之后成为DR;
22.两个收敛完成的MA网络,都有DR和BDR。如果连接了起来,新的MA网络中DR和BDR分别是如何选举的?
DR只会从DR的合集当中竞选,BDR只会从BDR的合集当中竞选。如果集合当中有路由器,优先从集合当中竞选。
23.OSPF报文头部携带哪些内容?
* 版本:V1、V2、V3;
* Type:OSPF报文类型。
* 发送者RouterID:不能一致
* 发送者区域ID:发送接口和接受接口的区域ID一定要一致
* Checksum:校验字段,其校验的范围是整个OSPF报文,包括OSPF报文头部
* 认证类型:为0时表示不认证;为1时表示简单的明文密码认证;为2时表示加密(MD5)认证。
* 认证数据:其数值根据认证类型而定ÿ