当前位置: 首页 > news >正文

【计算机网络】OSPF单区域实验

一:实验目的

1:掌握在路由器上配置OSPF单区域。

2:学习OSPF协议的原理,及其网络拓扑结构改变后的变化。

二:实验仪器设备及软件

硬件:RCMS交换机、网线、内网网卡接口、Windows 2019操作系统的计算机等。具体为:三层交换机1台、路由器2台。

软件:wireshark软件、记事本、Chrome浏览器等。

三:实验方案

【实验网络结构拓扑图】

通过配置动态路由协议OSPF,自动学习网段的路由信息,在区域内实现网络的互连互通。

四:实验步骤

1:按照拓扑图配置PC1和PC2 的IP地址、子网掩码、网关,测试连通性。同时,在路由器上执行show ip route命令,记录路由表信息。

PC1和PC2的配置参数,如下表所示。

PC1

PC2

IP地址

10.206.5.11

10.206.3.22

子网掩码

255.255.255.0

255.255.255.0

网关

10.206.5.1

10.206.3.1

以PC2的配置为例,如下图所示。

路由器R1初始时的路由表,如下图所示。

路由器R2初始时的路由表,如下图所示。

2:三层交换机的基本配置。

三层交换机的VLAN配置(VLAN 10和VLAN 50),如下图所示。

3:路由器R1的基本配置。

路由器R1的配置命令,如下表所示。

Configure terminal

Interface gigabitethernet 0/1

Ip address 10.206.1.1 255.255.255.0

No shutdown

Exit

Interface serial 5/1

Ip address 10.206.2.1 255.255.255.0

No shutdown

Exit

由配置命令可知,左侧通过0/1的端口接入10.206.1.1网段,右侧通过Serial的5/1端口接入10.206.2.1网段。

4:路由器R2的基本配置。

路由器R2的直连端口配置,如下图所示。

5:在交换机上配置OSPF路由协议。

交换机上的OSPF配置,如下图所示。

首先需要启动OSPF路由协议的进程(此处为1号),然后申明直连网段信息并分配区域号。

6:在路由器R1上配置OSPF路由协议。

配置路由器R1的环回IP地址的命令,如下表所示。

Configure terminal

Interface loopback 1

Ip address 10.206.100.1 255.255.255.0

路由器R1上的OSPF配置的命令,如下表所示。

Configure terminal

Router ospf 1

Network 10.206.1.0 0.0.0.255 area 0

Network 10.206.2.0 0.0.0.255 area 0

End

7:在路由器R2上配置OSPF路由协议。

配置路由器R2的环回IP地址的命令,如下表所示。

Configure terminal

Interface loopback 1

Ip address 10.206.100.1 255.255.255.0

路由器R2上的OSPF配置的命令,如下表所示。

Configure terminal

Router ospf 1

Network 10.206.2.0 0.0.0.255 area 0

Network 10.206.3.0 0.0.0.255 area 0

End

8:查看验证3台路由设备的路由表是否自动学习了其他网段的路由信息。

交换机配置后的路由表,如下图所示。可以看到有2条O项路由条目。

第1条是通过10.206.1.1能跳转到10.206.2.0/24网段。第2条是通过10.206.1.1能跳转到10.206.3.0/24网段。

路由器R1配置后的路由表,如下图所示。可以看到有2条O项路由条目。

第1条是通过10.206.2.2能跳转到10.206.3.0/24网段。第2条是通过10.206.1.2能跳转到10.206.5.0/24网段。

路由器R2配置后的路由表,如下图所示。可以看到有2条O项路由条目。

第1条是通过10.206.2.1能跳转到10.206.1.0/24网段。第2条是通过10.206.2.1能跳转到10.206.5.0/24网段。

上述路由表中的O条目,都是由路由器通过Flood方法,把自己邻接的路由信息传播给全网后更新的。

9:测试网络的连通性。

初始时,10.206.3.22向10.206.5.11进行ping操作的结果,如下图所示。可以发现两台主机并不能连通。

配置后,10.206.3.22向10.206.5.11进行ping操作的结果,如下图所示。可以发现两台主机能连通。

五:实验结果及分析

1:步骤9的问题和结果分析。

【1】将此时的路由表与初始时的路由表进行比较,有什么结论?

    每台路由设备(交换机、路由器)的路由表均自动学习了其他网段的路由信息,并将其以OSPF路由表项添加到了各自的路由表中。

【2】分析traceroute PC的执行结果。

10.206.3.22(PC2)向10.206.5.11(PC1)进行tracert操作的结果,如下图所示。

可以发现,PC2首先通过10.206.3.1进行第1跳,此时经过了路由器R2;然后通过10.206.2.1进行第2跳,此时经过了路由器R1;接着通过10.206.1.2进行了第3跳,此时经过了三层交换机;最后在三层交换机的另一侧连接到10.206.5.11。

【3】捕获数据报,分析OSPF头部结构。OSPF包在PC上能捕获到吗?如果希望2台主机都能捕获到,请描述方法。

在PC1和PC2上均能捕获到OSPF包,捕获报文如下图所示。

2台主机可以用WireShark进行OSPF包的捕获。

OSPF的头部结构,如下图所示。

OSPF报文的头部结构由Version、Message Type、Packet Length、Source OSPF Router、Area ID、Checksum、Auth Type和Auth Data字段组成。各字段的含义如下。

1. Version:8位的OSPF版本号,OSPFv2是2,OSPFv3是3。

2. Message Type:8位的OPSF报文类型,1是Hello、2是DD、3是LSR、4是LSU、5是LSAck。

3. Packet Length:16位,OSPF报文总长度包括OSPF头。

4. Router ID:32位,发送该报文的路由器标识ID。

5. Area ID: 32位,发送该报文路由器所属的区域。

6. Checksum:16位,包含除了认证字段的整个报文校验和。

7. Au Type:64位,0是不含验证信息、1是明文认证、2是MD5认证。

【4】使用#debug ip ospf命令显示上述OSPF协议的运行情况,观察并保存路由器R1发送和接收的Update分组(可以通过改变链路状态触发),注意其中LSA类型;观察有无224.0.0.5、224.0.0.6的IP地址,如有请说明这两个地址的作用。

通过debug ip ospf命令可以查看OSPF协议的动态情况,通过no debug all可以停止查看。

通过拔掉路由器R1和三层交换机间的网线,可以获得Update分组情况,如下图所示。可以发现此处的LSA类型为1,并且发送到了IP为224.0.0.5的目的地址处。

有224.0.0.5的IP地址,无224.0.0.6的IP地址。

224.0.0.5是用于OSPF路由器之间的邻居关系建立和维护的组播地址,224.0.0.6是用于OSPF的设计目的组播地址。

【5】本实验有没有DR/BDR(指派路由器/备份指派路由器)?如果有,请指出DR与BDR分别是哪个设备,讨论DR/BDR的选举规则和更新方法(通过拔线改变拓扑,观察DR/BDR的变化情况);如没有,请说明原因。

    有。可以通过在路由器中执行命令show ip ospf interface进行查看。

通过【4】的指令可以发现,在路由器R1中,一开始DR和BDR均为0.0.0.0,如下图所示。

之后DR更新为10.206.1.2,BDR更新为10.206.1.1,如下图所示。

拔掉路由器R1和交换机之间的网线后,R1的DR和BDR均更新为0.0.0.0,而R2的DR和BDR均保持不变。

DR和BDR是由同一网段中所有的路由器根据路由优先级和Router ID通过Hello报文选举出来的,只有优先级大于0的路由器才具有选举资格。进行DR/BDR选举时每台路由器将自己选出的DR写入Hello报文中,发给网段上的每台运行OSPF协议的路由器。当处于同一网段的两台路由器同时宣布自己是DR时,优先级高者胜出;如果优先级相等,则Router ID大者胜出;如果一台路由器的优先级为0,则它不会被选举为DR或BDR。

如果DR或BDR失效,或者有新的路由器加入网络并希望成为DR或BDR,那么它们将参与新的选举过程。这个过程基于上述的选举规则进行,以确保网络中始终有一个DR和一个BDR来负责网络中的路由信息传播和LSA泛洪。

2:如何查看 OSPF 协议发布的网段?

通过命令show ip ospf database,可以查看OSPF发布的网段。

在路由器R1上执行该命令的结果,如下图所示。

3:关于 OSPF 反掩码。

