CCNP-EIGRP路由认证:
实验拓扑:

实验目标:
EIGRP的认证。
为了安全起见,所以在路由上添加认证,在路由更新时对数据包进行认证。EIGRP只支持MD5加密认证,不支持明文认证。在发送时并不发送密钥本身。而是发送一个消息摘要。所以即使被截取也不知道密钥。EIGRP配置认证时先要配置一个密钥链,然后在密钥链是添加密钥ID,在密钥ID上设置密码。密钥链的名称可以不同,但密钥ID和密码是必须相同。
路由基本配置(略)
IP地址配置:
r1(config)#in s1/0
r1(config-if)#ip add 219.146.0.1 255.255.255.0
r1(config-if)#no sh
r1(config-if)#exi
r2(config)#in s1/0
r2(config-if)#ip add 219.146.0.2 255.255.255.0
r2(config-if)#no sh
r2(config-if)#in s1/1
r2(config-if)#ip add 219.146.1.1 255.255.255.0
r2(config-if)#no sh
r2(config-if)#exi
r3(config)#in s1/1
r3(config-if)#ip add 219.146.1.2 255.255.255.0
r3(config-if)#no sh
r3(config-if)#exi
EIGRP配置:
r1(config)#router e 10
r1(config-router)#no au
r1(config-router)#net 219.146.0.0 0.0.0.255
r1(config-router)#exi
r2(config)#router e 10
r2(config-router)#no au
r2(config-router)#net 219.146.0.0 0.0.1.255
r2(config-router)#exi
r3(config)#router e 10
r3(config-router)#no au
r3(config-router)#net 219.146.1.0 0.0.0.255
r3(config-router)#exi
查看一下R1的邻居表:
r1(config)#do sh ip ei nei
IP-EIGRP neighbors for process 10
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
0 219.146.0.2 Se1/0 14 00:02:34 147 882 0 2
已经有一个邻居了,下面来配置认证。
r1(config)#key chain cisco //定义一个密钥链
r1(config-keychain)#key 1 //定义密钥ID
r1(config-keychain-key)#key-string 123 //定义密码
r1(config-keychain-key)#exi
r1(config-keychain)#exi
r1(config)#in s1/0 //在接口下应用
r1(config-if)#ip authentication key-chain eigrp 10 cisco
r1(config-if)#ip authentication mode eigrp 10 md5
r1(config)#do sh ip ei nei
IP-EIGRP neighbors for process 10
已经没有邻居了,因为R2没有通过认证。在R2上配置:
r2(config)#key chain cisco
r2(config-keychain)#key 1
r2(config-keychain-key)#key-string 123
r2(config-keychain-key)#exi
r2(config-keychain)#exi
r2(config)#in s1/0
r2(config-if)#ip authentication key-chain ei 10 cisco
r2(config-if)#ip authentication mode ei 10 md5
r2(config-if)#exi
r1(config)#do sh ip ei nei
IP-EIGRP neighbors for process 10
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
0 219.146.0.2 Se1/0 13 00:00:28 111 666 0 8
重新建立了邻居关系。双方通过了认证。
接下来在R2和R3上做认证。
r2(config)#in s1/1
r2(config-if)#ip authentication key-chain ei 10 cisco
r2(config-if)#ip authentication mode ei 10 md5
r2(config-if)#exi
r3(config)#key chain mycisco //这里定义了一个不同的密钥链。
r3(config-keychain)#key 1
r3(config-keychain-key)#key-string 123
r3(config-keychain-key)#exi
r3(config-keychain)#exi
r3(config)#in s1/1
r3(config-if)#ip authentication key-chain ei 10 mycisco
r3(config-if)#ip authentication mode ei 10 md5
r3(config-if)#exi
r3(config)#do sh ip ei nei
IP-EIGRP neighbors for process 10
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
0 219.146.1.1 Se1/1 13 00:00:06 135 810 0 12
这就说明key chain不同可以通过认证。
下面来试一下key id不同能不能通过认证。
r3(config)#no key chain mycisco
r3(config)#key chain mycisco
r3(config-keychain)#key 2
r3(config-keychain-key)#key-string 123
r3(config-keychain-key)#exi
r3(config-keychain)#exi
r3(config)#exi
r3#clear ip ei nei
r3#sh ip ei nei
IP-EIGRP neighbors for process 10
已经不能建立邻居关系了。说明key id要相同才能通过认证。
接下来在R2操作。
r2(config)#key chain cisco
r2(config-keychain)#key 2
r2(config-keychain-key)#key-string 123
r2(config-keychain-key)#exi
r2(config-keychain)#exi
r2(config)#do sh ip ei nei
IP-EIGRP neighbors for process 10
H Address Interface Hold Uptime SRTT RTO Q Seq
(sec) (ms) Cnt Num
1 219.146.1.2 Se1/1 10 00:00:36 1 5000 1 0
0 219.146.0.1 Se1/0 11 00:30:18 119 714 0 6
r3#sh ip ei nei
IP-EIGRP neighbors for process 10
在R2上和R3建立了邻居关系,但R3上并没有建立邻居关系。这是因为R2会发送key 1和R3认证。但R3上没有key 1。所以认证不能通过。但R3发送key 2给R2认证。因为R2上有key 1。所以R2上能够通过认证。这就说明如果存在多个有效的key id,路由器会发送第一个(最小)和邻居认证。这时只需在R3上配上key 1(或在R2上NO掉key 1)就能恢复。
关于key id的有效期如下:
r2(config)#key chain cisco
r2(config-keychain)#key 1
r2(config-keychain-key)#accept-lifetime 11:00:00 jan 3 2010 duration 3600
//在这个时间后的3600秒之内接收认证。把duration 3600换成infinite表示一直有效。
r2(config-keychain-key)#send-lifetime 11:00:00 jan 3 2010 12:00:00 jan 3 2010
//在这个时间之间发送认证。
如果配置了多个密钥且对密钥都设置了有效期。那在两个相邻的有效期之间要有个重叠的时间。避免在这段时间内路由不能通过认证。