网络工程师 HCIP 保姆级别之 OSPF 路由协议基础入门 上

            首先,我们应该知道,路由器或者其它三层网络设备都是根据路由表转发数据包,而路由表项可通过手动配置动态路由协议生成。

           而ospf 就是现在实际工作中动态路由协议使用得最多的一种,今天就让我们由零开始,仔细一步步剥开深入了解这个路由协议吧。

          唠叨一下,为什么有的人说ospf一辈子也很难完全搞懂,而初学者却觉得ospf很简单,学起来也就那几条命令,虽然不明白它的工作,但自己平常工作中也经常在用,玩得很6,但是,当你要往专业方向深入一点走,或者找一份薪资更好的工作,在面试官面前,你就6不起来了,毕竟作为一名专业的网络工程师,会用协议,也要了解其工作原理。

面试官也要问(ospf经常会问,自己实践出来的)。

所以,我们要抱着【知其然,知其所以然也】的态度,这样才能避免找工作时被刷。

目录

一 . 背景和概述

1. 路由协议分类

2. OSPF概述

3. OSPF优点

 二. ospf基础概念

1.概念

2. OSPF三张表

3. OSPF 5 种类型的报文(面试可能会问)

三 . OSPF工作过程

1.大概步骤

2.工作详细步骤

3.七大状态:


废话不多说,直接来吧!

网络工程师 HCIP 保姆级别之 OSPF 路由协议基础入门 上_第1张图片


一 . 背景和概述

1. 路由协议分类

网络工程师 HCIP 保姆级别之 OSPF 路由协议基础入门 上_第2张图片

不知为何,照片上传就模糊

问:算法之间有何区别?

区别:

距离矢量路由协议

网络工程师 HCIP 保姆级别之 OSPF 路由协议基础入门 上_第3张图片

运行距离矢量路由协议的路由器周期性地泛洪自己的路由表。通过路由的交互,每台路由器都从相邻的路由器学习到路由,并且加载进自己的路由表中,然后再通告给其他相邻路由器。

简单来说

对于网络中的所有路由器而言,路由器并不清楚网络的拓扑,只是简单的知道要去往某个目的网段至于方向在哪里,开销有多大它不知道,它只是按最短跳数来计算距离(最大距离15跳)

链路状态路由协议 - LSA泛洪

网络工程师 HCIP 保姆级别之 OSPF 路由协议基础入门 上_第4张图片

链路状态路由协议通告的的是链路状态而不是路由信息。

运行链路状态路由协议的路由器之间首先会建立邻居关系,然后彼此之间开始交互LSA(Link State Advertisement,链路状态通告)。

举个例子:如果路由器A要访问路由器B。

         运行距离矢量协议的话,它的度量值就是最短跳数,上面是3跳,下面是2跳,所以它会走下面的路径,可是,虽然路径是短了,但明显上面带宽更大,传输效率会更快,这样就白白浪费带宽了。

        如果此时运行的是链路状态协议,那么它就会发送LSA包,计算详细的链路状态信息,从而走上面带宽更大的路径。

网络工程师 HCIP 保姆级别之 OSPF 路由协议基础入门 上_第5张图片

//最优路径的衡量值就是带宽,带宽越大,传输的数据才越多,例如上图R3,去往R2的路径是走R4。


2. OSPF概述

OSPF是IETF定义的一种基于链路状态的内部网关路由协议。目前有2个版本,针对IPv4协议使用的是OSPF Version 2(RFC2328);针对IPv6协议使用OSPF Version 3(RFC2740)。

//就是我们实际工作中,接触的网络类型IP地址是IPv4,就选version 2就好,目前我们国内使用ipv4的还是比较多,IPv6还没真正应用开来。

 3.ospf优点:

基于SPF算法,以“累计链路开销”作为选路参考值。

采用组播形式收发部分协议报文    //只有开启ospf的设备才会收到报文,节省开销。

支持区域划分:每个区域的路由器只保留本区域的链路状态信息(LSDB),这样可以使得路由器的链路状态数据库不会过大。 这也使得ospf能很好应用于大型网络。

支持对等价路由进行负载分担

支持报文认证


 二. ospf基础概念

1.概念

Router ID

是一个32为的无符号整数,表现形式跟IP地址一样,但route ID 不是IP!

ospf正常工作必须配置router id,类似一个身份证,用于网络中标识具体的设备,要求不能重复

实际工作中一般都是手工配。

 区域

为了减小数据库LSDB的规模,然后让SPF计算更快速,所以采用划分区域。

 度量值“COST”

Ospf计算度量值的方法 :  带宽/接口开销

//实际工作中一般都是手工写开销,“cost” =“开销”。

默认参考带宽为100Mbit/s

[AR4-ospf-1]bandwidth-reference //修改OSPF参考带宽值。

网络设备中没有小数概念,只有整数概念,当计算之后的取值有小数的时候只取整数位,没有四舍五入。

所有小于1的取值,都取1。

网络工程师 HCIP 保姆级别之 OSPF 路由协议基础入门 上_第6张图片

 例:例如带宽100M,从路由器R1 访问PC 2,开销值为多少?

答:先计算接口开销值:8+2+6=16

      那么ospf的开销就为 100/16   (开销值 =  带宽除以接口开销值)

