ospf精典问答50例讲解.docx

上传人:b****5 文档编号:8317418 上传时间:2023-01-30 格式:DOCX 页数:13 大小:29.20KB
下载 相关 举报
ospf精典问答50例讲解.docx_第1页
第1页 / 共13页
ospf精典问答50例讲解.docx_第2页
第2页 / 共13页
ospf精典问答50例讲解.docx_第3页
第3页 / 共13页
ospf精典问答50例讲解.docx_第4页
第4页 / 共13页
ospf精典问答50例讲解.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

ospf精典问答50例讲解.docx

《ospf精典问答50例讲解.docx》由会员分享,可在线阅读,更多相关《ospf精典问答50例讲解.docx(13页珍藏版)》请在冰豆网上搜索。

ospf精典问答50例讲解.docx

ospf精典问答50例讲解

 OSPF你懂多少之经典问题50个  

 

OSPF你懂多少之经典问题50个。

(注:

此文档只适合对OSPF有一定了解的阅读)

1:

在OSPF中。

为什么第三类LSA传播超过一个区域?

路由信息就会被修改呢?

他不是使用

SPF算法么?

如果这样那么他跟RIP的DV算法有啥区别?

答ospf:

因为传播超过一个区域之后。

路由信息就会改变。

而路由信息在OSPF中,包括防

环等作用。

这也是RIP与OSPF本质的区别。

在RIP中。

由于采用DV算法。

当报文传递过

后。

会改变路由信息。

因此也就存在环路。

而在OSPF中。

第三类LSA也是这样。

由此RFC

规定。

所有区域必须要与骨干区域相连接。

但在我们实际组网中。

经常碰到非骨干区域与

骨干区域不能相互连接。

由此RFC定义了虚连接。

2:

说到虚连接。

哪虚连接为什么能保证第三类LSA的路由信息不被修改呢?

答:

从狭义的角度来说。

一条虚连接是属于区域零的一条虚拟链路。

因此他也就能保证第三

类LSA的路由信息不被修改

3:

那虚连接是怎样使用SPF算法的呢?

准确的说。

虚连接是怎么确定他报文的目的地址的?

答:

每个虚连接都要生成两颗最短路径树(第一棵为本地区域的最短路径树。

第二棵为虚连

接邻居的最短路径树)计算虚连接最短路径树之后。

本地路由器会通过查找对端最短路径树,

并通过对端的router-id来标示。

那么虚连接到达本地路由器的始发端口的IP地址即为本地

路由器发给对端虚连接邻居的协议报文的目的IP地址。

4:

为什么ospf在默认情况下引入外部路由生成的是第2类而不是第一类LSA?

你提出了这个问题。

这说明你很细心也很用心。

在外部第一类LSA中。

第一类LSA比第二

类的可信度要高。

并与ospf使能的路由有可比性。

而第二类LSA呢。

可靠性比较低。

与ospf

自动使能的路由也没啥可比性。

这里举个例子。

第一类就相当于ospf自己的孩子。

而第二

类呢。

就相当于从外面进来的客人。

所以,大家说说。

从外面引入的。

是孩子还是客人?

且在选路原则中。

一类要永远要比二类优先及时是前者COST要高。

其实我们在看书的时

候。

关注他的只是COST值计算不同。

而更重要的概念多数人都没有搞清楚。

5:

为什么在ospf中不能引入静态的缺省?

答:

RFC定义了缺省发布的条件。

比如NSSA,stub,他们都会自动生成一条缺省。

6:

第三类LSA和第五类LSAlinkstateid字段都是描述目的网段的地址。

哪他们之间有什么

区别?

啊。

网友的力量是无限大的阿。

你真的很会观察生活。

年轻人。

对、三类和第五类的

LINK-STATEID是一样。

都是描述目的网段的地址。

即使他们所有的字段都是一样。

但是

他们所实现的功能是不能相提并论的。

