概述:

OSPF(开放式最短路径优先)协议是IETF组织开发的一个基于链路状态的AS内部的IGP,广泛运用在接入网和城域网中。

在OSPF出现之前,网络上广泛使用RIP作为内部网关协议。但由于RIP是基于距离矢量算法的路由协议,存在着收敛速度慢、路由环路、可扩展性差等问题,所以最终逐渐被可全面解决RIP的这些问题的OSPF所取代,RIP到现在都有很多小BUG没有解决,已经基本上没有进行使用了。目前针对IPv4的是OSPFv2版本,针对IPv6的是OSPFv3版本,此笔记内容为OSPFv2。

OSPF网络拓扑设计原理:


设计原理:

  1. OSPF把自治系统划分成逻辑意义上的一个或多个区域,所有其他区域必须与区域0相连。区域0称为骨干区域,一个AS中只能有一个骨干区域。
  2. OSPF通过RID来标识路由器,RID是一个32比特无符号整数。并且要求在一个AS中每个路由器ID必须唯一,为什么要这么规定呢,我们等会在后面进行讨论。
  3. 在OSPF中,一条链路只属于一个区域。

设备角色:

  1. 区域内路由器IR(Internal Router):该类设备的所有接口都属于同一个OSPF区域。
  2. 区域边界路由器ABR(Area Border Router):该类路由器可以同时属于两个以上的区域,但其中一个接口必须在骨干区域。ABR用来连接骨干区域和非骨干区域,它与骨干区域之间既可以是物理连接,也可以是逻辑上的连接(虚连接)。
  3. 骨干路由器BR(Backbone Router):该类路由器至少有一个接口属于骨干区域。所有的ABR和位于Area0的内部路由器都是骨干路由器。
  4. 自治系统边界路由器ASBR(AS Boundary Router):与其他AS交换路由信息的路由器称为ASBR。ASBR并没有特定的位置要求,它可能位于普通的区域,也可能是ABR。只要一台OSPF路由器引入了外部路由的信息(产生5类或者7类LSA),它就成为ASBR。

OSPF划分区域的原因:

OSPF区域分类:

OSPF定义区域类型为四种:骨干区域(Area0)、 普通区域(Normal Area)、Stub 区域及NSSA区域(两种特殊区域,后续特殊区域专题进行分析)。骨干区域有且只有一个,所有其他区域必须同骨干区域相连,如果没有连接到骨干区域,将不会学到其他区域路由,OSPF中所有区域间路由必须经骨干区域传递。其他区域若没有连接到骨干区域,要使用Vlink连接到骨干区域。

骨干区域不能被分割,一旦分割,必须使用Vlink连接分割的骨干区域使之连续。也可以使用GRE隧道连接被分割的区域, OSPF 这种特殊的分层的设计结构用来避免区域间的路由所致的环路,具体在后续区域间路由计算的时候进行分析。

OSPF网络类型:

四种类型:

OSPF支持的网络类型有四种:ospf中有这么多网络的类型是为了适应不同的网络,例如带宽大的可以多发点报文,带宽小的链路就少发点等等。

  1. 点到点P2P类型:当链路层协议是PPP、HDLC时,缺省情况下,OSPF认为网络类型是P2P。在该类型的网络中,以组播形式(224.0.0.5)发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文);自动组播建立邻居,hello 10s,Dead 40s,不选举DR和BDR。
  2. 点到多点P2MP 类型(Point-to-Multipoint):没有一种链路层协议会被缺省的认为是Point-to-Multipoint 类型。点到多点必须是由其他的网络类型强制更改的。常用做法是将非全连通的NBMA改为点到多点的网络。在该类型的网络中以组播形式(224.0.0.5)发送Hello报文,以单播形式发送其他协议报文(DD报文、LSR报文、LSU报文、LSAck报文);只有手动进行部署,组播更新建立邻居,hello30s,Dead 120s,不选DR和BDR。
  3. NBMA类型(Non-broadcast multiple access):当链路层协议是ATM或FR时,缺省情况下,OSPF认为网络类型是NBMA。在该类型的网络中,以单播形式发送协议报文(Hello报文、DD报文、LSR报文、LSU报文、LSAck报文);只有单播指邻居,因为NBMA的环境中不允许组播和广播的报文,hello30s,Dead 120s,因为是多路访问的环境,也需要选举DR和BDR。
  4. 广播类型(Broadcast):当链路层协议是Ethernet、FDDI时,缺省情况下,OSPF认为网络类型是Broadcast。在该类型的网络中,通常以组播形式发送Hello报文、LSU报文和LSAck报文。其中,224.0.0.5的组播地址为OSPF路由器的预留IP组播地址;224.0.0.6的组播地址为OSPF DR的预留IP组播地址。以单播形式发送DD报文和LSR报文;自动组播建立邻居,hello 10s,Dead 40s,选举DR和BDR。

