Internet动态路由选择—RIP与OSPF

刚做完网络层动态路由选择的实验,写下此篇记录实验过程,巩固学习成果。

参考书目:《计算机网络》北京理工大学出版社-刘阳老师编


路由选择可分为两种策略:

- 静态路由选择策略

- 动态路由选择策略

        静态路由即管理员手动配置路由信息,在网络拓扑结构发生变化时,需要网络管理员或者用户手动修改路由信息。此种路由策略简单、开销小,对于机器负担小,适用于小型、结构较为固定的网络。

        动态路由也叫做自适应路由选择,该种策略的路由信息由路由器内部某些算法根据网络状况计算得到,当网络拓扑结构发生改变时,算法会自动更新路由信息,而无需人为调整。由于需要频繁运行算法并监测网络状况,该种策略对机器开销较大。

        本文将会简单介绍动态路由选择策略中的两种内部网关协议:RIP(路由信息协议,Routing Infor Protocol)、OSPF(开放最短通路优先协议,Open Shortest Path First)。

一、路由信息协议 RIP

(一)RIP工作内容

        RIP通过距离向量算法来动态选择路由,其评价路由好坏的标准为距离的大小:路由器将与它直接连接的设备的距离定义为 1,非直连网络的距离则是路径上路由器的数量加 1,距离值越小,则认为路由越优。

        RIP协议规定一条路径中最大距离不超过 15,当距离为 16 时,说明该网络不可达。

        RIP仅与相邻路由器交换路由信息,交换内容为本路由器路由表中的所有内容。RIP规定相邻路由器之间每隔 30 秒就应当进行一次数据分享,当收到来自邻居的路由表时,路由器将会采用距离向量算法更新自己的路由表

(二)距离向量算法
1. 算法描述

        在接收到邻居路由器R传来的路由表信息后,针对其中的每一条路由,算法按如下步骤处理:

  1. 将路由下一条地址改为路由器 R
  2. 将跳数(距离)加 1
  3. 若路由表中不存在该路由,则直接添加到路由表中
    若存在该路由,且下一条地址相同,则用该路由替换旧路由信息
    若该路由跳数小于已存在的,则替换旧路由

        当 3 分钟内没有收到相邻路由器的路由表信息时,将该路由器标记为不可达(16 跳)

2. 缺陷

        采用距离向量算法会产生“慢收敛”现象,当某个网络出现故障时(如下图所示),与其相邻的路由器 R1 将把该网络标记为不可达(距离设为16),假若 R2 路由更新提前于 R1,R2中传来的通往故障网络的路由将会取代 R1 中原本被标记为不可达的路由(算法第3步第3条),在经过很长时间,路由跳数才慢慢抵达 16 跳。

3. 改进办法

        ①传递路由时,不将该路由从接受此信息的端口送出。②当得知路由不可达的 60 s内,不再接收关于该网络可达的信息。同时立刻向邻居广播此信息。

(三)在ENSP中调试RIP

在ENSP中新建如下拓扑

为路由器各个端口配置IP地址

【R1】
system
sysname R1
interface g0/0/0
ip address 12.0.0.1 30
quit
interface LoopBack 0
ip address 1.1.1.1 32
quit【R2】
system
sysname R2
interface g0/0/0
ip address 12.0.0.2 30
quit
interface g0/0/1
ip address 23.0.0.2 30
quit
interface LoopBack 0
ip address 2.2.2.2 32
quit【R3】
system
sysname R3
interface LoopBack 0
ip address 3.3.3.3 32
quit
interface g0/0/0
ip address 23.0.0.1 30
quit

IP地址配置完成后,进行连通性测试:

ping 12.0.0.2
ping 23.0.0.1

 

可以发现,直连网络可以成功ping通,而非直连网络无法ping通

接下来为三个路由器配置RIP协议

【R1】
interface g0/0/0
rip version 2
quit
rip
version 2
network 1.0.0.0 // 配置直连地址
network 12.0.0.0
undo summary // 取消路由聚合
quit【R2】
inter g0/0/0
rip version 2
quit
inter g0/0/1
rip version 2
quit
rip
version 2
net 2.0.0.0
net 12.0.0.0
net 23.0.0.0
undo summary
quit【R3】
inter g0/0/0
rip version 2
quit
rip
version 2
net 3.0.0.0
net 23.0.0.0
undo summary
quit

 配置完成后,测试网络连通性

Ping 23.0.0.1

 

        通过连通性测试发现,在没有手动配置路由表的情况下,两个网络之间可以相互通讯,说明路由器通过运行RIP协议,相邻路由器之间共享路由表的方式获得了包含了所有网络的路由表。