最关键的是。

在LSA报文头中的类型字段。

有明显

的区别。

这两类LSA的作用定位不同。

三类是描述另一个区域的路由。

而五类呢。

描述的

是外部路由。

(并且他还有外部一类和外部二类。

具体的情看第四个问题)

7:

为什么ospf中四种网络类型所定义的hellotime和生存时间都不一样?

答:

OSPF一共定义了四种网络类型,而这四种网络类型,大部分都是针对链路,(点到多

点需要手动修改),这也是OSPF的特点之一,能适应更多不同类型的的网络结构中,并且,

不同的网络类型,邻居生存时间和helloTIME也随之改变,(并且还可以手动修改),这无

不证明此协议的人性化。

8:

ospf如果不同进程不同区域使能。

邻居能正常建立起来么(广播网络环境下)

答:

不能正常建立。

因为ospf路由器在接受OSPF报文的时候会验证一些报文是否合法其

检查的内容有。

版本号。

区域ID,验证方法和验证信息。

9:

不同进程。

同区域。

邻居能正常建立起来吗?

为什么?

能。

因为在ospf的报文中。

并不需要对进程ID进行检查。

所以邻居能正常建立起来。

10:

邻居和邻接有哪些区别?

什么情况下才会出现邻居。

什么情况下才会出现邻接。

答:

OSPF一共有八个状态机。

其中down2-wayFULL是稳定状态机其他的都是中转状态。

所谓邻居关系是指只要与对端邻居关系建立到2-WAY就可以了。

并且用到的报文只有

HELLO,如果建立邻接呢。

就需要进步一交互报文。

需要用到的报文有dd。

Lsrlsulsack

他们两之间的区别是。

邻居只需要使能。

收到对端的HELLO报文。

并且自己在对端的邻居

列表里面就可以了。

所有网络环境。

都可以建立邻居关系。

而邻接呢。

是在建立邻居关系之

上。

从而交互路由信息的。

通常。

Drother之间只需要建立邻居关系。

11:

ospf本身能过滤掉自身产生的LSA吗?

答:

ospf本身并没有过滤LSA的机制。

(原因很简单如果能限制的话。

SPF算法肯定要出错)

有也只是限定一些范围的。

比如LSDB的超载机制。

12:

ospf一共有多少种LSA报文类型?

答:

OSPF一共有十一种LSA报文类型。

他们的作用分别如下。

第一类:

描述了区域内部与路由器直连的链路信息

第二类:

计入了广播或NBMA网络网段上所有路由器的router-id(打包一类LSA)

第三类:

将所连接区域内部的链路信息以子网的形式传播到相邻区域。

第四类:

描述的目标网络是一个ASBR的route-id

第五类:

描述到外部AS路由信息

第七类:

NSSA区域专属LSA。

描述道外部AS的路由信息。

以上这几类是我们常用的

第六类:

:

在组播ospf协议中使用的组播LSA

第八类:

在ospf域内传播BGP属性时使用的外部属性LSA

第九类:

本地链路范围的opaque

第十类:

本地区域范围内的opaqueLSA

第十一:

本自治系统范围的opaqueLSA

13:

ospf中option的作用有哪些?

分别在哪些情况下置位?

Option这个字段是是ospf的可选功能。

描述路由器所支持所选的功能。

一共有五位。

格式分别如下

E位:

该位描述是否洪泛AS-external-LSA,

MC位:

该位描述是否多播扩展OSPF转发IP多播包。

N/P位:

该位描述了处理类型7LSA。

EA位:

该位描述了是否按OSPF外部属性inprogress的说明忽略还是接收并转发

External-Attributes-LSA。

DC位:

该位描述了按扩展OSPF和支持需求电路的说明处理按需链路。

14:

ospf中的LSA报文头。

分别在五中报文类型中包含LSA报文头哪些信息?

答:

DD包括了LSA头部信息。

Ls类型。

