本帖最后由 哒哒哒 于 2019-10-17 13:09 编辑
------路由协议-------
啊,明明是在讲OSPF,为什么要先扯到路由协议呢,我也不知道为什么,可能中午我不困,又想找点事情做,那就~~在讲OSPF之前先大概了解一下下下什么是路由写协议。 那路由如何获取呢,可以通过静态配置,以及动态获取,静态配置就是手工配置的静态路由,那什么是静态路由呢,如何配置静态路由,怎么办,好多东西,下次讲吧,咱们重点动态路由吧。动态获取就是通过动态路由协议自己读取信息来更新自己的路由表,常用的动态路由协议有RIP和OSPF。
-------RIP的缺点-------
哈哈哈,惊不惊喜,意不意外,还是没到重点,在OSPF之前先看下RIP有什么缺点吧,大概整理了如下 1、最大15跳的限制(以跳数为度量值),跳数为16跳就认为不可达,无法适用于大规模的组网需求; 2、占用带宽,每次更新都是更新自己的整个理由表给对方,这样的话就是占用资源; 3、路由收敛速度比较慢,因为RIP是周期性的发送自己的路由表的哇,所以在网络出现故障的时候,需要较长的时间才能完成网络的收敛; 4、存在路由环路(这个比较占用时间,后续有时间的话单独讲下RIP) 综上所述,RIP又有跳数限制,又占用带宽,还有环路,那我还用它干嘛,干脆找一个又经济又实惠的协议用好了,OSPF肯定是首选。
-------什么是OSPF-------
差点跑偏了,终于到重点了,在讲工作过程之前先了解下什么是OSPF,分几个点简单看下 2、仅传播对端设备不存在的路由信息,网络收敛迅速,所以他不占用带宽资源,收敛速度也比较快; 3、以组播方式发送协议报文,避免了对其他设备的干扰,组播地址224.0.0.5和224.0.0.6; 4、使用SPF(最短路径优先)算法避免环路的产生。
-------OSPF协议工作过程-------
终于到重点了,敲下黑板
OSPF协议工作过程分为四个阶段, 1、寻找邻居 2、建立邻接关系 3、信息传递(链路状态) 4、计算路由 以2台路由器进行获取对方路由的形式(RT1和RT2),详细看下OSPF工作的过程 开始了
※寻找邻居※ 在建立邻接关系之前,每个路由器里面都有一张邻居表,这样表长什么样子,就是下面这个样子 为什么是空的,因为还没建立邻居关系,现在开始建立邻居关系 ①首先,RT1会广播发送一个Hello包,用来寻找可以交换路由信息的设备。(为什么广播?因为这个时候我不知道网络中谁开了OSPF啊,所以需要广播问下); ②同时,RT2也会做相同的操作,那么RT2收到RT1的Hello包,就等于是收到了可以与RT1建立邻居关系的消息; ③双方都是一样的额,收到对方的Hello包之后开始更新自己的邻居表,那hello包中包含哪些参数呢,就是上面空表中的一些参数,比如RT1收到RT2的hello包更新自己的邻居表状态如下 同理,RT2的邻居表如下 邻居状态上面还有一个init状态,这个这个,感兴趣的小伙伴建立找一些资料看下。
当双方的状态都达到2-WAY的时候,两台设备之间邻居关系建立成功,开始建立邻接关系。
※建立邻接关系※
-什么叫邻接关系?和邻居关系是什么区别?
-邻居关系是指,当双方收到对方的hello报文的时候,报文里面的参数一致的时候,并且邻居关系为2-way的时候,这个就可以成为是建立了邻居关系,但是还不是邻接关系。
-邻接关系是指在建立的邻居关系之后继续发送DD,LSR,LSU等报文,最终双方的LSDB达到同步之后,邻居状态为FULL时,才成为邻接关系。
-以上的官方文字比较枯燥,邻居关系其实就是在整个网络中,每一台设备都要与其他设备去建立邻接关系,加入我有4台设备,那就要建立4*3/2=6条邻接关系,相当于是两两建立,如下 但是呢,但是,这样建立的话,如果我所有好多好多好多设备的话,两两建立邻接关系,第一工作量比较大,第二出现故障不好维护,那怎么办呢,就是使用DR/BDR选举机制,那什么叫做DR/BDR选举机制呢,就是说我们只需要在网络中选择出一个DR(指定路由器)和BDR(备份指定路由器),其他所有路由器只需要跟他建立邻接关系即可,其他未直接建立邻接关系的通过DR或者BDR进行传达,依旧是上面四台路由器,看下使用DR/BDR机制之后建立的邻接关系数量 这个时候就是5条,2(n-2)+1 这下理解什么是DR和BDR了吧,举个栗子,假设整个网络中的所有路由器想象成是一个班级,DR就是班长,BDR就是副班长,所有人将自己的信息交给班长和副班长,其他人员想要获取信息就找班长要,班长没有找副班长要,这样就应该很好理解了。 ---插播一下如何选举--- 那这个DR和BDR如何选举呢?(明明是在建立邻接关系阶段,怎么又到了选举了) 第一个阶段讲的,双方在发送hello包的时候,会携带路由器的优先级,DR好BDR就是通过这个优先级选举的,优先级最高的就是DR,次之为BDR,优先级为0的不具备选择资格。 选举顺序?当然是先选举出BDR了,从小到大开始选举,首先把优先级为0的干掉,不参与选举,然后依次类推选出BDR,然后DR。 一旦DR和BDR选举之后,那么如果网络中又出现了优先级更高的路由器怎么办,将DR替换掉吗? 答案是肯定不会啦,只有当DR和BDR全部失效之后,才会重新选举。 就像一个班级你选好了班长和副班长,当班级里面来了一个更厉害的人,你会让他当班长吗,肯定不会,那之前的班长会伤心的,那班长离开了,他就能当选了吧,也不能,毕竟副班长熬了那么多年,肯定是副班长当家了。只有当班长和副班长都离开,这个更厉害的人才有选举的资格,注意是重新选举哦,不是他当选。 额,废话讲完了,继续重点,刚才已经建立好了邻接关系,根据OSPF工作过程,下一步就开始传递信息了 ※传递信息※ 第一阶段建立了邻居关系,第二阶段邻接关系也建立了,接下来看看下如何传递信息,依旧是RT1和RT2之间传递 ①RT1发送它自己的LSA(链路状态信息)摘要给RT2; 什么时候发? -------答:触发更新 如果不触发呢? ------- 答:每隔30min更新
②RT2收到RT1发送的消息,会将此消息跟自己的链路信息比较,如果发现RT1有的自己没有,则给RT1发送请求,要求获得RT2也就是自己不具备的LSA; ③RT1收到RT2发给自己的请求,将RT2的请求信息发送给RT2 ④RT2收到之后,更新自己的表然后给RT1回复一个确认信息(出于礼貌的收到、谢谢-哈哈)
以上是RT2获得RT1 LSA过程,RT1会通过相同的过程获取RT2的LSA 当RT1和RT2的LSA信息同步后,他们各自的邻居表会变为FULL状态,如下 RT1的 RT2的 状态为FULL之后,接下来就会根据各自拿到的信息进行路由计算了
※路由计算※ 终于到路由计算这最后一步了,路由怎么计算嘞 假设四台设备开启OSPF,拓扑如下 每台设备都会有自己的LSDB(链路状态数据库),由这个LSDB又可以得到一个带值的图,可以理解为就是链路状态的cost值,SPF算法呢,就是每台路由器都分别以自己为跟节点计算出到每一台设备值最小的生成树,如下 RT1为跟节点计算出到各个设备最短的路径 RT2以自己为跟节点计算出的到各个设备的最短路径 RT3以自己为跟节点计算出的到各个设备的最短路径 RT4为根计算出到各个设备的最短路径
终于结束了,到这边大家 应该看出来了吧,不管以谁为跟,计算出来的都是一颗树,而且是不成环的。
-------总结------- 感觉全篇都是总结 术语比较多,有些理解不到位的欢迎各位大佬指正,当然有些没注意的点,或者是哪边遗漏的希望得到大家的指正。
|