举例矢量路由协议-RIP

server/2024/11/19 9:01:05/

前言

基于距离的矢量算法协议,跳数作为度量来衡量到达目的网络的距离.
RIP主要应用与规模较小的网络中.

路由信息协议-RIP

RIP是一种简单的内部网关协议.基于距离矢量的贝尔曼-福特算法(Bellman-Ford)来计算到达目的网络的最佳路径.
RIP协议的开发时间较早,宽带,配置,管理方面要求低.适用小规模网络中.
RIP协议中定义的相关参数比较少.不支持CIDR,VLSM,不支持认证功能.

RIP工作原理

路由器运行RIP,会首先发送路由更新请求,收到请求的路由器会发送自己的RIP路由进行响应.
网络稳定后,路由器会周期性的发送路由更新信息.
        路由启动时,路由表中只会包含直连路由.运行RIP之后,会发送Request报文,用来请求邻居路由器的RIP路由.运行RIP的邻居路由器收到该Request报文后,会根据自己的路由表,生成Response报文回复.路由器在收到Response报文后,会将相应的路由添加到自己的路由表中.
RIP网络稳定后,每个路由表会周期性的向邻居路由器通告自己的整张路由表中的路由信息,默认周期为30秒.邻居路由根据收到的路由信息刷新自己的路由表.

RIP-度量

RIP使用跳数作为度量值来衡量到达目的网络的距离.
缺省条件下,直连网络的路由跳数为0.RIP规定超过15跳为网络不可达.
在RIP中,路由器与它直接相连网络的跳数为0,每经过一个路由器后跳数加1.为限制时间所以最大跳数为15跳.
路由器从某一邻居路由器收到路由更新报文时,根据以下原则更新路由器的RIP路由表:
1,对于本路由表中已有的路由项,当该路由项的下一跳时该邻居路由器时,不论度量值将增大还是减小,都要更新路由项(度量值相同同时只将其老化定时器清零.路由表中的每一项路由项对应了一个老化定时器,当路由项在180秒内美誉偶任何更新时定时器超过时,该路由项的度量值变为不可达).
2,当路由项的下一跳不是该邻居路由器时,如果度量值将减少,则更新该路由项.
3,对于路由表中不存在的路由项,如果度量值小于16,则路由表中增加该路由项.某路由项的度量值变为不可达后,该路由会在哦Response报文中发布四次(120秒),然后从路由表中清除.

RIPv1 vs RIPv2

RIPv1时有类别路由协议,不知此VLSM和CIDR
以广播的形式发送报文.
不支持认证.

RIPv2为无类别路由协议,支持VLSM,支持路由聚合与CIDR.
支持以广播或者组播(缺省是组播)(224.0.0.9)方式发送报文.组播发送报文的好处是在同一网络中那些没有运行RIP的网段可以避免接收RIP的广播报文;另外,组播发送报文还可以运行RIPv1的网段避免错误地接收和处理RIPv2中带有子网掩码的路由.
支持明文认证和MD5密文认证.

RIPv1报文格式

RIP西医通过UDP交换路由信息,端口号为520.RIPv1以广播形式发送路由信息,目的IP地址为广播地址255.255.255.255.报文格式中每个字段的值和作用:
1,Command:表示该报文是请求报文还是响应报文,只能取1或者2,1是请求报文,2是响应报文.
2,Version:RIP版本
3,Address Family Identifier(AFI)表示地址标识信息,对于IP地址,其值为2.
4,IP adress:目的IP地址,这一项可以是网络地址,主机地址.
5,Metric:度量值(1~16)
一个路由更新消息中最多课还有可包含25条路由表项,每个路由表项都携带目的地址的地址和度量值.整个RIP报文大小限制为不超过504字节.如果超过这个字节,需要发送多个RIPv1报文.

RIPv2报文

与RIPv1类似
其中不同的字段如下所示:
AFI:地址族标识除了标识支持的协议类型外,还可以用来描述认证信息.
Route tag:用于标记外部路由.
Subnet Mask:指定IP地址的子网掩码,定义IP地址的网络或子网部分.
Next Hop:指定通往目的地址的下一跳IP地址.

RIPv2-认证

RIPv2支持对协议报文进行认证,认证方式有明文认证和MD5认证
RIPv2的认证功能是一种过滤恶意路由信息的方法,该方法根据Key值检查从有效对端设备接收到的报文.这个Key值是每一个接口上都可以配置的一个明文密码串,相应的认证类型(Authentication Type)的值为2.

RIP-环路