LSID,advertising(此LSA生存者)LSR只有

LS类型。

LSID和此LSA生存者。

LSU:

完整的LSR和具体的链路信息。

LSACK:

LS类型。

LSID,生存此路由信息和LS系列号。

15:

OSPF在进程重启。

为什么邻居能快速的建立起来。

而不是像创建进程一样。

需要等待

那么长时间?

答:

ospf的邻居存活时间是40秒,在路由器之前成功建立邻居正常的情况下,一边重启进

程,而另一边邻居还正常的存活在邻居表中,但是当这边重启好了,发送HELLO的时候,

对端也即转到INIT状态,并且所有的状态,只需要交互一个报文就行了,所以,重启进程,

比普通建立的更快,也就是说,等对端的四十秒过后,再重启进程,那么他们又得重新互发

HELLO,又得经过七个状态机才能建立邻接状态。

16:

ospf一直提示LSAdisabled。

为什么会产生这种情况?

答:

导致这种情况的原因是。

当LSA的老化时间结束时。

LSA他会在LSDB表里面移除掉。

或者此LS的始发者发送消息flooding掉,但。

正常的情况下。

当邻居正常建立来。

并且建立

到邻接状态时,他会自动更新LSA的信息。

并且用LSAge和LS系列号,来区分那条LSA

更新。

并在LSDB表中更新最新的LSA,既然LSA出现down的情况。

那么首先得把问题

定位在邻居是否正常建立起来,并且能正常交互报文(LSULSACK)具体的请看后面OSPF

常见报文错误代码。

17:

ospf卡在init状态机哪。

这样的情况是怎么引发的。

答:

卡在状态机上。

一般有以下这些可能

.OSPF陷入ATTEMPT

仅对neighbor语句的NBMA网络有效。

陷入ATTEMPT是指一台路由器试图通过发送它的HELLO来联系邻

居但是它没有收到响应。

原因:

错误配置neighbor;NBMA上的单播连通性断了,可能是由错误的DLCI,访问列表或转换单播的

NAT引起的。

2.OSPF陷入INIT

INIT状态表示路由器收到来自邻居的HELLO分组,但是双向通信并没有建立。

原因:

一方访问列表阻止了HELLO;

一方的多播能力失效(一个交换机故障);

l仅在一方启用了认证;

l一方的HELLO在第2层丢失了。

3.OSPF陷入2-WAY

双向状态是指路由器在HELLO分组的邻居字段中见到了自己的路由器ID。

原因:

类似于所有路由器的优先级都为0,则不会发生选举,所有路由器停留在双向状态中。

某些情况

下是正常状态。

4.OSPF陷入EXSTART/EXCHANGE

在EXSTART或EXCHANGE状态的OSPF邻居正处于尝试交换DBD(数据库描述)分组的过程中。

原因:

不匹配的接口MTU

l邻居上重复的路由器ID

l无法用超过特定MTU长度进行PING

l断掉的单播连通性,它可能是因为错误的DLCI,访问列表或转换单播的NAT

5.OSPF陷入LOADING

邻居没有应答或邻居的应答从未到达本地路由器,路由器也会陷入LOADING状态。

原因:

不匹配的MTU

l错误的链路状态请求分组

18:

为什么OSPF与BGP在重分布的时候。

OSPF路由的下一跳不确定,导致选路错误。

答:

这是由BGP的环路引起的。

在双出口的BGP中。

如果BGP里面宣告或学习到的路由都一样,建议修

改preferred-value值。

把环路取消。

然后再做重分布。

19:

OSPF跟STP结合组网,一般会遇到哪些问题。

答:

一个协议的所有功能都包含在报文中,报文中的某个字段置位,也就是这个协议的功能开启,不管OSPF

与那个协议结合组网,只要不影响OSPF的报文收和发就可以了,但,我们需要注意的是。

STP在收敛的

