学习笔记——动态路由——RIP(RIP工作原理/防环机制)

三、RIP工作原理/防环机制

1、工作原理

配置好RIP的路由器会每隔30s,向邻居路由器自动发送RIP路由更新报文。报文里面携带了其所知道的所有路由。

通过发送数据包进行路由信息的交互,路由器启动RIP协议,向周围邻居路由器传递request(请求)response(响应)报文,周围路由器收到后发回复报文,回复报文内包含有周围路由器自身的RIP路由表,路由器收到周围路由器的恢复后修改自己的路由表。

2、RIP防环机制

对于路由环路问题,RIP中存在3种解决方案:水平分割、毒性逆转、触发更新。

(1)水平分割(Split Horizon)

水平分割的原理:RIP路由设备从某个接口学到的路由不会从该接口再发回给邻居路由设备。这样不但减少了带宽消耗,还可以防止路由环路。

水平分割在不同网络中实现有所区别,分为按照接口和按照邻居进行水平分割两种

1)在广播型网络、点到点网络(P2P)和点到多点网络(P2MP)中,从哪个接口学习到的RIP路由信息,就禁止从该接口发送出去。

广播网、P2MP和P2P网络中的水平分割

如(上图示),DeviceA会向DeviceB发送到网络10.0.0.0/8的路由信息,如果没有配置水平分割,DeviceB会将从RouterA学习到的这条路由再发送回给RouterA。这样,RouterA可以学习到两条到达10.0.0.0/8网络的路由,一条是跳数为0的直连路由,一条是下一跳指向DeviceB且跳数为2的路由。

但是在DeviceA的RIP路由表中只有直连路由才是活跃的。当DeviceA到网络10.0.0.0的路由变成不可达,并且DeviceB还没有收到路由不可达的信息时,DeviceB会继续向DeviceA发送10.0.0.0/8可达的路由信息。即,DeviceA会接收到错误的路由信息,认为可以通过DeviceB到达10.0.0.0/8网络;而DeviceB仍旧认为可以通过DeviceA到达10.0.0.0/8网络,从而形成路由环路。

配置水平分割后,DeviceB将不会再把到网络10.0.0.0/8的路由发回给DeviceA,避免了路由环路的产生。

2)在非广播多路访问网络(NBMA,Non Broadcast Multiple Access)中,不允许将从某一邻居学习到的路由信息再发送回该邻居,是按照邻居进行水平分割。

NBMA网络中的水平分割

对于NBMA网络,由于一个接口上连接多个邻居,RIP支持在NBMA网络中按邻居进行水平分割处理。NBMA网络中,路由按照单播方式发送,同一接口上收到的路由可以按邻居进行区分。从某一接口的对端邻居处学习到路由,不会再通过该接口发送回去。

如(上图)示,配置水平分割后,DeviceB会将从DeviceA学习到的10.0.0.0/8路由发送给DeviceC,但是不会再发送回给DeviceA。

(2)毒性反转(Poison Reverse)

毒性逆转的原理配置了毒性反转之后,可以使错误路由立即超时RIP从某个接口学到路由后,从原接口发回邻居路由器,并将该路由的开销设置为16(即指明该路由不可达),并从原接口发回邻居路由设备。利用这种方式,可以清除对方路由表中的无用路由,也可以防止产生路由环路的发生。

如(上图)示,DeviceA会向DeviceB发送10.0.0.0/8路由信息,如果没有配置毒性逆转,Device B会将从DeviceA学习到的这条路由再发送回给DeviceA。这样,DeviceA可以学习到两条到达10.0.0.0/8网络的路由,一条是跳数为0的直连路由;一条是下一跳指向DeviceB且跳数为2的路由。

当DeviceA到网络10.0.0.0/8的路由变成不可达,并且DeviceB还没有收到路由不可达的信息时,DeviceB会继续向Device A发送10.0.0.0/8可达的路由信息。即,DeviceA会接收到错误的路由信息,认为可以通过DeviceB到达10.0.0.0/8网络;而DeviceB仍旧认为可以通过DeviceA到达10.0.0.0/8网络,由此导致了路由环路。

配置毒性逆转后,DeviceB在接收到从DeviceA发来的路由后,向DeviceA发送一个这条路由不可达的消息(即将该路由的开销设置为16跳,16跳即意味着该路由不可达),这样DeviceA就不会再从DeviceB学到这条可达路由,因此就可以避免上述环路的发生。