网络发生故障时,RIP网络有可能产生路由环路.
如图所示,RIP完了过正常运行时,RTA会通过学习到10.0.0.0/8网络的路由,度量值为1.一旦路由器RTB的直连网络10.0.0.0/8产生故障,RTB会立刻检测到该故障,并表示该路由不可达.此时RTA没有收到该路由不可达的信息,于是会继续向RTB发送度量值为2的通往10.0.0.0/8的路由信息.RTB会学习此路由信息,认为可以通过RTA到达10.0.0.0/8网络.此后RTB发送的更新路由表,又会导致RTA路由表的更新,RTA会新增一条度量值为3的10.0.0.0/8网络路由表项,从而形成路由环路.这个过程会持续到度量值为16.

环路避免-水平分割

路由从某个接口学到的路由,不会从该接口再发回给邻居路由器
也就是说,RTA从RTB学习到的10.0.0.0/8网络的路由不会再从RTA接收接口的重新通告给RTB,由此避免了路由环路的产生.

环路避免-毒性反转

毒性反转是指路由器从某个接口学到路由后,将该路由的跳数设置为16,并从原接受接口发回给邻居路由器.
RIP的防环机制中还包括毒性反转,毒性反转机制的实现可以使错误路由立即超时.配置了毒性反转之后,RIP从某个接口学习到路由之后,发挥给邻居路由器时会将该路由的条数设置为16.利用这种方式,可以清除对方路由表中的无用路由.本示例中,RTB向RTA通告度量值为1的10.0.0.0/8路由,RTA在通知给RTB时将该路由度量值设为16.如果10.0.0.0/8网络发生故障,RTB便不会人为可以通过RTA到达10.0.0.0/8网络,因此就可以避免路由环路产生.

环路避免-触发更新

触发更新是指当路由信息发生变化时,立即向邻居设备发送吃法更新报文.
缺省情况下,一台RIP路由器每30秒会发送一次路由表更新给邻居路由器.当本地路由信息发生变化时,触发更新功能允许路由器立刻发送触发更新报文给邻居路由器,来通知路由信息更新,而不需要等待更新定时器超时,从而加速了网络收敛.

RIP基本配置

rip[process-id]命令用来使能RIP]进程.该命令中,process-id指定了RIP进程ID.如果未指定process-id,命令系那个使用1作为缺省进程ID.
命令version 2可用于使能RIPv2以支持扩展能力,比如支持VLSM,认证.
network <network-address>命令可用于在RIP中通告完了过,network-address必须是一个自然网络地址.只有处于此网络中的接口,才能进行RIP报文的接收和发送.

RIP配置-Metricin

在rip网络中,命令rip metricin <metrici value>用于修改接口上应用的度量值(注意:该命令所指定的度量值会与当前路由的度量值相加).当路由器的一个接口收到路由时,路由器会首先将接口的附加度量值增加到该路由上,然后将路由加入路由表中.本例中,RTA发送的10.0.0.0/8路由条目的度量值为1,由于在RTC的GigabitEthernet0/0/0接口上配置了rip metricin 2,所以当路由达到RTC的接口时,RTC会将该路由条目的度量值加2,最后为3.

RIP配置-Metricout

命令rip metricout 用于路由器在通告RIP路由时修改路由的度量值.一般情况下,在将路由表项转发到下一跳之前,RIP会将度量值加1.如果配置了rip metricout命令,则只应用命令中配置的度量值.即,当路由器发布一条路由时,此命令配置的度量值会在发布该路由之前附加在这条路由上,但本地路由表中的度量值不会改变.
在本例中,缺省情况下,RTA发送的10.0.0.0/8路由条目的度量值为1.但是,由于在RTA的RTAGigabitEthernet0/0/0接口配置了rip metricout 2,所以RTA会将那个该路由条目的度量值设置为2,然后发送给RTC.

水平分割&毒性逆转

两个特殊同时配置后,只有rip poison-reverse会生效.
水平分割和毒性反转都是基于每个接口来配置的.缺省情况下,每个接口都启用了rip split-horizon命令(NBMA网络除外)以防止路由环路.华为ARG3系列路由器不支持通吃配置水平分割和毒性反转,因此当一个接口上同时配置了水平分割和毒性反转时,只有毒性反转生效.

配置验证

虽然两者都显示"Enabled",但只有"Poison-reverse"生效.
命令display rip<process_id>interface <interface> verbose用于来确认路由器接口的RIP配置.命令回显中会显示相关RIP参数,包括RIP版本以及接口上了是否应用了水平分割和毒性反转.此例中显示RTC的GigabitEthernet0/0/0接口配置了RIPv2,metricin为2,还启用了水平分割和毒性反转的功能.