时候,会导致端口阻塞,正常的流量是没有办法通过,那么这样就会造成OSPF的报文没有办法正常交互,

并且会出现一些莫名其妙的现象(比如邻居频繁的UP,DOWN,UPDOWN,)导致,还有在交互报文的时候,

会莫名其妙的卡在一些状态机上,这些,只有等STP收敛好,让OSPF正常交互报文才能一一排除。

20:

OSPF与BGP组网会遇到哪些问题。

答:

大家都知道,BGP和OSPF都是第四层的协议,但是BGP对TCP有依赖性,而OSPF对IP也有一定

的依赖性,(这里解释一下阿,大家对ospf于IP的依赖性不是很清楚,ospf使能一个网段后,如果这个网段

存在,那么就以组播地址224.0.0.5(广播环境下),针对这个网段发送HELLO报文,那么如果这个网段不

存在呢?

那么HELLO是不可能发送的。

那这跟依赖有啥关系呢?

大家想想,如果IP正常的话,肯定无条件

使能这个网段,但是IP地址是DOWN的情况下,OSPF还继续发HELLO包么?

)我之前说过,ospf在正常

的情况下,不管与什么协议结合一起组网,只要满足他基本的条件,那么邻居和邻接,肯定能正常建立,

但BGP对TCP有依赖性,换句话说,只有OSPF正常建立邻接关系,BGP才能正常交互OPEN相关的一

些报文。

所以,如果ospf与BGP一起组网,首先得检查OSPF相关的设置于错误,然后再检查BGP。

21:

OSPF与IPSEC一起组网时,一般会遇到哪些问题?

答:

这个问题其实没啥可问性,这两个协议,相互独立,但是,ipse和cospf也不是百分之百兼容(ipsec

不兼容组播)这也就注定,在一些正常的环境下,ipsec是没有办法载荷ospf的HELLO包的。

但是这两个

协议结合在一起呢。

如果说一个问题都没有,那也不可能,在这里的话,我将针对以下这些问题做一些解

Ipsec在特定的情况下,能正常载荷ospf吗?

为什么不能呢?

ipsec除了对组播不支持,单播支持的还算完美

的,ospf又不是所有的报文目的都是组播,其中,NBMA虚连接,等,都是使用单播为目的地址,只要是

在单播的环境下。

Ipsec就能正常载荷数据(加密)

那换过来,ospf能载荷IPSEC的数据么?

为什么能呢?

OSPF不是像IPSEC或GRE那样,能载荷,最多,IPSEC

就是利用ospf自动发现的路由作为remote地址,

所以,ospf结合ipsec,首先要注意OSPF的网络类型,以组播的,是不能成功被IPSEC加密的,最后。

有一个致命的缺点,如果OSPF得网络中加入IPSEC这块,如果是因为需求需要,否则一般人是不会这么

做的,因为IPSEC相对静态,只能点到点,你配置一个OSPF邻居,就要手动加上一条IPSEC,并且还不能

以组播地址为目的地。

22:

ospf区域怎样划分才合理?

答:

ospf详细划分区域,是很有必要的,现在的路由器的性能越来越强大,但,区域该怎么

划分才合理,才能把OSPF最大最优呢?

这无疑是跟着路由器的性能和拓扑环境走,ospf虽

然只会将最优的路由安装在路由表中,但是,在OSPF数据库里面,所有的LSA都会存在,

如果网络的直径大起来,最无疑是对OSPF一个挑战,但根据网络大爬虫中OSPFFAQ50

作者的观点,RFC的作者在早期推荐过,一个区域最好不超过50台路由器但那是在90年

代写的(也就是我出生的时候,)哪时候的路由跟现在的,性能已经不在是相同的一个档次了。

现在的路由器性能所肯定不是在50内,当然,由于环境限制,此问题上,本人水平有限,

无法做出更科学。

更理论的解答。

23:

两台路由器通过直连链路,建立OSPF邻居,那么在一边使用P2P,而一边使用P2MP