反掩码可以简单地理解成掩码取反,而且不允许出现不连续的1和0。例如,可以是0.0.0.11111111,但不可以是0.0.0.11110011,也不可以是0.0.0.11111100。反掩码总是奇数或0,因为其最后一位总是1,除非全部是0。

4:255.255.255.255减去子网掩码就得出反掩码。请问:192.168.2.0/28 的反掩码是多少?

192.168.2.0/28的子网掩码为255.255.255.240,255.255.255.255减去该子网掩码,得到反掩码为0.0.0.15。

六:实验总结及体会

1:在申明直连网段时,要写该网段的反掩码,并指明所属的区域。

2:LSA的类型有Router LSA、Network LSA、Network Summary LSA、ASBR-Summary-LSA、AS-External-LSA和NSSA-LSA六种类型。

  1. Router LSA:即LSA-1,其主要描述的是与该路由的直连接口的链路信息,每个路由器都会生成一条LSA-1条目,LSA-1下含p2p、stubnet、transnet、virtual四种类别。
  2. Network LSA:即LSA-2,其主要在广播或者NBMA网络类型中,用于描述伪节点的信息。
  3. Network Summary LSA:即LSA-3,其主要是将不同区域内的1类Lsa和2类Lsa进行转换,以便于其在不同区域中进行传递。只有ABR路由才能进行转换,并且LSA-3只能在本区域内泛洪。
  4. ASBR-Summary-LSA:即LSA-4,其由LSA-1转换而来,主要的作用是告诉其他区域可以通过自身来找LSA-5所包含的链路状态信息。LSA-4由ABR产生,并在OSPF的本区域内进行泛洪。
  5. AS-External-LSA:即LSA-5,当外部路由被引入到OSPF协议中时,连接外部路由的路由器会被置位为ASBR路由,并发送1条LSA-1信息,告诉邻居自己为ASBR,之后将外部路由信息以LSA-5的形式进行转发。LSA-5可以在OSPF全区域内进行转发。
  6. NSSA-LSA:即LSA-7,其是NSSA区域用于引入外部路由时生成的LSA,其只能在本区域内泛洪,在往其他区域传递时,ABR会将LSA-7转换为LSA-5,在其他区域内泛洪。

3:OSPF的分组有Hello、Database Description、Link State Request、Link State Update和Link State Acknowledgment五种类型。

4:非DR路由器将自己的LSA发送给DR,然后DR将这些LSA泛洪到整个区域,使所有路由器获得一致的LSDB,从而确保区域内路由器都能计算出相同的最短路径树。

5:在路由器中执行debug ip ospf命令时,需要推到config环境之外,即Ruijie#的环境之中。否则会出现报错unknown command。

相关文章:

【计算机网络】OSPF单区域实验

一:实验目的 1:掌握在路由器上配置OSPF单区域。 2:学习OSPF协议的原理,及其网络拓扑结构改变后的变化。 二:实验仪器设备及软件 硬件:RCMS交换机、网线、内网网卡接口、Windows 2019操作系统的计算机等。…...

Java聚合快递小程序对接云洋系统程序app源码

​一场物流效率的革命 引言:物流新时代的序章 在数字化浪潮席卷各行各业的今天,物流行业也迎来了前所未有的变革。为了进一步提升物流效率,优化用户体验,聚合快递系统与云洋系统小程序的对接成为了行业内外关注的焦点。这一创新…...

【React】详解组件通信:从基础到进阶的全面指南

文章目录 一、父组件向子组件传递数据1. 基本概念2. 示例代码3. 详解定义子组件 Son定义父组件 App导出父组件 App数据流props 的内容 二、子组件向父组件传递数据1. 基本概念2. 示例代码3. 详解引入React库和useState钩子定义子组件 Son定义父组件 App导出父组件 App数据流 三…...

【vluhub】zabbix漏洞

介绍: zabbix是对服务器资源状态例如、内存空间、CPU、程序运行状态进行检测、设置预警值、短信设置等功能等一款开源工具。配置不当存在未授权,SQL注入漏洞 弱口令 nameadmin&passwordzabbix nameguest&password POST /index.php HTTP/1.1 Host: 192.1…...

openGauss触发器详解

openGauss 是一款开源关系型数据库管理系统,广泛应用于企业级应用中。随着数据量的增长和业务逻辑的复杂化,数据库管理和操作的自动化需求越来越高。触发器(Triggers)作为数据库中重要的编程工具,能够极大地简化复杂操…...