查看R1路由表

display ip routing-table

从中也可以发现由RIP产生的路由信息。

二、开放最短通路优先 OSPF

(一)OSPF工作内容

        OSPF的路由选择算法是基于Dijkstra提出的最短路径算法,该算法通过多个度量值评价路由的好坏:距离、延时、带宽等。仅在链路状态发生改变时,OSPF协议向本自治系统中所有路由发送信息(泛洪法),发送的是与本路由器相邻的所有路由器的链路状态(注意与RIP不同,OSPF不会直接发送自己的所有信息,而是只发送一个概览)。除此之外,OSPF也会定期交换信息(周期较长)。

        OSPF协议根据路由器之间信息,会总结出一个包含了网络拓扑图的链路状态数据库。

(二)OSPF区域

        为适应大规模网络路由,将自治系统进一步划分为更小的区域,每个区域有一个32位的标识符(点分十进制表示)。区域分为两级:一个主干区域和多个其他区域,主干区域标识符固定为0.0.0.0,每个区域至少有一个路由器连接到主干区域。

(三)在NESP中调试OSPF

在ensp中建立如下拓扑:

为各个接口分配并配置IP地址,并划分为三个区域:黄色—area1、蓝色(主干区域)—area0、青色—area2

AR1:
ospf 1 r 1.1.1.1
area 1
network 10.1.12.0 0.0.0.255 // 注意这里子网掩码要使用反码AR2:
un in en
ospf 1 r 2.2.2.2
area 1
network 10.1.12.0 0.0.0.255
area 0
network 10.1.23.0 0.0.0.255AR3:
un in en
ospf 1 r 3.3.3.3
area 0
network 10.1.23.0 0.0.0.255
area 2
network 10.1.34.0 0.0.0.255AR4:
un in en
ospf 1 r 4.4.4.4
a 2
n 10.1.34.0 0.0.0.255

 测试网络连通性

(忘记截图了,略过)

使用OSPF相关命令,可以帮助我们查看OSPF是怎样工作的

display ospf peer                            //查看OSPF邻居的信息
display ospf interface                       //查看OSPF接口的信息
display ip routing-table protocol ospf       //查看路由器上的OSPF路由表
display ospf lsdb                            //查看链路状态数据库

用上面的命令查看一下路由器R2

ospf接口信息:

邻居信息:

 接口状态数据库:

路由表

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/14459.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java 商品入库系统 案例

