OSPF基础学习-实验报告

这篇具有很好参考价值的文章主要介绍了OSPF基础学习-实验报告。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

学习目标:

通过边学习理论,边实验的方式学习OSPF的工作过程,加深对OSPF协议的理解。实验环境通过华为eNSP模拟器搭建。

本文为个人学习实验记录,如有错误或不合适的地方欢迎批评指正。


学习内容:

1.实验拓扑

OSPF基础学习-实验报告

 2.基本配置

2.1 AR01 

sysname AR01
router id 1.1.1.1 
interface Serial1/0/0
 link-protocol ppp
 ip address 10.1.13.1 255.255.255.0 
interface GigabitEthernet0/0/0
 ip address 10.1.12.1 255.255.255.0 
interface LoopBack0
 ip address 1.1.1.1 255.255.255.255 
#
ospf 1
 area 0.0.0.0 
  network 1.1.1.1 0.0.0.0 
  network 10.1.12.1 0.0.0.0 
 area 0.0.0.1 
  network 10.1.13.1 0.0.0.0 
#

2.2 AR02

sysname AR02
router id 2.2.2.2 
interface GigabitEthernet0/0/0
 ip address 10.1.12.2 255.255.255.0 
interface GigabitEthernet0/0/1
 ip address 10.1.24.2 255.255.255.0 
interface LoopBack0
 ip address 2.2.2.2 255.255.255.255 
#
ospf 1 
 area 0.0.0.0 
  network 2.2.2.2 0.0.0.0 
  network 10.1.12.2 0.0.0.0 
 area 0.0.0.2 
  network 10.1.24.2 0.0.0.0 
#

2.3 AR03

sysname AR03
router id 3.3.3.3 
interface Serial1/0/0
 link-protocol ppp
 ip address 10.1.13.3 255.255.255.0 
interface LoopBack0
 ip address 3.3.3.3 255.255.255.255 
#
ospf 1 
 area 0.0.0.1 
  network 3.3.3.3 0.0.0.0 
  network 10.1.13.3 0.0.0.0 

2.4 AR04

sysname AR04
router id 4.4.4.4 
interface GigabitEthernet0/0/1
 ip address 10.1.24.4 255.255.255.0 
interface LoopBack0
 ip address 4.4.4.4 255.255.255.255 
#
ospf 1 
 area 0.0.0.2 
  network 4.4.4.4 0.0.0.0 
  network 10.1.24.4 0.0.0.0 
#

3.关于router-id

3.1 OSPF Router id的选举规则

华为的官方OSPF教材这么写的:

(1)手动配置OSPF路由器的Router ID(建议手动配置)
(2)如果没有手动配置Router ID,则路由器使用Loopback接口中最大的IP地址作为Router ID
(3)如果没有配置Loopback接口,则路由器使用物理接口中最大的IP地作为Router ID

本人用eNSP的模拟器,使用AR1220,未手动配置route id得到的结果并不是这样,拿R1来说:选取的router id不是环回接口,也不是物理接口最大的。

OSPF基础学习-实验报告

将模拟器中,路由器换成AR2240,结果也是这样。不知道真机是什么结果。不知道是否和模拟器有关。这个问题其实不用太纠结。所以人家第一条可能有点深远的意义:手动配置OSPF路由器的Router ID(建议手动配置)。所以,以后在实践中还是手动配置router id,这样就不会出现意想不到的结果,养成一个良好的习惯是有必要的。

3.2 全局 router id与 OSPF的router id

从模拟器实验现象来看,OSPF选择了全局route id(dis route id)作为ospf的route id。而全局router id设置的是第一个接口(按照show ip int b的顺序)的地址。

所以修改OSPF router id 可以全局配置,也可以在ospf中配置。

只设置全局router id,那么ospf router id会使用全局的。

OSPF基础学习-实验报告

OSPF基础学习-实验报告

只设置ospf router id,可能ospf router id与全局router id不一样。

OSPF基础学习-实验报告

4.查看了解OSPF三大表项

4.1 邻居表

(1)路由器在传递OSPF链路状态信息之前,首先建立OSPF邻居关系。(2)通过Hello报文建立邻居关系.(3)邻居表显示OSPF路由器间的邻居状态。

OSPF基础学习-实验报告

4.2 链路状态数据库(LSDB)

(1)LSDB会保存自己产生的及从邻居收到的LSA信息。(2)Type标识LSA的类型,AdvRouter标识发送LSA的路由器。

OSPF基础学习-实验报告

4.3 OSPF路由表

OSPF路由表和路由表不同,ospf路由表的信息不一定会加入路由表,比如直连路由。

OSPF基础学习-实验报告

 5.OSPF工作过程

5.1 OSPF报文格式和类型

