需求描述

 

3家公司之间所有的流量必须通过IPSec ×××实现加密传输

3家公司各自访问Internet 的流量通过NAT技术实现

环境搭建

使用Dynamips搭建其中内网网段我使用的是DynamipsVPCS来模拟的

实现思路

R1R2之间配置IPSec ×××

R1R3之间配置IPSec ×××

R2R3之间配置IPSec ×××

配置PAT实现内网访问Internet

说明

Router1 F0/0 <----> Router4 F0/0

Router2 F0/0 <----> Router4 F1/0

Router3 F0/0 <----> Router4 F2/0

Router1 F1/0 <----> VPCS V0/2

Router2 F1/0 <----> VPCS V0/1

Router3 F1/0 <----> VPCS V0/3

 

阶段一

分别在R1R2之间,R2R3之间,R1R3之间配置IPSec ×××

配置PAT实现内网访问Internet

1. R1的基本配置(环境搭建)

Router>en

Router#conf t

Router(config)#host R1

R1(config)#line 0

R1(config-line)#logg s

R1(config-line)#exit

R1(config)#int f0/0

R1(config-if)#ip add 200.0.10.1 255.255.255.252

R1(config-if)#no shut

R1(config-if)#int f1/0

R1(config-if)#ip add 1.1.1.1 255.255.255.0

R1(config-if)#no shut

R1(config-if)#do show ip int b

Interface                  IP-Address      OK? Method Status                Protocol

FastEthernet0/0            200.0.10.1      YES manual up                    up     

FastEthernet1/0            1.1.1.1         YES manual up                    up

2.  R2的基本配置(环境搭建)

Router>en

Router#conf t

Router(config)#host R2

R2(config)#line 0

R2(config-line)#logg s

R2(config-line)#exit

R2(config)#

R2(config)#int f0/0

R2(config-if)#ip add 200.0.20.1 255.255.255.252

R2(config-if)#no shut

R2(config-if)#int f1/0

R2(config-if)#ip add 2.2.2.2 255.255.255.0

R2(config-if)#no shut

R2(config-if)#do show ip int b

Interface                  IP-Address      OK? Method Status                Protocol

FastEthernet0/0            200.0.20.1      YES manual up                    up     

FastEthernet1/0            2.2.2.2         YES manual up                    up 

3.  R3的基本配置(环境搭建)

Router>en

Router#conf t

Router(config)#host R3

R3(config)#line 0

R3(config-line)#logg s

R3(config-line)#exit

R3(config)#

R3(config)#int f0/0

R3(config-if)#ip add 200.0.30.1 255.255.255.252

R3(config-if)#no shut

R3(config-if)#int f1/0

R3(config-if)#ip add 3.3.3.3 255.255.255.0

R3(config-if)#no shut

R3(config-if)#do show ip int b

Interface                  IP-Address      OK? Method Status                Protocol

FastEthernet0/0            200.0.30.1      YES manual up                    up     

FastEthernet1/0            3.3.3.3         YES manual up                    up     

4.  R4ISP】的基本配置(环境搭建)

Router>en

Router#conf t

Router(config)#host R4

R4(config)#line 0

R4(config-line)#logg s

R4(config-line)#exit

R4(config)#

R4(config)#int f0/0

R4(config-if)#ip add 200.0.10.2 255.255.255.252

R4(config-if)#no shut

R4(config-if)#int f1/0

R4(config-if)#ip add 200.0.20.2 255.255.255.252

R4(config-if)#no shut

R4(config-if)#int f2/0

R4(config-if)#ip add 200.0.30.2 255.255.255.252

R4(config-if)#no shut

R4(config-if)#int loopback 0

R4(config-if)#ip add 4.4.4.4 255.255.255.0

R4(config-if)#no shut

R4(config-if)#exit

R4(config)#do show ip int b

Interface                  IP-Address      OK? Method Status                Protocol

FastEthernet0/0            200.0.10.2      YES manual up                    up     

FastEthernet1/0            200.0.20.2      YES manual up                    up      

FastEthernet2/0            200.0.30.2      YES manual up                    up     

Loopback0                  4.4.4.4         YES manual up                    up     

5. 配置R1R1R2之间配置IPSec ×××

R1(config)#ip route 0.0.0.0 0.0.0.0 200.0.10.2 //配置一条默认路由,用于香港访问公网

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 //路由器默认组1 防火墙默认组2 最后越大越安全

R1(config-isakmp)#lifetime 10000 //管理连接的生存周期,其他厂商设备这个值必须设置一样

R1(config-isakmp)#exit

R1(config)#crypto isakmp key 0 benet address 200.0.20.1 //配置预共享密钥0 代表明文密码为benet 对等体的地址为R2F0/0接口地址。

阶段一配置结束。

阶段二配置命令

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 benet-set esp-des ah-sha-hmac //定义传输集以及加密和验证的方式

R1(config)#crypto ipsec security-association lifetime seconds 1800 //设定生存周期

R1(config)#crypto map mymap 1 ipsec-isakmp //配置加密映射,映射名为mymap

序列号为 1 数值越小优先级越高

R1(config-crypto-map)#set peer 200.0.20.1 //对等体地址

R1(config-crypto-map)#set transform-set benet-set //指定传输集名称

R1(config-crypto-map)#match address 100 //调用指定的匹配数据流

R1(config)#int f0/0

R1(config-if)#crypto map mymap //在接口上应用映射

6. 配置R2R2R1之间配置IPSec ×××

R2(config)#ip route 0.0.0.0 0.0.0.0 200.0.20.2

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 benet 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 benet-set esp-des ah-sha-hmac

R2(config)#crypto ipsec security-association lifetime seconds 1800

R2(config)#crypto map mymap 1 ipsec-isakmp

R2(config-crypto-map)#set peer 200.0.10.1

R2(config-crypto-map)#set transform-set benet-set

R2(config-crypto-map)#match address 100

R2(config-crypto-map)#exit

R2(config)#int f0/0

R2(config-if)#crypto map mymap

7. 配置R3R1R3之间配置IPSec ×××

R3(config)#ip route 0.0.0.0 0.0.0.0 200.0.30.2

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 benet address 200.0.10.1 //该密码应该与R1中设置的密码一致

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 benet-set esp-des ah-sha-hmac

R3(cfg-crypto-trans)#exit

R3(config)#crypto ipsec security-association lifetime seconds 1800

R3(config)#crypto map mymap 1 ipsec-isakmp

R3(config-crypto-map)#set peer 200.0.10.1

R3(config-crypto-map)#set transform-set benet-set

R3(config-crypto-map)#match address 100

R3(config-crypto-map)#exit

R3(config)#int f0/0

R3(config-if)#crypto map mymap

8. 配置R1R1R3之间配置IPSec ×××

  R1的参数和R2已经配置过,不需要重新配置,只需要添加与R3有关的参数即可

R1(config)#crypto isakmp key 0 benet address 200.0.30.1 //配置R1R3的预共享密钥

R1(config)#access-list 100 permit ip 1.1.1.0 0.0.0.255 3.3.3.0 0.0.0.255 // 添加去R3 的受保护数据流

R1(config)#crypto map mymap 1 ipsec-isakmp

R1(config-crypto-map)#set peer 200.0.30.1 //添加一个对等体

 

9. 配置R2R2R3之间配置IPSec ×××

R2(config)#crypto isakmp key 0 benet 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 mymap 1 ipsec-isakmp

R2(config-crypto-map)#set peer 200.0.30.1

R2(config-crypto-map)#exit

10. 配置R3R3R2之间配置IPSec ×××

R3(config)#access-list 100 permit 3.3.3.0 0.0.0.255 2.2.2.0 0.0.0.255

R3(config)#crypto isakmp key 0 benet address 200.0.20.1

R3(config)#crypto map mymap 1 ipsec-isakmp

R3(config-crypto-map)#set peer 200.0.20.1

R3(config-crypto-map)#exit

配置PAT实现内网访问Internet

R1的配置:

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 loopback 0

R1(config-if)#ip nat inside

R2的配置:

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的配置:

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

验证效果

验证是否PingISP上的loopback接口【4.4.4.4;北京、香港、上海之间内网是否否互通

VPCS 1 >show ip

NAME   IP/CIDR              GATEWAY           LPORT   RPORT

PC1    2.2.2.10/24          2.2.2.2           10001   11210

PC2    1.1.1.10/24          1.1.1.1           10002   11110

PC3    3.3.3.10/24          3.3.3.3           10003   11310

使用虚拟PC测试效果

VPCS 1 >ping 1.1.1.10

1.1.1.10 icmp_seq=1 time=283.000 ms

1.1.1.10 icmp_seq=2 time=281.000 ms

1.1.1.10 icmp_seq=3 time=312.000 ms

1.1.1.10 icmp_seq=4 time=278.000 ms

1.1.1.10 icmp_seq=5 time=278.000 ms

 

VPCS 1 >ping 3.3.3.10

3.3.3.10 icmp_seq=1 time=264.000 ms

3.3.3.10 icmp_seq=2 time=298.000 ms

3.3.3.10 icmp_seq=3 time=278.000 ms

3.3.3.10 icmp_seq=4 time=265.000 ms

3.3.3.10 icmp_seq=5 time=315.000 ms

 

VPCS 1 >3

VPCS 3 >ping 1.1.1.10

1.1.1.10 icmp_seq=1 time=296.000 ms

1.1.1.10 icmp_seq=2 time=253.000 ms

1.1.1.10 icmp_seq=3 time=261.000 ms

1.1.1.10 icmp_seq=4 time=251.000 ms

1.1.1.10 icmp_seq=5 time=219.000 ms

 

VPCS 3 >ping 2.2.2.10

2.2.2.10 icmp_seq=1 time=219.000 ms

2.2.2.10 icmp_seq=2 time=247.000 ms

2.2.2.10 icmp_seq=3 time=219.000 ms

2.2.2.10 icmp_seq=4 time=281.000 ms

2.2.2.10 icmp_seq=5 time=251.000 ms

 

VPCS 3 >ping 4.4.4.4

4.4.4.4 icmp_seq=1 time=106.000 ms

4.4.4.4 icmp_seq=2 time=59.000 ms

4.4.4.4 icmp_seq=3 time=33.000 ms

4.4.4.4 icmp_seq=4 time=34.000 ms

4.4.4.4 icmp_seq=5 time=33.000 ms

 

阶段2

北京到上海的×××流量间接访问北京公司内网不能直接访问上海公司内网

流量必须经过香港的网关路由器

实现思路

清除R2R3之间的IPSec ×××配置

修改R1ACL配置

清除R2R3之间的IPSec ×××配置

1. R2上清除R2R3之间的IPSec ×××配置

R2(config)#no crypto isakmp key 0 benet address 200.0.30.1

R2(config)#crypto map mymap 1 ipsec-isakmp

R2(config-crypto-map)#no set peer 200.0.30.1

2. R3上清除R3R2之间的IPSec ×××配置

R3(config)#no crypto isakmp key 0 benet address 200.0.20.1

R3(config)#crypto map mymap 1 ipsec-isakmp

R3(config-crypto-map)#no set peer 200.0.20.1

3. 修改R1ACL配置

R1(config)#access-list 100 permit ip 2.2.2.0 0.0.0.255 3.3.3.0 0.0.0.255 //R1 上修改保护的数据流量,转发R2访问R3的数据流  

R1(config)#access-list 100 permit ip 3.3.3.0 0.0.0.255 2.2.2.0 0.0.0.255 //转发R3 访问R2 的数据流量

4. 验证实验效果

VPCS 3 >ping 2.2.2.10

2.2.2.10 icmp_seq=1 time=192.000 ms

2.2.2.10 icmp_seq=2 time=179.000 ms

2.2.2.10 icmp_seq=3 time=190.000 ms

2.2.2.10 icmp_seq=4 time=158.000 ms

2.2.2.10 icmp_seq=5 time=213.000 ms

 

本文出自贾芸斐的博客,请务必保留此出处:http://jiayf.blog.51cto.com/