需求描述
3家公司之间所有的流量必须通过IPSec ×××实现加密传输
3家公司各自访问Internet 的流量通过NAT技术实现
环境搭建
使用Dynamips搭建其中内网网段我使用的是Dynamips的VPCS来模拟的
实现思路
在R1与R2之间配置IPSec ×××
在R1与R3之间配置IPSec ×××
在R2与R3之间配置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 |
阶段一
分别在R1与R2之间,R2与R3之间,R1与R3之间配置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. R4【ISP】的基本配置(环境搭建)
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. 配置R1【在R1与R2之间配置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 对等体的地址为R2的F0/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. 配置R2【在R2与R1之间配置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. 配置R3【在R1与R3之间配置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. 配置R1【在R1与R3之间配置IPSec ×××】
【R1的参数和R2已经配置过,不需要重新配置,只需要添加与R3有关的参数即可】
R1(config)#crypto isakmp key 0 benet 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 // 添加去R3 的受保护数据流 R1(config)#crypto map mymap 1 ipsec-isakmp R1(config-crypto-map)#set peer 200.0.30.1 //添加一个对等体 |
9. 配置R2【在R2与R3之间配置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. 配置R3【在R3与R2之间配置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 |
验证效果
验证是否Ping同ISP上的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
北京到上海的×××流量间接访问北京公司内网不能直接访问上海公司内网
流量必须经过香港的网关路由器
实现思路
清除R2与R3之间的IPSec ×××配置
修改R1的ACL配置
清除R2与R3之间的IPSec ×××配置
1. 在R2上清除R2与R3之间的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上清除R3与R2之间的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. 修改R1的ACL配置
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/