思科设备 IPSec VPX基本配置(多点)

项目需求:
某公司现在在北京建立总部,在广州、上海、深圳建立分部。现在要总部与分部之间建立v*n,进行内网的通信。

实验拓扑:

思科设备 IPSec VPX基本配置(多点)

基本配置:(IP地址、外网路由、NAT)

PC1:192.168.1.1/24 gateway:192.168.1.254
PC2:172.16.1.1/24 gateway:172.16.1.254
PC3:172.16.2.1/24 gateway:172.16.2.254
PC4:172.16.3.1/24 gateway:172.16.3.254

R1:
//配置接口IP地址
R1(config)#int e0/0
R1(config-if)#ip add 192.168.1.254 255.255.255.0
R1(config-if)#no shutdown
R1(config-if)#int s2/0
R1(config-if)#ip add 12.1.1.1 255.255.255.0
R1(config-if)#no shutdown
//将v*n的流量剔除,防止NAT转换v*n流量
R1(config)#access-list 100 deny ip 192.168.1.0 0.0.0.255 172.16.1.0 0.0.0.255
R1(config)#access-list 100 deny ip 192.168.1.0 0.0.0.255 172.16.2.0 0.0.0.255
R1(config)#access-list 100 deny ip 192.168.1.0 0.0.0.255 172.16.3.0 0.0.0.255
R1(config)#access-list 100 permit ip any any
//配置NAT
R1(config-if)#int e0/0
R1(config-if)#ip nat inside
R1(config-if)#int s2/0
R1(config-if)#ip nat outside
R1(config)#ip nat inside source list 100 int s2/0 overload
R1(config)#ip route 0.0.0.0 0.0.0.0 12.1.1.2

公网部分,我们就做一个简单的OSPF路由来模拟公网。要是会IS-IS路由协议也可以用IS-IS路由来做,毕竟运营商网络大多数都是IS-IS路由协议。
R2:
//配置接口IP地址
R2(config)#int s2/0
R2(config-if)#ip add 12.1.1.2 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#int e0/0
R2(config-if)#ip add 23.1.1.2 255.255.255.0
R2(config-if)#no shutdown
R2(config-if)#int lo0
R2(config-if)#ip add 2.2.2.2 255.255.255.0
//配置OSPF路由,建立一个LOOKBACK口来做Router-ID
R2(config-if)#router ospf 1
R2(config-router)#router-id 2.2.2.2
R2(config-router)#network 2.2.2.0 0.0.0.255 area 0
R2(config-router)#network 12.1.1.0 0.0.0.255 area 0
R2(config-router)#network 23.1.1.0 0.0.0.255 area 0

R3:
//配置接口IP地址
R3(config)#int e0/0
R3(config-if)#ip add 23.1.1.3 255.255.255.0
R3(config-if)#no shutdown
R3(config-if)#int s2/1
R3(config-if)#ip add 34.1.1.3 255.255.255.0
R3(config-if)#no shutdown
R3(config-if)#int s2/2
R3(config-if)#ip add 35.1.1.3 255.255.255.0
R3(config-if)#no shutdown
R3(config-if)#int s2/3
R3(config-if)#ip add 36.1.1.3 255.255.255.0
R3(config-if)#no shutdown
R3(config-if)#int lo0
R3(config-if)#ip add 3.3.3.3 255.255.255.0
//配置OSPF路由,使用LOOKBACK口来做Router-ID
R3(config-if)#router ospf 1
R3(config-router)#router-id 3.3.3.3
R3(config-router)#network 3.3.3.0 0.0.0.255 area 0
R3(config-router)#network 23.1.1.0 0.0.0.255 area 0
R3(config-router)#network 34.1.1.0 0.0.0.255 area 0
R3(config-router)#network 35.1.1.0 0.0.0.255 area 0
R3(config-router)#network 36.1.1.0 0.0.0.255 area 0