的情况下,能正常建立到邻接状态么?

答:

肯定是不能的,因为这两个网络类型的hellointerval不一样,而在OSPF进程检查一个hello报文是否

合法,其hellointerval,在检查范围内。

因此两台路由上的hellointerval是不一样的,这样的话,当其中一

台路由器接受到另一台的包时,将会丢弃此HELLO包,因此邻居就不可能正常建立起来。

应广大网友要求,为了让此文档更有价值,剩下的问题,都将从OSPF中error

提取,将最大化OSPFerror中的错误点以及解决方法,在MSR20-21上,OSPF

error一共有29条(每个厂商所实现的OSPF在细节上多多少少有一些误差,本文

档的实验环境,是MSR20-21其因为路由器所实现的误差,本人不将做任何解

释),所以。

此error只代表H3CMSR20-21设备上所实现的OSPFERROR,)。

OSPFProcess1withRouterID1.1.1.1

OSPFPacketErrorStatistics

24:

OSPFRouterIDconfusion39:

OSPFbadpacket

25:

OSPFbadversion40:

OSPFbadchecksum

26:

OSPFbadareaID41:

OSPFdroponunnumberedinterface

27:

OSPFbadvirtuallink42:

OSPFbadauthenticationtype

28:

OSPFbadauthenticationkey43:

OSPFpackettoosmall

29:

OSPFNeighborstatelow44:

OSPFtransmiterror

30:

OSPFinterfacedown45:

OSPFunknownneighbor

31:

HELLO:

Netmaskmismatch46:

HELLO:

Hellotimermismatch

32:

HELLO:

Deadtimermismatch47:

HELLO:

Externoptionmismatch

33:

HELLO:

Neighborunknown48:

DD:

MTUoptionmismatch

34:

DD:

UnknownLSAtype49:

DD:

Externoptionmismatch

35:

LSACK:

Badack50:

LSACK:

UnknownLSAtype

36:

LSREQ:

Emptyrequest51:

LSREQ:

Badrequest

37:

LSUPD:

LSAchecksumbad52:

LSUPD:

ReceivedlessrecentLSA

38:

LSUPD:

UnknownLSAtype

24:

在什么情况下ospferror的OSPFRouterIDconfusion数值会增加

答:

这条错误,相信大家再熟悉不过了,ospfrouter-id冲突,RFC规定,ospf的router-id

在整个AS中唯一,而router-id又起着防环的作用,关于ROUTER-ID冲突,我一共总结出

三种情况,分别如下。

第一种:

区域内router-id冲突,这种情况大家遇到的最多(骨干区域与骨干区域,非骨干区

域与非骨干区域。

区域内,)导致的后果是,OSPF不能正常建立邻居,那么自然不能正常

交互LSA信息咯。

第二种:

区域间的route-id,这种冲突,必定是在多区域的情况下才会产生,不然怎么叫区

域间冲突呢。

他导致的后果,路由时有时无,两个冲突的路由器学到的路由,在路由表里,

一下有,然后又消失了,然后又出现了。

第三种:

虚连接router-id冲突,这种情况最明显,导致的后果跟第一种情况差不多,虚连接

无法正常建立,(区域间冲突的一种)

Router-id冲突,概念性的就这三种,当然,区域内,区域间,如果细分的话,有十几种,

遇到此问题时,整理下思路,OSPF的ROUTER-ID冲突相对来说是比较好定位与排除的。

25:

在什么情况下。

OSPFbadversio数值会增加。

答:

ospf的版本出错。

或者说,ospf版本字段损坏。

解决办法,检查下OSPF版本是否配置

正确。

然后重启下OSPF进程就可以了。

26:

在什么情况下,OSPFbadareaID数值会增加?

答:

区域ID配置错误,如果是在骨干区域与非骨干区域(区域零和非骨干区域冲突),那么