抄作业-跟着《React通关秘籍》捣鼓React-playground-上集

文章目录 前言1. 搭建react 开发环境2、react hooks 知识3. 目标:跟着小册实现 react-playground3.1 整体布局初始化项目使用Alloment 来实现左右分屏的拖拉功能 3.2 代码编辑器Monaco Editor 3.3 实现了多文件的切换用 useContext 来共享数据。优化 tab的样式&…...

80后最后的书信 年代

当时11亿人口只有1.8万部固定电话 中国几千年来 鱼传尺素 雁寄鸿书 写信最后要写 亲啓 如有照片,封面要写内有照片,请勿折叠 信的开头应该是 见字如面,展信舒颜 如果拜托别人做事情,最后要写为盼 最后要写 某某草 书未尽…...

软考-软件设计师(4)-计算机网络与安全:OSI七层、子网划分、网络安全控制技术、网络安全协议、网络安全威胁、对称与非对称加密等高频考点

场景 软考-软件设计师-计算机网络与信息安全模块高频考点整理。 以下为高频考点、知识点汇总,不代表该模块所有知识点覆盖,请以官方教程提纲为准。 注: 博客:霸道流氓气质-CSDN博客 实现 知识点 OSI/RM七层模型 注意各层的主要功能,特别是表示层负责数据的加密、压…...

Unity横板动作游戏 -为什么我又开始学习Unity,而不是Godot。

Readme 最近开始学习Unity制作2D动作游戏,由于一些操作第一次接触,为了加深印象,准备写这样一篇同步教程的笔记。 之前也接触过Unity,用 Unity 制作过一个非常简单的小游戏 Flappy Bird,并且魔改成了泰拉瑞亚的版本。…...

什么是NIO

NIO(New Input/Output),也称为Java非阻塞IO,是从Java 1.4版本开始引入的一个新的IO API,旨在提供一种比传统的阻塞IO更高效、更灵活的IO操作方式。 一 NIO用法的详细介绍 NIO支持面向缓冲区的、基于通道的IO操作&…...

PHP switch 替代品 match

match 是 PHP 8 中引入的新特性。在 PHP 8 中,match 用作新的类型安全的替代 switch 语句。它提供了更清晰、更简洁的语法,同时还支持表达式作为条件,可以更轻松地处理复杂的条件逻辑。 在 match 表达式中,每个分支都是一个条件和…...

FastAPI(七十四)实战开发《在线课程学习系统》接口开发-- 删除留言

源码见:"fastapi_study_road-learning_system_online_courses: fastapi框架实战之--在线课程学习系统" 之前文章FastAPI(七十三)实战开发《在线课程学习系统》接口开发-- 回复留言,那么我们这次分享删除留言接口的开发…...

面试重点---快速排序

快排单趟 快速排序是我们面试中的重点,这个知识点也很抽象,需要我们很好的掌握,而且快速排序的代码也是非常重要,需要我们懂了还不行,必须要手撕代码,学的透彻。 在研究快速排序之前,我们首先…...

[MIT6.5840]MapReduce

MapReduce Lab 地址 https://pdos.csail.mit.edu/6.824/labs/lab-mr.html 论文地址 https://static.googleusercontent.com/media/research.google.com/zh-CN//archive/mapreduce-osdi04.pdf 工作原理 简单来讲,MapReduce是一种分布式框架,可以用来处理…...

【系统架构设计师】计算机组成与体系结构 ⑯ ( 奇偶校验码 | CRC 循环冗余码 | 海明码 | 模 2 除法 )

文章目录 一、校验码1、校验码由来2、奇偶校验码3、CRC 循环冗余码 ( 重点考点 )4、海明码校验 ( 软考不经常考到 ) 二、CRC 循环冗余码 ( 重点考点 )1、模 2 除法概念2、模 2 除法步骤3、模 2 除法示例4、CRC 循环冗余码示例 15、CRC 循环冗余码示例 2 参考之前的博客 : 【计…...

springboot,service 层统一异常抛出时,throws Exception写在接口上还是实现类上

springboot,service 层统一异常抛出时,throws Exception写在实现接口上,不是直接写在实现类上...

深度学习高效性网络

