实验拓扑:
首先按照拓扑图给每个接口配上IP地址:
PC1-e0/0:192.168.10.1/24
R1-e0/0:192.168.10.254/24 e0/1:202.101.12.1/24
ISP-R2-e0/0:202.101.12.100/24 e0/1:202.101.23.100/24
R3-e0/0:202.101.23.3/24 e0/1:192.168.30.254/24
PC3-E0/0:192.168.30.1/24
在配置IPSec前首先要保证公网可达:在R1和R3上写一条默认路由
R1(config)# ip route 0.0.0.0 0.0.0.0 202.101.12.100
R3(config)# ip route 0.0.0.0 0.0.0.0 202.101.23.100
测试R1,R3连通性:
配置IPSec:
①定义感兴趣流
R1(config)#access-list 100 permit ip 192.168.10.0 0.0.0.255 192.168.30.0 0.0.0.255
②配置IKE保护策略
R1(config)#crypto isakmp policy 10 // IKE策略10
R1(config-isakmp)#encryption 3des // 加密算法3des
R1(config-isakmp)#hash sha // sha做完整性校验
R1(config-isakmp)#authentication pre-share //身份验证方式为预共享密钥PSK
R1(config-isakmp)#group 5 // DH组为5,组别越大,交换强度越高
③定义PSK
R1(config)#crypto isakmp key 123 address 202.101.23.3 //和哪个地址建立密码123的密钥
④定义二阶段保护策略
R1(config)#crypto ipsec transform-set myset esp-3des esp-md5-hmac //配置转换集名字myset, IPSec的封装协议esp-3des esp-md5-hmac(默认隧道模式tuunel)
⑤创建map将上面的关联在一起
R1(config)#crypto map mymap 10 ipsec-isakmp// 名称mymap,编号10,自动关联ipsec
R1(config-crypto-map)#set peer 202.101.23.3// 关联对等体
R1(config-crypto-map)#set transform-set myset //关联转换集myset
R1(config-crypto-map)#match address 100 // 匹配上面的感兴趣流acl 100
⑥在接口调用(不一定是物理接口)
R1(config)#int e0/1
R1(config-if)#crypto map mymap
R3上也需要按照这几个步骤来做:部分配置如下
配置完之后测试连通性:
并且可通过pc1去Ping pc3, 使用wireshark抓取报文观察主模式和快速模式发送的九个报文: