ospf状态机-通俗易懂的小故事

阅读本文大概需要 5 分钟。

公众号:工程师江湖
*
故事:一个名字叫做ospf状态机的故事*

很久很久以前,有一个区域,这个区域叫做 自治系统AS,在AS内部有很多管理员,管理员来有个别名叫做IGP协议,这是对外的说法,里面的每个实体协议都具有属于自己的管理体系,很好理解,每个管理者都有属于自己的管理风格。

IGP里面的实体协议管理员我们把它分别叫做 OSPF,ISIS,Rip,Eigrp。

那么,OSPF的故事开始了。

在这里插入图片描述
刚才也说了,OSPF这个实体管理员有属于自己的管理风格,我相信每个管理员都会做一件事情,拆分团队,让他们各司其职。

所以,ospf里面存在区域这么一个说法,重要骨干小团队叫做骨干区域,也就是area0,其余的团队叫做非骨干区域,这些非骨干区域可以是area 1 ,area3,area4…

管理员并不是很关心,他只关心核心小团队,area0。
至于其余的非骨干区域,让他们负责好自己的一亩三分地就行,发生变动时候都要联系area0,也就是骨干区域,换句话说就是,骨干区域里面的队员都是对外的小领导,叫做ABR。
在这里插入图片描述

就好像网工们一般运气不好进入了外包团队,那么等待你的将是颐指气使。哪怕是一个客户的普通职员,也会是你的领导。
在这里插入图片描述
问题来了,这些非骨干区域怎么把重要消息汇报给管理员呢。

很简单,每个非骨干区域都要和骨干区域的队员建立连接。
这个连接方式叫做虚连接,通过骨干区域绕一圈才能汇报上去。
在这里插入图片描述

其实有一个点需要意识到,不管你是谁,都脱离不了最基本的关系。

在ospf里面我们叫做邻居或者领接关系。

怎么讲?
你上班了,你的同事对于你来说只是一个象征合伙做事的意义,只在上班的时候才会有交集,关系很简单,这个叫做邻居关系。

不过随着时间的推移,忽然渐渐发现,你和这个同事居然有相同的兴趣,相同的语言,相同的饮食习惯。

额,可能在朝着像基友那方面发展,别想歪,我是说关系很紧密,有私事,大家互相帮助。

这个就已经到了领接FULL的关系。

先看下面这个图。
在这里插入图片描述
FULL就是最终的基友关系,2-way就只是陌路旁人的关系。

串联一下
你加入一个公司了,签完协议了,好了,这时候你是这个公司的职员了。
什么都不知道,只是在公司的通讯录上面见到一串人名,ok,这时候是DOWN的状态,加入,但是没有和其他人建立了联系。

放在ospf里面来讲就是,我只是刚刚把ospf协议配置上去,还没有任何动静。
// OSPF配置
ospf 1 router-id 1.1.1.1
non-stop-routing
area 0.0.0.0
network 192.168.10.1 0.0.0.255

接着你的领导在群里面发了个消息,欢迎新同事。
然后一堆同事的消息在QQ或者微信群里面弹出来,欢迎加入我们。

这时候这些欢迎你的同事,对于你来说,是单播消息,也就是ospf里面的Init状态,你收到了对方的hello报文消息,但是对方的通讯录里面并没有你。

在这里插入图片描述

这时候你就开始蠢蠢欲动了,在想,部门同事我得赶快一个一个的加上去,联络一下感情,要不没法做事,转正还要靠他们指点。

我加,我加,我使劲加好友…

hello,我是新入职的同事,名字叫做,“工程师江湖——售后”,请多多指教。

对方回你消息了,你们的点对点建立成功了,在OSPF里面叫做2-Way状态。

稍等,在这个里面会发生一件悄无声息的小战争,占据制高点。
在公司总会有上下级。
老员工,新员工。
大神,菜鸟的区别。

这时候2-way状态下就是在无声无息的争这个事情。
也就是DR,BDR的选举。

前提,你不是外包人员,如果是外包人员,伙计,我只能说你被默认放弃了,大家都不会拿你很当做一回事。

哪怕是在OSPF协议里面也是这样残酷。
你是外包人员,那么很抱歉,你的优先级为0,累的,麻烦的你来做,轻松的也是能让你做,就尽量让你做。
在这里插入图片描述

在OSPF协议里面,优先级为0的设备是不能参与DR,BDR的竞争的。

新入职的员工:我好歹也是实战经验丰富,自信和别人差距不是很大。

寒暄着,慢慢进入小型战争状态。

我最近也是有点烦,IE认证要到期了,你的到期没有?
哎,我其中的一个安全IE证书快到期了,不打算考了。

我擦,多IE,赶紧认怂,话题跳过。

无声无息在你心中,可能已经默认别人比你强了。

ospf中,这就是比较优先级,当然了还有其他的比较,这里不具体细说。

有一个问题,为什么要选举DR,DRother呢?

因为ospf是一个链路状态路由协议,具体的详细信息依靠大量的LSA报文这些泛洪,你想想,如果两两路由器之间都要交互相关信息,那么设备需要多强的性能呢?

换个思路想,在公司里面,每个管理者的下属,也就是队员不可能清清楚楚知道团队里面成员的动向,这个只有管理员知道,因为任务是它派发下去的。

也就是说有个中心点,就是DR,你们DRother统一向DR汇报,然后DR整合消息,在群里统一下下发。

如果有了DR指定转发,那么连接数关系就变为N*(N-1)个。
为了防止DR忙不过来,配置有助手BDR,DR不在,那么BDR之间选举出一个DR,这个DR负责中心节点该做的事情。

至于DRother,你们各司其职就好。
在这里插入图片描述

各位,注意一下,上面的2-way状态只是处理简单的消息,比如见面时候,hello,吃了么,等这种无关紧要的消息。

如果要进行业务上面的交集,这时候关系还要更进一步。
领接FULL,可以交换链路状态信息,同步自己的数据库,说白了就是,我知道你在做的项目,你也知道我在做的项目的具体情况,资源调用情况。

2-way以后开始进入下一个状态。

ExStart
要开始交换信息了,又有一个问题,谁先来,怎么知道这个同事确实得到过领导的授权呢?

也得加一层保险,在OSPF里面叫做隐式确认。
由于OSPF直接用IP报文来封装自己的协议报文,所以在DD报文传输的过程中必须考虑到报文传输的可靠性。

叫做主从Master/Slave选举。

好了,继续进入下一阶段,EXCHANGE状态。

这是什么?

就好像你在公司通讯录的第一眼通常都是观察部门,公司有多少部门,部门里面的每个人员大概是干什么的,连蒙带猜。

比如负责售后技术支撑,售前支持等。

exchage阶段就是了解部门的介绍信息,包括部门这个整体是做什么的,部门里面的人员大概负责什么的。

ospf里面就是叫做DBD报文,数据库描述报文,描述本地LSDB信息。

换成书的目录,你可能会更好理解点。
在这里插入图片描述

ok,这个阶段完事了,下一个阶段,Loading状态

企业中遇到业务情况,我先知道找哪一个部门,然后根据部门的这个人员划分,去找这个负责人进行申请,我需要这方面的人要支持等等类似。

ospf里面就是使用LSR请求报文,然后会收到一个具体的LSU报文信息。

也就是这个员工具体可以提供的能力支持,负责人发给你这份能力表,收到的这个具体能力描述信息就是LSA报文。

收到了,回复一下这个管理人员,我知道你的队员能够做什么了,就是LSAck报文。

绕死我了,只能这样喽。
在这里插入图片描述

然后不断的交互,同步,最后发现,遇到了对的人,他就是我要找的那个技术支持人员,FULL状态,所有人的LSDB同步。

总结一下:
在这里插入图片描述

来源公众号:工程师江湖

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