为了减轻Transformer笨重的计算成本,一系列工作重点开发了高效的Vision Transformer,如Swin Transformer、PVT、Twins、CoAtNet和MobileViT。 1、字节TRT-ViT 兼具CNN的速度、Transformer精度的模型 TRT-ViT(Transformer-based Vision Tra…...

PyQt ERROR:ModuleNotFoundError: No module named ‘matplotlib‘

Solution:打开cmd输入指令下载malplotlib pip install matplotlib...

Flutter Geolocator插件使用指南:获取和监听地理位置

Flutter Geolocator插件使用指南:获取和监听地理位置 简介 geolocator 是一个Flutter插件,提供了一个简单易用的API来访问特定平台的地理位置服务。它支持获取设备的最后已知位置、当前位置、连续位置更新、检查设备上是否启用了位置服务,以…...

网站基本布局CSS

代码 <!DOCTYPE html> <html> <head><meta charset"utf-8"><meta name"viewport" content"widthdevice-width, initial-scale1"><title></title><style type"text/css">body {margi…...

label-studio的使用教程(导入本地路径)

文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...

Prompt Tuning、P-Tuning、Prefix Tuning的区别

一、Prompt Tuning、P-Tuning、Prefix Tuning的区别 1. Prompt Tuning(提示调优) 核心思想:固定预训练模型参数,仅学习额外的连续提示向量(通常是嵌入层的一部分)。实现方式:在输入文本前添加可训练的连续向量(软提示),模型只更新这些提示参数。优势:参数量少(仅提…...

2025年能源电力系统与流体力学国际会议 (EPSFD 2025)

2025年能源电力系统与流体力学国际会议&#xff08;EPSFD 2025&#xff09;将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会&#xff0c;EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...

从零实现STL哈希容器:unordered_map/unordered_set封装详解

本篇文章是对C学习的STL哈希容器自主实现部分的学习分享 希望也能为你带来些帮助~ 那咱们废话不多说&#xff0c;直接开始吧&#xff01; 一、源码结构分析 1. SGISTL30实现剖析 // hash_set核心结构 template <class Value, class HashFcn, ...> class hash_set {ty…...

DBAPI如何优雅的获取单条数据

API如何优雅的获取单条数据 案例一 对于查询类API&#xff0c;查询的是单条数据&#xff0c;比如根据主键ID查询用户信息&#xff0c;sql如下&#xff1a; select id, name, age from user where id #{id}API默认返回的数据格式是多条的&#xff0c;如下&#xff1a; {&qu…...

C++ 求圆面积的程序(Program to find area of a circle)

给定半径r&#xff0c;求圆的面积。圆的面积应精确到小数点后5位。 例子&#xff1a; 输入&#xff1a;r 5 输出&#xff1a;78.53982 解释&#xff1a;由于面积 PI * r * r 3.14159265358979323846 * 5 * 5 78.53982&#xff0c;因为我们只保留小数点后 5 位数字。 输…...

IT供电系统绝缘监测及故障定位解决方案

随着新能源的快速发展&#xff0c;光伏电站、储能系统及充电设备已广泛应用于现代能源网络。在光伏领域&#xff0c;IT供电系统凭借其持续供电性好、安全性高等优势成为光伏首选&#xff0c;但在长期运行中&#xff0c;例如老化、潮湿、隐裂、机械损伤等问题会影响光伏板绝缘层…...

Map相关知识

数据结构 二叉树 二叉树&#xff0c;顾名思义&#xff0c;每个节点最多有两个“叉”&#xff0c;也就是两个子节点&#xff0c;分别是左子 节点和右子节点。不过&#xff0c;二叉树并不要求每个节点都有两个子节点&#xff0c;有的节点只 有左子节点&#xff0c;有的节点只有…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在 GPU 上对图像执行 均值漂移滤波&#xff08;Mean Shift Filtering&#xff09;&#xff0c;用于图像分割或平滑处理。 该函数将输入图像中的…...

安卓基础(aar)

重新设置java21的环境&#xff0c;临时设置 $env:JAVA_HOME "D:\Android Studio\jbr" 查看当前环境变量 JAVA_HOME 的值 echo $env:JAVA_HOME 构建ARR文件 ./gradlew :private-lib:assembleRelease 目录是这样的&#xff1a; MyApp/ ├── app/ …...