在骨干区域的路由器上,OSPFbadareaID会增值,而在非骨干区域他显示的是虚连接增值。

OSPFbadvirtuallink,但如果都是非骨干区域呢,那么两边的路由器都是OSPFbadareaID

增值。

27:

在什么情况下会OSPFbadvirtuallink数值升序,

答:

OSPF虚连接错误,只要是非骨干区域与骨干区域不连续,都会出现此错误,具体的,

分别如下,

第一:

如果是非骨干区域并没有骨干区域,(例如,区域1-2-3这样),但在同一个网段中,

那么会出现OSPFbadareaID升值,因为ospf区域针对的是网段和接口,并不是针对路由器,

第二:

OSPF虚连接是建立在正常的OSPF邻居之上的,所以,在虚连接DOWN的情况下

先检查ospf邻居是否正常,

第三:

ospf并不能跨区域建立虚连接,在上面的问题中,我已经描述过虚连接建立的过程,

如果是跨区域,那么ospf的目的地址,固然确定不了,既然目的地址确定不了,那么报文

肯定不能正常发送。

28:

在什么情况下OSPFbadauthenticationkey数值会增加。

答:

在这里有必要说下,MSR-20-21,所实现的OSPF验证,如果一旦在区域内启用OSPF验

证,那么接口就必须要与区域内使用同一种验证模式才能正常加密ospf报文,如果接口跟

区域内不一致的话,(包括区域内启用MD5,而接口下使用的是simple,或者区域内启用验

证,接口下不启用,)他是不发送HELLO报文的,因为区域内与接口不匹配或协商的字段

不一致,那么他的OSPF报文会出错的,,就算发出去了也是不完整的。

并且他在ospf中

的error不会提示任何代码出错的,(因为都没报文发出去,他那什么去检测出错),那么回

到我们本题中,ospf验证方式有两种,一种是在接口下启用验证,一种是在ospf区域内启

用,既然他必须严格要求区域与接口使用的是同一种验证模式(如MD5或simple)那么此

字段升值,肯定是两边接口下的KEY出错咯。

29:

在什么情况下OSPFNeighborstatelow会升值?

答:

此数值,会跟着链路的震荡,会依次升序,(如邻居UP,DOWN,或者链路不稳定,)

30:

在什么情况下,OSPFinterfacedown会升值。

答:

此数值,在使能ospf之后,他的链路会进入到一个端口状态(比如,DR,或BDR,),如

果此链路不稳定,经常UP,DOWN。

那么此数值就会根据UP,DOWN的次数而升值此项。

31:

在什么情况下,HELLO:

Netmaskmismatch数值会升值。

答:

ospf在除点到点和虚连接的情况外,都必须严格匹配networkmask字段,这是验证一

个HELLO是否合法,如果合法,就继续交互报文,建立邻居,反之,则丢弃报文,那么

此字段升值,肯定是两边接口的掩码不一致,

32:

在什么情况下,HELLO:

Deadtimermismatch字段升值,

答:

补充一下,验证hello是否合法,分别如下,

第一:

如果接受端口类型是广播型,或NBMA型,那么所接受的端口中的NETWORDMASK

字段必须和接收端口的网络掩码一致,,如果端口类型为点到点,或虚连接,那么将忽略此

字段,

第二:

所接受的hello报文中的hellointerval字段必须和接收端口的配置一致,

第三:

所接收的HELLO报文中routerdeadinterval字段必须和接收端口的配置一致,

第四:

所接收hello报文中的OPTIONS字段中的E-bit,必须和相关区域的配置一样。

那么再回到此代码,毋庸置疑,肯定是两边的routerdeadinterval字段不一致,才会升值,(此

问题一般都是手动更改接口下的ospfrouterdead)

33:

在什么情况下HELLO:

Neighborunknown升值,

答:

hello包的邻居(Neighbor)字段匹配错误,

34:

在什么情况下,DD:

UnknownLSAty

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1