R4:
//配置接口IP地址
R4(config)#int e0/0
R4(config-if)#ip add 172.16.1.254 255.255.255.0
R4(config-if)#no shutdown
R4(config-if)#int s2/1
R4(config-if)#ip add 34.1.1.4 255.255.255.0
R4(config-if)#no shutdown
//将v*n的流量剔除,防止NAT转换v*n流量
R4(config)#access-list 100 deny ip 172.16.1.0 0.0.0.255 192.168.1.0 0.0.0.255
R4(config)#access-list 100 permit ip any any
//配置NAT
R4(config)#int e0/0
R4(config-if)#ip nat inside
R4(config-if)#int s2/1
R4(config-if)#ip nat outside
R4(config-if)#exit
R4(config)#ip nat inside source list 100 int s2/1 overload
R4(config)#ip route 0.0.0.0 0.0.0.0 34.1.1.3

R5:
//配置接口IP地址
R5(config)#int s2/2
R5(config-if)#ip add 35.1.1.5 255.255.255.0
R5(config-if)#no shutdown
R5(config-if)#int e0/0
R5(config-if)#ip add 172.16.2.254 255.255.255.0
R5(config-if)#no shutdown
//将v*n的流量剔除,防止NAT转换v*n流量
R5(config)#access-list 100 deny ip 172.16.2.0 0.0.0.255 192.168.1.0 0.0.0.255
R5(config)#access-list 100 permit ip any any
//配置NAT
R5(config)#int s2/2
R5(config-if)#ip nat outside
R5(config-if)#int e0/0
R5(config-if)#ip nat inside
R5(config-if)#exit
R5(config)#ip nat inside source list 100 int s2/2 overload
R5(config)#ip route 0.0.0.0 0.0.0.0 35.1.1.3

R6:
//配置接口IP地址
R6(config)#int s2/3
R6(config-if)#ip add 36.1.1.6 255.255.255.0
R6(config-if)#no shutdown
R6(config-if)#int e0/0
R6(config-if)#ip add 172.16.3.254 255.255.255.0
R6(config-if)#no shutdown
//将v*n的流量剔除,防止NAT转换v*n流量
R6(config)#access-list 100 deny ip 172.16.3.0 0.0.0.255 192.168.1.0 0.0.0.255
R6(config)#access-list 100 permit ip any any
//配置NAT
R6(config)#int s2/3
R6(config-if)#ip nat outside
R6(config-if)#int e0/0
R6(config-if)#ip nat inside
R6(config-if)#exit
R6(config)#ip nat inside source list 100 int s2/3 overload
R6(config)#ip route 0.0.0.0 0.0.0.0 36.1.1.3

**

IPSec v*n的配置:

建立北京总部与广州分部的IPSec v*n:

R1:
R1(config)#crypto isakmp polic 1
R1(config-isakmp)#authentication pre-share //使用预共享**验证
R1(config-isakmp)#hash md5 // 使用MD5散列函数
R1(config-isakmp)#group 2 //使用DH group2
R1(config-isakmp)#encryption aes //使用AES加密
R1(config-isakmp)#exit
R1(config)#crypto isakmp key 0 123456 address 34.1.1.4
//设置对等体的**
R1(config)#crypto ipsec transform-set v*n1 esp-md5-hmac esp-aes
//使用ESP协议来封装
R1(cfg-crypto-trans)#mode tunnel //设置为隧道模式
R1(cfg-crypto-trans)#exit
R1(config)#$ 110 permit ip 192.168.1.0 0.0.0.255 172.16.1.0 0.0.0.255
//用ACL来匹配v*n流量
R1(config)#crypto map v*n 10 ipsec-isakmp
R1(config-crypto-map)#set peer 34.1.1.4 //设置对等体
R1(config-crypto-map)#set transform-set v*n1 //指定之前配置的传输集
R1(config-crypto-map)#match add 110 //指定v*n流量,对其进行加密保护
R1(config-crypto-map)#int s2/0
R1(config-if)#crypto map v*n //将加密映射表应用到需要建立隧道的接口