OSPF有5种报文格式,5种报文头部格式相同。OSPF报文采用IP封装,IP头部协议号为89.

OSPF基础学习-实验报告

OSPF基础学习-实验报告

类型(Type) 报文名称 报文功能
1 Hello 发现维护邻居关系
2 DD(Database Description) 交互LSDB摘要信息
3 Link State Request 请求特定LS信息
4 Link State Update 发送详细的LS信息
5 Link State Ack 确认LS

5.2 OSPF工作过程

5.2.1建立邻居关系

通过发送Hello报文建立邻居关系。

(1)Down状态:邻居的初始状态,未从邻居收到任何信息。

关闭AR03与AR01连接的S1/0/0接口,AR01的邻居AR03失效。

OSPF基础学习-实验报告

 OSPF基础学习-实验报告

 (2)Init:在此状态下,路由器已经从邻居收到了Hello报文,但是自己的Router ID不在所收到的Hello报文的邻居列表中。

打开AR03与AR01连接的S1/0/0接口:console日志中提示,收到邻居10.1.13.3的Hello包,邻居之前的状态为Down,当前的状态为Init。

 OSPF基础学习-实验报告

 使用抓包工具查看端口收发报文情况,可见端口上共收发了3个Hello报文,组播地址224.0.0.5(OSPF路由器会收到)。

OSPF基础学习-实验报告

第一个Hello报文:这是AR03发出的组播报文。可见发送报文时用的是端口IP地址。

OSPF基础学习-实验报告

 第二个Hello报文:这是AR01发出的组播报文。内容和上一个类似。

OSPF基础学习-实验报告

(3)2-way:在此状态下,路由器发现自己的Router ID存在于收到的Hello报文的邻居列表中。

第三个Hello报文:这是AR01发出的组播报文,这个报文里邻居列表(Active Neighbor)包含了AR03的router id 3.3.3.3,当AR03收到后,发现自己的Router ID存在于AR01发出的Hello报文的邻居列表中 。从下图ospf日志来看,从Init状态就直接到了Exstart状态。可能这里是非MA网络的原因。

OSPF基础学习-实验报告

OSPF基础学习-实验报告

在MA网络环境中是可以看到2way状态的,DROther路由器之间的状态会保持2-way。

OSPF基础学习-实验报告

Hello报文的作用:

序号 作用 描述
1 邻居发现 自动发现邻居路由器。通过接受hello报文
2 邻居建立 完成Hello报文中的参数协商,建立邻居关系。
3 邻居保持 周期性的发送和接收,检测邻居运行状态。可以理解为心跳包

重要字段解释:

序号 字段 解释
1 Network Mask 发送报文的接口网络掩码
2 Hello Interval 发送Hello报文的时间间隔,通常为10s。
3 Router Dead Interval

失效时间,如果此时间内未收到Hello报文,认为邻居失效。通常为40s。

4 Options E:是否支持外部路由
MC:是否支持转发组播数据包
N/P:是否为NSSA区域
5 Router Priority DR优先级。默认为1。如果设置为0,则路由器不能参与DR或BDR的选举。这里是串行口抓的报文,因为是P2P链路,所以不需要选举DR和BDR。
6 Designated Router
DR的接口地址。这里不需要选举,所以为0.0.0.0
 
7 Backup Designated Router BDR接口地址。这里不需要选举, 所以为0.0.0.0

O:

OSPF基础学习-实验报告

5.2.2建立邻接关系

(4)ExStart:邻居状态变成此状态以后,路由器开始向邻居发送DD报文。在此状态下发送的DD报文不包含链路状态描述。可以理解为此时准备交换信息(链路状态摘要)。

DD报文:

OSPF基础学习-实验报告

下图AR03发给AR01的第一个DD报文,I=1:Init,AR03发出的第一个DD报文;M=1,More,后面还有DD报文;MS=1,Master,我是主。DD序列号4874。开始都认为自己是主。

OSPF基础学习-实验报告

下图为AR01发给AR03的第一个DD报文,内容和上图类似。自己发出的第一个DD报文都认为自己是主,因为还不知道别人的情况。

OSPF基础学习-实验报告

(5)Exchange:在此状态下,路由器与邻居之间相互发送包含链路状态信息摘要的DD报文。可以理解为此时互相交互信息(链路状态信息摘要)。

OSPF基础学习-实验报告

下图为AR01发给AR03的第二个DD报文。与前面不同的是,报文中添加了摘要信息。DD序列号为4874,为AR03发给AR01的序列号,即用对方的序列号发送。为什么AR01首先给AR03发送带有摘要信息的DD报文,并且使用AR03的序列号呢?因为AR03的route id 3.3.3.3 比AR01的1.1.1.1大。所以前两个互相发送的DD报文的一部分意义是,选举谁是Master。这里选举AR03是Master,AR01是Slave,所以AR01中的M=0。

OSPF基础学习-实验报告

 之所以叫摘要信息,因为只是简单的描述了LSA的信息,包括LS ID,通告路由器等。从路由器告诉主路由器自己拥有摘要的信息。

OSPF基础学习-实验报告

下图为AR03发给AR01的DD报文(含摘要的):序列号为4874+1。主路由器把自己的摘要信息也告诉从路由器。

OSPF基础学习-实验报告

 下图为AR01发给AR03的DD报文(不含摘要的):序列号为4874+1,即用对方序列号回复。从路由器告诉主路由器,我收到了你的摘要信息。

OSPF基础学习-实验报告

 (6)Loading:在此状态下,路由器与邻居之间相互发送LSR报文、LSU报文、LSAck报文。

 OSPF基础学习-实验报告

下图为AR01发给AR03的LS request报文,内容为要进行请求的信息。简单说就是把自己想要的东西告诉对方。

OSPF基础学习-实验报告

下图为AR03回给AR01的LS Update报文,内容为请求的信息的详细回复。这里就不仅仅是摘要信息了,还包含了路由信息。

OSPF基础学习-实验报告

下图为AR01对AR03的LS Update报文的确认。告诉对方收到了对方的哪些信息。

 OSPF基础学习-实验报告

 (7)Full:路由器已完成了与邻居的LSDB同步。经过上面信息交换,完成了LSDB的更新。

OSPF基础学习-实验报告

注意:经过多次抓包会发现,每次和每次相互发包的顺序不一定一样。所以这里分析报文只是为了加深理解OSPF的工作过程。做实验有利于加深对理论知识的消化。

5.3 DR与BDR

5.3.1DR与BDR的作用

在MA网络中选举DR:
DR(Designated Router,指定路由器)负责在MA网络建立和维护邻接关系并负责LSA的同步。DR与其他所有路由器形成邻接关系并交换链路状态信息,其他路由器之间不直接交换链路状态信息。为了规避单点故障风险,通过选举BDR(Backup Designated Router,备份指定路由器) ,在DR失效时快速接管DR的工作。

上面的实验因为用的PPP链路,所以没有选举DR和BDR,因为既然是点到点,那么链路上只有这2台路由器,选举就没有意义了。

MA网络,multiple access 网络的简称,中文意思是多路访问。MA网络是指一条链路上有多个访问点,一般分为两种:广播式多路访问网络、非广播式多路访问网络。

1、广播式多路访问网络一般指的是以太网,这种网络是支持广播发送的,正常情况下,DR只在多路访问时选取;

2、非广播式多路访问网络(NBMA),一般常见的有帧中继, ATM等网络,在这种网络上广播是无法发送的。

5.3.2DR与BDR的选举规则

(1)DR/BDR的选举是非抢占式的。既然选好了就不能随意变更。
(2)DR/BDR的选举是基于接口的。接口的DR优先级越大越优先。接口的DR优先级相等时,Router ID越大越优先。

5.3.3不同网络类型中DR与BDR的选举操作

OSPF网络类型

常见链路层协议

是否选举DR

是否和邻居建立邻接关系

Point-to-point

PPP链路;HDLC链路

Broadcast

以太网链路

DR与BDR 、DRother建立邻接关系

BDR与DR 、DRother建立邻接关系

 DRother之间只建立邻居关系

NBMA

帧中继链路

P2MP

需手工指定

 5.3.4 修改互联接口网络类型

OSPF基础学习-实验报告

OSPF基础学习-实验报告

AR01和AR02用的以太口连接,选举了DR和BDR。可以在OSPF中将端口类型改为P2P,从而关闭选举。官方:如果同一网段内只有两台设备运行OSPF协议,建议将接口的网络类型改为P2P网络。

OSPF基础学习-实验报告

 OSPF基础学习-实验报告

注意:一台路由器端口改成了P2P,另一台不要忘了修改。尽管只修改一台能够建立邻接关系,但是路由器不会将这条线上传送过来的路由信息,加入OSPF路由表。下图中4.4.4.4 LSID在 LSDB中是存在的,但是OSPF路由表中是没有的,原因是AR01和AR02 OSPF端口类型不一致。

OSPF基础学习-实验报告

 将AR02 也改成P2P:

OSPF基础学习-实验报告

再次查看,OSPF路由表中更新了。

OSPF基础学习-实验报告

6.总结

(1)配置OSPF最好手动指定router id。

(2)OSPF的工作过程:Down-->Init-->2-Way-->ExStart-->Exchange-->Loading-->Full.

(3)一个网段只有2个路由器,建议互联接口的网络类型都修改为P2P.文章来源地址https://www.toymoban.com/news/detail-486754.html

