RIP协议+密文认证

RIPv1不支持认证 , 已被淘汰;
【RIP协议+密文认证】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 的key 可以接收路由?R2可以接收路由?
key 1=cisco
key 2=cisco
可以
可以
key 1=cisco
key 1=abcd key 2=cisco
不可以
可以
key 1=cisco key 2=abcd
key 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 的key 可以接收路由?R2可以接收路由?
key 1=cisco
key 2=cisco
不可以
可以
key 1=cisco
key 1=abcd,key 2=cisco
不可以
不可以
key 1=cisco,key 5=cisco
key 2=cisco
可以

RIP协议+密文认证

文章插图
可以
key 1=cisco,key 3=abcd,key 5=cisco
key 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 tr1(config)#int lo 0r1(config-if)#ip ad 172.16.1.1 255.255.255.0r1(config-if)#int s1/2r1(config-if)#ip ad 10.0.0.1 255.255.255.0r1(config-if)#no shr1(config-if)#exitr1(config)#router ripr1(config-router)#ver 2r1(config-router)#net 10.0.0.1r1(config-router)#net 172.16.1.1r1(config-router)#endr1#
R2预配置:r2#conf tr2(config)#int lo 0r2(config-if)#ip ad 172.16.2.2 255.255.255.0r2(config-if)#int s2/1r2(config-if)#ip ad 10.0.0.2 255.255.255.0r2(config-if)#no shr2(config-if)#exitr2(config)#router ripr2(config-router)#ver 2r2(config-router)#net 10.0.0.2r2(config-router)#net 176.2.2.2r2(config-router)#endr2#
实验过程(明文认证):
//第一步:在R1上配置密码r1#conf tr1(config)#key chain R1r1(config-keychain)#key 1r1(config-keychain-key)#key-string ciscor1(config-keychain-key)#exitr1(config-keychain)#key 2r1(config-keychain-key)#key-string norvelr1(config-keychain-key)#exitr1(config-keychain)#key 3r1(config-keychain-key)#key-string ccier1(config-keychain-key)#exitr1(config-keychain)#exitr1(config)#int s1/2r1(config-if)#ip rip auth mode textr1(config-if)#ip rip auth key-chain R1r1(config-if)#//第二步:在R2上配置密码r2#conf tr2(config)#key chain R2r2(config-keychain)#key 1r2(config-keychain-key)#key-string ccier2(config-keychain-key)#exitr2(config-keychain)#exitr2(config)#int s2/1r2(config-if)#ip rip auth mode textr2(config-if)#ip rip auth key-chain R2r2(config-if)#endr2#//第三步:在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 tr1(config)#key chain Ar1(config-keychain)#key 1r1(config-keychain-key)#key-string ciscor1(config-keychain-key)#exitr1(config-keychain)#key 2r1(config-keychain-key)#key-string norvelr1(config-keychain-key)#exitr1(config-keychain)#key 3r1(config-keychain-key)#key-string ccnar1(config-keychain-key)#exitr1(config-keychain)#exitr1(config)#int s1/2r1(config-if)#ip rip auth mod md5r1(config-if)#ip rip auth key-chain Ar1(config-if)#endr1#//第二步:在R2上配置密码r2#conf tr2(config)#key chain Br2(config-keychain)#key 1r2(config-keychain-key)#key-string ccnar2(config-keychain-key)#exitr2(config-keychain)#exitr2(config)#int s2/1r2(config-if)#ip rip auth mod md5r2(config-if)#ip rip auth key-chain Br2(config-if)#endr2#//第三步:在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 tr2(config)#key chain Br2(config-keychain)#key 2r2(config-keychain-key)#key-string ccnar2(config-keychain-key)#exitr2(config-keychain)#exitr2(config)#int s2/1r2(config-if)#ip rip auth mod md5r2(config-if)#ip rip auth key-chain Br2(config-if)#endr2#//第五步:在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 msr1#