测试类 package 练习.商品入库系统;import java.util.ArrayList; import java.util.Scanner; public class Test {public static final int Enrool 1;public static final int Search 2;public static final int Delect 3;public static final int Exit 4;public static…

在docker上部署postgresSQL主从

文章目录 一、主从规划二、创建PostgresSQL的Docker镜像三、主库部署1、建立pgsql主库的data地址2、启动docker镜像3、docker内操作4、修改配置文件 四、部署从数据库1、建立psql备库的data地址2、启动docker镜像3、备库从主库同步4、检查是否同步 五、测试主从数据库 一、主从…

#2495. 滑动窗口 /【模板】单调队列

题目描述 有一个长为 ( n ) 的序列 ( a ),以及一个大小为 ( k ) 的窗口。现在这个窗口从左边开始向右滑动,每次滑动一个单位,求出每次滑动后窗口中的最大值和最小值。例如: 数组是 ([1, 3, -1, -3, 5, 3, 6, 7]), ( …

【深度强化学习】关于同一设备上cuda和gpu计算结果不一致问题

文章目录 问题描述关于seed: 跟原文一致补充:万能seed 问题结论cpu和gpu差异来源分析浮点数精度的差异补充报错:Expected all tensors to be on the same device!常见运算上的差异累加运算的差异exp运算的差异matmul运算的差异 forward上的差异&#xff…

【LeetCode 随笔】面试经典 150 题【中等+困难】持续更新中。。。

文章目录 189. 轮转数组122. 买卖股票的最佳时机 II55. 跳跃游戏45. 跳跃游戏 II274. H 指数 🌈你好呀!我是 山顶风景独好 💝欢迎来到我的博客,很高兴能够在这里和您见面! 💝希望您在这里可以感受到一份轻松…

机器学习云环境搭建

在 https://support.huaweicloud.com/browsertg-obs/obs_03_1003.html 下载对应版本的 OBS Broswer 软件,如图,红框内的为安装文件,蓝色框内的为对应安装文件的校验文件(无需下载) 以 64 位机为例,下载完…

景源畅信电商:抖店需要的成本高吗?

在数字化时代的浪潮中,短视频平台迅速崛起,成为连接用户与商家的新桥梁。抖音作为其中的佼佼者,不仅改变了人们的娱乐方式,也催生了新型的电商模式——抖店。许多人好奇,入驻这样一个充满活力的平台,需要承…

618知识狂欢,挑本好书,点亮智慧生活!

618精选编程书单:提升你的代码力 一年一度的618又到啦!今年的618就不要乱买啦,衣服买多了会被淘汰,电子产品买多了会过时,零食买多了会增肥,最后怎么看都不划算。可是如果你购买知识,坚持阅读&a…

第N2周:Embeddingbag与Embedding详解

🍨 本文为🔗365天深度学习训练营 中的学习记录博客🍖 原作者:K同学啊 | 接辅导、项目定制🚀 文章来源:K同学的学习圈子 目录 什么是词嵌入? Embedding与EmbeddingBag详解 Embedding Embeddi…

代码随想录算法训练营第十七天|LeetCode110 平衡二叉树、LeetCode257 二叉树的所有路径

题1: 指路:LeetCode110 平衡二叉树 思路与代码: 左右子树的高度差小于等于1。对于这个题,递归比迭代方便太多,我也想过迭代,但是我没有写出来,大家可以自己试一下。递归代码如下:…

如何为ChatGPT编写有效的提示词:软件开发者的指南

作为一名软件开发者,特别是使用Vue进行开发的开发者,与ChatGPT等AI助手高效互动,可以极大地提升你的开发效率。本文将深入探讨如何编写有效的提示词,以便从ChatGPT中获取有用的信息和帮助。 1. 明确目标 在编写提示词之前&#…

后端之路第二站(正片)——SprintBoot之:分层解耦

很抽象,我自己也不好理解,仅作为一个前端转后端的个人理解 一、先解释一个案例,以这个案例来分析“三层架构” 这里我先解释一下黑马程序员里的这个案例,兄弟们看视频的可以跳过这节课:Day05-08. 请求响应-响应-案例_…

【webrtc】m98:Call的创建及Call对音频接收处理

call中多個流共享相同的辅助组件 这几个是与外部共用的 线程传输send控制module 线程任务队列工厂call的辅助组件中各种统计以及接收测的cc是自己创建的 call自己的多个辅助组件是外部传递来的 call 创建多个接收流 这里用一个set 来保存所有指针,并没有要map的意思:

【因果推断从入门到精通二】随机实验3

目录 检验无因果效应假说 硬币投掷的特殊性何在? 检验无因果效应假说 无因果效应假说认为,有些人存活,有些人死亡,但接受mAb114治疗而不是ZMapp与此无关。在174例接受mAb14治疗的患者中,113/17464.9%存活了28天&…

【MySQL精通之路】InnoDB(6)-磁盘结构

主要博客: 【MySQL精通之路】InnoDB存储引擎-CSDN博客 1 表 2 索引 【MySQL精通之路】InnoDB(6)-磁盘结构(2)-索引-CSDN博客 3 表空间 【MySQL精通之路】InnoDB(6)-磁盘结构(3)-表空间-CSDN博客 4 双写缓冲区 【MySQL精通之路】InnoDB(6)-磁盘结构(4)-双写缓冲…

修改MySQL root用户密码

ALTER USER ‘root’‘localhost’ IDENTIFIED BY ‘new_password’; ALTER USER ‘root’‘%’ IDENTIFIED BY ‘new_password’; 》 SET GLOBAL read_only OFF; select * from mysql.user;

Java入门基础学习笔记47——ArrayList

什么是集合呢? 集合是一种容器,用来装数据的,类似数组。 有数组,为什么还要学习集合呢? 数组定义完成并启动后,长度就固定了。 而集合是大小可变,开发中用的最多的。 集合的特点:大…

汇聚荣科技有限公司优点有哪些?

在当今快速发展的科技时代,企业之间的竞争愈发激烈。作为一家专注于科技创新与研发的公司,汇聚荣科技有限公司凭借其卓越的技术实力和创新能力,在业界树立了良好的口碑。那么,汇聚荣科技有限公司究竟有哪些优点呢?接下来&#xf…

C++利用TinyXML读取XML文件

TinyXML是什么? TinyXML是一个轻量级的C XML解析器,它提供了一种简单的方法来解析和操作XML文档。TinyXML被设计为易于使用和集成到C项目中,并且非常适合处理小型XML文件。 以下是TinyXML的一些主要特点和优点: 轻量级: T…