(注:此文档只适合对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 和第五类LSA link state id 字段都是描述目的网段的地址。哪他们之间有什么
区别?
啊。网友的力量是无限大的阿。你真的很会观察生活。年轻人。对、三类和第五类的
LINK-STATE ID 是一样。都是描述目的网段的地址。即使他们所有的字段都是一样。但是
他们所实现的功能是不能相提并论的。最关键的是。在LSA 报文头中的类型字段。有明显
的区别。这两类LSA 的作用定位不同。三类是描述另一个区域的路由。而五类呢。描述的
是外部路由。(并且他还有外部一类和外部二类。具体的情看第四个问题)
7:为什么ospf 中四种网络类型所定义的hello time 和生存时间都不一样?
答:OSPF 一共定义了四种网络类型,而这四种网络类型,大部分都是针对链路,(点到多
点需要手动修改),这也是OSPF 的特点之一,能适应更多不同类型的的网络结构中,并且,
不同的网络类型,邻居生存时间和hello TIME 也随之改变,(并且还可以手动修改),这无
不证明此协议的人性化。
8:ospf 如果不同进程不同区域使能。邻居能正常建立起来么(广播网络环境下)
答:不能正常建立。因为ospf 路由器在接受OSPF 报文的时候会验证一些报文是否合法其
检查的内容有。版本号。区域ID,验证方法和验证信息。
9:不同进程。同区域。邻居能正常建立起来吗?为什么?
能。因为在ospf 的报文中。并不需要对进程ID 进行检查。所以邻居能正常建立起来。
10:邻居和邻接有哪些区别?什么情况下才会出现邻居。什么情况下才会出现邻接。
答:OSPF 一共有八个状态机。其中down 2-way FULL 是稳定状态机其他的都是中转状态。,
所谓邻居关系是指只要与对端邻居关系建立到2-WAY 就可以了。并且用到的报文只有
HELLO,如果建立邻接呢。就需要进步一交互报文。需要用到的报文有dd。Lsr lsu ls ack
他们两之间的区别是。邻居只需要使能。收到对端的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
第十类:本地区域范围内的opaque LSA
第十一:本自治系统范围的opaque LSA
13:ospf 中option 的作用有哪些?分别在哪些情况下置位?
Option 这个字段是是ospf 的可选功能。描述路由器所支持所选的功能。
一共有五位。格式分别如下
E 位:
该位描述是否洪泛AS-external-LSA,
MC 位:
该位描述是否多播扩展OSPF 转发IP 多播包。
N/P 位:
该位描述了处理类型7 LSA。
EA 位:
该位描述了是否按OSPF 外部属性inprogress 的说明忽略还是接收并转发
External-Attributes-LSA。
DC 位:
该位描述了按扩展OSPF 和支持需求电路的说明处理按需链路。
14:ospf 中的LSA 报文头。分别在五中报文类型中包含LSA 报文头哪些信息?
答:DD 包括了LSA 头部信息。Ls 类型。LS ID,advertising(此LSA 生存者) LSR 只有
LS 类型。LS ID 和此LSA 生存者。LSU:完整的LSR 和具体的链路信息。
LSACK:LS 类型。LS ID,生存此路由信息和LS 系列号。
15:OSPF 在进程重启。为什么邻居能快速的建立起来。而不是像创建进程一样。需要等待
那么长时间?
答:ospf 的邻居存活时间是40 秒,在路由器之前成功建立邻居正常的情况下,一边重启进
程,而另一边邻居还正常的存活在邻居表中,但是当这边重启好了,发送HELLO 的时候,
对端也即转到INIT 状态,并且所有的状态,只需要交互一个报文就行了,所以,重启进程,
比普通建立的更快,也就是说,等对端的四十秒过后,再重启进程,那么他们又得重新互发
HELLO,又得经过七个状态机才能建立邻接状态。
16:ospf 一直提示LSA disabled。为什么会产生这种情况?
答:导致这种情况的原因是。当LSA 的老化时间结束时。LSA 他会在LSDB 表里面移除掉。
或者此LS 的始发者发送消息flooding 掉,但。正常的情况下。当邻居正常建立来。并且建立
到邻接状态时,他会自动更新LSA 的信息。并且用LS Age 和LS 系列号,来区分那条LSA
更新。并在LSDB 表中更新最新的LSA,既然LSA 出现down 的情况。那么首先得把问题
定位在邻居是否正常建立起来,并且能正常交互报文(LSU LS ACK)具体的请看后面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, UP DOWN,)导致,还有在交互报文的时候,
会莫名其妙的卡在一些状态机上,这些,只有等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 一个挑战,但根据网络大爬虫中OSPF FAQ 50
作者的观点, RFC 的作者在早期推荐过,一个区域最好不超过50 台路由器但那是在90 年
代写的(也就是我出生的时候,)哪时候的路由跟现在的,性能已经不在是相同的一个档次了。
现在的路由器性能所肯定不是在50 内,当然,由于环境限制,此问题上,本人水平有限,
无法做出更科学。更理论的解答。
23:两台路由器通过直连链路,建立OSPF 邻居,那么在一边使用P2P,而一边使用P2MP
的情况下,能正常建立到邻接状态么?
答:肯定是不能的,因为这两个网络类型的hellointerval 不一样,而在OSPF 进程检查一个hello 报文是否
合法,其hellointerval,在检查范围内。因此两台路由上的hellointerval 是不一样的,这样的话,当其中一
台路由器接受到另一台的包时,将会丢弃此HELLO 包,因此邻居就不可能正常建立起来。
应广大网友要求,为了让此文档更有价值,剩下的问题,都将从OSPF 中error
提取,将最大化OSPF error 中的错误点以及解决方法,在MSR 20-21 上,OSPF
error 一共有29 条(每个厂商所实现的OSPF 在细节上多多少少有一些误差,本文
档的实验环境,是MSR 20-21 其因为路由器所实现的误差,本人不将做任何解
释),所以。此error 只代表H3C MSR 20-21 设备上所实现的OSPF ERROR,)。
OSPF Process 1 with Router ID 1.1.1.1
OSPF Packet Error Statistics
24 : OSPF Router ID confusion 39 : OSPF bad packet
25 : OSPF bad version 40 : OSPF bad checksum
26 : OSPF bad area ID 41 : OSPF drop on unnumbered interface
27 : OSPF bad virtual link 42 : OSPF bad authentication type
28 : OSPF bad authentication key 43 : OSPF packet too small
29 : OSPF Neighbor state low 44 : OSPF transmit error
30 : OSPF interface down 45 : OSPF unknown neighbor
31 : HELLO: Netmask mismatch 46 : HELLO: Hello timer mismatch
32 : HELLO: Dead timer mismatch 47 : HELLO: Extern option mismatch
33 : HELLO: Neighbor unknown 48 : DD: MTU option mismatch
34 : DD: Unknown LSA type 49 : DD: Extern option mismatch
35 : LS ACK: Bad ack 50 : LS ACK: Unknown LSA type
36 : LS REQ: Empty request 51 : LS REQ: Bad request
37 : LS UPD: LSA checksum bad 52 : LS UPD: Received less recent LSA
38 : LS UPD: Unknown LSA type
24:在什么情况下ospf error的OSPF Router ID confusion 数值会增加
答:这条错误,相信大家再熟悉不过了,ospf router-id 冲突,RFC 规定,ospf 的router-id
在整个AS 中唯一,而router-id 又起着防环的作用,关于ROUTER-ID 冲突,我一共总结出
三种情况,分别如下。
第一种:区域内router-id 冲突,这种情况大家遇到的最多(骨干区域与骨干区域,非骨干区
域与非骨干区域。区域内,)导致的后果是,OSPF 不能正常建立邻居,那么自然不能正常
交互LSA 信息咯。
第二种:区域间的route-id,这种冲突,必定是在多区域的情况下才会产生,不然怎么叫区
域间冲突呢。他导致的后果,路由时有时无,两个冲突的路由器学到的路由,在路由表里,
一下有,然后又消失了,然后又出现了。
第三种:虚连接router-id 冲突,这种情况最明显,导致的后果跟第一种情况差不多,虚连接
无法正常建立,(区域间冲突的一种)
Router-id 冲突,概念性的就这三种,当然,区域内,区域间,如果细分的话,有十几种,
遇到此问题时,整理下思路,OSPF 的ROUTER-ID 冲突相对来说是比较好定位与排除的。
25:在什么情况下。OSPF bad versio数值会增加。
答:ospf 的版本出错。或者说,ospf 版本字段损坏。解决办法,检查下OSPF 版本是否配置
正确。然后重启下OSPF 进程就可以了。
26:在什么情况下,OSPF bad area ID 数值会增加?
答:区域ID 配置错误,如果是在骨干区域与非骨干区域(区域零和非骨干区域冲突),那么
在骨干区域的路由器上,OSPF bad area ID 会增值,而在非骨干区域他显示的是虚连接增值。
OSPF bad virtual link,但如果都是非骨干区域呢,那么两边的路由器都是OSPF bad area ID
增值。
27:在什么情况下会OSPF bad virtual link数值升序,
答:OSPF 虚连接错误,只要是非骨干区域与骨干区域不连续,都会出现此错误,具体的,
分别如下,
第一:如果是非骨干区域并没有骨干区域,(例如,区域1-2 -3 这样) ,但在同一个网段中,
那么会出现OSPF bad area ID 升值,因为ospf 区域针对的是网段和接口,并不是针对路由器,
第二:OSPF 虚连接是建立在正常的OSPF 邻居之上的,所以,在虚连接DOWN 的情况下
先检查ospf 邻居是否正常,
第三:ospf 并不能跨区域建立虚连接,在上面的问题中,我已经描述过虚连接建立的过程,
如果是跨区域,那么ospf 的目的地址,固然确定不了,既然目的地址确定不了,那么报文
肯定不能正常发送。
28:在什么情况下OSPF bad authentication key数值会增加。
答:在这里有必要说下,MSR-20-21,所实现的OSPF 验证,如果一旦在区域内启用OSPF 验
证,那么接口就必须要与区域内使用同一种验证模式才能正常加密ospf 报文,如果接口跟
区域内不一致的话,(包括区域内启用MD5,而接口下使用的是simple,或者区域内启用验
证,接口下不启用,)他是不发送HELLO 报文的,因为区域内与接口不匹配或协商的字段
不一致,那么他的OSPF 报文会出错的,,就算发出去了也是不完整的。并且他在ospf 中
的error 不会提示任何代码出错的,(因为都没报文发出去,他那什么去检测出错),那么回
到我们本题中,ospf 验证方式有两种,一种是在接口下启用验证,一种是在ospf 区域内启
用,既然他必须严格要求区域与接口使用的是同一种验证模式(如MD5 或simple)那么此
字段升值,肯定是两边接口下的KEY 出错咯。
29:在什么情况下OSPF Neighbor state low 会升值?
答:此数值,会跟着链路的震荡,会依次升序,(如邻居UP,DOWN,或者链路不稳定,)
30:在什么情况下,OSPF interface down 会升值。
答:此数值,在使能ospf 之后,他的链路会进入到一个端口状态(比如,DR,或BDR,),如
果此链路不稳定,经常UP,DOWN。那么此数值就会根据UP,DOWN 的次数而升值此项。
31:在什么情况下, HELLO: Netmask mismatch 数值会升值。
答:ospf 在除点到点和虚连接的情况外,都必须严格匹配network mask 字段,这是验证一
个HELLO 是否合法,如果合法,就继续交互报文,建立邻居,反之,则丢弃报文,那么
此字段升值,肯定是两边接口的掩码不一致,
32:在什么情况下,HELLO: Dead timer mismatch 字段升值,
答:补充一下,验证hello 是否合法,分别如下,
第一:如果接受端口类型是广播型,或NBMA 型,那么所接受的端口中的NETWORD MASK
字段必须和接收端口的网络掩码一致,,如果端口类型为点到点,或虚连接,那么将忽略此
字段,
第二:所接受的hello 报文中的hellointerval 字段必须和接收端口的配置一致,
第三:所接收的HELLO 报文中routerdeadinterval 字段必须和接收端口的配置一致,
第四:所接收hello 报文中的OPTIONS 字段中的E-bit,必须和相关区域的配置一样。
那么再回到此代码,毋庸置疑,肯定是两边的router deadinterval 字段不一致,才会升值,(此
问题一般都是手动更改接口下的ospf router dead )
33:在什么情况下HELLO: Neighbor unknown升值,
答:hello 包的邻居(Neighbor)字段匹配错误,
34:在什么情况下,DD: Unknown LSA type升值。
答:路由器在数据库同步时,收到未知的LSA 类型,
35:在什么情况下LS ACK: Bad ack升值。
答:OSPF 在大概几种情况下发送LSACK 信息,分别如下,
第一:OSPF 在刚确定建立邻接关系的时候,邻居状态到loading 的时候,收到对方发送的
LSU 报文后,回复LS ACK,邻居状态机并转换到FULL 状态,此LSACK 的作用是确保信
息传输的可靠性。并对以接受的LSA 进行确认。
第二:如果LSA 的LS 时限等于MaxAge,而且路由器的连接状态数据库中没有该
LSA 的实例,而且路由器的邻居都不处于Exchange 或Loading 状态,那么此时的路由器过
发送一个LSAck 包到发送的邻居来确认收到该LSA,或丢弃该LSA,并从LSU 包中取得下
一个(如果存在)
再回到我们这个问题中,RFC2328 规定,理洪泛之前,要对所接收到的LSAck 包进行很多
一致性检查。特别的,需要与特定的邻居相关联。如果所关联的邻居状态小于Exchange,
则丢弃该LSAck 包。
36:在什么情况下LS REQ: Empty request升值
答:
37:在什么情况下LS UPD: LSA checksum bad字段升值
答:顾名思义。在RFC2328 中,明确描述,对于每个包含在LSU 包中的LSA,进行下面的
步骤。
第一:确认LSA 的LS 校验和。如果校验和无效,丢弃该LSA,并从LSU 包中取得下一个
第二:检查LSA 的类型。如果LS 类型为未知,丢弃该LSA,并从LSU 包中取得下一个
那么根据以上的规则,再看此问题,可以很明显的看出来,LSU 在检查效验和,一但在此
步骤发生错误,那么OSPF 中的error 中的LS UPD: LSA checksum bad 升值。
38:在什么情况下LS UPD: Unknown LSA type 字段升值。
答:跟上个问题答案一样,不再讨论
39:OSPF 在什么情况下OSPF bad packet字段升值。
答:OSPF 非法报文。在上面的错误中。已经介绍了各种报文验证合法的错误。这里的非法。
指的是。此报文已经通过了OSPF 中的报文头验证。但包中的某些字段过长。导致ospf 进
程或路由器无法识别。
40:在什么情况下,OSPF bad checksum 升值
答:在RFC2328 中定义checksum 字段如下。
从OSPF 包头开始,除了64 位的验证域外,整个包的标准IP 校验和。该校验和作为
16 位1 补足校验和而计算包中除验证域外的所有16 位字。如果包的长度不满足16 位
字,就在校验和前加上一个字节的0 来补足。
校验和也被作为正确性验证的一部分
因为效验和也被作为正确性验证的一部分。所以。当效验和出错了。此字段也就跟着升值。
41:在什么情况下OSPF drop on unnumbered interface 字段升值。
答:某个地址借用接口上丢弃的OSPF 报文数。
42:在什么情况下OSPF bad authentication type升值
答:区域内验证类型不一致,导致项升值,区域验证一共有两种,一种是MD5 一种是simple,
此字段升值后,检查下区域内配置的验证模式,两端是否一样。
43:在什么情况下OSPF packet too small 升值
答:ospf 报文没有正常封装。或者封装的包太小。
44:在什么情况下OSPF transmit error 升值
答:传输出错的的OSPF 报文数
45:在什么情况下OSPF unknown neighbor升值
答:未知的OSPF 邻居,在广播网络环境下,当一个接口修改Dead 值的时候。由于DEAD
值必须要跟HelloInterval 必须相同。否则就会出错。但是修改了此值之后。首先在OSPF
ERROR 中HELLO: Dead timer mismatch 此项升值,然而接下来,当网段内其他的路由器正
常建立邻居而泛洪LS ACK 的时候。此路由(修改了DEAD 值的路由器)收到了其他路由
器的一些报文。比如LSACK,那么这些报文对此OSPF(在接口上修改了DEAD)进程来
说,是未知的,所以,在这时候,此项就跟着升值了。
46:在什么情况下HELLO: Hello timer mismatch
答:顾名思义。HELLO 包的TIME 值不匹配。地球人都懂,不再讨论。
47:在什么情况下HELLO: Extern option mismatch升值
答:在上面的问题中(32 题)我已经描述过,OSPF 在检验一个HELLO 报文是否合法,其
检查的字段中有,E-bit,在ospf 特殊区域中比如(NSSA,stub)如果此E-BIT 不匹配。那
么ospf 中的ERROR 将会升值此项。
48:在什么情况下DD: MTU option mismatch升值
答:关于这个问题,我们切换到RFC2328 中接收到数据库描述包
如果DD 包中表示IP 包大小的接口MTU 域,大于该路由器接口所能接收的不分片大小
,拒绝该DD 包。否则,如果邻居路由器的状态是:
Down:
包应当被拒绝。
Attempt:
包应当被拒绝。
Init:
邻居状态机应当执行事件2-WayReceived。这导致立即变为状态2-Way 或状态
ExStart。如果新状态是ExStart,按照下面ExStart 情况的介绍,继续当前包的处
理。
2-Way:
包应当被忽略。DD 包仅为建立邻接而使用。
ExStart:
如果接收到的包满足下列一个条件,则邻居状态机需要执行NegotiationDone 事件
(这将使状态变为Exchange)。包的选项域应当被记录在邻居结构的选项域中,包
的序号应当是下一个要处理的号码(见下)。否则,忽略该包。
设定了初始(I)、更多(M)和主从(MS)选项位,包的其他部分为空,且邻居路
由器标识比自身路由器标识要大。这时,路由器作为从机/Slave。设定主从位为从
,并将邻居数据结构中的邻居DD 序号设定为主机所提出的号码。
清除了初始(I)和主从(MS)选项位,且包中的DD 序号等于邻居数据结构中的DD
序号(标明为确认),而且邻居路由器标识比自身路由器标识要小。这时,路由器
作为主机/Master。
Exchange:
主机丢弃所收到的重复DD 包;从机收到重复的DD 包时,则应当重发前一个DD 包。否
则(不是重复包):
49:在什么情况下DD: Extern option mismatch升值
答:DD 报文的option 字段出错。根据RFC2328 中定义DD option 的概念如下
在交换DD 包时,路由器可以因为功能的不同,而选择不将特定的LSA 转发到邻
居。最后,路由器可以根据LSA 中列出的选项将其排除出路由表的计算,而将流量
转发到特定的路由器。
50:在什么情况下LS ACK: Unknown LSA type升值
答:含有未知类型LSA 的LSACK 报文数
51:在什么情况下LS REQ: Bad request 升值
答:请求错误LSA 的LSR 报文数
52:在什么情况下LS UPD: Received less recent LSA升值
答:含有不是最新的LSA 的LSU 报文数,大家都知道,OSPF 是用系列号和LS AGE 来区分
一条路由的新衰,当区域内有一台路由器重启时,那么他生成的LSA 信息已经泛洪到别的
路由器上去了(描述的是别的链路,他重启对本身这条LSA 信息不会导致任何不良反应。
换句话说是本路由器上的LOOK 上也有此路由。)。但是,但一台路由器重启过后。那么区
域其他路由器在泛洪此LSA 信息的时候。那么两台路由器此时的LSA 新旧就会发生冲突。
但对于别的路由器来说。泛洪的不是最新的LSA 所以。此时的ERROR 在这个时候升值此
项。
Ospf 问题整理在此就告一段落了,ospf 的复杂度,真让人感叹,现在回想起来,在H3C 网
络之路ospf 专题中开宗明义的第一句话,精通OSPF 就太牛了,全国都不到五个人。刚开
始还怀疑这句话。现在感觉。精通OSPF 的。真不是简单的人。在此文档中。其中有几个问
题。由于环境有限。未能做到故障最大化。所以请广大群众谅解。
整篇文档在当初楷写构思的时候。定位是一些面试的问题。(刚开始有些自私,自己表达能
力不怎么样,在写这篇文档的时候,顺便锻炼下表达能力,也当是复习OSPF)到中期。感觉
意义不大。每个人面试遇到的问题。都有自己的思路和语言去表达。后来写着写着,就把他
的概念偷换了。把他定位为排错文档。当然这本身也跟我备考有关。OK,现在整理出来了,
看着自己这段时间整理出来的成果。心里还是蛮高兴的。如果以后有必要。我会全线追踪
OSPF 到底。并在第一时间把他整理,并发布给大家让大家在第一时间一起分享网络给我们
带来的快乐。
下面,我预留了三道问答题。如果有对OSPF 感兴趣的哥们。可以开动下脑筋,
问答题
Ospf 中,五种报文,哪几种有重传机制,哪些没有?为什么?
答:
怎么利用ospf 中的LSA 信息去描述一个区域的拓扑?
答:
Ospf 对于不同的网络类型,路由信息是怎么描述的,怎么使用SPF 算法的?
答:
在OSPF 区域中。如果一边启用STUB 区域。一边启用NAAS 区域。他们能正常建立邻居
关系吗?为什么?
答: