介绍NAT叠加普通IPSec隧道场景的配置示例,实现内部私有地址和外部公共地址进行NAT转换后再入IPSec隧道(采用安全策略方式建立IPSec隧道),结合配置组网图来理解业务的配置过程。
组网需求
如图2-4所示,网络A和网络B之间采用网关对网关组网模式进行资源传输。网络A和网络B分别通过DeviceA和DeviceB连接到Internet,DeviceA上同时处理NAT和IPSec。
网络环境描述如下:
- 网络A属于10.1.1.0/24子网,通过接口GE1/0/1与DeviceA连接。
- 网络B属于10.1.2.0/24子网,通过接口GE1/0/1与DeviceB连接。
- DeviceA和DeviceB路由可达。
- 具有120.10.10.0/32至120.10.10.7/32共8个公网IP地址。
- DeviceA和DeviceB部署IPSec功能。
要求通过配置NAT和IPSec隧道,可以实现内部私有地址和外部公共地址进行多对多的转换,同时能实现PCA与PCB之间安全的互访。
NAT叠加IPSec的典型组网如
图2-4所示:
图2-4 NAT叠加IPSec(采用安全策略方式建立IPSec隧道)组网图
说明: 本例中的interface1、interface2分别代表GE0/1/1、GE0/1/2。
![]()
配置思路
本案例介绍NAT叠加IPSec场景下,采用网关对网关组网模式,安全策略方式配置IPSec隧道。封装模式采用隧道模式。
- 配置接口的IP地址。
- 配置NAT基本功能。
- 配置NAT引流策略。
- 配置公网路由,一般情况下配置静态路由。
- 通过配置ACL规则组来定义需要保护的数据流。
- 配置IPSec安全提议。
- 配置IKE安全提议。
- 配置IKE Peer。
- 配置IPSec安全策略。
- 配置IPsec服务实例组。
- 在Tunnel接口上应用IPSec安全策略。
操作步骤
- 配置DeviceA。
- 配置接口IP地址。
# 配置接口GE0/1/1的IP地址。
<DeviceA> system-view
[~DeviceA] interface GigabitEthernet 0/1/1
[~DeviceA-GigabitEthernet0/1/1] ip address 10.1.1.1 24
[*DeviceA-GigabitEthernet0/1/1] quit
[*DeviceA] commit
# 配置接口GE0/1/2的IP地址。
[~DeviceA] interface GigabitEthernet 0/1/2
[~DeviceA-GigabitEthernet0/1/2] ip address 172.16.163.1 24
[*DeviceA-GigabitEthernet0/1/2] quit
[*DeviceA] commit
- 配置NAT和IPsec服务实例组group1。
- 配置NAT基本功能。
# 创建NAT实例nat1,并将业务板绑定到NAT实例。
[~NATA] nat instance nat1 id 1
[*NATA-nat-instance-nat1] service-instance-group group1
[*NATA-nat-instance-nat1] commit
[~NATA-nat-instance-nat1] quit
# 配置NAT地址池,地址池范围从120.10.10.0到120.10.10.7。
[~NATA] nat instance nat1
[~NATA-nat-instance-nat1] nat address-group address-group1 group-id 1 120.10.10.0 mask 29
[*NATA-nat-instance-nat1] commit
[~NATA-nat-instance-nat1] quit
- 配置NAT的入接口引流策略。
# 配置基于ACL流分类规则,地址访问控制列表号为3000,ACL规则的编号为5,只有内部网段地址为10.1.1.0/24的主机可以访问Internet。
[~NATA] acl 3000
[*NATA-acl4-advance-3000] rule 5 permit ip source 10.1.1.0 0.0.0.255
[*DeviceA-acl4-advance-3000] commit
[~DeviceA-acl4-advance-3000] quit
# 配置流分类。
[~DeviceA] traffic classifier classifier1
[*DeviceA-classifier-classifier1] if-match acl 3000
[*DeviceA-classifier-classifier1] commit
[~DeviceA-classifier-classifier1] quit
# 定义流行为behavior1,配置流量动作为绑定NAT实例nat1。
[~DeviceA] traffic behavior behavior1
[*DeviceA-behavior-behavior1] nat bind instance nat1
[*DeviceA-behavior-behavior1] commit
[~DeviceA-behavior-behavior1] quit
# 定义NAT策略policy1,将所有应用的ACL规则和动作进行关联。
[~DeviceA] traffic policy policy1
[*DeviceA-trafficpolicy-policy1] classifier classifier1 behavior behavior1
[*DeviceA-trafficpolicy-policy1] commit
[~DeviceA-trafficpolicy-policy1] quit
# 在接口GE1/0/1视图下应用NAT引流策略。
[~DeviceA] interface gigabitEthernet 0/1/1
[*DeviceA-GigabitEthernet0/1/1] traffic-policy policy1 inbound
[*DeviceA-GigabitEthernet0/1/1] commit
[~DeviceA-GigabitEthernet0/1/1] quit
- 创建并配置Tunnel接口。
[~DeviceA] interface Tunnel 10
[*DeviceA-Tunnel10] tunnel-protocol ipsec
[*DeviceA-Tunnel10] ip address 192.168.1.1 32
[*DeviceA-Tunnel10] quit
[*DeviceA] commit
- 配置做完NAT后到达目的网络B的静态路由,到达网络B的出接口为Tunnel10下一跳地址为192.168.1.2。假设DeviceA的下一跳地址为172.16.163.2/24。
说明: 配置静态路由引导做完NAT后的流量进入IPSec隧道时,需要指定静态路由的出接口是IPSec Tunnel接口,同时还需要指定下一跳地址。
[~DeviceA] ip route-static 10.1.2.0 255.255.255.0 Tunnel 10 192.168.1.2
[*DeviceA] ip route-static 192.168.1.2 255.255.255.255 172.16.163.2
[*DeviceA] commit
- 配置高级ACL 3010,允许PCA访问PCB。
[~DeviceA] acl 3010
[*DeviceA-acl-adv-3010] rule permit ip source 120.10.10.0 0.0.0.7 destination 10.1.2.2 0.0.0.0
[*DeviceA-acl-adv-3010] quit
[*DeviceA] commit
- 配置名称为tran1的IPSec安全提议。
[~DeviceA] ipsec proposal tran1
[*DeviceA-ipsec-proposal-tran1] encapsulation-mode tunnel
[*DeviceA-ipsec-proposal-tran1] transform esp
[*DeviceA-ipsec-proposal-tran1] esp authentication-algorithm sha2-256
[*DeviceA-ipsec-proposal-tran1] esp encryption-algorithm aes 256
[*DeviceA-ipsec-proposal-tran1] quit
[*DeviceA] commit
- 配置序号为10的IKE安全提议。
[~DeviceA] ike proposal 10
[*DeviceA-ike-proposal-10] authentication-method pre-share
[*DeviceA-ike-proposal-10] authentication-algorithm sha2-256
[*DeviceA-ike-proposal-10] dh group14
[*DeviceA-ike-proposal-10] quit
[*DeviceA] commit
- 配置名称为b的IKE peer。
[~DeviceA] ike peer b
[*DeviceA-ike-peer-b] ike-proposal 10
[*DeviceA-ike-peer-b] remote-address 192.168.1.2
[*DeviceA-ike-peer-b] pre-shared-key abcde
[*DeviceA-ike-peer-b] quit
[*DeviceA] commit
说明:
- 配置对对等体存活进行检测。
[~DeviceA] ike dpd 100
[*DeviceA] quit
[*DeviceA] commit
- 配置名称为map1序号为10的IPSec安全策略。
[~DeviceA] ipsec policy map1 10 isakmp
[*DeviceA-ipsec-policy-isakmp-map1-10] security acl 3010
[*DeviceA-ipsec-policy-isakmp-map1-10] proposal tran1
[*DeviceA-ipsec-policy-isakmp-map1-10] ike-peer b
[*DeviceA-ipsec-policy-isakmp-map1-10] quit
[*DeviceA] commit
- 在Tunnel接口上应用安全策略map1。
[~DeviceA] interface Tunnel 10
[~DeviceA-Tunnel10] ipsec policy map1 service-instance-group group1
[*DeviceA-Tunnel10] quit
[*DeviceA] commit
- 配置DeviceB。
- 配置接口IP地址。
# 配置接口GE0/1/1的IP地址。
<DeviceB> system-view
[~DeviceB] interface gigabitethernet 0/1/1
[~DeviceB-GigabitEthernet0/1/1] ip address 10.1.2.1 24
[*DeviceB-GigabitEthernet0/1/1] quit
[*DeviceB] commit
# 配置接口GE0/1/2的IP地址。
[~DeviceB] interface gigabitethernet 0/1/2
[~DeviceB-GigabitEthernet0/1/2] ip address 172.16.169.1 24
[*DeviceB-GigabitEthernet0/1/2] quit
[*DeviceB] commit
- 创建并配置Tunnel接口。
[~DeviceB] interface Tunnel 10
[~DeviceB-Tunnel10] tunnel-protocol ipsec
[*DeviceB-Tunnel10] ip address 192.168.1.2 32
[*DeviceB-Tunnel10] quit
[*DeviceB] commit
- 配置到达目的网络A的静态路由,到达网络A的接口为Tunnel10下一跳地址为192.168.1.1。假设DeviceB的下一跳地址为172.16.169.2/24。
说明: 配置静态路由引导IPSec流量进入IPSec隧道时,需要指定静态路由的出接口是IPSec Tunnel接口,同时还需要指定下一跳地址。
[~DeviceB] ip route-static 120.10.10.0 255.255.255.248 Tunnel 10 192.168.1.1
[*DeviceB] ip route-static 192.168.1.1 255.255.255.255 172.16.169.2
[*DeviceB] commit
- 配置高级ACL 3010,允许PCB访问PCA。
[~DeviceB] acl 3010
[*DeviceB-acl-adv-3010] rule permit ip source 10.1.2.2 0.0.0.0 destination 120.10.10.0 0.0.0.7
[*DeviceB-acl-adv-3010] quit
[*DeviceB] commit
- 配置名称为tran1的IPSec安全提议。
[~DeviceB] ipsec proposal tran1
[*DeviceB-ipsec-proposal-tran1] encapsulation-mode tunnel
[*DeviceB-ipsec-proposal-tran1] transform esp
[*DeviceB-ipsec-proposal-tran1] esp authentication-algorithm sha2-256
[*DeviceB-ipsec-proposal-tran1] esp encryption-algorithm aes 256
[*DeviceB-ipsec-proposal-tran1] quit
[*DeviceB] commit
- 配置序号为10的IKE安全提议。
[~DeviceB] ike proposal 10
[*DeviceB-ike-proposal-10] authentication-method pre-share
[*DeviceB-ike-proposal-10] authentication-algorithm sha2-256
[*DeviceB-ike-proposal-10] dh group14
[*DeviceB-ike-proposal-10] quit
[*DeviceB] commit
- 配置名称为a的IKE peer。
[~DeviceB] ike peer a
[*DeviceB-ike-peer-a] ike-proposal 10
[*DeviceB-ike-peer-a] remote-address 192.168.1.1
[*DeviceB-ike-peer-a] pre-shared-key abcde
[*DeviceB-ike-peer-a] quit
[*DeviceB] commit
- 配置对对等体存活进行检测。
[~DeviceB] ike dpd 100
[*DeviceB] quit
[*DeviceB] commit
- 配置名称为map1序号为10的安全策略。
[~DeviceB] ipsec policy map1 10 isakmp
[*DeviceB-ipsec-policy-isakmp-map1-10] security acl 3010
[*DeviceB-ipsec-policy-isakmp-map1-10] proposal tran1
[*DeviceB-ipsec-policy-isakmp-map1-10] ike-peer a
[*DeviceB-ipsec-policy-isakmp-map1-10] quit
[*DeviceB] commit
- 配置IPSec服务实例组group1。
- 在Tunnel接口上应用安全策略map1。
[~DeviceB] interface Tunnel10
[~DeviceB-Tunnel10] ipsec policy map1 service-instance-group group1
[*DeviceB-Tunnel10] quit
[*DeviceB] commit
配置文件
DeviceA的配置文件。
#
sysname DeviceA
#
ike dpd 100
#
service-location 1
#
service-instance-group group1
service-location 1
#
nat instance nat1 id 1
service-instance-group group1
nat address-group address-group1 group-id 1 120.10.10.0 mask 29
#
acl number 3000
rule 5 permit ip source 10.1.1.0 0.0.0.255
#
acl number 3010
rule 5 permit ip source 120.10.10.0 0.0.0.7 destination 10.1.2.2 0.0.0.0
#
ike proposal 10
encryption-algorithm aes-cbc 256
dh group14
authentication-algorithm sha2-256
integrity-algorithm hmac-sha2-256
#
ike peer b
pre-shared-key cipher %^%#.EJ~F"jURXr&0--*9[2(uLl^I@0_]XBJe;=-0x,V%^%#
ike-proposal 10
remote-address 192.168.1.2
#
ipsec proposal tran1
esp authentication-algorithm sha2-256
esp encryption-algorithm aes 256
#
traffic classifier classifier1 operator or
if-match acl 3000
#
traffic behavior behavior1
nat bind instance nat1
#
traffic policy policy1
classifier classifier1 behavior behavior1 precedence 1
#
ipsec policy map1 10 isakmp
security acl 3010
ike-peer b
proposal tran1
#
interface GigabitEthernet 0/1/1
ip address 10.1.1.1 255.255.255.0
traffic-policy policy1 inbound
#
interface GigabitEthernet 0/1/2
ip address 172.16.163.1 255.255.255.0
#
interface Tunnel10
ip address 192.168.1.1 255.255.255.255
tunnel-protocol ipsec
ipsec policy map1 service-instance-group group1
#
ip route-static 10.1.2.0 255.255.255.0 Tunnel 10 192.168.1.2
ip route-static 192.168.1.2 255.255.255.255 172.16.163.2
#
return
DeviceB的配置文件。
#
sysname DeviceB
#
acl number 3010
rule 5 permit ip source 10.1.2.2 0 destination 120.10.10.0 0.0.0.7
#
ike proposal 10
encryption-algorithm aes-cbc 256
dh group14
authentication-algorithm sha2-256
integrity-algorithm hmac-sha2-256
#
ike peer a
pre-shared-key cipher %^%#.EJ~F"jURXr&0--*9[2(uLl^I@0_]XBJe;=-0x,V%^%#
ike-proposal 10
remote-address 192.168.1.1
#
service-location 1
#
service-instance-group group1
service-location 1
#
ipsec proposal tran1
esp authentication-algorithm sha2-256
esp encryption-algorithm aes 256
#
ipsec policy map1 10 isakmp
security acl 3010
ike-peer a
proposal tran1
#
interface GigabitEthernet0/1/1
ip address 10.1.2.1 255.255.255.0
#
interface GigabitEthernet0/1/2
ip address 172.16.169.1 255.255.255.0
#
interface Tunnel10
ip address 192.168.1.2 255.255.255.255
tunnel-protocol ipsec
ipsec policy map1 service-instance-group 1
#
ip route-static 120.10.10.0 255.255.255.248 Tunnel 10 192.168.1.1
ip route-static 192.168.1.1 255.255.255.255 172.16.169.2
#
return