本文主要介绍如何在Cisco路由上配置类型为站点到站点的IPSec ×××,实现L2L的安全通信。实验拓扑如下:
基于Cisco路由器的IPSec ×××的应用_第1张图片
实验目的
1.配置总公司与各分公司之间以及各分公司之间的×××,使它们能透过Internet实现安全的访问。
2.配置PAT实现总公司与各分公司访问Internet。
实验环境
使用DynamipsGUI工具模拟出4台路由器和3台虚拟PC。
各设备IP分配如下:
路由器R1:f0/0: 200.0.10.1/30,f1/0: 1.1.1.1/24
路由器R2:f0/0: 200.0.20.1/30,f1/0: 2.2.2.2/24
路由器R3:f0/0: 200.0.30.1/30,f1/0: 3.3.3.3/24
路由器ISP:f0/0: 200.0.30.20.2/30,f1/0: 200.0.30.2/30,f2/0: 200.0.10.2/30 loopback: 4.4.4.4/24
虚拟PC:VPCS1:1.1.1.2/24,VPCS2:2.2.2.3/24,VPCS3:3.3.3.4/24
路由器与虚拟PC的连线如下:
R1 F0/0 <----> R4 F2/0
R1 F1/0 <----> VPCS V0/1
R2 F0/0 <----> R4 F0/0
R2 F1/0 <----> VPCS V0/2
R3 F0/0 <----> R4 F1/0
R3 F1/0 <----> VPCS V0/3
 
一.路由器R1的配置(接口IP,路由,×××,PAT):
基本配置:
R1(config)#int f0/0
R1(config-if)#ip add 200.0.10.1 255.255.255.252
R1(config-if)#no sh
R1(config-if)#int f1/0
R1(config-if)#ip add 1.1.1.1 255.255.255.0
R1(config-if)#no sh 
R1(config)#ip route 0.0.0.0 0.0.0.0 200.0.10.2   
配置IPSec ××× 
R1(config)#crypto isakmp policy 1 //建立管理连接策略    
R1(config-isakmp)#encryption 3des //指定管理连接建立后的最后两个数据报文(用于身份验证)采用何种加密算法    
R1(config-isakmp)#hash sha //验证过程中采用HMAC的功能    
R1(config-isakmp)#authentication pre-share //指定身份验证的方式    
R1(config-isakmp)#group 2 //指定DH密钥组 
R1(config-isakmp)#exit    
R1(config)#crypto isakmp key 0 sjzz address 200.0.20.1    

配置总公司A与分公司B之间的×××
R1(config)#access-list 100 permit ip 1.1.1.0 0.0.0.255 2.2.2.0 0.0.0.255 //定义需要保护的流量    
R1(config)#crypto ipsec transform-set sjzz-set esp-des ah-sha-hmac //定义传输集以及加密和验证的方式    
R1(cfg-crypto-trans)#mode tunnel    
R1(cfg-crypto-trans)#exit
R1(config)#crypto map sjzz-map 1 ipsec-isakmp //配置加密映射,映射名为mymap ,序列号为 1 数值越小优先级越高    
R1(config-crypto-map)#set peer 200.0.20.1 //对等体地址    
R1(config-crypto-map)#set transform-set sjzz-set //指定传输集名称    
R1(config-crypto-map)#match address 100 //调用指定的匹配数据流    
R1(config-crypto-map)#exit
配置总公司A与分C司B之间的×××: 
R1(config)#crypto isakmp key 0 sjzz address 200.0.30.1 //配置R1与R3的预共享密钥    
R1(config)#access-list 100 permit ip 1.1.1.0 0.0.0.255 3.3.3.0 0.0.0.255 // 添加去公司C的受保护数据流量   
R1(config)#crypto map sjzz-map 1 ipsec-isakmp    
R1(config-crypto-map)#set peer 200.0.30.1    
R3(config-crypto-map)#exit    

应用在接口:
R1(config)#int f0/0    
R1(config-if)#crypto map sjzz-map

配置PAT使R1连接内网可以访问Internet:
R1(config)#access-list 101 deny ip 1.1.1.0 0.0.0.255 2.2.2.0 0.0.0.255    
R1(config)#access-list 101 deny ip 1.1.1.0 0.0.0.255 3.3.3.0 0.0.0.255    
R1(config)#access-list 101 permit ip 1.1.1.0 0.0.0.255 any    
R1(config)#ip nat inside source list 101 interface f0/0 overload    
R1(config)#int f0/0    
R1(config-if)#ip nat outside    
R1(config)#int f1/0    
R1(config-if)#ip nat inside
 
二.路由器R2的配置(接口IP,路由,×××,PAT):
R2(config)#int f0/0
R2(config-if)#ip add 200.0.20.1 255.255.255.252
R2(config-if)#no sh
R2(config-if)#int loop 0
R2(config-if)#ip add 2.2.2.2 255.255.255.0
R2(config-if)#no sh
R2(config-if)#ip route 0.0.0.0 0.0.0.0 200.0.20.2

