<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

 

3.8 RIPv2 的认证机制

 

实验连接图

<?xml:namespace prefix = v ns = "urn:schemas-microsoft-com:vml" />

提要描述

Cisco 实现 RIPv2 的消息认证包括两种选择—简单的明文认知和 MD5 认证。

配置 RIPv2 认证的步骤如下:

1 :定义一个带名的钥匙链

2 :定义在钥匙链的钥匙

3 :在接口上启动认证并指定使用的钥匙链

4 :指定这个接口使用明文认证还是 MD5 认证

5 :还有其它的可选配置钥匙管理

实验目标 : 通过实验调试出两种认证的各种情况

RIPv1 基本配置

R1 的配置

R2 的配置

!

hostname R1

!

interface Loopback1

 ip address 1.1.1.1 255.255.255.0

!

interface Loopback2

 ip address 1.1.2.1 255.255.255.0

!

interface Loopback3

 ip address 1.1.3.1 255.255.255.0

!

interface Serial1/1

 ip address 12.1.1.1 255.255.255.0

no shut

!

router rip

 version 2

 network 1.0.0.0

 network 12.0.0.0

 no auto-summary

!

!

hostname R2

!

interface Loopback1

 ip address 2.2.1.1 255.255.255.0

!

interface Loopback2

 ip address 2.2.2.1 255.255.255.0

!

interface Loopback3

 ip address 2.2.3.1 255.255.255.0

!

interface Serial1/0

 ip address 12.1.1.2 255.255.255.0

no shut

!

router rip

 version 2

 network 2.0.0.0

 network 12.0.0.0

 no auto-summary

!

↓调试配置及监测步骤↓

 

完成以上基本配置常规情况下的路由表:

 

R1#show ip route

     1.0.0.0/24 is subnetted, 3 subnets

C       1.1.1.0 is directly connected, Loopback1

C       1.1.2.0 is directly connected, Loopback2

C       1.1.3.0 is directly connected, Loopback3

     2.0.0.0/24 is subnetted, 3 subnets

R       2.2.1.0 [120/1] via 12.1.1.2, 00:00:05, Serial1/1

R       2.2.2.0 [120/1] via 12.1.1.2, 00:00:05, Serial1/1

R       2.2.3.0 [120/1] via 12.1.1.2, 00:00:05, Serial1/1

     12.0.0.0/24 is subnetted, 1 subnets

C       12.1.1.0 is directly connected, Serial1/1

 

R2#show ip route

     1.0.0.0/24 is subnetted, 3 subnets

R       1.1.1.0 [120/1] via 12.1.1.1, 00:00:11, Serial1/0

R       1.1.2.0 [120/1] via 12.1.1.1, 00:00:11, Serial1/0

R       1.1.3.0 [120/1] via 12.1.1.1, 00:00:11, Serial1/0

     2.0.0.0/24 is subnetted, 3 subnets

C       2.2.1.0 is directly connected, Loopback1

C       2.2.2.0 is directly connected, Loopback2

C       2.2.3.0 is directly connected, Loopback3

     12.0.0.0/24 is subnetted, 1 subnets

C       12.1.1.0 is directly connected, Serial1/0

 

 

(一)明文认证

 

R1上的配置:

R1(config)#key chain sharkii  #----配置钥匙链

R1(config-keychain)#key 1    #----配置一把钥匙

R1(config-keychain-key)#key-string sharkii labing  #----配置钥匙的密码

R1(config)#int s1/1

R1(config-if)#ip rip authentication key sharkii #---在接口上启动认证并调用钥匙链

R1(config-if)#ip rip authentication mode text   #----------配置认证模式为明文,默认认证模式就是明文,所以也可以不用指定

 
R2上同样配置:

R2(config)#key chain sharkii

R2(config-keychain)#key 1

R2(config-keychain-key)#key-string sharkii labing

R2(config)#int s1/0

R2(config-if)#ip rip authentication key sharkii

