RIP协议+密文认证

2024-01-06 11:59
文章标签 认证 协议 rip 密文

本文主要是介绍RIP协议+密文认证,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

RIPv1不支持认证,已被淘汰;
RIPv2支持明文认证和MD5密文认证。

RIP是距离矢量路由协议,不需要建立邻居关系,其认证是单向的,即R1认证了R2时(R2是被认证方),R1就接收R2发送来的路由;反之,如果R1没认证R2时(R2是被认证方),R1将不能接收R2发送来的路由;R1认证了R2(R2是被认证方)不代表R2认证了R1(R1是被认证方)。即双向认证=做两次单向认证,无法一次完成。

通俗理解


在认证过程中,将认证方与被认证方之间的关系看作老师与学生之间的关系。认证方=老师,被认证方=学生,则认证过程可理解为: 学生交作业给老师,老师按照要求检查学生作业,若作业符合要求,则学生完成作业,作业留在老师处。

(注:“要求”即为明文认证或密文认证的规则,包括作业不符合要求后的处理方式)

以如下拓扑图为例:
在这里插入图片描述

明文认证

明文认证时,被认证方发送key chian时,发送最低ID值的key(因此在匹配过程中才无需在意key的ID),并且不携带ID;认证方接收到key后,和自己key chain的全部key进行比较,只要有一个key匹配就通过对被认证方的认证。

根据“认证方=老师,被认证方=学生”的理解,则认证过程可理解为:学生将名字任意的作业交给老师,老师检查此作业是否属于本班同学,若属于,则此学生算作完成作业,作业留在老师处。

R1的key chainR2的key chainR1可以接收路由?R2可以接收路由?
key 1=ciscokey 2=cisco可以可以
key 1=ciscokey 1=abcd key 2=cisco不可以可以
key 1=cisco key 2=abcdkey 1=abcd key 2=cisco可以可以

详解:由于明文认证时,被认证方发送的key-chain不携带ID,也就是说无论被认证方发送的key是key1还是key2都可与认证方的key-chain进行任意匹配,只要匹配成功一个,就算认证成功,认证方可接受此发送路由。
R1是否可以接受路由,也就是说将R1当做老师,R2当做学生,学生交作业给老师,也就是 用R2去匹配R1
R2是否可以接受路由,也就是说将R2当做老师,R1当做学生,学生交作业给老师,也就是 用R1去匹配R2

密文认证


RIP的密文认证也是单向的,然而此时被认证方发送key时,发送最低ID值的key,并且携带了ID。认证方接收到key后,首先在自己key-chain中查找是否具有相同ID的key,如果有相同ID的key并且key相同就通过认证,key值不同就不通过认证;如果没有相同ID的key,就查找该ID往后的最近ID的key;如果没有往后的ID,认证失败。

根据“认证方=老师,被认证方=学生”的理解,则认证过程可理解为:学生将自己的作业交给老师,老师检查作业与学生是否匹配,若匹配,则检查作业是否正确,若作业正确,则此学生完成作业,作业留在老师处;若作业与学生不匹配,则按照学号向后查找学号距离最近的学生,判断该学生与作业是否匹配,若匹配,执行上一过程;若两种情况都不满足,则此学生没有完成作业。

R1的key chainR2的key chainR1可以接收路由?R2可以接收路由?
key 1=ciscokey 2=cisco不可以可以
key 1=ciscokey 1=abcd,key 2=cisco不可以不可以
key 1=cisco,key 5=ciscokey 2=cisco可以可以
key 1=cisco,key 3=abcd,key 5=ciscokey 2=cisco不可以可以

先解读第三列 R1是否可以接受路由,也就是说将R1当做老师,R2当做学生,学生交作业给老师,也就是 用R2去匹配R1
①首先判断ID,R1的key只有key1,那么就需要根据ID的大小向后寻找,而R1中key1没有后续,故认证失败;
②首先判断ID,R1的key只有key1,然后判断R2的key1与R1的key1的是否一致,可知不一致,故认证失败;
③首先判断ID,明显可看出R1的key chain中没有R2要找的key2,那么就需要根据ID的大小向后寻找,找到R1的key5=cisco,与R2的key2一致,故认证成功;
④首先判断ID,明显可看出R1的key chain中没有R2要找的key2,那么就需要根据ID的大小向后寻找距离最近的key,找到R1的key3=abcd,与R2的key2不一致,故认证失败。

再解读第四列 R2是否可以接受路由,也就是说将R2当做老师,R1当做学生,学生交作业给老师,也就是 用R1去匹配R2
①首先判断ID,R2中没有要找的key1,那么就需要根据ID的大小向后寻找,找到key2,可知R1的key1与R2的key2一致,故认证成功;
②首先判断ID,R1的key只有key1,然后判断R2的key1与R1的key1的是否一致,可知不一致,故认证失败;
③首先判断ID,对key1的判断同①,只要成功匹配一个就算成功,故认证成功;
④首先判断ID,同③,认证成功。

配置路由与实验过程

R1预配置:
r1#conf t
r1(config)#int lo 0
r1(config-if)#ip ad 172.16.1.1 255.255.255.0
r1(config-if)#int s1/2
r1(config-if)#ip ad 10.0.0.1 255.255.255.0
r1(config-if)#no sh
r1(config-if)#exit
r1(config)#router rip
r1(config-router)#ver 2
r1(config-router)#net 10.0.0.1
r1(config-router)#net 172.16.1.1
r1(config-router)#end
r1#
R2预配置:
r2#conf t
r2(config)#int lo 0
r2(config-if)#ip ad 172.16.2.2 255.255.255.0
r2(config-if)#int s2/1
r2(config-if)#ip ad 10.0.0.2 255.255.255.0
r2(config-if)#no sh
r2(config-if)#exit
r2(config)#router rip
r2(config-router)#ver 2
r2(config-router)#net 10.0.0.2
r2(config-router)#net 176.2.2.2
r2(config-router)#end
r2#

实验过程(明文认证):

//第一步:在R1上配置密码
r1#conf t
r1(config)#key chain R1
r1(config-keychain)#key 1
r1(config-keychain-key)#key-string cisco         
r1(config-keychain-key)#exit
r1(config-keychain)#key 2
r1(config-keychain-key)#key-string norvel         
r1(config-keychain-key)#exit
r1(config-keychain)#key 3
r1(config-keychain-key)#key-string ccie         
r1(config-keychain-key)#exit
r1(config-keychain)#exit
r1(config)#int s1/2
r1(config-if)#ip rip auth mode text         
r1(config-if)#ip rip auth key-chain R1         
r1(config-if)#
//第二步:在R2上配置密码
r2#conf t
r2(config)#key chain R2
r2(config-keychain)#key 1        
r2(config-keychain-key)#key-string ccie         
r2(config-keychain-key)#exit
r2(config-keychain)#exit
r2(config)#int s2/1
r2(config-if)#ip rip auth mode text         
r2(config-if)#ip rip auth key-chain R2         
r2(config-if)#end
r2#
//第三步:在R1上进行验证
r1#ping 172.16.2.2
//结果
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.2.2, timeout is 2 seconds:
!!!!!         
Success rate is 100 percent (5/5), round-trip min/avg/max = 96/112/152 ms //成功率为100%,表示认证成功
r1#

实验过程(密文认证):

//第一步:在R1上配置密码
r1#conf t
r1(config)#key chain A
r1(config-keychain)#key 1
r1(config-keychain-key)#key-string cisco         
r1(config-keychain-key)#exit
r1(config-keychain)#key 2
r1(config-keychain-key)#key-string norvel         
r1(config-keychain-key)#exit
r1(config-keychain)#key 3
r1(config-keychain-key)#key-string ccna         
r1(config-keychain-key)#exit
r1(config-keychain)#exit
r1(config)#int s1/2
r1(config-if)#ip rip auth mod md5         
r1(config-if)#ip rip auth key-chain A         
r1(config-if)#end
r1#
//第二步:在R2上配置密码
r2#conf t
r2(config)#key chain B
r2(config-keychain)#key 1
r2(config-keychain-key)#key-string ccna         
r2(config-keychain-key)#exit
r2(config-keychain)#exit
r2(config)#int s2/1
r2(config-if)#ip rip auth mod md5         
r2(config-if)#ip rip auth key-chain B         
r2(config-if)#end
r2#
//第三步:在R1上进行验证
r1#ping 172.16.2.2
//结果
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.2.2, timeout is 2 seconds:
.....         
Success rate is 0 percent (0/5) 成功率为0%,表示认证失败
r1#
//第四步:在R2上更改配置密码
r2#conf t
r2(config)#key chain B
r2(config-keychain)#key 2
r2(config-keychain-key)#key-string ccna         
r2(config-keychain-key)#exit
r2(config-keychain)#exit
r2(config)#int s2/1
r2(config-if)#ip rip auth mod md5         
r2(config-if)#ip rip auth key-chain B         
r2(config-if)#end
r2#
//第五步:在R1上进行验证
r1#ping 172.16.2.2
//结果
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 172.16.2.2, timeout is 2 seconds:
!!!!!         
Success rate is 100 percent (5/5), round-trip min/avg/max = 24/108/256 ms
r1#

这篇关于RIP协议+密文认证的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/576292

相关文章

Java如何接收并解析HL7协议数据

《Java如何接收并解析HL7协议数据》文章主要介绍了HL7协议及其在医疗行业中的应用,详细描述了如何配置环境、接收和解析数据,以及与前端进行交互的实现方法,文章还分享了使用7Edit工具进行调试的经... 目录一、前言二、正文1、环境配置2、数据接收:HL7Monitor3、数据解析:HL7Busines

浅析Spring Security认证过程

类图 为了方便理解Spring Security认证流程,特意画了如下的类图,包含相关的核心认证类 概述 核心验证器 AuthenticationManager 该对象提供了认证方法的入口,接收一个Authentiaton对象作为参数; public interface AuthenticationManager {Authentication authenticate(Authenti

【Linux】应用层http协议

一、HTTP协议 1.1 简要介绍一下HTTP        我们在网络的应用层中可以自己定义协议,但是,已经有大佬定义了一些现成的,非常好用的应用层协议,供我们直接使用,HTTP(超文本传输协议)就是其中之一。        在互联网世界中,HTTP(超文本传输协议)是一个至关重要的协议,他定义了客户端(如浏览器)与服务器之间如何进行通信,以交换或者传输超文本(比如HTML文档)。

【Kubernetes】K8s 的安全框架和用户认证

K8s 的安全框架和用户认证 1.Kubernetes 的安全框架1.1 认证:Authentication1.2 鉴权:Authorization1.3 准入控制:Admission Control 2.Kubernetes 的用户认证2.1 Kubernetes 的用户认证方式2.2 配置 Kubernetes 集群使用密码认证 Kubernetes 作为一个分布式的虚拟

【Go】go连接clickhouse使用TCP协议

离开你是傻是对是错 是看破是软弱 这结果是爱是恨或者是什么 如果是种解脱 怎么会还有眷恋在我心窝 那么爱你为什么                      🎵 黄品源/莫文蔚《那么爱你为什么》 package mainimport ("context""fmt""log""time""github.com/ClickHouse/clickhouse-go/v2")func main(

2024.9.8 TCP/IP协议学习笔记

1.所谓的层就是数据交换的深度,电脑点对点就是单层,物理层,加上集线器还是物理层,加上交换机就变成链路层了,有地址表,路由器就到了第三层网络层,每个端口都有一个mac地址 2.A 给 C 发数据包,怎么知道是否要通过路由器转发呢?答案:子网 3.将源 IP 与目的 IP 分别同这个子网掩码进行与运算****,相等则是在一个子网,不相等就是在不同子网 4.A 如何知道,哪个设备是路由器?答案:在 A

Modbus-RTU协议

一、协议概述 Modbus-RTU(Remote Terminal Unit)是一种基于主从架构的通信协议,采用二进制数据表示,消息中的每个8位字节含有两个4位十六进制字符。它主要通过RS-485、RS-232、RS-422等物理接口实现数据的传输,传输距离远、抗干扰能力强、通信效率高。 二、报文结构 一个标准的Modbus-RTU报文通常包含以下部分: 地址域:单个字节,表示从站设备

【Shiro】Shiro 的学习教程(二)之认证、授权源码分析

目录 1、背景2、相关类图3、解析3.1、加载、解析阶段3.2、认证阶段3.3、授权阶段 1、背景 继上节代码,通过 debug 进行 shiro 源码分析。 2、相关类图 debug 之前,先了解下一些类的结构图: ①:SecurityManager:安全管理器 DefaultSecurityManager: RememberMeManager:实现【记住我】功能

网络原理之TCP协议(万字详解!!!)

目录 前言 TCP协议段格式 TCP协议相关特性 1.确认应答 2.超时重传 3.连接管理(三次握手、四次挥手) 三次握手(建立TCP连接) 四次挥手(断开连接)  4.滑动窗口 5.流量控制 6.拥塞控制 7.延迟应答 8.捎带应答  9.基于字节流 10.异常情况的处理 小结  前言 在前面,我们已经讲解了有关UDP协议的相关知识,但是在传输层,还有

OpenStack离线Train版安装系列—3控制节点-Keystone认证服务组件

本系列文章包含从OpenStack离线源制作到完成OpenStack安装的全部过程。 在本系列教程中使用的OpenStack的安装版本为第20个版本Train(简称T版本),2020年5月13日,OpenStack社区发布了第21个版本Ussuri(简称U版本)。 OpenStack部署系列文章 OpenStack Victoria版 安装部署系列教程 OpenStack Ussuri版