【技术小知识】OSPF工作过程
  

哒哒哒 34101人觉得有帮助

{{ttag.title}}
本帖最后由 哒哒哒 于 2019-10-17 13:09 编辑

------路由协议-------

       啊,明明是在讲OSPF,为什么要先扯到路由协议呢,我也不知道为什么,可能中午我不困,又想找点事情做,那就~~在讲OSPF之前先大概了解一下下下什么是路由写协议。
       路由协议,说的简单点就是能够自动发现和计算路由,并且在网络拓扑发生变化的时候能够自动更新路由,不需要人工来进行维护。怎么办呢,我又想讲什么是路由了......https://bbs.sangfor.com.cn/forum.php?mod=viewthread&tid=43932#/,给自己打个广告,这个帖子有写路由和路由表。
       那路由如何获取呢,可以通过静态配置,以及动态获取,静态配置就是手工配置的静态路由,那什么是静态路由呢,如何配置静态路由,怎么办,好多东西,下次讲吧,咱们重点动态路由吧。动态获取就是通过动态路由协议自己读取信息来更新自己的路由表,常用的动态路由协议有RIP和OSPF。

-------RIP的缺点-------

       哈哈哈,惊不惊喜,意不意外,还是没到重点,在OSPF之前先看下RIP有什么缺点吧,大概整理了如下
       1、最大15跳的限制(以跳数为度量值),跳数为16跳就认为不可达,无法适用于大规模的组网需求;
       2、占用带宽,每次更新都是更新自己的整个理由表给对方,这样的话就是占用资源;
       3、路由收敛速度比较慢,因为RIP是周期性的发送自己的路由表的哇,所以在网络出现故障的时候,需要较长的时间才能完成网络的收敛;
       4、存在路由环路(这个比较占用时间,后续有时间的话单独讲下RIP)
       综上所述,RIP又有跳数限制,又占用带宽,还有环路,那我还用它干嘛,干脆找一个又经济又实惠的协议用好了,OSPF肯定是首选。

-------什么是OSPF-------

       差点跑偏了,终于到重点了,在讲工作过程之前先了解下什么是OSPF,分几个点简单看下
       1、OSPF--中文名称:开放最短路径优先,英文全称(www.baidu.com可查),基于链路状态的,所以没有跳数的限制;
       2、仅传播对端设备不存在的路由信息,网络收敛迅速,所以他不占用带宽资源,收敛速度也比较快;
       3、以组播方式发送协议报文,避免了对其他设备的干扰,组播地址224.0.0.5和224.0.0.6;
       4、使用SPF(最短路径优先)算法避免环路的产生。

-------OSPF协议工作过程-------

       终于到重点了,敲下黑板
       OSPF协议工作过程分为四个阶段,
       1、寻找邻居
       2、建立邻接关系
       3、信息传递(链路状态)
       4、计算路由
       以2台路由器进行获取对方路由的形式(RT1和RT2),详细看下OSPF工作的过程
277635da553131935f.png
       开始了

       ※寻找邻居※
       在建立邻接关系之前,每个路由器里面都有一张邻居表,这样表长什么样子,就是下面这个样子
367555da5528fb1660.png
       为什么是空的,因为还没建立邻居关系,现在开始建立邻居关系
       ①首先,RT1会广播发送一个Hello包,用来寻找可以交换路由信息的设备。(为什么广播?因为这个时候我不知道网络中谁开了OSPF啊,所以需要广播问下);
       ②同时,RT2也会做相同的操作,那么RT2收到RT1的Hello包,就等于是收到了可以与RT1建立邻居关系的消息;
       ③双方都是一样的额,收到对方的Hello包之后开始更新自己的邻居表,那hello包中包含哪些参数呢,就是上面空表中的一些参数,比如RT1收到RT2的hello包更新自己的邻居表状态如下
829245da554cdb6333.png
       同理,RT2的邻居表如下
819665da554f9284ec.png
        邻居状态上面还有一个init状态,这个这个,感兴趣的小伙伴建立找一些资料看下。
       当双方的状态都达到2-WAY的时候,两台设备之间邻居关系建立成功,开始建立邻接关系。

       ※建立邻接关系※
        -什么叫邻接关系?和邻居关系是什么区别?
        -邻居关系是指,当双方收到对方的hello报文的时候,报文里面的参数一致的时候,并且邻居关系为2-way的时候,这个就可以成为是建立了邻居关系,但是还不是邻接关系。
       -邻接关系是指在建立的邻居关系之后继续发送DD,LSR,LSU等报文,最终双方的LSDB达到同步之后,邻居状态为FULL时,才成为邻接关系。
       -以上的官方文字比较枯燥,邻居关系其实就是在整个网络中,每一台设备都要与其他设备去建立邻接关系,加入我有4台设备,那就要建立4*3/2=6条邻接关系,相当于是两两建立,如下
561025da557b1f37b6.png
       但是呢,但是,这样建立的话,如果我所有好多好多好多设备的话,两两建立邻接关系,第一工作量比较大,第二出现故障不好维护,那怎么办呢,就是使用DR/BDR选举机制,那什么叫做DR/BDR选举机制呢,就是说我们只需要在网络中选择出一个DR(指定路由器)和BDR(备份指定路由器),其他所有路由器只需要跟他建立邻接关系即可,其他未直接建立邻接关系的通过DR或者BDR进行传达,依旧是上面四台路由器,看下使用DR/BDR机制之后建立的邻接关系数量
835125da559b4ce3d0.png
       这个时候就是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的
132885da57d1778154.png
       RT2的
258205da57d3715a71.png
      状态为FULL之后,接下来就会根据各自拿到的信息进行路由计算了

    ※路由计算※
       终于到路由计算这最后一步了,路由怎么计算嘞
       假设四台设备开启OSPF,拓扑如下
949845da5804d7d366.png
       每台设备都会有自己的LSDB(链路状态数据库),由这个LSDB又可以得到一个带值的图,可以理解为就是链路状态的cost值,SPF算法呢,就是每台路由器都分别以自己为跟节点计算出到每一台设备值最小的生成树,如下
       RT1为跟节点计算出到各个设备最短的路径
480525da5814d3dd32.png
       RT2以自己为跟节点计算出的到各个设备的最短路径
657415da582309c966.png
       RT3以自己为跟节点计算出的到各个设备的最短路径
266945da582484c23e.png
     RT4为根计算出到各个设备的最短路径
260925da5825f7eac7.png

       终于结束了,到这边大家 应该看出来了吧,不管以谁为跟,计算出来的都是一颗树,而且是不成环的。

-------总结-------
       感觉全篇都是总结
       术语比较多,有些理解不到位的欢迎各位大佬指正,当然有些没注意的点,或者是哪边遗漏的希望得到大家的指正。

打赏鼓励作者,期待更多好文!

打赏
11人已打赏

乔达摩悉达多 发表于 2019-10-15 17:05
  
敲黑板了
1、OSPF属于链路状态协议,它的AD=110,COST算法默认是100M/带宽。
2、OSPF的RID如何选举:环回口最大IP,没有环回,物理接口的最大IP,如果管理员指定的话,指什么就是什么。
3、OSPF的DR、BDR如何选举:优先级最大的是DR,默认优先级都是1,所以默认RID最大的是DR,第二大的是BDR,如果优先级为0,表示放弃资格,只能是DRother。注意:受DEAD时间影响。
4、OSPF的5种报文:HELLO,用于发现和维护邻居关系,选举DR、BDR。DBD:LSA的头部信息,用于向邻居发送链路摘要。LSR:用于向邻居请求自己需要的LSA。LSU:用于向邻居发送其请求的LSA。LSACK:用于确认收到的LSU。
5、OSPF的7种状态:DOWN、INIT、TWOWAY、EXSTART、EXCHANGE、LOADING、FULL。
6、OSPF的4种网络类型:P-to-P P-to-MP BMA NBMA
7、OSPF的6类LSA:1类,叫router-LSA,所有路由器都会产生,用于在域内发送LSA。2类叫network-LSA,用于在域内由DR发送LSA。3类叫network-sumary-LSA是ABR用于在相邻的两个域之间相互传递各区域汇总的LSA。4类叫ASBR-SUMARY-LSA,是ABR向和ASBR不在一个区域的成员发出的,用于指出谁是ASBR。5类叫ASBR-EXT-LSA是由ASBR向整个OSPF协议域发出的用于描述外部协议路由的,如RIP。7类,是NSSA区域中的ASBR用来向NSSA区域中发送外部路由的。
sangfor2423 发表于 2019-10-15 17:06
  
是时候出第二篇了,讲下区域,各类lsa
琉影 发表于 2019-10-15 16:40
  
有点长  抢个沙发再看
drogba 发表于 2019-10-15 16:46
  
有点长 抢个板凳再看看
新手655861 发表于 2019-10-15 16:49
  
窝窝头,一块钱四个,嘿嘿
Sangfor_闪电回_朱丽 发表于 2019-10-15 16:50
  
萌新的福利,GET各种运维小知识,感谢楼主的分享!
谁演青梅师傅 发表于 2019-10-15 16:50
  
小姐姐厉害 :啧啧啧:
尹卓 发表于 2019-10-15 16:53
  
小姐姐可以的
Winson_001 发表于 2019-10-15 16:54
  
卖竹鼠了,三元一只,十元三只,嘻嘻
新手232898 发表于 2019-10-15 16:54
  
仰望小姐姐(`・ω・´)
诸葛瑯月 发表于 2019-10-15 16:58
  
写的太好了,大热天看得我手脚冰凉浑身...不是,看得我茅塞顿开,醍醐灌顶,恍然大明白,思如泉涌!婷哥哥牛哔!
发表新帖
热门标签
全部标签>
每日一问
GIF动图学习
信服课堂视频
项目案例
产品连连看
技术笔记
在线直播
技术咨询
SDP百科
专家分享
原创分享
VPN 对接
安装部署配置
技术圆桌
功能体验
新版本体验
答题自测
每日一记
畅聊IT
专家问答
SANGFOR资讯
MVP
网络基础知识
升级
安全攻防
上网策略
测试报告
日志审计
问题分析处理
流量管理
运维工具
云计算知识
用户认证
解决方案
sangfor周刊
技术顾问
信服故事
标准化排查
功能咨询
终端接入
授权
设备维护
资源访问
地址转换
虚拟机
存储
迁移
加速技术
排障笔记本
产品预警公告

本版版主

12
172
6

发帖

粉丝

关注

本版达人

LoveTec...

本周分享达人

新手24116...

本周提问达人