配置分公司B到公总司A之间的×××配置:
R2(config)#crypto isakmp policy 1    
R2(config-isakmp)#encryption 3des    
R2(config-isakmp)#hash sha    
R2(config-isakmp)#authentication pre-share    
R2(config-isakmp)#group 2    
R2(config-isakmp)#lifetime 10000    
R2(config-isakmp)#exit    
R2(config)#crypto isakmp key 0 sjzz address 200.0.10.1 //该密钥应该与R1中设置的密码一致    
R2(config)#access-list 100 permit ip 2.2.2.0 0.0.0.255 1.1.1.0 0.0.0.255    
R2(config)#crypto ipsec transform-set sjzz-set esp-des ah-sha-hmac    
R2(cfg-crypto-trans)#mode tunnel    
R2(cfg-crypto-trans)#exit
R2(config)#crypto map sjzz-map 1 ipsec-isakmp    
R2(config-crypto-map)#set peer 200.0.10.1    
R2(config-crypto-map)#set transform-set sjzz-set    
R2(config-crypto-map)#match address 100    
R2(config-crypto-map)#exit    

配置分公司B到分公司C之间的×××:
R2(config)#crypto isakmp key 0 sjzz address 200.0.30.1    
R2(config)#access-list 100 permit ip 2.2.2.0 0.0.0.255 3.3.3.0 0.0.0.255    
R2(config)#crypto map sjzz-map 1 ipsec-isakmp    
R2(config-crypto-map)#set peer 200.0.30.1    
R2(config-crypto-map)#exit    
应用到接口:
R2(config)#int f0/0    
R2(config-if)#crypto map sjzz-map    

配置PAT使R2连接的内网可以访问internet:
R2(config)#access-list 101 deny ip 2.2.2.0 0.0.0.255 1.1.1.0 0.0.0.255    
R2(config)#access-list 101 deny ip 2.2.2.0 0.0.0.255 3.3.3.0 0.0.0.255    
R2(config)#access-list 101 permit ip 2.2.2.0 0.0.0.255 any    
R2(config)#ip nat inside source list 101 interface f0/0 overload    
R2(config)#int f0/0    
R2(config-if)#ip nat outside    
R2(config)#int loopback 0    
R2(config-if)#ip nat inside
 
三.路由器R3的配置(接口IP,路由,×××,PAT):
R3(config)#int f0/0
R3(config-if)#ip add 200.0.30.1 255.255.255.252
R3(config-if)#no sh
R3(config-if)#int loop 0
R3(config-if)#ip add 3.3.3.3 255.255.255.0
R3(config-if)#no sh
R3(config)#ip route 0.0.0.0 0.0.0.0 200.0.30.2    

配置分公司C到总公司A之间的×××:
R3(config)#crypto isakmp policy 1    
R3(config-isakmp)#encryption 3des    
R3(config-isakmp)#hash sha    
R3(config-isakmp)#authentication pre-share    
R3(config-isakmp)#group 2    
R3(config-isakmp)#lifetime 10000    
R3(config-isakmp)#exit    
R3(config)#crypto isakmp key 0 sjzz address 200.0.10.1  
R3(config)#access-list 100 permit ip 3.3.3.0 0.0.0.255 1.1.1.0 0.0.0.255    
R3(config)#crypto ipsec transform-set sjzz-set esp-des ah-sha-hmac    
R3(cfg-crypto-trans)#mode tunnel    
R3(cfg-crypto-trans)#exit    
R3(config)#crypto map sjzz-map 1 ipsec-isakmp    
R3(config-crypto-map)#set peer 200.0.10.1    
R3(config-crypto-map)#set transform-set sjzz-set    
R3(config-crypto-map)#match address 100    

配置公司C到分公司B之间的×××:
R3(config-crypto-map)#exit    
R3(config)#crypto isakmp key 0 sjzz address 200.0.20.1    
R3(config)#access-list 100 permit ip    3.3.3.0 0.0.0.255 2.2.2.0 0.0.0.255
R3(config)#crypto map sjzz-map 1 ipsec-isakmp    
R3(config-crypto-map)#set peer 200.0.20.1    
R3(config-crypto-map)#exit    

应用到接口
R3(config)#int f0/0    
R3(config-if)#crypto map sjzz-map    

配置PAT使R3连接的内网可以访问internet:
R3(config)#access-list 101 deny ip 3.3.3.0 0.0.0.255 2.2.2.0 0.0.0.255    
R3(config)#access-list 101 deny ip 3.3.3.0 0.0.0.255 1.1.1.0 0.0.0.255    
R3(config)#access-list 101 permit ip 3.3.3.0 0.0.0.255 any    
R3(config)#ip nat inside source list 101 interface f0/0 overload    
R3(config)#int f0/0    
R3(config-if)#ip nat outside    
R3(config)#int loopback 0    
R3(config-if)#ip nat inside
 
四.路由器R3的配置(接口IP):
ISP(config)#int f0/0
ISP(config-if)#ip add 200.0.20.2 255.255.255.252
ISP(config-if)#no sh
ISP(config-if)#int f1/0
ISP(config-if)#ip add 200.0.30.2 255.255.255.252
ISP(config-if)#no sh
ISP(config-if)#int f2/0
ISP(config-if)#ip add 200.0.10.2 255.255.255.252
ISP(config-if)#no sh
 
五.验证:
1.虚拟PC的IP如下:
 
2.测试×××建立后,总公司A与分公司B、分公司C、Internet之间的连通性: 基于Cisco路由器的IPSec ×××的应用_第2张图片
 
3.测试×××建立后,分公司B与总公司A、分公司C、Internet之间的连通性:
基于Cisco路由器的IPSec ×××的应用_第3张图片
 
4.测试×××建立后,分公司C与总公司A、分公司B、Internet之间的连通性:
基于Cisco路由器的IPSec ×××的应用_第4张图片
测试全部完成,站点到站点之间的×××建立成功!