2. OSPF三大表项

    OSPF路由表,邻居表,链路状态表;

    邻居表:显示了OSPF路由器之间的邻居状态,使用display ospf peer查看。

网络工程师 HCIP 保姆级别之 OSPF 路由协议基础入门 上_第7张图片

    链路数据库表:LSDB会保存自己产生的及从邻居收到的LSA信息,本例中R1的LSDB包含了三条LSA,使用display ospf lsdb查看。

网络工程师 HCIP 保姆级别之 OSPF 路由协议基础入门 上_第8张图片

   OSPF路由表:  OSPF路由表和路由器路由表是两张不同的表。本例中OSPF路由表有三条路由。 OSPF路由表包含Destination、Cost和NextHop等指导转发的信息,使用display ospf routing查看。。

网络工程师 HCIP 保姆级别之 OSPF 路由协议基础入门 上_第9张图片


3.        5种类型的报文(面试可能会问)

OSPF报文直接采用IP封装,在报文的IP头部中,协议号为89。

报文:

Hello报文:用于发现和建立邻居关系。(目的地址224.0.0.5)

DD报文:主从关系协商,描述LSA的摘要信息。

LSR报文:请求特定的链路状态信息

LSU报文:发送详细的链路状态信息

LSA:用于确认报文

更详细一步

Hello包有一个确认机制:

A给B发送一个hello包,第一次里面邻居router-id为空。

B也给A发一个hello包,第一次同样为空。

A再给B发送一个hello包,这次里面写上我的邻居包含B( B 的router-ip),因为上次B给A发过一次hello包,所以A这次发送的hello包里面携带着邻居B。

B收到hello包后看到里面已经有自己的信息,就确定了。

在以太网链路上,缺省时,OSPF采用组播的形式发送Hello报文(目的地址224.0.0.5)。

DD报文的作用:

  1. 发送空DD报文,选举主从关系,以保证DD报文传输的可靠性,这是必不可少的第一步,  没选举不传递LSA的摘要。
  2. 主从关系以router-id 大的为主
  3. 同步LSDB的摘要信息。

此处不明白没关系,下面在工作过程中会体现出来,更有助于理解,可以看完下面再回过头来看看。


三 . OSPF工作过程

1.大概步骤

  1. 每个设备都发送自己的LSA给其它设备。
  2. 每台发送DD报文进行主从选举。
  3. 每个设备都收集来自其它设备的LSA信息,形成自己的LSAB。
  4. 每个设备基于LSAB库,根据SPF算法进行计算,计算出一个以自己为根,无环,最短路径的“树”。
  5. 计算完成,生成ospf路由表。

2.具体工作详细步骤    ! ! !  (重要)

网络工程师 HCIP 保姆级别之 OSPF 路由协议基础入门 上_第10张图片

建立邻居关系

第一阶段  (hello报文)

设备刚刚都开始运行OSPF,还没发送任何报文,此时状态为 Down

第二阶段   (hello报文)

R1开始向周围R2, R3 交互hello报文,此时hello报文里面携带的邻居router-id 为空(第一次),同样收到R2,R3 发来的hello报文,发现他们发来的hello报文里面携带的邻居中也没自己的router-id。

此时状态进入Init。

第三阶段   (hello报文)

发现其它设备发来的hello报文中有携带自己的router-id,进入2-way状态

运行ospf的设备继续交互hello报文 ,例如 R1 此时收到R2的hello报文,发现R2发来的hello报文中里面有携带者自己的Router-id,R2也发现R1发来的报文中携带着自己的Router-id,此时进入2-WAY状态,标志建立邻居状态

建立邻接关系

第四阶段   (DD报文)

设备开始互相发送空 DD报文,刚开始发送的DD报文中,主设备都为自己本身,通过一轮比较,router-id大的最终为主设备,小的为从设备,完成主从选举,此时为Exstart 状态。

第五阶段  (DD报文)

完成主从选举,进入Exchange状态。 开始发送LSA摘要信息的DD报文。可以大概理解互相为告诉周围设备,自己有哪些路由链路状态信息。

第六阶段   (DD报文)

开始请求自己没有的链路状态信息,进入loading状态

第七阶段

完成所需链路信息的交互,形成ospf路由表,进入full状态,形成最终的邻接状态

3.七个状态:

Down:没有发现任何OSPF邻居

Init:发现了OSPF邻居。

2-WAY:收到了OSPF邻居的hello报文。并且发现对方的active-neighbor有自身的RID。(DR,BDR选举)

Exstart:用于发送空的DD报文,相互进行主从选举。

Exchange:当主从选举确定之后,进入exchange状态发送有LSA摘要信息的DD报文。

loading:当收到了对方的DD报文之后,同时发现M=0,将会进入到loading状态,请求自身没有的LSA。

Full:当自身请求列表中,所有待接待的LSA,对方都发送过来之后,将会进入到full状态。

网络工程师 HCIP 保姆级别之 OSPF 路由协议基础入门 上_第11张图片

参考文档为菊花厂公开HCIP学习文档,大家可去自由去下载。

第二次写东西,不对的请多多指教,主要记录一下自己的学习过程,当然,如果还能帮到大家就更好了~

你可能感兴趣的:(网络工程师,网络,p2p,网络协议)