您的当前位置:首页正文

实验1_多点IPSec VPN的配置(流量转发)

2020-09-03 来源:客趣旅游网


实验案例一:多点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转换

因篇幅问题不能全部显示,请点此查看更多更全内容