总结:(图中)

网络类型 操作方式
NBMA 单播发送所有报文(需手动单播指邻居):HELLO 30 DEAD 120
P2P HDLC、PPP:组播发送所有报文:HELLO 10 DEAD 40
P2MP 需要手动修改;组播发送HELLO(单播发送其它:HELLO 30 DEAD 120
Broadcast Ethernet组播发送HELLOLSU、LSACK,单播发送DD、LSR:HELLO 10 DEAD 40

不同网络类型之间能否建立邻居关系:

由于特殊的网络结构,NBMA网络只能和NBMA网络进行邻居的建立。

P2MP和P2P,具体计算拓扑的方式一致,只要hello和dead时间一致的话也能建立好邻居,如果不一致肯定是无法正常建立的,例如一端的dead时间为40s,另一端的hello时间为50s,这样在死亡时间结束后都没有办法收到对方的hello报文,就认为邻居消失,但是又经过10s,又收到了hello报文,就十分的不合理,所以最后要求必须hello和死亡时间相同才能建立邻居关系,报文内带有相应的参数,通常情况下dead时间是hello时间的4倍。

Broadcast和P2P或者P2MP时间间隔一致后,能正常建立邻居,但是因为Broadcast接受信息以后进行路由的计算是按照多路访问环境计算的,而P2P或者P2MP是按照点到点链路的方式进行计算的(具体计算的差别在后面进行相应的分析)所以无法正常计算出路由条目来。

实验:验证不同网络类型之间建立邻居关系的情况

模拟器:eNSP

因为目前以太网链路,默认是识别的为broadcast网络,我们查看邻居关系:

观察路由条目是否学习到,在R1上:已经能够正常学习到路由

现在将R2的一端修改为P2P模式:
[R2-GigabitEthernet0/0/0]ospf network-type p2p
因为hello时间和dead时间还是没有改变,邻接关系是应该能够正常建立的:

但是现在查看是否能学习到路由条目:没有学习到

现在将R1这端修改为P2MP,然后查看邻居关系能否正常建立:
[R1-GigabitEthernet0/0/0]ospf network-type p2mp
查看邻居关系:建立不成功,因为hello时间和dead时间不一致

现在我们将R1这端hello和dead时间修改为10s和40s:
[R1-GigabitEthernet0/0/0]ospf timer hello 10 //dead time自动变为原来的hello time的四倍
现在查看邻居关系建立是否完成:建立成功

查看是否获得了路由条目:成功获取路由条目

注意:
建议配置的dead时间大于20秒。如果失效的时间小于20秒,可能会造成邻居会话的中断。 修改了网络类型后,Hello与Dead定时器都将恢复缺省值。

OSPF报文类型:

要理解OSPF路由协议的工作原理,特别是路由更新机制,需要要对它的各种报文格式有一个全面的了解。OSPF报文主要有5种:Hello报文、DD (Database Description,数据库描述)报文、LSR (LinkState Request,链路状态请求)报文、LSU(LinkState Update,链路状态更新)报文和LSAck(LinkState Acknowledgment,链路状态应答)报文。它们各自在OSPF路由更新中所担当的用途不一样,报文格式也存在比较大的差别。LSA报文是LSU报文中的具体报文,有着不同的种类。

具体格式在OSPF报文格式的专题分析。

OSPF邻接关系建立过程:


R1和R2通过交互Hello报文,建立邻居关系。
涉及三个状态机:down、init、2-way。


在邻居关系建立后,双方交互DD、LSR、LSA、LSAck报文完成数据库同步。
涉及四个状态机:ExStart、Exchange、loading和Full。

具体内容再OSPF邻接关系建立专题分析。

参考资料:华为HCIE培训资料。

OSPF基础内容与网络类型实验相关推荐

  1. 2021-09-19OSPF接口网络类型实验

    OSPF接口网络类型实验 1.实验要求 2.实验拓扑图 本图中已经标明各网段地址 3.R1到R6路由器上的相关配置 R1 dis current-configuration [V200R003C00] ...

  2. OSPF的四种网络类型详解

    OSPF的四种网络类型 BMA网络 P2P网络 NBMA网络 P2MP网络 不同网络类型是否可以建立邻居 OSPF链路认证 注意:loopback接口默认OSPF网络类型为P2P,但是生成路由的网络掩 ...

  3. 路由 OSPF常见4种网络类型MA、P2P、NBMA、P2MP、OSPF报头字段信息简介。

    4.2.1 路由 OSPF(OSPF常见4种网络类型.OSPF报头信息) 目录 OSPF常见的4种网络类型 广播类型(Broadcast 或 MA) P2P NBMA P2MP OSPF报文发送形式 ...

  4. 【OSPF】OSPF的4种网络类型

    文章目录 P2P(Point-to-Point 点对点) P2MP(Point ti Multi-Point 点到多点) BMA(Broadcast Multiple Access 广播多路访问) N ...

  5. OSPF的LSA和网络类型

    OSPF:开放式最短路径优先协议 无类别链路状态路由协议,组播更新224.0.0.5/6:跨层封装到三层,协议号89: 基于拓扑工作,故更新量大-----需要结构化部署--区域划分.地址规划 触发更新 ...

  6. OSPF的几种网络类型

    CCNP OSPF协议详解 标签:CCNP 职场 OSPF 休闲 OSPF(Open Shortest Path Fitst,ospf)开放最短路径优先协议,是由Internet工程任务组开发的路由选 ...

  7. ospf的四种网络类型

    原文链接:https://blog.csdn.net/weixin_37945631/article/details/79498334 https://blog.csdn.net/qq_3921960 ...

  8. 通过帧中继验证OSPF支持的不同网络类型

    帧中继交换机使用路由器R2进行模拟: R2: Router(config)#host FW-sw FW-sw(config)#frame-relay switching         //开启路由器 ...

  9. OSPF网络类型详解

    背景 OSPF区域是由不同类型的网络链路组成的,邻接行为随网络类型而异,而要确保OSPF在某些类型的网络上能正确运行,必须对其进行正确的配置.根据拓扑和需求的变化,OSPF可以手工修接口的网路类型来适 ...

  10. OSPF详解(三):OSPF中的网络类型

    并不是ospf网络上一定存在DR和BDR,ospf根据链路层媒体不同可以划分为四种网络类型(或者叫接口工作模式). 1.  如果路由器接口连接的是ethernet网络,那么默认ospf网络类型是Bro ...

最新文章

  1. idea ctrl+alt+t快捷键
  2. 怎样判断RadioButtonList控件是否有选择
  3. To-do-List
  4. 浅谈PHP面向对象编程(九)
  5. python定义区间[-5、5_有一个数 x 在区间 [-5,0] 内 , 写出其条件表达式 。 (5.0分)_学小易找答案...
  6. 用Netty撸一个心跳机制和断线重连!
  7. Linux系统编程20:基础IO之从内核代码深刻理解Linux是如何管理文件及文件描述符的本质是什么
  8. [转贴]JAVA:RESTLET开发实例(三)基于spring的REST服务
  9. 在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。未找到或无法访问服务器。请验证实例名称是否正确并且 SQL Server 已配置为允许...
  10. 未来经济会发展到什么程度?
  11. AtomicStampedReference解决CAS的ABA问题
  12. php 环信easyui_环信easeui集成:坑总结2018
  13. TortoiseGit客户端安装及使用(上传代码到git@osc
  14. 云擎供应链:为中小仓库提供SaaS供应链解决方案
  15. Android机顶盒adb调试及一直显示offline的处理
  16. springboot项目启动报Ambiguous mapping. Cannot map ‘xxxController‘ method
  17. Unity游戏神经网络版坦克大战
  18. python 战舰_Python战舰随机数发生器
  19. 抓包精灵app使用教程
  20. android service拦截按键,android里面屏蔽home键/禁止Home键或者随你DIY

热门文章

  1. 基于DEAP库的python进化算法-2.进化算法各元素的DEAP实现
  2. 统计学习方法读书笔记6-K近邻算法及代码实现
  3. 你的烂代码终于有了解决方案
  4. 微软全球资深副总裁张亚勤先生力作——《变革中思索》连载
  5. 分享程序员成长故事 解析IT职场困惑
  6. unicodedata模块
  7. Xception: DeepLearning with Depthwise Separable Convolutions2017Google【论文理解】
  8. 【数据结构笔记】快速排序(quickSort)和快速选择(findKthLargest)--Python3
  9. 学而思编程python软件怎么样_学而思编程社区缺点详细分析
  10. 性能优化篇 之 如何开展优化类的工作(2)