HCNA Routing&Switching之动态路由协议RIP
前文我们了解了动态路由的基本概念,以及动态路由和静态路由的区别,优缺点,动态路由的分类,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14995317.html;今天我们主要来聊一聊动态路由协议中的RIP协议;
什么是RIP?RIP是Routing Information Protocol 首字母缩写,翻译成中文就是路由信息协议;它是一种基于距离矢量算法的动态路由协议,使用跳数作为衡量到达目标网络的距离。其特点是配置简单,易于维护和适合应用在较小的网络环境中;它有两个版本RIPV1和RIPV2两个版本,它是应用层协议,工作在udp的520端口,主要用来发现和维护去往目标网络的最短路径(路由的学习和维护);支持水平分割、毒性逆转和触发更新等防环机制;
RIP的工作原理
RIP的工作原理很简单,我们在路由器上启用rip进程,宣告网络以后,路由器首先会发送路由更新请求,收到请求的路由器会发送自己的RIP路由进行响应,收到路由更新包的路由器会对应的路由信息更新到自己的路由表中;当网络稳定后,各路由器会时隔30s,周期性的发送自己的路由更新信息;
实验:如下图拓扑环境,各路由器都运行rip,然后抓包看看具体的工作过程
配置各路由器的接口ip以及名称
配置R1
- <Huawei>sys
- Enter system view, return user view with Ctrl+Z.
- [Huawei]sys R1
- [R1]int g0/0/0
- [R1-GigabitEthernet0/0/0]ip add 1.1.1.1 24
- Jul 13 2021 19:20:53-08:00 R1 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol IP on the interface GigabitEthernet0/0/0 has entered the UP state.
- [R1-GigabitEthernet0/0/0]q
- [R1]dis ip int b
- *down: administratively down
- ^down: standby
- (l): loopback
- (s): spoofing
- The number of interface that is UP in Physical is 2
- The number of interface that is DOWN in Physical is 2
- The number of interface that is UP in Protocol is 2
- The number of interface that is DOWN in Protocol is 2
- Interface IP Address/Mask Physical Protocol
- GigabitEthernet0/0/0 1.1.1.1/24 up up
- GigabitEthernet0/0/1 unassigned down down
- GigabitEthernet0/0/2 unassigned down down
- NULL0 unassigned up up(s)
- [R1]
配置R2
- <Huawei>sys
- Enter system view, return user view with Ctrl+Z.
- [Huawei]sys R2
- [R2]int g0/0/0
- [R2-GigabitEthernet0/0/0]ip add 1.1.1.2 24
- Jul 13 2021 19:21:35-08:00 R2 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol IP on the interface GigabitEthernet0/0/0 has entered the UP state. int
- [R2-GigabitEthernet0/0/0]g0/0/1
- [R2-GigabitEthernet0/0/1]ip add 2.2.2.2 24
- Jul 13 2021 19:21:36-08:00 R2 %%01IFNET/4/LINK_STATE(l)[1]:The line protocol IP on the interface GigabitEthernet0/0/1 has entered the UP state.
- [R2-GigabitEthernet0/0/1]q
- [R2]dis ip int b
- *down: administratively down
- ^down: standby
- (l): loopback
- (s): spoofing
- The number of interface that is UP in Physical is 3
- The number of interface that is DOWN in Physical is 1
- The number of interface that is UP in Protocol is 3
- The number of interface that is DOWN in Protocol is 1
- Interface IP Address/Mask Physical Protocol
- GigabitEthernet0/0/0 1.1.1.2/24 up up
- GigabitEthernet0/0/1 2.2.2.2/24 up up
- GigabitEthernet0/0/2 unassigned down down
- NULL0 unassigned up up(s)
- [R2]
配置R3
- <Huawei>sys
- Enter system view, return user view with Ctrl+Z.
- [Huawei]sys R3
- [R3]int g0/0/0
- [R3-GigabitEthernet0/0/0]ip add 2.2.2.3 24
- Jul 13 2021 19:22:05-08:00 R3 %%01IFNET/4/LINK_STATE(l)[0]:The line protocol IP on the interface GigabitEthernet0/0/0 has entered the UP state.
- [R3-GigabitEthernet0/0/0]q
- [R3]dis ip int b
- *down: administratively down
- ^down: standby
- (l): loopback
- (s): spoofing
- The number of interface that is UP in Physical is 2
- The number of interface that is DOWN in Physical is 2
- The number of interface that is UP in Protocol is 2
- The number of interface that is DOWN in Protocol is 2
- Interface IP Address/Mask Physical Protocol
- GigabitEthernet0/0/0 2.2.2.3/24 up up
- GigabitEthernet0/0/1 unassigned down down
- GigabitEthernet0/0/2 unassigned down down
- NULL0 unassigned up up(s)
- [R3]
提示:可以看到3台路由器各自的相关接口都正确配置了ip地址和名称;
配置R1路由器上的RIP ,并宣告对应的网络,然后抓包看看对应能抓到什么包?
提示:可以看到当R1运行rip,并宣告网络以后,对应就能抓到一个request包,其他的都是response包,并且在R1会每隔30秒发送一次响应包;在抓包的信息中,我们也能清楚的看到rip发送请求和响应包目标地址都是255.255.255.255,这个地址就是全网广播;默认没有配置RIP的版本时,默认运行的是RIPv1的版本;以此同时我们也能清楚的看到RIP工作在udp的520端口;
配置R2的rip,并宣告对应接口的网络,然后抓包分析
提示:同样的原理,在R2配置好RIP以后,对应在R1的接口上也能收到对应R2发送过来的请求包和响应包,并且也能看到R1的响应包;
查看R1的路由表
- [R1]dis ip routing-table
- Route Flags: R - relay, D - download to fib
- ------------------------------------------------------------------------------
- Routing Tables: Public
- Destinations : 8 Routes : 8
- Destination/Mask Proto Pre Cost Flags NextHop Interface
- 1.1.1.0/24 Direct 0 0 D 1.1.1.1 GigabitEthernet0/0/0
- 1.1.1.1/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
- 1.1.1.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
- 2.0.0.0/8 RIP 100 1 D 1.1.1.2 GigabitEthernet0/0/0
- 127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
- 127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
- 127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
- 255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
- [R1]dis ip rout pro rip
- Route Flags: R - relay, D - download to fib
- ------------------------------------------------------------------------------
- Public routing table : RIP
- Destinations : 1 Routes : 1
- RIP routing table status : <Active>
- Destinations : 1 Routes : 1
- Destination/Mask Proto Pre Cost Flags NextHop Interface
- 2.0.0.0/8 RIP 100 1 D 1.1.1.2 GigabitEthernet0/0/0
- RIP routing table status : <Inactive>
- Destinations : 0 Routes : 0
- [R1]
提示:可以看到现在R1的路由表中学习到R2上的2.2.2.2 的路由;
查看R2的路由表
- [R2]dis ip routing
- Route Flags: R - relay, D - download to fib
- ------------------------------------------------------------------------------
- Routing Tables: Public
- Destinations : 10 Routes : 10
- Destination/Mask Proto Pre Cost Flags NextHop Interface
- 1.1.1.0/24 Direct 0 0 D 1.1.1.2 GigabitEthernet0/0/0
- 1.1.1.2/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
- 1.1.1.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/0
- 2.2.2.0/24 Direct 0 0 D 2.2.2.2 GigabitEthernet0/0/1
- 2.2.2.2/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1
- 2.2.2.255/32 Direct 0 0 D 127.0.0.1 GigabitEthernet0/0/1
- 127.0.0.0/8 Direct 0 0 D 127.0.0.1 InLoopBack0
- 127.0.0.1/32 Direct 0 0 D 127.0.0.1 InLoopBack0
- 127.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
- 255.255.255.255/32 Direct 0 0 D 127.0.0.1 InLoopBack0
- [R2]dis ip rou pro rip
- [R2]
提示:在R2上并没有发现学习通过RIP学习到R1的路由,其原因是R1上只宣告了一条和R2直连的网络,默认情况下,路由器它不会学习和当前接口是直连的路由,所以在R2上我们是看不到通过RIP学习到的1.0.0.0的路由;
在R3上运行RIP,并添加一个lo3回环口,配置其ip地址为3.3.3.3 24,并宣告对应的网络,看看各路由器是否能够相互学习到自己非直连的路由信息呢?
- [R3]int lo3
- [R3-LoopBack3]ip add 3.3.3.3 32
- [R3-LoopBack3]rip 1
- [R3-rip-1]net 2.0.0.0
- [R3-rip-1]net 3.0.0.0
- [R3-rip-1]d th
- [V200R003C00]
- #
- rip 1
- network 2.0.0.0
- network 3.0.0.0
- #
- return
- [R3-rip-1]dis ip int b
- *down: administratively down
- ^down: standby
- (l): loopback
- (s): spoofing
- The number of interface that is UP in Physical is 3
- The number of interface that is DOWN in Physical is 2
- The number of interface that is UP in Protocol is 3
- The number of interface that is DOWN in Protocol is 2
- Interface IP Address/Mask Physical Protocol
- GigabitEthernet0/0/0 2.2.2.3/24 up up
- GigabitEthernet0/0/1 unassigned down down
- GigabitEthernet0/0/2 unassigned down down
- LoopBack3 3.3.3.3/32 up up(s)
- NULL0 unassigned up up(s)
- [R3-rip-1]
提示:RIP宣告网络只需宣告其主类即可;所谓主类是根据其ip地址的分类,如A类地址是从1-126,B类是从128-191,C类是从192-223;
查看R2 是否学习到3.3.3.3/32的路由呢?
提示:可以看到R2的路由表中就有通过RIP学习到了3.0.0.0/8的路由;
查看R1的路由表
提示:可以看到在R1的路由表中也通过RIP学习到了到达3.0.0.0/8的路由;
查看R3的路由表
提示:R3也通过RIP学习到了1.0.0.0/8的路由;通过上述实验我们可以看到,当路由器运行了RIP进程,并宣告了对应接口上的网络以后,对应路由器首先会发送请求路由信息包,然后自己每隔30秒将自己宣告的网络对应的路由全网广播(ripv1);收到路由更新包的路由器会将其对应的路由信息更新到自己的路由表中;
RIP度量
RIP使用跳数作为度量值来衡量到达目标网络的距离,默认缺省情况下,直连网络的路由器跳数为0,但路由器发送到路由更新时,会把其度量值加1;
验证:在上述实验环境中,在R2上抓包,看看3.0.0.0/8这条路由的跳数是多少?
提示:可以看到在R2上抓包,看到3.0.0.0/8这个目标网络的跳数为1,其原因是在R3的路由表中3.0.0.0的路由其跳数为0,在R3发送该条路由信息时,会将其跳数加1,所以R2接收到3.0.0.0这条路由时,其跳数为1;
验证:按照上述的理论,我们在R1上抓包,看看对应3.0.0.0这个目标网络的路由是不是2?
提示:可以看到了到达3.0.0.0的网络,跳数为2;说明在R2发出路由更新包时,将其路由的跳数加1,所以到达R1时就变为2了;同时我们也看到上述的抓包信息中,并没有抓到R1发送到路由更新包,其原因是R1上值宣告了和R2直连的一条网络,对于R2来说,并没有值得学习的路由,所以R1也干脆不发了(默认情况下,如果使用RIPv2版本,配置的有认证,R1还是会发送路由更新信息);
RIP规定超过15跳的网络为不可达网络;这句话的意思也就告诉我们了在默认情况下,到达目标网络的路由器不能超过16个;同时我们可以理解当我们要在RIP中删除一条路由信息,RIP会将对应的路由信息的跳数置为16跳;
验证:还是上述的实验,我们在R2上抓包,然后把R3 上的3.0.0.0从R3的RIP进程删除,看看R2 收到的路由更新包对应3.0.0.0的跳数是多少?
提示:可以看到对应在R3被取消宣告的3.0.0.0网络,在R3发送时将其跳数置为16跳,意思就是告诉R2 3.0.0.0网络不可达;此时在R2的路由表中就不会存在3.0.0.0网络的路由;
验证:查看R2的路由表,看看对应3.0.0.0网络的路由是否还存在?
提示:可以看到在R2的路由表中并没有发现3.0.0.0的路由;说明R2理解了R3发送到路由更新,将其3.0.0.0从路由表中删除;这也说明了跳数为16跳的路由在RIP中没有任何意义,当然也不会被其他路由器学习并存放在路由表中;
RIPv1和RIPv2 的区别
从上面的实验和抓包我们可以看到RIPv1默认是把路由请求和路由更新发送给目标地址为255.255.255.255(广播),并且在对应的报文中,并没有掩码,只有ip地址,其原因是RIPv1是有类路由协议,它默认会根据ip地址的分类默认添加/8或/16或/24的掩码,这也说明了RIPv1它不能运行在非默认掩码的网络环境中,即不支持vlsm(可变长子网掩码,就是子网划分,将一个子网划分为多个子网)和cidr(无类域间路由,和子网划分相反,是将多个子网聚合为一个子网);除了上述的2各特点,它还不支持认证;
RIPv2的特点,它弥补了RIPv1版本的缺陷,首先它的报文不是全网广播,而是将路由请求和路由更新发送到224.0.0.9这个组播地址,只有运行RIPv2版本的RIP进程会从这个组播地址学习路由;其次RIPv2是无类路由协议,所谓无类动态路由协议就是指对应路由信息在报文中除了有ip地址,它还携带掩码,这也意味着RIPv2支持vlsm和cidr;除此RIPv2支持明文认证和md5密文认证,从某些角度讲要比RIPv1安全;
验证:在R1上抓包,然后更改R2 上的RIP进程,让其运行为v2 版本,看看对应和v1版本的数据包有什么不同?
RIPv2的数据包
RIPv1的数据包
提示:从上面抓包来看,V1的数据包是全网广播,并且路由信息不携带掩码;v2的数据包不是全网广播,而是发送给224.0.0.9这个组播地址,并非且对应路由信息中有携带掩码;
在R1上查看路由表
提示:在R1的路由表中我们可以看到有两条由RIP学习过来的路由,其中一条的掩码为8,另一条为24;为什么会有两条路由呢,其原因是v2版本学习到的是24为掩码,而v1版本学习到的是8为掩码,从路由器的路由规则来讲,24为掩码优先匹配(最长掩码匹配原则嘛),所以当路由器从RIPv2切换为v1时,原来24掩码的路由不会立马被路由器删除(老化时间到了会被删除);反之,如果路由器从RIPv1切换成RIPv2,对应/8的路由会立马被删除;
RIPv1报文格式
RIPv1字段解释
RIPv2报文格式
RIPv2报文字段解释
RIPv2认证功能的配置
在R2上配置简单明文认证功能
提示:配置RIP认证,我们需要在对应的接口上配置;上述命令中simple表示简单明文认证,除此RIP还支持md5认证,后面的plain表示在配置信息中以明文的方式回显,所以上述命令表示的意思是在g0/0/0这个接口上开启rip认证,认证模式为简单明文认证,并在配置信息中以明文的方式回显;
验证:我们在R1上抓包,看看对应R2发送到数据包有什么特点?是否能够抓到密码呢?
提示:可以看到我们在R1上抓包,是能够看到R2发送到认证信息,并且从路由更新包中也能清楚的看到对应的密码;
更改R2上RIP认证模式为md5认证,并在配置信息回显以明文方式显示
再次在R1上抓包,看看是否能够抓到R2发送到认证密码呢?
提示:再次在R1上抓包就看不到对应的密码了;接下来我们看看R1的路由表,看看是否能够学习到R2上的路由呢?
提示:可以看到在R1上此时并无法学习到R2上的路由;原因是R1上没有配置认证;
在R1上配置简单明文认证,并在配置信息中以密文方式回显
提示:后面的cipher的作用就是用来配置在配置信息中以密文的方式显示;这是一种防止密码泄露的一个安全措施吧;
此时R1和R2都配置了认证,并且密码都相同,在R1上是否能够学习到R2上的路由呢?
提示:虽然R1上的认证和R2上的认证密码都是admin,但是他们的使用的认证模式不一样,所以还是导致R1无法学习到R2的路由;
配置R1的认证模式为md5,并在回显时以密文方式
提示:现在R1和R2的认证方式和认证密码都相同,唯一不同的是一个回显明文显示,一个回显密文显示,我们再来看看R1是否能够学习到R2的路由呢?
提示:现在我们在R1上学习到R2上的路由;通过上述实验我们可以总结,在RIP中做认证,必须满足两个条件,第一认证模式必须相同,其次就是认证的密码必须相同,回显相同和不同不影响认证;这两个条件必须同时满足,认证才会通过,否则认证通不过;
HCNA Routing&Switching之动态路由协议RIP的更多相关文章
- HCNA Routing&Switching之动态路由协议OSPF基础(一)
前文我们了解了基于路径矢量算法的动态路由协议RIP防环以及度量值的修改相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15012895.html:今天我 ...
- HCNA Routing&Switching之动态路由协议OSPF建立邻居的条件
前文我们了解了OSPF的router id.数据包结构.类型.不同类型的数据包作用以及OSPF状态机制,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15027 ...
- HCNA Routing&Switching之动态路由协议OSPF基础(二)
前文我们主要了解了OSPF的区域.区域分类.路由器类型.OSPF的核心工作流程,回顾请参考:https://www.cnblogs.com/qiuhom-1874/p/15025533.html:今天 ...
- HCNA Routing&Switching之动态路由协议OSPF DR和BDR
前文我们了解了OSPF建立邻居关系的条件,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15032907.html:今天我们来聊一聊OSPF中的DR和BDR: ...
- HCNA Routing&Switching之动态路由基本概念
前文我们了解了静态路由的相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/14965433.html:今天我们来聊一聊动态路由相关概念: 首先我们要清楚什 ...
- HCNP Routing&Switching之动态路由协议IS-IS基础
前文我们了解了OSPF的特殊区域相关话题,回顾请参考https://www.cnblogs.com/qiuhom-1874/p/15236330.html:今天我们来聊一聊另一动态路由协议IS-IS相 ...
- 1.3-动态路由协议RIP①
Dynamic Routing Protocol:动态路由协议 现代IP网络中,主要的动态路由协议: AD/管理距离: 1:DV/距离向量协议:RIP(120)/IGRP(100) 2:LS/链路状态 ...
- 动态路由协议RIP
RIP Routing Information Protocol,属IGP协议,是距离矢量型动态路由协议(直接发送路由信息的协议为距离矢量型协议),使用UDP协议,端口号520. 贝尔曼福特算法 RI ...
- HCNA Routing&Switching之路由基础
在开始聊路由之前,我们首先要明白在网络通讯里,什么是路由?什么是路由表.路由器以及网关的相关术语:路由简单讲就是指网络数据包从源头到目标的路径,主要用来为不同网络间通讯提供数据包转发依据:路由表就是多 ...
随机推荐
- Devops 导论
第一章 DevOps概述 第二章 个体软件过程 第三章 敏捷软件开发 第四章 软件架构演化 第五章 云原生与容器技术 第六章 XaaS和IT服务标准 第七章 DevOps工具链 --学习总结自< ...
- MYSQL数据库快速添加测试数据方法
先添加两条数据,这里最好添加两条不一样的数据 INSERT INTO "表名"(**, **) VALUES (**,**),(**,**) 然后再次添加数据,这次把查询到的数据添 ...
- springboot对mybatis的整合
1. 导入依赖 首先新建一个springboot项目,勾选组件时勾选Spring Web.JDBC API.MySQL Driver pom.xml配置文件导入依赖 <!--mybatis-sp ...
- zookeeper之二:zookeeper3.7.0安装过程实操
前面分享了zookeeper的基本知识,下面分享有关zookeeper安装的知识. 1.下载 zookeeper的官网是:https://zookeeper.apache.org/ 在官网上找到下载链 ...
- GO文件读写01---读文件
打开文件 package main import ( "fmt" "os" ) /* buffer 缓冲区 utility 便利的工具 util 便捷工具(傻瓜 ...
- 结构感知图像修复:ICCV2019论文解析
结构感知图像修复:ICCV2019论文解析 StructureFlow: Image Inpainting via Structure-aware Appearance Flow 论文链接: http ...
- 3D惯导Lidar仿真
3D惯导Lidar仿真 LiDAR-Inertial 3D Plane Simulator 摘要 提出了最*点*面表示的形式化方法,并分析了其在三维室内同步定位与映射中的应用.提出了一个利用最*点*面 ...
- ITS智能交通监控系统技术解析
ITS智能交通监控系统技术解析 红灯,逆行,变 车辆抓拍和车速检测 非法停车和交通流量检测 交叉路口违法检测 发生碰撞的交叉口是智能交通管理. 机动执法 当你需要一个可以移动的系统时,会跟着你移动.移 ...
- [NOIP1998 提高组] 拼数
题目描述 设有 n 个正整数 a1-an,将它们联接成一排,相邻数字首尾相接,组成一个最大的整数. 输入格式 第一行有一个整数,表示数字个数 n. 第二行有 n 个整数,表示给出的 n 个整数 a_ ...
- 硬核!2w 字长文爆肝分布式事务知识点!!
前言 分布式事务,是分布式架构中一个绕不开的话题,而什么是分布式事务?为什么要使用分布式事务?分布式事务有哪些实现方案?更是面试时面试官特别喜欢的一个分布式三连炮!同时用XMind画了一张导图记录分布 ...