R4:
(配置和R1基本相同,只需要改一下应用的出接口、对等体和ACL就行了)
crypto isakmp polic 1
authentication pre-share
hash md5
group 2
encryption aes
exit
crypto isakmp key 0 123456 address 12.1.1.1
crypto ipsec transform-set v*n1 esp-md5-hmac esp-aes
mode tunnel
exit
access-list 110 permit ip 172.16.1.0 0.0.0.255 192.168.1.0 0.0.0.255
crypto map v*n 10 ipsec-isakmp
set peer 12.1.1.1
set transform-set v*n1
match add 110
int s2/1
crypto map v*n
这样我们第一条v*n就建立好了

建立北京总部和上海分部的IPSec v*n

我们可以延用第一条v*n的策略polic 1,当然你也可以重新建立一个策略polic 2。在这里我们就方便配置,就使用第一条v*n的策略。
R1:
R1(config)#access-list 120 permit ip 192.168.1.0 0.0.0.255 172.16.2.0 0.0.0.255 //我们要建立一条ACL去匹配去往上海分部的流量
R1(config)#crypto isakmp key 0 123456 address 35.1.1.5 //设置对等体的**
R1(config)#crypto map v*n 20 ipsec-isakmp
R1(config-crypto-map)#set peer 35.1.1.5 //指定对等体
R1(config-crypto-map)#set transform-set v*n1 //指定之前配置的传输集
R1(config-crypto-map)#match add 120 //指定v*n流量,对其进行加密保护
由于之前我们已经在出接口上建立了隧道,所以我们就不再重复的配置接口

R5:
R5(config)#crypto isakmp polic 1
R5(config-isakmp)#authentication pre-share
R5(config-isakmp)#hash md5
R5(config-isakmp)#group 2
R5(config-isakmp)#encryption aes
R5(config-isakmp)#exit
R5(config)#crypto isakmp key 0 123456 address 12.1.1.1 //与R1做**验证
R5(config)#crypto ipsec transform-set v*n1 esp-md5-hmac esp-aes
R5(cfg-crypto-trans)#mode tunnel
R5(cfg-crypto-trans)#exit
access-list 110 permit ip 172.16.2.0 0.0.0.255 192.168.1.0 0.0.0.255 //匹配v*n流量
R5(config)#crypto map v*n 20 ipsec-isakmp
R5(config-crypto-map)#set peer 12.1.1.1
R5(config-crypto-map)#set transform-set v*n1
R5(config-crypto-map)#match add 110
R5(config-crypto-map)#int s2/2
R5(config-if)#crypto map v*n
这样我们的北京总部已经可以和上海、广州的两个分部通信了。

建立北京总部和深圳分部的v*n

大致上面配置相同

R1:
R1(config)#access-list 130 permit ip 192.168.1.0 0.0.0.255 172.16.3.0 0.0.0.255
R1(config)#crypto isakmp key 0 123456 address 36.1.1.6
R1(config)#crypto map v*n 30 ipsec-isakmp
R1(config-crypto-map)#set peer 36.1.1.6
R1(config-crypto-map)#set transform-set v*n1
R1(config-crypto-map)#match add 130

R6:
R6(config)#crypto isakmp polic 1
R6(config-isakmp)#authentication pre-share
R6(config-isakmp)#hash md5
R6(config-isakmp)#group 2
R6(config-isakmp)#encryption aes
R6(config-isakmp)#exit
R6(config)#crypto isakmp key 0 123456 address 12.1.1.1
R6(config)#crypto ipsec transform-set v*n1 esp-md5-hmac esp-aes
R6(cfg-crypto-trans)#mode tunnel
R6(cfg-crypto-trans)#exit

R6(config)#crypto map v*n 30 ipsec-isakmp
R6(config-crypto-map)#set peer 12.1.1.1
R6(config-crypto-map)#set transform-set v*n1
R6(config-crypto-map)#match add 110
R6(config-crypto-map)#int s2/3
R6(config-if)#crypto map v*n

验证结果

思科设备 IPSec VPX基本配置(多点)