R2(config-if)#ip rip authentication mode text

 

 

R1#show ip protocols

    Interface             Send  Recv  Triggered RIP  Key-chain

Serial1/1             2     2                    sharkii   

 

R2#show ip protocols

    Interface             Send  Recv  Triggered RIP  Key-chain

    Serial1/0             2     2                    sharkii  

以上两行表明R1S1/1R2S1/0接口都启用了认证

R1#debug ip rip

*Mar 23 04:12:03.799: RIP: received packet with text authentication sharkii labing  #---收到密码为sharkii labing的明文认证数据包

*Mar 23 04:12:03.803: RIP: received v2 update from 12.1.1.2 on Serial1/1

*Mar 23 04:12:03.803:      2.2.1.0/24 via 0.0.0.0 in 1 hops

*Mar 23 04:12:03.807:      2.2.2.0/24 via 0.0.0.0 in 1 hops

*Mar 23 04:12:03.807:      2.2.3.0/24 via 0.0.0.0 in 1 hops

R2#debug ip rip

*Mar 23 04:11:59.035: RIP: received packet with text authentication sharkii labing

*Mar 23 04:11:59.035: RIP: received v2 update from 12.1.1.1 on Serial1/0

*Mar 23 04:11:59.035:      1.1.1.0/24 via 0.0.0.0 in 1 hops

*Mar 23 04:11:59.039:      1.1.2.0/24 via 0.0.0.0 in 1 hops

*Mar 23 04:11:59.039:      1.1.3.0/24 via 0.0.0.0 in 1 hops

在接收的更新中带有“text authentication”的字样,再次证明接口S1/1 S1/0都启用了明文认证。

 

看看用软件在R1S1/1接口抓包情况:

如图所示!当使用简单的密码认证是,密码是以明文方式传输的,因此很容易通过嗅探更新数据包就可以读出密码。

 

 

 

(二) MD5 认证

 

关于MD5 认证,(在明文配置的基础上)只需要在接口下声明认证模式为MD5 即可:

R1R2上的配置:

R1(config)#int s1/1

R1(config-if)#ip rip authentication mode md5

 

R2(config)#int s1/0

R2(config-if)#ip rip authentication mode md5

 

 

看看R1R2debug信息:

R1#debug ip rip

*Mar 23 05:11:38.383: RIP: received packet with MD5 authentication

*Mar 23 05:11:38.387: RIP: received v2 update from 12.1.1.2 on Serial1/1

*Mar 23 05:11:38.387:      2.2.1.0/24 via 0.0.0.0 in 1 hops

*Mar 23 05:11:38.391:      2.2.2.0/24 via 0.0.0.0 in 1 hops

*Mar 23 05:11:38.391:      2.2.3.0/24 via 0.0.0.0 in 1 hops

R2#debug ip rip

*Mar 23 05:11:36.483: RIP: received packet with MD5 authentication

*Mar 23 05:11:36.487: RIP: received v2 update from 12.1.1.1 on Serial1/0

*Mar 23 05:11:36.487:      1.1.1.0/24 via 0.0.0.0 in 1 hops

*Mar 23 05:11:36.491:      1.1.2.0/24 via 0.0.0.0 in 1 hops

*Mar 23 05:11:36.491:      1.1.3.0/24 via 0.0.0.0 in 1 hops

在接收的更新中带有“MD5 authentication”的字样,已经看不到了被加密的密码。

 

再次看看用软件在R1S1/1接口抓包情况:

如图所示!来自同样的更新,但使用是MD5认证,密码是以MD5加密传输的,因此看到的密码已经不是明文而是一大串经过128hash的字符,这样就算通过嗅探包含更新的数据包也非常之难读出密码。因此明智的选择是用安全性能好得多的MD5认证。

 

 

 
总结:

钥匙链name只有本地有意义,两个路由器的key chain name可以不同,但宣告给对方的key-string必须相同,成功配置认证最明智的方法是:不要手动一条条配置,而是是写好脚本粘贴上路由器。

 

 

 

1: 明文认证的匹配原则是:

(1). 发送方发送最小 Key ID 的密钥 (key-string)

(2). 不携带 Key ID 号码

(3). 接收方会和 所有 Key Chain 中的密钥 (key-string) 匹配 ,如果匹配成功,则通过认证。

 

【例如】

路由器R1 有一个Key ID,key1=sharkii01

路由器R2 有两个Key ID,key1=sharkii02,key2=sharkii01

R1上的配置:

!        

key chain sharkii01

 key 1

  key-string sharkii01

!

interface Serial1/1

ip rip authentication key-chain sharkii01

!

R2上的配置:

!  

key chain sharkii02

 key 1

  key-string sharkii02

 key 2

  key-string sharkii01

!

interface Serial1/0

ip rip authentication key-chain sharkii02

!

R1#debug ip rip

*Mar 23 08:08:59.375: RIP: received packet with text authentication sharkii02

*Mar 23 08:08:59.379: RIP: ignored v2 packet from 12.1.1.2 (invalid authentication)  #----接收来自R2的密钥(sharkii02)时认证失败。

 

R2#debug ip rip

*Mar 23 08:13:09.883: RIP: received packet with text authentication sharkii01

*Mar 23 08:13:09.887: RIP: received v2 update from 12.1.1.1 on Serial1/0

*Mar 23 08:13:09.887:      1.1.1.0/24 via 0.0.0.0 in 1 hops

*Mar 23 08:13:09.887:      1.1.2.0/24 via 0.0.0.0 in 1 hops

*Mar 23 08:13:09.891:      1.1.3.0/24 via 0.0.0.0 in 1 hops

根据上面的原则,R1 认证失败,R2 认证成功可以学到来自R1的全部路由,所以在RIP v2认证中,会有可能出现单边路由的现象。

 

  

2: MD5 认证的匹配原则是:

1 . 发送方发送最小 Key ID 的密钥 (key-string)

2 . 携带 Key ID 号码

3 . 接收方首先会查找是否有相同的 Key ID ,如果有,只匹配一次,就可决定认证是否成功。如果没有该 Key ID ,只向下查找下一个 key ID (只检查该 KEY ID 号中的密钥) ,匹配,认证成功;不匹配,认证失败。

 
 
【例如】

路由器R1 有三个Key ID,key1=sharkii02key3=sharkii,key4=sharkii

路由器R2 有一个Key ID,key2=sharkii02

根据上面的原则,R1 认证失败,R2 认证成功。

 

R1上的配置:

!        

key chain sharkii01

 key 1

  key-string sharkii02

 key 3

  key-string sharkii01

 key 4

  key-string sharkii02

!

interface Serial1/1

 ip rip authentication mode md5

 ip rip authentication key-chain sharkii01

R2上的配置:

!        

key chain sharkii02

 key 2

  key-string sharkii02

!

interface Serial1/0

 ip rip authentication mode md5

 ip rip authentication key-chain sharkii02

R1#debug ip rip

*Mar 23 08:30:41.655: RIP: received packet with MD5 authentication

*Mar 23 08:30:41.659: RIP: ignored v2 packet from 12.1.1.2 (invalid authentication)  #----认证失败

 

R2#debug ip rip

*Mar 23 08:31:16.815: RIP: received packet with MD5 authentication

*Mar 23 08:31:16.819: RIP: received v2 update from 12.1.1.1 on Serial1/0

*Mar 23 08:31:16.819:      1.1.1.0/24 via 0.0.0.0 in 1 hops

*Mar 23 08:31:16.823:      1.1.2.0/24 via 0.0.0.0 in 1 hops

*Mar 23 08:31:16.823:      1.1.3.0/24 via 0.0.0.0 in 1 hops

根据上面的MD5认证匹配的原则,R1 认证失败R2 认证成功可以学到来自R1的全部路由。