实验案例一:多点IPSec VPN配置(流量转发)
一、实验环境
某外企铺设海底电缆到中国区总部——香港,但该外企在北京和上海新进成立了分设机构,公司考虑到总部与分设机构经常传输关键业务数据,希望在各个公司的网关间通信时采用站点间VPN的方式,如图7-1所示。
图7-1
1.本实验需要四台路由器来实验,中间的路由器用来模拟ISP提供商的网络设备(Internet)。
2.R1、R2、R3网关的外网接口地址分别为200.0.10.1/30、200.0.20.1/30、200.0.30.1/30。
3.内网的网段通过三个Loopback接口来模拟,地址分别为1.1.1.1/24、2.2.2.2/24、3.3.3.3/24。
二、需求描述
1.香港、北京、上海三家公司之间所有的流量必须通过IPSec VPN实现加密传输。
2.阶段1的加密算法使用3DES,认证算法使用SHA、DH组选用组2;阶段2的数据加密认证过程均使用ESP协议实现。
3.要求北京和上海的分公司之间不能直接通信(即北京公司的内网若要实现访问上海的公司内网,流量必须经过香港的网关路由器转发)。
4.三家公司各自访问Internet的流量通过NAT技术实现。
三、具体步骤
(一)基础配置。
1.R1、R2、R3网关路由器基础配置。
R1#config ter
R1(config)#inter f0/0
R1(config-if)#ip add 200.0.10.1 255.255.255.252
R1(config-if)#no shut
R1(config-if)#inter loopback0
R1(config-if)#ip add 1.1.1.1 255.255.255.0
R1(config-if)#no shut
R1(config-if)#exit
R2#config ter
R2(config)#inter f0/0
R2(config-if)#ip add 200.0.20.1 255.255.255.252
R2(config-if)#no shut
R2(config-if)#loopback0
R2(config-if)#ip add 2.2.2.2 255.255.255.0
R2(config-if)#no shut
R2(config-if)#exit
R3#config ter
R3(config)#inter f0/0
R3(config-if)#ip add 200.0.30.1 255.255.255.252
R3(config-if)#no shut
R3(config-if)#inter loopback0
R3(config-if)#ip add 3.3.3.3 255.255.255.0
R3(config-if)#no shut
R3(config-if)#exit
2.ISP路由器配置。
ISP#config ter
ISP(config)#inter f0/0
ISP(config-if)#ip add 200.0.20.2 255.255.255.252
ISP(config-if)#no shut
ISP(config-if)#inter f1/0
ISP(config-if)#ip add 200.0.30.2 255.255.255.252
ISP(config-if)#no shut
ISP(config-if)#inter f1/1
ISP(config-if)#ip add 200.0.10.2 255.255.255.252
ISP(config-if)#no shut
ISP(config-if)#do write
ISP(config-if)#exit
(二)分别在R1与R2之间、R1与R3之间、R2与R3之间配置IPSec VPN通道。
1.R1上的配置。
1)实现阶段1管理连接建立。
(1)配置安全策略。
R1(config)#crypto isakmp policy 1
R1(config-isakmp)#encryption 3des //加密算法使用3des
R1(config-isakmp)#hash sha //认证算法sha
R1(config-isakmp)#authentication pre-share
R1(config-isakmp)#group 2 //DH组选用组2
R1(config-isakmp)#exit
(2)配置预共享密钥。
R1(config)#crypto isakmp key 6 benet-key address 200.0.20.1//R1-R2建立链接的预共享密钥benet-key
R1(config)#crypto isakmp key 6 benet-key address 200.0.30.1//R1-R3建立链接的预共享密钥benet-key
2)实现阶段2数据连接建立。
(1)配置Crypto ACL匹配需要保护的流量。
R1(config)#access-list 101 permit ip 1.1.1.1 0.0.0.255 2.2.2.2 0.0.0.255 //R1-R2之间IPSec加密的流量
R1(config)#access-list 102 permit ip 1.1.1.1 0.0.0.255 3.3.3.3 0.0.0.255 //R1-R3之间IPSec加密的流量
(2)配置IPSec传输集(变换集)。
R1(config)#crypto ipsec transform-set benet-set esp-aes esp-sha-hmac
//数据加密和认证过程使用均使用esp协议
R1(cfg-crypto-trans)#exit
(3)配置Crypto Map加密映射,并将其应用到网关路由器外部接口。
R1(config)#crypto map benet-map 1 ipsec-isakmp //R1-R2之间的加密映射benet-map 1
R1(config-crypto-map)#set peer 200.0.20.1 //指定R1的对等体设备R2
R1(config-crypto-map)#set transform-set benet-set //指定R1-R2传输集
R1(config-crypto-map)#match address 101 //调用需要保护的R1-R2的IPSec VPN流量
R1(config-crypto-map)#exit
R1(config)#crypto map benet-map 2 ipsec-isakmp //R1-R3之间的加密映射benet-map 2
R1(config-crypto-map)#set peer 200.0.30.1 //指定R1的对等体设备R3
R1(config-crypto-map)#set transform-set benet-set //指定R1-R3传输集
R1(config-crypto-map)#match address 102 //调用需要保护的R1-R3的IPSec VPN流量
R1(config-crypto-map)#exit
R1(config)#inter f0/0 //应用到网关路由器外部接口
R1(config-if)#crypto map benet-map
R1(config-if)#exit
R1(config)#do write
R1(config)#exit
3)配置静态路由实现VPN数据通信。
R1(config)#ip route 0.0.0.0 0.0.0.0 200.0.10.2
4)配置PAT实现内网数据对于Internet的访问。
R1(config)#access-list 100 deny ip 1.1.1.0 0.0.0.255 2.2.2.0 255.255.255.0 //NAT豁免
R1(config)#access-list 100 deny ip 1.1.1.0 0.0.0.255 3.3.3.0 255.255.255.0 //NAT豁免
//此处是对于网段,也可以对某主机(host 1.1.1.1 host 2.2.2.2)
R1(config)#access-list 100 permit ip any any
R1(config)#ip nat inside source list 100 interface f0/0 overload R1(config)#inter f0/0
R1(config-if)#ip nat outside
R1(config-if)#inter Loopback0
R1(config-if)#ip nat inside
R1(config-if)#do write
R1(config-if)#exit
2.R2上的配置。
R2(config)#crypto isakmp policy 1
//PAT端口复用
R2(config-isakmp)#encryption 3des
R2(config-isakmp)#hash sha
R2(config-isakmp)#authentication pre-share
R2(config-isakmp)#group 2
R2(config-isakmp)#exit
R2(config)#crypto isakmp key 6 benet-key address 200.0.10.1
R2(config)#crypto isakmp key 6 benet-key address 200.0.30.1
R2(config)#access-list 103 permit ip 2.2.2.0 0.0.0.255 1.1.1.0 0.0.0.255
R2(config)#access-list 104 permit ip 2.2.2.0 0.0.0.255 3.3.3.0 0.0.0.255
R2(config)#crypto ipsec transform-set benet-set esp-aes esp-sha-hmac
R2(cfg-crypto-trans)#exit
R2(config)#crypto map benet-map 3 ipsec-isakmp //R2-R1之间的加密映射benet-map 3
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 103
R2(config-crypto-map)#exit
R2(config)#crypto map benet-map 4 ipsec-isakmp //R2-R3之间的加密映射benet-map 4
R2(config-crypto-map)#set peer 200.0.30.1
R2(config-crypto-map)#set transform-set benet-set
R2(config-crypto-map)#match address 104
R2(config-crypto-map)#exit
R2(config)#inter f0/0
R2(config-if)#crypto map benet-map
R2(config-if)#exit
R2(config)#do write
R2(config)#ip route 0.0.0.0 0.0.0.0 200.0.20.2
R2(config)#access-list 100 deny ip 2.2.2.0 0.0.0.255 1.1.1.0 0.0.0.255
R2(config)#access-list 100 deny ip 2.2.2.0 0.0.0.255 3.3.3.0 0.0.0.255
R2(config)#access-list 100 permit ip any any
R2(config)#ip nat inside source list 100 interface f0/0 overload
R2(config)#inter f0/0
R2(config-if)#ip nat outside
R2(config-if)#inter Loopback0
R2(config-if)#ip nat inside
R2(config-if)#do write
R2(config-if)#exit
3. R3上的配置。
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)#exit
R3(config)#crypto isakmp key 6 benet-key address 200.0.20.1
R3(config)#crypto isakmp key 6 benet-key address 200.0.10.1
R3(config)#access-list 105 permit ip 3.3.3.0 0.0.0.255 1.1.1.0 0.0.0.255
R3(config)#access-list 106 permit ip 3.3.3.0 0.0.0.255 2.2.2.0 0.0.0.255
R3(config)#crypto ipsec transform-set benet-set esp-aes esp-sha-hmac
R3(cfg-crypto-trans)#exit
R3(config)#crypto map benet-map 5 ipsec-isakmp //R3-R1之间的加密映射benet-map 5
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 105
R3(config-crypto-map)#exit
R3(config)#crypto map benet-map 6 ipsec-isakmp //R3-R2之间的加密映射benet-map 6
R3(config-crypto-map)#set peer 200.0.20.1
R3(config-crypto-map)#set transform-set benet-set
R3(config-crypto-map)#match address 106
R3(config-crypto-map)#exit
R3(config)#inter f0/0
R3(config-if)#crypto map benet-map
R3(config-if)#exit
R3(config)#do write
R3(config)#ip route 0.0.0.0 0.0.0.0 200.0.30.2
R3(config)#access-list 100 deny ip 3.3.3.0 0.0.0.255 1.1.1.0 0.0.0.255
R3(config)#access-list 100 deny ip 3.3.3.0 0.0.0.255 2.2.2.0 0.0.0.255
R3(config)#access-list 100 permit ip any any
R3(config)#ip nat inside source list 100 interface f0/0 overload
R3(config)#inter f0/0
R3(config-if)#ip nat outside
R3(config-if)#inter Loopback0
R3(config-if)#ip nat inside
R3(config-if)#do write
R3(config-if)#exit
(三)R2和R3之间不能直接通信,需经过R1转发。(在进行该配置时,先按照上述配置使R1、R2、R3相互之间惊醒IPSec VPN通信,然后再配置R1转发。)
1.在R1的配置中增加R2与R3之间的Crypto ACL保护R2与R3之间通信的流量(即允许转发R2和R3之间的流量)。
R1(config)#access-list 101 permit ip 3.3.3.3 0.0.0.255 2.2.2.2 0.0.0.255 //转发R3-R2流量
R1(config)#access-list 102 permit ip 2.2.2.2 0.0.0.255 3.3.3.3 0.0.0.255 //转发R2-R3流量
2.在R2的配置中原有R2与R1之间的Crypto ACL中增加R2与R3之间的Crypto ACL;取消R2与R3之间的预共享密钥、R2与R3之间的加密映射、R2中原有的R2与R3之间的Crypto ACL。
R2(config)#no crypto isakmp key 6 benet-key address 200.0.30.1
R2(config)#no access-list 104 permit ip 2.2.2.2 0.0.0.255 3.3.3.3 0.0.0.255
R2(config)#no crypto map benet-map 4
R2(config)#access-list 103 permit ip 2.2.2.2 0.0.0.255 3.3.3.3 0.0.0.255
3.在R3的配置中原有R2与R1之间的Crypto ACL中增加R3与R2之间的Crypto ACL;取消R3与R2之间的预共享密钥、R3与R2之间的加密映射、R3中原有的R3与R2之间的Crypto ACL。
R3(config)#no crypto isakmp key 6 benet-key address 200.0.20.1
R3(config)#no access-list 106 permit ip 3.3.3.3 0.0.0.255 2.2.2.2 0.0.0.255
R3(config)#no crypto map benet-map 6
R3(config)#access-list 105 permit ip 3.3.3.3 0.0.0.255 2.2.2.2 0.0.0.255
四、验证
(一)查看R1与R2、R1与R3、R2与R3之间相互通信时ISAKMP/IKE阶段1、阶段2的链接(R2与R3之间直接通信)。
1.查看R1与R2、R1与R3、R2与R3之间通信时ISAKMP/IKE阶段1的连接。
1)R1、R2、R3之间的连通性测试,如图7-2所示。
2)R1与R2、所示。
图7-2 R1、R2、R3之间的连通性
R1与R3之间相互通信时,ISAKMP/IKE阶段1的连接状态,如图7-3、7-4、7-5
图7-3 R1与R2、R1与R3通信时SA的ACTIVE状态
图7-4 R1与R2通信时R2上SA的ACTIVE状态
图7-5 R1与R2通信时R2上SA的ACTIVE状态
3)R2与R3之间相互通信时,ISAKMP/IKE阶段1的连接状态,如图7-6、7-7所示。
图7-6 R2与R3之间相互通信时R2上SA的ACTIVE状态
图7-7 R2与R3之间相互通信时R3上SA的ACTIVE状态
2.查看R1与R2、R1与R3、R2与R3之间通信时ISAKMP/IKE阶段2的连接,如图7-8所示。
图7-8 ISAKMP/IKE阶段2的连接
(二)R1转发R2和R3之间的通信时,ISAKMP/IKE阶段1、阶段2的连接
1.查看R2与R3之间的通信通过R1转发时ISAKMP/IKE阶段1的连接状态(通过R1转发),。
1)R1与R2、R1与R3之间通信时ISAKMP/IKE阶段1的连接状态,如图7-9所示。
图7-9
2)R2与R3之间通信时ISAKMP/IKE阶段1的连接状态,通过R1转发,如图7-10所示。
图7-9 R2与R3之间的通信通过R1转发
2.查看R2与R3之间的通信经过R1转发时ISAKMP/IKE阶段2的连接,如图7-10所示。
图7-10
(三)R1、R2、R3各自访问Internet时,通过NAT(PAT)转换实现。使用debug ip nat命令跟踪给个数据包的转换、show ip nat translations 命令查看NAT地址转换表。
1)IPSec VPN通信时,由于NAT豁免,不进行NAT转换,如图7-11所示。
图7-11 NAT豁免无NAT转换
2)R1、R2、R3各自访问Internet时,通过NAT(PAT)转换实现。
(1)使用ping 200.0.10.2 source 1.1.1.1测试R1访问Internet,如图7-12所示。
图7-12 R1访问Internet时NAT转换
(2)使用ping 200.0.20.2 source 2.2.2.2测试R2访问Internet,如图7-13所示。
图7-13 R2访问Internet时NAT转换
(3)使用ping 200.0.30.2 source 3.3.3.3测试R3访问Internet,如图7-14所示。
图7-14 R3访问Internet时NAT转换
因篇幅问题不能全部显示,请点此查看更多更全内容