网络——OSPF

RIP、BGP和OSPF的区别:

(应用场景,性质,路由选择,收敛速度,稳定性)

协议类型:BGP外部网关协议,RIP、OSPF是内部网关协议;

选路原则:RIP基于距离矢量选择路由;OSPF基于链路状态选择路由;BGP是高级距离矢量路由协议,通过选路原则选择路由;

应用场景:BGP跑在内部网关协议上,所以BGP适合用于非常大型的网络;如运营商之间或者是大型企业之间;OSPF适用于大型网络;RIP适用于较小型网络;

端口号/协议:BGP基于TCP179号端口,OSPF基于IP协议89号端口,RIP基于UDP520端口;

交换内容:RIP交换本路由器的路由表,OSPF交换整个网络拓扑的路由链路状态,BGP第一次交换整个路由表,非首次交换变化部分;

收敛速度:RIP收敛速度较慢,“好消息传得快,坏消息传得慢”hello包周期更新时间是30秒;OSPF收敛速度较快,hello包周期更新时间是10秒;BGP收敛速度比较慢;

稳定性:RIP不够稳定;

 

提高OSPF协议的快速收敛:

1.配置OSPF GR,保障在设备发生主备切换时转发不中断;

2.配置bfd for ospf ,将链路状态快速通知给OSPF模块;

3.在点对点的广播网络中,将接口的网络类型设置为P2P,减少OSPF Peer建立的时间;

4.调整OSPF各种定时器,加速协议收敛速度,主要的几个定时器是LSA-Original-Interval

LSA-Arrival-Interval、spf-schedule-interval,在需要OSPF的网络中,推荐几个定时器的值参考:

spf-schedule-interval intelligent-timer 200 50 50

LSA-Original-Interval intelligent-timer 100 50 50

LSA-Arrival-Interval intelligent-timer 100 50 50

 

提高BGP协议的收敛速度:

1.配置BGP GR 保障设备发生主备切换是转发不中断;

2.配置bfd 佛陀BGP 将链路的状态快速通知给BGP模块

3.是能BGP Auto FRR 使BGP 的两个邻居切换或者两个下一跳切换达到亚秒级别的收敛速度;

 

 

OSPF的稳定状态:

稳定状态有DOWN 2-way Full

非稳定状态有init exstart exchange loading attempt(NBMA特有的状态,尝试与指定邻居建立邻居关系阶段)

 

邻居和邻接有什么区别,什么情况才出现邻居,什么情况出现邻接?

OSFP一共有8个状态机;down 2-way full 是稳定状态机,其他都是非稳定状态机;所谓邻居关系是指只要与对端邻居关系建立到2-way状态就可以了,并且用到的报文只有HELLO;如果是邻接关系,就要用到DBD,LSR,LSU,LSACK;邻居只需要使能,收到对端的HELLO报文,并且自己在对端的邻居列表就可以了;邻接,是在建立邻居关系之上,从而交互路由信息。

 

ospf中option的作用有哪些?分别是哪些情况下置位?

option是ospf的可选功能,描述路由器所支持所选的功能。一共有五位;

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

MC位:该位描述是否多播扩展OSPF转发IP多播包;

N/P位:该位描述处理类型7 LSA

EA位:该位描述是否按OSPF外部属性inprogress的说明忽略还是接受并转发External-Attributes-LSA

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

 

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

DD包括LSA头部信息,LS类型,LS ID,Advertising(此LSA生存者);

LSR只有LS类型。

 

OSPF在进程中重启,为什么邻居能快速建立,而不是像创建进程一样,需要等待那么长时间?

OSPF的邻居存活时间是40秒,在路由器之前成功建立邻居正常情况下,一边重启进程,而另一边邻居还正常的存活在邻居表中;但是但这边重启好了,发送hello的时候,对端即转到init状态,并且所有的状态只需交互一个报文;

 

OSPF陷入了init状态?

一方访问控制列表阻止了hello;

一方多播能力失效;

 

OSPF陷入了2-WAY状态?

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

 

OSPF陷入了EXSTART/EXCHANGE

在EXSTART或者EXCHANGE状态的OSPF正处于尝试交换DBD分组的过程;

原因可能是不匹配的MTU;邻居上重复的路由器ID;无法用超过特定MTU长度进行PING;断掉的单播连通性,它可能是因为错误的DLCI,访问控制列表或转换单播NAT;

 

OSPF陷入LOADING

邻居没有应答或者邻居应答从未到达本地路由器,路由器也会陷入loading状态;原因:不匹配的MTU

 

为什么OSPF和BGP在重分布的时候,OSPF路由的下一跳不确定,导致选路错误?

这是有BGP环路引起的,在双出口的BGP中,如果BGP里面宣告或学习到的路由都一样,建议修改preferred-value值;把环路取消,再做重分布;

 

OSPF和STP结合组网,一般会遇到什么问题?

一个协议所有功能都包含在报文中,报文中的某个字段置位,也就是这个协议的功能无法开启,不管OSPF与哪个协议组网,只要不影响OSPF的报文收和发就可以了;

注意的是:STP在收敛的时候,会导致端口堵塞,正常流量没有办法通过,那么就会造成OSPF的报文没办法正常交互;会莫名其妙的卡在一些状态机上,只有当STP收敛好,OSPF正常交互报文才能意义排除;

 

OSPF和BGP组网会遇到哪些问题:

BGP和OSPF都是第四层协议;只有OSPF正常建立了邻接关系,BGP才能正常交互OPEN相关的一些报文;如果OSPF和BGP组网,首先检查OSPF相关的设置和错误,然后在检查BGP;

 

OSPF和IPsec组网,会遇到什么问题?

两个协议相互独立,IPsec不兼容组播;所以在一些正常情况下,IPsec无法载荷ospf的hello包;

IPsec对单播支持还算完美,OSPF并不是所有报文目的都是组播,其中NBMA虚连接等都是使用组播为目的地址的,只要是单播情况下,IPsec就能正常载荷组播(加密);

那OSPF能载荷IPsec数据吗:IPsec利用ospf自动发现的路由作为remote地址,所以IPsec结合OSPF,首先要注意OSPF的网络类型,以组播的,是不可以被加密的;

 

ospf区域怎样划分才合理?

跟着路由器的性能和拓扑环境走;OSPF只会将最优路由安装在路由表中,但是,在OSPF数据库中,所有的LSA都存在;如果网络路径大佬,对OSPF是个大挑战;RFC作者在90年推荐,一个区域最好不超过50台路由器。

 

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

不能,因为两个网络类型的hello interval不一样,OSPF进程检查一个hello报文是否合法,其中hello interval就在检查范围内;当一台路由器接受到另一台路由器的包时,就会丢弃此hello包,邻居就不能正常建立起来;

 

什么情况下,OSPF error 的OSPF routerID confusion 数值会增加;(router-id冲突)

RFC规定:ospf的router-id在整个AS中唯一,而router-id又起着防环的作用,关于router-id冲突,一共有三种情况:

第一种:区域内router-id冲突,骨干区域与骨干区域、非骨干区域与非骨干区域冲突,后果就是,OSPF不能正常建立邻居,所以就不能正常交互LSA信息;

第二种:区域间的router-id,多区域情况下发生,后果是路由时有时无,两个冲突的路由器学到的路由,在路由表里,一下有,然后又消失了,然后又出现了

第三种:虚连接router-id冲突,虚连接无法建立;

 

什么情况下,OSPF 八点version数值会增加;

ospf的版本出错,或者说ospf版本字段损坏,解决办法:检查OSPF版本是否配置正确,然后重启OSPF进程就可以了;

 

什么情况下,OSPF bad area ID 数值会增加?

区域ID配置错误,如果是骨干区域和非骨干区域,那么骨干区域的路由器上,OSPF bad area ID数值会增加,而在非骨干区域上显示的是虚连接增加;OSPF bad virtual link , 如果都是非骨干区域,那么两边的OSPF bad area ID都会增加;

 

什么情况下,OSPF bad virtual link数值会增加?

OSPF虚连接错误,只要是非骨干区域和骨干区域不连续,都会出现此错误:

一、如果非骨干区域没有骨干区域,但是在同一个网段,那么会出现OSPF bad area ID 升值,因为OSOF区域针对的是网段和接口,并不是针对路由器;

