R1/R2/R3:运行IGP:RIP
需求:
1:PC1 到 PC2 的流量通过IPSec 加密传输:
2:如果在R2 :deny ip any any :那么R2在这之上应该放行哪些流量,才不会影响IPSec ×××的建立:
3:如果在R1(加密点)上Deny ip any any :此时R1需要放行哪些流量:IPSec ××× 才能正常建立:
步骤:
1:R1/R2/R3:配置路由:确保链路的可达性:
2:配置IPSec ×××的Parse 1 :
==>R1:
R1(config)#access-list 101 permit ip host 192.168.1.10 host 192.168.2.10 :定义感兴趣流量
R1(config)#crypto isakmp policy 10 :定义ISAKMP的策略:指定认证/加密类型
R1(config-isakmp)#authentication pre-share
R1(config-isakmp)#encryption des
R1(config-isakmp)#group 2
R1(config-isakmp)#hash md5
R1(config-isakmp)#lifetime 1000
R1(config-isakmp)#exit
R1(config)#crypto isakmp key 6 cisco add 2.2.2.3 :指定Pre-shared-key:
==>R3:
R3(config)#access-list 101 permit ip host 192.168.2.10 host 192.168.1.10
R3(config)#crypto isakmp policy 10
R3(config-isakmp)#authen pre
R3(config-isakmp)#encry des
R3(config-isakmp)#group 2
R3(config-isakmp)#hash md5
R3(config-isakmp)#lifetime 1000
R3(config-isakmp)#exit
R3(config)#crypto isakmp key 6 cisco add 1.1.1.1
3:配置IPSec ×××的Parse 2 :
R1(config)#crypto ipsec transform-set TS esp-des esp-md5-hmac :定义Transform-set :指定IPSec 的封装类型和传输模式
R1(cfg-crypto-trans)#mode tunnel
R1(config)#crypto map MYMAP 10 ipsec-isakmp :定义加密映射:指定IPSec ×××的各种参数
% NOTE: This new crypto map will remain disabled until a peer and a valid access list have been configured. :提示:指明需要感兴趣流量
R1(config-crypto-map)#set peer 2.2.2.3
R1(config-crypto-map)#match add 101
R1(config-crypto-map)#set transform-set TS
R1(config-crypto-map)#exit
R1(config)#int f0/0
R1(config-if)#crypto map MYMAP :接口下调用crypto-map
R1(config-if)#end
R1#
*Mar 11 16:34:12.939: %CRYPTO-6-ISAKMP_ON_OFF: ISAKMP is ON :提示接口上已经启用ISAKMP:
R3(config)#crypto ipsec transform-set TS esp-des esp-md5-hmac
R3(cfg-crypto-trans)#mode tunnel
R3(config)#crypto map MYMAP 10 ipsec-isakmp
R3(config-crypto-map)#set peer 1.1.1.1
R3(config-crypto-map)#set transform-set TS
R3(config-crypto-map)#match add 101
R3(config-crypto-map)#exit
R3(config)#int f1/0
R3(config-if)#crypto map MYMAP
R3(config-if)#END
4:PC1 PING PC2 发包测试:IPSec ×××必须要有感兴趣流量进行触发:
R1#ping 192.168.2.10 source 192.168.1.10 repeat 5 !!!!!
5:如果R2上对数据流做了限制:此时我们应该放行哪些流量:才不至于对IPSec ××× 造成影响:
R2(config)#ip access-list extended IPSEC
R2(config-ext-nacl)#permit udp host 2.2.2.3 host 1.1.1.1 eq 500 :放行UDP:500D的流量:用于ISAKMP的协商
R2(config-ext-nacl)#permit esp host 2.2.2.3 host 1.1.1.1 :放行ESP的加密数据:查看IP的协议字段:51:
R2(config-ext-nacl)#deny ip any any
==>如果不放行UDP:500 ,那么R1/R3的IPSec ××× 将协商失败:
*Mar 11 17:20:54.643: ISAKMP0:0:N/A:0): beginning Main Mode exchange
*Mar 11 17:20:54.647: ISAKMP0:0:N/A:0): sending packet to 2.2.2.3 my_port 500 peer_port 500 (I) MM_NO_STATE.....
注意:由于路由器接收不到回包 , 将停留在Phrase 1 的第一个Message:
==>如果只放行UDP:500 那么IKE/IPSec SA是可以协商建立的:
R1#show crypto engine connections active
ID Interface IP-Address State Algorithm Encrypt Decrypt
1 FastEthernet0/0 1.1.1.1 set HMAC_MD5+DES_56_CB 0 0
2001 FastEthernet0/0 1.1.1.1 set DES+MD5 8 0
2002 FastEthernet0/0 1.1.1.1 set DES+MD5 0 0
注意:此时R1/R3:的IPSec ×××已经成功协商建立:
通过查看IPSec SA的概要信息:发现加解密的数据包是不一样的 , 99%的原因是路由问题(包括ACL造成的链路连通性)
6:如果在R1(加密点)上Deny ip any any :此时R1需要放行哪些流量:IPSec ××× 才能正常建立:
由5可知ISAKMP/ESP这两种协议是必须的放的:那是否还需要放行其他的协议呢?
R1(config)#ip access-list extended IPSec
R1(config-ext-nacl)# 10 permit esp host 2.2.2.3 host 1.1.1.1
R1(config-ext-nacl)# 20 permit udp host 2.2.2.3 host 1.1.1.1 eq isakmp
R1(config-ext-nacl)# 30 deny ip any any
经过实验和询问得知:
12.4以前 , 必须放行解密后的流量:
R1(config)#ip access-list extended IPSec
R1(config-ext-nacl)# permit host 192.168.2.10 host 192.168.1.10
12.4以后 , 是不需要放行解密后的流量:链路两端就是通的