(3)触发更新

缺省情况下,一台RIP路由器每30秒会发送一次路由表更新给邻居路由器。

触发更新的原理:当本地路由信息发生变化时,触发更新功能允许路由器立即发送触发更新报文给邻居路由器,来通知路由信息更新,而不需要等待更新定时器超时,从而加速了网络收敛。触发更新可以缩短网络收敛时间,在路由表项变化时立即向其他设备广播该信息,而不必等待定时更新。

如(上图)所示,网络10.4.0.0不可达时,DeviceC最先得到这一信息。通常,更新路由信息会定时发送给相邻Device(RIP协议每隔30秒发送一次)。

但如果在DeviceC等待更新周期到来的时候,DeviceB的更新报文传到了DeviceC,DeviceC就会学到DeviceB的去往网络10.4.0.0的错误路由。这样DeviceB和DeviceC上去往10.4.0.0的路由都指向对方从而形成路由环路。

如果DeviceC发现网络故障之后,不再等待更新周期到来,就立即发送路由更新信息给DeviceB,使DeviceB的路由表及时更新,则可以避免产生上述问题。

触发更新还存在另外一种方式:当下一跳不可用之后(如因为链路故障)需要及时通告给其他设备,此时要把该路由的cost设置为16然后发布出去,此更新也叫做路由毒杀


整个华为数通学习笔记系列中,本人是以网络视频与网络文章的方式自学的,并按自己理解的方式总结了学习笔记,某些笔记段落中可能有部分文字或图片与网络中有雷同,并非抄袭。完处于学习态度,觉得这段文字更通俗易懂,融入了自己的学习笔记中。如有相关文字涉及到某个人的版权利益,可以直接联系我,我会把相关文字删除。【VX:czlingyun    暗号:CSDN】

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

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

相关文章

克隆网站的风险

克隆网站的风险 随着互联网的快速发展,克隆网站也变得越来越常见。克隆网站是指复制原始网站的外观和功能,并伪装成原始网站。虽然克隆网站可以提供与原始网站相似的服务和体验,但它们也带来了一系列风险。本文将探讨克隆网站的风险&#xff…

我的故事与思考

在24年的高考帷幕落下之后,我们站在了一个新的起点,面对着即将开始的大学新生活,我们面临着一道重要的选择题:是选择一个心仪的专业,还是选择一个知名度更高的学校?这是一个困扰了众多考生和家长的长期难题…

Docker 从入门到精通(大全)

一、概述 1.1 基本概念 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源。 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。…

使用QtGui显示QImage的几种方法

问题描述 我是一名刚学习Qt的新手,正在尝试创建一个简单的GUI应用程序。当点击一个按钮时,显示一张图片。我可以使用QImage对象读取图片,但是否有简单的方法调用一个Qt函数,将QImage作为输入并显示它? 方法一:使用QLabel显示QImage 最简单的方式是将QImage添加到QLabe…

bigtop gradle 任务依赖关系

./gradlew deb 会编译ubuntu的所有deb包 任务deb会依赖17个任务,它们会按字母排序执行,如下: alluxio-deb bigtop-groovy-deb bigtop-jsvc-deb bigtop-utils-deb flink-deb hadoop-deb hbase-deb hive-deb kafka-deb livy-deb phoenix-deb …

这5款国内可用的宝藏AI视频工具,不允许有人还不知道!(建议收藏)

文章首发于公众号:X小鹿AI副业 大家好,我是程序员X小鹿,前互联网大厂程序员,自由职业2年,也一名 AIGC 爱好者,持续分享更多前沿的「AI 工具」和「AI副业玩法」,欢迎一起交流~ 前几天一位粉丝说给…

【MySQL】数据库——存储引擎

一、存储引擎概述 1.概念 MySQL中的数据用各种不同的技术存储在文件中,每一种技术都使用不同的存储机制、索引技巧、锁定水平并最终提供不同的功能和能力,这些不同的技术以及配套的功能在MySQL中称为存储引擎存储引擎是MySQL将数据存储在文件系统中的存…

会声会影2024永久激活码序列号注册机分享

大家好呀,今天我想给大家安利一款我最近超级喜欢的软件——会声会影2024!🌟 作为一个视频编辑爱好者,我尝试过很多视频编辑软件,但总感觉少了那么一点点“火花”。直到我遇到了会声会影2024,它完全改变了我…