二、OSPF虚连接是建立在正常deOSPF邻居之上的,所以在虚连接DOWN的情况下,先检查ospf邻居是否正常;

三:ospf并不能跨区域建立虚连接;如果是跨区域,那么ospf的目的地址确定不了,报文就不能正常发送;

 

什么情况下,OSPF bad authentication key数值会增加?

实现OSPF验证时,区域内启用OSPF验证,接口和区域内必须使用同一种验证模式,否则接口不能发送hello包;验证方式有区域内验证和接口下验证,若该字段升值,肯定是两边接口的KEY出错了;

 

什么情况下,OSPF Neighbor state low 会升值

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

 

什么情况下,HEllO:Netmask mismatch数值会升值;

ospf在除了点到点和虚连接情况下,都必须严格匹配network mask字段,是验证一个hello是否合法,该字段升值,肯定是两边接口掩码不一致;

 

什么情况下,HELLO:Dead timer mismatch字段会升值?

验证hello是否合法:

一、如果端口类型是广播类型,或NBMA型,那么接受的端口中,NETWORD MASK字段必须和接收端口的网络掩码一致,如果端口类型为点到点,或者虚连接,那么会忽略此字段;

二、所接受的hello报文中的hello interval字段必须和接收端口一致

三、所接受的hello报文中,router dead interval字段必须和接收端口的配置一致;

四、所接受hello报文中的OPTION字段的E-bit,必须和相关区域的配置一样;

 

什么情况下,HELLO:Neighbor unknown 升值?

hello包的邻居字段配置错误

 

什么情况下,DD:Unknown LSA type升值?

路由器在数据库同步是,收到未知的LSA类型;

 

什么情况下,LS ACK:bad ack升值?

OSPF大概哪几种情况下发送LSACK信息:

一、刚确定建立邻接关系时,邻居状态到loading时,收到对方LSU报文后,回复LSACK,邻居状态机并转换到FULL状态;

二、LSA的LS时限等于MaxAge,而且路由器的链接状态数据库中没有该LSA实例,而且路由器的邻居都不处于Exchange或Loading状态,那么此使路由器发送一个LSack包到发送的邻居确认收到该LSA或丢弃该LSA,并从LSU包中取得下一个(若存在)

 

LSA UPD: LSA checksum bad升值,LSA UPD:Unknown LSA type?

在RFC中,对每个包含在LSU包中的LSA,进行下面步骤:

一、确认LSA的LS校验和;若无效,丢弃该LSA

二、检查LSA类型,若类型未知,丢弃;

若上述步骤出错,字段升值;

 

OSPF bad packet字段升值

OSPF非法报文,此报文通过了报文头验证,但是某些字段过长,导致ospf进程或路由器无法识别;

 

OSPF bad checksum升值:

从OSPF包头开始,除了64位的验证域外,整个包的标准IP校验和。该校验和作为16位1补足校验和而计算包中除验证域外的所有16位字;如果包的长度不满足16位字,就在校验和前加上一个字节的0补足;

校验和出错,字段升值

 

OSPF drop on unnumbered interface 字段升值

某个地址借用接口上丢弃的ospf报文数

 

OSPF bad authentication type升值:

区域内验证类型不一致,导致该字段升值,区域内验证有两种,一种是MD5一种是simple

 

OSPF packet too small

ospf报文没正常封装,或者封装的包太小;

 

OSPF transmit error

传输出错的OSPF报文数

 

OSPF unknown neighbor

未知的OSPF邻居,在广播网络环境下,当一个接口修改Dead值时。由于Dead值必须要和Hello interval 必须相同,否则就会出错;但是修改此值之后,首先在OSPF ERROR中,HELLO:Dead imer mismatch 此项升值,当网段内其他路由器正常建立邻居而泛洪LSACK时,此路有接收到其他路由器的一些报文,此字段就会升值;

 

HELLO:hello timer mismatch

hello包的time值不匹配

 

HELLO:Extern option mismatch升值

E-bit字段不匹配

 

DD:MTU option mismatch升值

DD包中标识IP包大小的接口MTU域,大于该路由器接口所能接受的不分片大小,拒绝该DD包;

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章