
“小张,帮我看一下RIP是怎么回事,怎么我刚才写入的条目,到现在还没更新过来啊?”
无聊的周一,从RIP路由的缓慢更新开始,作为一个动态路由协议,本来应该能够替代许多网络工程师的任务,解决很多因为配置出现的麻烦。
可是自从运行了RIP协议之后,工作量虽然减少了,可是工作强度却大大加大了。
收敛慢,30s才会发送一个更新。算法天生缺陷,以路由跳数作为选路依据,明明通往1.1.1.1有两条链路,上方链路每条都是10g链路,下方却只是一个10m链路,可是因为RIP算法的存在,只认跳数越少路由越优,对于开销更低,更优的路,却视而不见。

同样的,RIP最多只会传递15跳,所以就制约了这个路由协议的存在,毕竟一般要使用路由协议的网络环境,15台路由器是远远满足不了需求的,所以RIP这个协议,逐渐逐渐的正在走向没落。
“主管,我们为什么不用OSPF呢,你说用个RIP,陪老婆孩子的时间都没有了,不如换成OSPF,那不香嘛。”小张倦怠的打了个哈欠,有些不满的说道,
“OSPF?那是什么?”主管一脸疑惑。
OSPF(Open Shortest Path First)开放式最短路径优先,与RIP一样,归属于动态路由协议,不过区别在于RIP是距离矢量协议,而OSPF则是链路状态协议。
何为距离矢量协议,何为链路状态协议?
最大的区别就在于距离矢量协议是通过路由器向其邻居发送自己的路由表的方式来维护自己本身的路由信息,属于邻居给什么自己就收什么,本身自己对于整个网络环境是没有一个清晰的概念的。
而链路状态协议从网络或者网络的限定区域内的所有其他路由器处(不仅仅限制在自己的邻居路由器处)收集信息。
收集完信息之后,每台路由器会在不依赖其他路由器的情况下计算到达各个网络的路由,由于每台路由器维护的是其对整个网络的印象,因此路由器不太会传播邻居路由器提供的错误信息。
简单来说,距离矢量路由协议传递路由条目,而链路状态协议传递链路状态信息。
OSPF是链路状态协议的代表,RIP中很头痛的环路问题,在OSPF中天生就不存在这种情况。
OSPF在设计时,进行了一个区域划分的概念,也就是可以将多台路由器分割成为大大小小不一的区域,区域内使用SPF算法来保证绝对无环路,而不同的区域间则使用数据类型的规则来避免环路。
同时,不同于RIP的周期性更新,OSPF在周期性更新的基础上,增加了每当拓扑环境出现问题时,就会进行的一种触发式更新,收敛速度比RIP不知快了多少。
这只是其中一些小优点, 最关键的是OSPF 能够用于规模很大的网络。
因为将一个自治系统再划分为若干个区域的方式,交换链路状态信息的范围局限于每一个区域而不是整个的自治系统,减少了整个网络上的通信量,减轻路由器的负担。
那OSPF是如何进行工作的呢?
首先,因为要求每台运行OSPF的路由器都必须了解整个网络的链路状态信息,因为这样才能计算出到达目的地的最优路径。
所以OSPF的收敛过程由LSA(Link State Advertisement)泛洪开始,LSA中包含了路由器已知的接口IP地址、掩码、开销和网络类型等信息。
收到LSA的路由器都可以根据LSA提供的信息建立自己的链路状态数据库LSDB(Link State Database),并在LSDB的基础上使用SPF算法进行运算,建立起到达每个网络的最短路径树。最后,通过最短路径树得出到达目的网络的最优路由,并将其加入到IP路由表中。
而OSPF,从开始到建立,有着7种状态的;

Down:这是刚开始建立邻居时候的状态,这个时候双方还不会进行一个HELLO包的交互,属于最初始的状态。
Attempt:这个只在NBMA网络上存在(是OSPF支持的一种网络类型),表示没有收到邻居的任何信息,但是已经周期性的向邻居发送报文,也就是说我已经给你发过了,可是你一直没有给我回复,这个回复时间有个限度,当超过这个等待时间的时候,则转为Down状态。
Init:这个时候,自己刚刚收到邻居发过来的HELLO报文,但是还没有在报文中发现自己的存在,因为如果说对方知道自己存在时,在HELLO包中,会有关于自己的一个标识的。
2-Way:这个状态也被叫做邻居状态,双方此时已经初步建立了邻居关系,都在彼此的HELLO报文中看到了自己的存在,也就是互相都门清了。
ExStart:而邻居建立完成后,就要进行形成邻接关系了,Exstart是形成邻接关系的第一步,当邻居状态变成此状态以后,路由器开始向邻居发送DD报文(数据库描述报文)。主从关系是在此状态下形成的,选举主从,只是为了选择第一个请求lsa的包是由谁发出的。
Exchange:这个时候路由器就开始相互发送包含链路状态信息摘要的DD报文,描述本地LSDB的内容。
Loading:而彼此看到LSDB内的东西之后,就会发现自己有哪些报文没有,紧接着就开始相互发送LSR报文请求自己本地没有的LSA,而对端收到索要LSA的请求包之后,就会发送LSU报文通告LSA。
Full:这就是OSPF的最终状态,邻接关系,此时双方没有的LSA已经全部同步完毕,建立起了一个牢不可破的邻接关系。
“原来这就是OSPF的七种状态,从down开始,进入到full结束,不过我还是有个疑问,这个DD是什么,LSR又是什么,LSU呢,不理解,搞不懂。”主管听完小张的讲述,若有所思,不过说到底还是一副蒙圈的样子。
小张微微一笑,道:“我觉得对于OSPF的概念,你得从头到尾学习一下,正巧,有个大神正在授课,我可以把你推荐给他,你学上几天,保管你受益匪浅。”
“https://ke.qq.com/course/225186?tuin=8932a88a&flowToken=1001320%40&_bid=167&_wv=1&taid=1684404569337762”
“至于关于OSPF的五种数据包,他们究竟是如何传递更新的,有什么作用,明日,听我细细给你道来。”