RIP配置-Output

配置RTA的G0/0/0接口禁止发送RIP报文.
命令rip output用于配置允许一个接口发送RIP更新信息.如果想要禁止指定接口发送RIP更新消息,可以在接口上运行命令undo rip output.缺省情况下,ARG3系列路由器允许接口发送RIP报文.
企业网络中,可以通过运行命令undo rip output 来防止连接外网的接口发布内部路由.

RIP配置-Input

配置RTD的G0/0/0接口禁止接收RIP报文.
rip input 命令用来配置允许指定接口接收RIP报文.
undo rip input命令用来禁止指定接口接收RIP报文.运行命令undo rip input 之后,该接口所受到的RIP报文会被立即丢弃.
缺省情况下,接口可以接口RIP报文.

抑制接口

配置G0/0/1接口为抑制状态,只接收RIP报文.
此命令的优先级大于rip input和tip output.
silent-intrerface命令哟俺来抑制接口,使其只接收RIP报文,更新自己的路由表,但不发送RIP报文.
命令silent-interface比命令rip input和rip output的优先级更高.命令silent-interface all表示音质所有接口,此命令优先级最高,在配置该命令之后,所有接口都被抑制.
命令silent-interface通常会配置在NBMA网络上.在NBMA网络上,一些路由器需要接收RIP更新消息但是不需要广播或者组播路由器自身的路由更新,二十通过命令peer<ip address>与对端路由器建立关系.

配置验证

命令display rip 可以比较全面地显示路由器上的RIP信息,包括全局参数以及部分接口参数.例如,该命令可以显示哪些接口上执行了silent-interface命令.

总结

1,RIP的路由跳数是在路由器发出路由通告之前增加的.


http://www.ppmy.cn/server/143133.html

相关文章

柯桥生活英语口语学习“面坨了”英语怎么表达?

“面坨了”英语怎么表达&#xff1f; 要想搞清楚这个表达&#xff0c;首先&#xff0c;我们要搞明白“坨”是啥意思&#xff1f; 所谓“坨”就是指&#xff0c;面条在汤里泡太久&#xff0c;从而变涨&#xff0c;黏糊凝固在一起的状态。 有一个词汇&#xff0c;很适合用来表达这…

css 使用图片作为元素边框

先看原始图片 再看效果 边框的四个角灭有拉伸变形,但是图片的中部是拉伸的 代码 border-style: solid;/* 设置边框图像的来源 */border-image-source: url(/static/images/mmwz/index/bk_hd3x.png);/* 设置如何切割图像 */border-image-slice: 66;/* 设置边框的宽度 */border…

文章解读与仿真程序复现思路——电力系统自动化EI\CSCD\北大核心《基于改进容积卡尔曼滤波的含光伏配电网动态状态估计》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

用 Python 从零开始创建神经网络(五):损失函数(Loss Functions)计算网络误差

用损失函数&#xff08;Loss Functions&#xff09;计算网络误差 引言1. 分类交叉熵损失&#xff08;Categorical Cross-Entropy Loss&#xff09;2. 分类交叉熵损失类&#xff08;The Categorical Cross-Entropy Loss Class&#xff09;展示到目前为止的所有代码3. 准确率计算…

【leetcode】LCR150.彩灯装饰记录Ⅱ

cpp实现 #include<vector> using namespace std; #include<queue> #include<iostream>//* Definition for a binary tree node. struct TreeNode {int val;TreeNode *left;TreeNode *right;TreeNode() : val(0), left(nullptr), right(nullptr) {}TreeNode…

使用 .NET 创建新的 WPF 应用

本教程介绍如何使用 Visual Studio 创建新的 Windows Presentation Foundation &#xff08;WPF&#xff09; 应用。 使用 Visual Studio&#xff0c;可以向窗口添加控件以设计应用的 UI&#xff0c;并处理这些控件中的输入事件以与用户交互。 在本教程结束时&#xff0c;你有一…

已有docker增加端口号,不用重新创建Docker

已有docker增加端口号&#xff0c;不用重新创建Docker 1. 整体描述2. 具体实现2.1 查看容器id2.2 停止docker服务2.3 修改docker配置文件2.4 重启docker服务 3. 总结 1. 整体描述 docker目前使用的非常多&#xff0c;但是每次更新都需要重新创建docker&#xff0c;也不太方便&…

软件工程-软件体系结构设计

1、软件的复杂性 、 处理的复杂性 2、软件体系结构的概念