环境科学SCI期刊,IF=3+,易录用,几乎不退稿

一、期刊名称 International Journal of Environmental Science and Technology 二、期刊简介概况 期刊类型:SCI 学科领域:环境科学 影响因子:3.1 中科院分区:4区 三、期刊简介 International Journal of Environmental Sci…

C++_STL---string类

前言 说起string类,首先需要了解的是 - string类是什么? std::string是类模板std::basic_string的一个元素类型为char的实例化,而basic_string则是对元素指针的封装。由于basic_string的实现对字符串操作进行了优化,所以它不能用…

深入理解计算机系统 CSAPP 家庭作业6.45

CS:APP3e, Bryant and OHallaron 可以参考这里 void bijk(array A, array B, array C, int n, int bsize) {int i, j, k, kk, jj;double sum;int en bsize*(n/bsize);for (i 0; i < n; i)for (j 0; j < n; j)C[i][j] 0.0;for (kk 0; kk < en; kk bsize) {for (j…

QT拖放事件之八:通过全局剪切板中的接口QClipboard::mimeData()来获取MIME类型数据

1、演示效果 首先向剪切板写入数据,然后点击paste按钮进行从全局剪切板中 获取 MIME数据。。。 2、核心代码 void Widget::on_pasteBtn_clicked() {const QClipboard* clipBoard = QGuiApplication::clipboard()

前端路由中的meta、matched是什么?有哪些作用?

在前端路由中&#xff0c;尤其是在 Vue.js 这样的框架中&#xff0c;meta 和 matched 是两个常见的概念&#xff0c;它们提供了关于路由的额外信息和上下文 1. meta 一个可以附加到 Vue Router 路由定义上的自定义字段 它通常用于存储一些与路由相关的元数据或信息&#xff0…

算法07 深度优先搜索及相关问题详解

深搜与广搜是搜索算法中最常用的两种算法&#xff0c;通过深度优先搜索解决问题还会用到回溯和剪枝&#xff0c;让我们一起进入本章&#xff0c;了解深搜的基本概念和模板&#xff0c;并学会解决一些常见问题。 目录 问题导入 走迷宫问题 如何走&#xff1f; 问题建模 如何…

python ----- xml 命名空间与xpath详解

一、简介 本文章以如下xml 样例进行讲解命名空间和xpath xml_text"""<?xml version"1.0"?><actors xmlns:fictional"http://characters.example.com"xmlns"http://people.example.com"><actor><name>…

SpringBean的管理

一、bean的名字与标识符 <bean id"" class""></bean> bean的名字作用: 获取这个bean通过bean名字获取 bean名字配置方式: id: 唯一标志符, 命名规范与变量命名规范一样, 包含特殊符号name: 配置名字: 可以包含特殊符号,没有要求, 比如. 一…

基于支持向量机的垃圾邮件分类,使用SVM+flask+vue

sms-classify 基于支持向量机的垃圾邮件分类&#xff0c;使用SVMflaskvue 数据集和源码地址 数据集 SMS Spam Collection Data Set 来源于 UCI。样例被分为非垃圾邮件&#xff08;86.6%&#xff09;和垃圾邮件&#xff08;13.4%&#xff09;&#xff0c;数据格式如下&#xff…

网络爬虫中Xpath的使用方法

正则表达式虽然可以处理包含了诸如 HTML 或 XML 内容的字符串&#xff0c;但只能根据文本的 特征匹配字符串&#xff0c;而忽略字符串所包含的内容的真实格式。为了解决这个问题&#xff0c;Python 引入 XPath 以及支持 XPath 的第三方库 lxml&#xff0c;专门对 XML 或 HTML 格…

git 合并master到分支

master分支的代码领先自己的分支,git 如何把master分支代码合并到自己的分支 1.首先切换到主分支 git checkout master 2.使用git pull 把领先的主分支代码pull下来 git pull 3.切换到自己的分支 git checkout xxx(自己的分支) 4.把主分支的代码merge到自己的分支 git merge ma…

minio+tusd+uppy搭建文件上传服务

1、docker部署minio、tusd服务 1.1 新建docker-compose.yml minio API: http://ip:9100 minio控制台: http://ip:9101 tus API: http://ip:9102/files/ tus webhooh: http:172.0.0.1:3000/files/webhooh(用户鉴权API) version: 3.7services:minio:image: minio/minio:RELEAS…