首页 > 其他分享 >HCIA-动态路由RIP

HCIA-动态路由RIP

时间:2023-10-13 22:11:24浏览次数:33  
标签:0.0 HCIA rip RIP RB 路由 RA

前言

路由信息协议RPI(Routing Information Protocol) 是一种基于距离矢量算法的协议,以跳数作为度量来衡量到达目的网络的距离。RIP主要用于规模较小的网络中。

它配置简单、易于维护、适合小型网络

RIP简介

  • 距离矢量路由协议;属于IGP协议
  • 适用于小型网络;有RIPv1、RIPv2两个版本
  • 基于UDP;目标端口号520
  • 周期性发送数据以维持最新路由表状态
  • 支持水平分割、毒性逆转和触发更新等防环路特性

RIP工作原理

当路由器运行了RIP协议后,会首先发送路由更新请求,收到请求的路由器会发送自己的RIP路由进行响应(响应的前提是收到请求的路由器也开启了RIP协议)

当网络稳定后,路由器会周期性(默认30S)发送路由更新信息

RIP的度量值

RIP使用跳数作为度量值来衡量到达目的网络的距离,因此RIP不管链路带宽为多少

缺省情况下,直连路由的路由跳数为0;当路由器发送路由更新时,会把度量值加1

RIP规定超过15跳(16跳时)即网络不可达(也因此RIP协议只能用于小型规模的网络)

RIPv1与RIPv2

  •  RIPv1是有类(即:不会发送掩码)别路由协议,不支持VLSM和CIDR
  • 以广播的像是发送报文
  • 不支持认证

 

  • RIPv2为无类别路由协议,支持VLSM,支持路由聚合与CIDR
  • 支持以广播或者组播(224.0.0.9)方式发送报文
  • 支持明文认证和MD5密文认证

RIPv1与RIPv2抓包对比

RIPv1报文格式

RIPv2报文格式

RIPv2的认证

RIPv2的认证功能使得此路由协议更加安全

RIPv2的认证方式有明文认证、MD5认证

RIP环路问题

当网络发生故障时,RIP网络有可能会产生路由环路

例如图中所描述:

对于RB来说,10.0.0.0/8网络是0跳,那么RB会将跳数加1后将信息发给RA

此时RA得知,到达10.0.0.0/8这个网络的跳数为1跳

过段时间,RA会将到达10.0.0.0/8网络的跳数加1后发给RB

正常情况下,RB不会接受这条信息,因为在RB的路由表里,到达10.0.0.0/8网络明明跳数是0跳 且是直连路由

但若10.0.0.0/8这条路不通的时候,RB将会接收来自RA的信息;于是RB的路由表就会变成:通往10.0.0.0/8网络是2跳

接下类:RB发给RA告诉RA3跳、RA又告诉RB4跳 以此循环,直到16跳为止双方才会发现10.0.0.0/8不可达

为解决上述问题,产生了水平分隔技术、触发更新技术

环路避免-水平分割

路由器从某个接口学到的路由,不会从该接口再发回给邻居路由器

例如:RB告诉RA:到达10.0.0.0/8网络需要1跳

这时候RA只能收来自RB的告知,但RA绝对不能再告诉RB:到达10.0.0.0/8网络需要2跳

环路避免-触发更新

触发更新是指 当路由信息发生变化时,立刻向邻居设备发送触发更新报文

例如:当RB发现10.0.0.0/8接口挂了,将立刻告知RA:到达10.0.0.0/8网络需要16跳

环路避免-毒性反转

毒性反转是指路由器从某个接口学到路由后,将该路由的跳数设置为16,并从原接受口发给邻居路由器

例如:RB告知RA10.0.0.0/8网络需要1跳,RA收到信息后,会将跳数加到16然后再发回给RB

此时,若网络无问题的情况下,RB不会接收此条信息

但网络一旦出现问题,RB会接收来自RA的信息,从而双方都得知10.0.0.0/8网络不可达

配置RIP

<>system-view
[]rip 1 #进入rip配置,进程号为1(不同进程能够路由的区域不同 例如:R1进程为1,R3进程为3,那么R1与R3是不通的)
[rip]version 2  #开启RIPv2
[rip]network xx.xx.xx.xx  #宣告地址(即指定运行RIP的接口,只需要输入接口的主类网络地址即可,只有处于此网络中的接口,才能进行RIP报文的收发)
例如:R1连接了3个接口,则需要宣告3个网络
[]display rip  #查看rip信息

RIP额外配置内容:

这两条命令会影响路由的选路

例如:

命令一:RB告知RA进入10.0.0.0/8网络是1跳,RA收到后私自加5,从而RA就会认为进入10.0.0.0/8网络为6跳

命令二:RB告知RA之前,先将跳数修改成5再告知RA,这时候RA得知进入10.0.0.0/8网络是5跳

[g0/0/0]rip metricin 5  #在接收路由时增加度量值
[g0/0/0]rip metricout 5   #在发送路由时修改度量值