到了这里,关于OSPF基础学习-实验报告的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【网络基础实战之路】基于OSPF协议建立两个MGRE网络的实验详解

    【网络基础实战之路】设计网络划分的实战详解 【网络基础实战之路】一文弄懂TCP的三次握手与四次断开 【网络基础实战之路】基于MGRE多点协议的实战详解 【网络基础实战之路】基于OSPF协议建立两个MGRE网络的实验详解 【网络基础实战之路】基于三个分公司的内网搭建并连

    2024年02月13日
    浏览(46)
  • Python实验报告五 python基础试题练习

    文件 一、实验目的与要求 1、掌握文件的打开和关闭的方法。 2、掌握文本文件和二进制文件文件的不同操作,如读写、重命名、删除。 3、掌握os与os.path模块文件和文件夹的操作 二、题目 1 编写程序,创建文件data.txt,共100行,第n行存放[100*(n-1), 100*n)之间的素数。 2 批量生

    2024年02月06日
    浏览(47)
  • Python实验报告四 python基础试题练习

    定义一个学校人员类SchoolPerson, 其中属性:姓名name、性别sex、年龄age;         方法:设置人员的各个属性的set_info方法;                   获取各属性值的get_info方法。   定义好类以后,再定义2个人员进行测试。  在第1个题的基础上添加两个方法: 其中,__init__()方

    2023年04月26日
    浏览(66)
  • Python实验报告三 python基础试题练习

    1、编写函数求三个整数的最大值,函数原型为 def max3(a, b, c) 2、编写函数main()接收一个包含若干整数的列表参数lst,要求返回其中大于8的偶数组成的新列表,如果不存在就返回空列表。如果接收到的参数lst不是列表或者列表中不都是整数,就返回‘数据不符合要求’。 3、函

    2023年04月19日
    浏览(106)
  • Java面向对象程序设计实验报告(实验二 面向对象基础练习)

     ✨ 作者: 命运之光  ✨  专栏:Java面向对象程序设计实验报告 目录 ✨一、需求设计 ✨二、概要设计 ✨三、详细设计 ✨四、调试结果 ✨五、测试结果 ✨附录:源程序代码(带注释) 测试类demo2 Address类 Employee类 实验二 面向对象基础练习 实验环境: Eclipse+JDK 实验目的:

    2024年02月06日
    浏览(75)
  • 【机器学习】决策树实验报告

    三、实验目的 利用决策树算法对数据进行训练建模,并实现输入一组数据就能预测出结果。 四、实验内容 1 、实验背景与问题提出 决策树是一种非参数化监督学习方法,用于分类和回归。目标是创建一个模型,通过学习从数据功能推断出的简单决策规则来预测目标变量的值

    2024年02月08日
    浏览(53)
  • 机器学习SVM——实验报告

    机器学习实验四:SVM 这个需要积分下载(因为实验报告后台查重,不建议直接白嫖)。 建议看博客,博客里面会有很多实验报告小说明会用【…】加粗注释。 实验目的 掌握SVM的原理,熟悉SVM(包括软间隔和核技巧)的优化问题,并掌握其公式推导过程。 能使用SVM解决实际

    2024年02月02日
    浏览(44)
  • Web前端技术基础实验报告四之列表实现简易网站导航

    目录 Web前端技术基础实验报告 实验题目:列表实现简易网站导航 实验目的:熟悉列表实现网页的相关标签 实验内容 : 实验过程及结果: 实验题目:列表实现简易网站导航 实验目的:熟悉列表实现网页的相关标签 实验内容 : 项目1  设计简易网站导航 1. http://www.hao123.co

    2024年02月05日
    浏览(54)
  • Deepfake检测模型-PyDeepFakeDet项目复现实验报告-深度学习

    实验说明    该实验是对于https://github.com/wangjk666/PyDeepFakeDet模型的复现。 PyDeepFakeDet 是一款集成的、可扩展的 Deepfake 检测工具。目标是提供最先进的 Deepfake 检测模型以及用于在常用 Deepfake 数据集上训练和评估新模型的接口 。 该库 包括基于 CNN 和基于 Transformer 的方法的实现

    2024年02月08日
    浏览(168)
  • 人工智能学习07--pytorch21--目标检测:YOLO系列理论合集(YOLOv1~v3)

    如果直接看yolov3论文的话,会发现有好多知识点没见过,所以跟着视频从头学一下。 学习up主霹雳吧啦Wz大佬的学习方法: 想学某个网络的代码时: 到网上搜这个网络的讲解 → 对这个网络大概有了印象 → 读论文原文 ( 很多细节都要依照原论文来实现, 自己看原论文十分

    2024年02月10日
    浏览(73)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包