禁止接口发送RIP包

例如:配置G0/0/0接口禁止发送RIP包(但能收到)

[g0/0/0]undo rip output

禁止接口接收RIP包

例如:配置G0/0/0接口禁止接收RIP包

[g0/0/0]undo rip input

抑制接口

让某个接口只收不发;例如:将G0/0/0接口抑制

这条命令的优先级大于上面两条 "rip input"、"rip output" 命令

[]rip
[rip]silent-interface G0/0/0

开启、关闭水平分割

水平分割默认在接口上开启

例如:开启G0/0/0接口的水平分割、关闭G0/0/0接口的水平分割

[g0/0/0]rip split-horizon    #开启水平分割
[g0/0/0]undo rip poison-reverse    #关闭水平分割

开启、关闭毒性逆转

例如:开启G0/0/0接口的毒性逆转、关闭G0/0/0接口的毒性逆转

[g0/0/0]rip poison-reverse    #开启毒性逆转
[g0/0/0]undo rip poison-reverse    #关闭毒性逆转

查看详细的RIP接口信息

例如:查看关于G0/0/0接口的rip信息

[]display rip int g0/0/0 verbose

标签:0.0,HCIA,rip,RIP,RB,路由,RA
From: https://www.cnblogs.com/kakureru/p/17760415.html

相关文章

  • 锐捷单臂路由配置
    注意:想要让三层接口与二层接口进行三层通信,一定要对三层接口进行封装。交换机配置 路由器配置 ......
  • 锐捷交换机静态路由配置
    一、组网要求    使用静态路由配置网络连通性 二、组网拓扑   三、配置步骤注意:配置之前建议使用Ruijie#showinterfacestatus查看接口名称,常用接口名称有FastEthernet(百兆)、GigabitEthernet(千兆)和TenGigabitEthernet(万兆),以下配置以千兆接口为例 1)配置接口......
  • 锐捷路由器OSPF配置
    功能介绍:OSPF(OpenShortestPathFirst)为IETFOSPF工作组开发的一种基于链路状态的内部网关路由协议。OSPF是专为IP开发的路由协议,直接运行在IP层上面,协议号为89,采用组播方式进行OSPF包交换,组播地址为224.0.0.5(全部OSPF设备)和224.0.0.6(指定设备)。当OSPF路由域规......
  • 在JavaScript中如何检查数组是否包含某个值?
    内容来自DOChttps://q.houxu6.top/?s=在JavaScript中如何检查数组是否包含某个值?在JavaScript中,最简洁、高效的方法来检查数组是否包含某个值是什么?这是我所知的唯一方法:functioncontains(a,obj){for(vari=0;i<a.length;i++){if(a[i]===obj)......
  • 在JavaScript中,如何获取时间戳?
    内容来自DOChttps://q.houxu6.top/?s=在JavaScript中,如何获取时间戳?我想要一个单独的数字,代表当前的日期和时间,就像Unix时间戳一样。毫秒级时间戳要获取自Unix纪元以来的毫秒数,调用Date.now:Date.now()或者使用一元运算符+来调用Date.prototype.valueOf:+newDate......
  • 如何在ActionScript 3中将"Null"(一个真实的姓氏!)传递给SOAP Web服务
    内容来自DOC[https://q.houxu6.top/?s=如何在ActionScript3中将"Null"(一个真实的姓氏!)传递给SOAPWeb服务](https://q.houxu6.top/?s=如何在ActionScript3中将"Null"(一个真实的姓氏!)传递给SOAPWeb服务)我们有一位员工的姓氏是“Null”。当使用该姓氏作为搜索条件时,我们的员......
  • 2023.10.13 JavaScript DOM
    文档对象模型获取对象1.根据id属性值获取,返回单个对象varh1=document.getElementById('h1');2.根据标签名获取,返回对象数组vardivs=document.getElementByTagName('div');3.根据name属性值获取,返回对象数组varhobbys=document.getElementByName('hobby');4.根......
  • typescript: Visitor Pattern
     /****VisitorPattern访问者是一种行为设计模式,允许你在不修改已有代码的情况下向已有类层次结构中增加新的行为。*file:Visitorts.ts*TheComponentinterfacedeclaresan`accept`methodthatshouldtakethebase*visitorinterfaceasanargument.......
  • typescript: Strategy Pattern
     /***StrategyPattern策略是一种行为设计模式,它将一组行为转换为对象,并使其在原始上下文对象内部能够相互替换。**file:Strategyts.ts*TheContextdefinestheinterfaceofinteresttoclients.*/classGeovinContext{/***@type{GeovinSt......
  • [JavaScript]扩展运算符
    顺便补充一点Array.reduce((prev,curv)=>{}, ori)的运用letarr1=[1,3,5,7,9]letarr2=[2,4,6,8,10]console.log(...arr1);//展开一个数组----->13579letarr3=[...arr1,...arr2]//连接数组//......