CISCO IPsec NAT 穿越

合集下载

ipsec和nat之间关系

ipsec和nat之间关系

在NAT技术和IPsec技术的应用都非常广泛。

但从本质上来说,两者是存在着矛盾的。

1.从IPsec的角度上说,IPsec要保证数据的安全,因此它会加密和校验数据。

2.从NAT的观点来看,为了完成地址转换,势必会修改IP地址。

IPSec提供了端到端的IP通信的安全性,但在NAT环境下对IPSec的支持有限,AH协议是肯定不能进行NAT的了,这和AH设计的理念是相违背的;ESP协议在NAT环境下最多只能有一个VPN主机能建立VPN通道,无法实现多台机器同时在NAT环境下进行ESP通信。

关于IPSec在NAT环境下的需求问题在RFC3715中进行了描述。

NAT穿越(NAT Traversal,NAT-T)就是为解决这个问题而提出的,RFC3947,3948中定义,在RFC4306中也加入了NAT-T的说明,但并没废除RFC3947,3948,只是不区分阶段1和阶段2。

该方法将ESP协议包封装到UDP包中(在原ESP协议的IP包头外添加新的IP头和UDP头),使之可以在NAT 环境下使用的一种方法,这样在NAT的内部网中可以有多个IPSec主机建立VPN通道进行通信。

AH封装:AH封装的校验从IP头开始,如果NAT将IP的头部改动,AH的校验就会失败,因此我们得出结论,AH是无法与NAT共存的。

ESP封装的传输模式:对于NAT来说,ESP封装比AH的优势在于,无论是加密还是完整性的校验,IP头部都没有被包括进去。

但是还是有新的问题,对于ESP的传输模式,NAT 无法更新上层校验和。

TCP 和UDP 报头包含一个校验和,它整合了源和目标IP 地址和端口号的值。

当NAT 改变了某个包的IP 地址和(或)端口号时,它通常要更新TCP 或UDP 校验和。

当TCP 或UDP 校验和使用了ESP 来加密时,它就无法更新这个校验和。

由于地址或端口已经被NAT 更改,目的地的校验和检验就会失败。

虽然UDP 校验和是可选的,但是TCP 校验和却是必需的。

直连IPSEC的野蛮模式NAT穿越

直连IPSEC的野蛮模式NAT穿越

直连IPSEC的野蛮模式NAT穿越IPsec(Internet Protocol Security)是一种网络协议套件,用于实现网络通信的加密和认证。

野蛮模式(Aggressive Mode)是IPsec的一种传输模式,不需要建立安全通道即可交换密钥。

NAT(Network Address Translation)是用于在网络中分配和转换IP地址的技术。

在传统的IPsec通信中,通常使用隧道模式(Tunnel Mode)来传输IP数据包。

但是,当通信双方之间存在NAT设备时,隧道模式会受到限制。

为了解决这个问题,就出现了野蛮模式NAT穿越。

野蛮模式NAT穿越指的是在存在NAT设备的网络环境中,使用IPsec 的野蛮模式进行通信,并成功穿越NAT设备,实现加密和认证的目的。

下面将详细介绍野蛮模式NAT穿越的原理和实现过程。

野蛮模式NAT穿越的原理:1. NAT设备的限制:NAT设备通过转换IP地址和端口号来实现对网络地址的转换,但这会导致IPsec报文中的IP地址和端口号不一致,从而导致通信失败。

2. 野蛮模式的优势:野蛮模式不需要建立安全通道即可交换密钥,因此可以在初始的IKE(Internet Key Exchange)阶段就完成阶段一和阶段二的协商,减少了通信的时间和开销。

3.NAT穿越的技术:为了实现野蛮模式的NAT穿越,需要使用一些技术手段来绕过NAT设备的限制,包括端口映射和引导报文。

野蛮模式NAT穿越的实现步骤:1. 发起方(Initiator)向响应方(Responder)发送IKE_INIT请求。

该请求包含了发起方的随机数和IP地址等信息。

2.响应方收到IKE_INIT请求后,生成响应方的随机数和IP地址等信息,并使用这些信息生成哈希值和共享密钥。

3.发起方收到响应方的IKE_INIT响应后,生成发起方的哈希值和共享密钥。

4.握手阶段一结束后,发起方和响应方交换生成的哈希值和共享密钥。

IPsecVPN协议的NAT穿透与防火墙配置

IPsecVPN协议的NAT穿透与防火墙配置

IPsecVPN协议的NAT穿透与防火墙配置IPsec VPN协议的NAT穿透与防火墙配置在互联网时代,数据传输的安全性与稳定性成为了企业和个人用户所关注的重要问题。

虚拟私人网络(VPN)的出现有效地解决了这一问题,而IPsecVPN协议则在VPN中扮演着重要的角色。

然而,由于网络环境的复杂性,许多用户在使用IPsec VPN时遇到了NAT穿透和防火墙配置的问题。

本文将探讨这些问题,并提供适当的解决方案。

一、NAT穿透的概念及问题1. NAT穿透的概念NAT穿透指的是在网络中使用了网络地址转换(NAT)设备的情况下,如何实现对IPsec VPN的正常通信。

NAT设备通常会对传输的数据包进行源地址和目的地址的转换,以实现多个内部网络与外部网络的通信。

然而,这种地址转换对IPsec VPN的建立和传输过程产生了一定的影响。

2. NAT穿透的问题及解决方案在进行NAT穿透时,常见的问题包括:a) IPsec VPN的建立问题:由于NAT设备对数据包进行了地址转换,使得原始IP地址无法直接访问到VPN服务端。

为了解决此问题,可以使用NAT-T(NAT Traversal)技术,通过在IPsec数据包中封装额外的数据,以绕过NAT设备的限制。

b) IPsec数据包的加密问题:NAT穿透过程中,由于对数据包进行了地址转换,导致IPsec头部中的源地址和目的地址无法与实际通信双方相匹配。

为了解决此问题,可以使用NAT设备支持的IPsec Passthrough功能,将IPsec头部从转换中豁免,保证加密的完整性。

c) NAT设备与IPsec VPN设备的兼容性问题:不同厂商的NAT设备和IPsec VPN设备对NAT穿透的支持程度各不相同,可能存在兼容性问题。

解决此问题的方法是选择厂商间兼容性较好的设备,或者升级设备的固件以支持更高级的协议。

二、防火墙配置和IPsec VPN协议1. 防火墙的作用防火墙是网络安全的重要组成部分,通过规则配置来控制网络流量的进出,保护内部网络免受外部威胁。

IPSec的NAT穿越详细介绍

IPSec的NAT穿越详细介绍

IPSec的NAT穿越详细介绍1. 前言IPSec提供了端到端的IP通信的安全性,但在NAT环境下对IPSec的支持有限,AH协议是肯定不能进行NAT的了,这和AH设计的理念是相违背的;ESP协议在NAT环境下最多只能有一个VPN主机能建立VPN通道,无法实现多台机器同时在NAT环境下进行ESP通信。

关于IPSec在NAT环境下的需求问题在RFC3715中进行了描述。

NAT穿越(NATTraversal,NAT-T)就是为解决这个问题而提出的,在RFC3947,3948中定义,在RFC4306中也加入了NAT-T的说明,但并没废除RFC3947,3948,只是不区分阶段1和阶段2。

该方法将ESP协议包封装到UDP包中(在原ESP协议的IP包头外添加新的IP头和UDP 头),使之可以在NAT环境下使用的一种方法,这样在NAT的内部网中可以有多个IPSec 主机建立VPN通道进行通信。

2. IKE协商使用UDP封装RFC3947主要描述如何检测是否存在NAT设备,并如何在IKE中协商使用UDP来封装IPSec 数据包。

本帖隐藏的内容2.1 检测功能是检测通信中是否存在NAT设备和对方是否支持NAT-T。

正常的IKE协商使用的UDP包的源和目的端口都是500,如果存在NAT设备,大多数情况下该UDP包的源端口部分会改变,只有少数情况不改。

接收方如果发现UDP源端口不是500,那可以确定数据是经过了NAT设备。

另外,确定NAT的位置也是重要的,在检测对方失效(DPD)时,应该尽量由在NAT设备后面的一方主动进行DPD探测,而从另一方探测有可能会失败。

检测对方是否支持NAT-T是通过交换vendor ID载荷来实现的,如果自身支持NAT-T,在IKE 开始交互就要发送这种载荷,载荷内容是“RFC 3947”的MD5值,也就是十六进制的“4a131c81070358455c5728f20e95452f”。

判断是否在NAT设备后面是通过发送NAT-D(NAT-Discovery)载荷来实现的,载荷内容是IP 地址和UDP端口的HASH值,NAT-D载荷格式如下,载荷类型值是20:1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8 1 2 3 4 5 6 7 8+---------------+---------------+---------------+---------------+| Next Payload | RESERVED | Payload length |+---------------+---------------+---------------+---------------+~ HASH of the address and port ~+---------------+---------------+---------------+---------------+HASH值的计算方法如下,具体HASH是根据协商来确定的:HASH = HASH(CKY-I | CKY-R | IP | Port)CKY-I和CKY-R是协商发起方和响应方的cookie。

ipsec nat穿越原理

ipsec nat穿越原理

IPsec NAT穿越原理什么是IPsec?IPsec(Internet Protocol Security)是一种网络协议,用于在IP网络上提供安全的数据传输。

它通过加密和认证机制来保护数据的完整性、机密性和身份验证。

IPsec可以在两个主机之间或两个子网之间建立安全的通信链路。

它可以用于远程访问VPN(Virtual Private Network)连接、站点到站点VPN连接以及移动设备的安全通信。

为什么需要NAT穿越?NAT(Network Address Translation)是一种网络技术,用于将私有IP地址转换为公共IP地址,以实现多个设备共享同一个公网IP地址。

然而,由于NAT会改变IP头部信息,导致加密后的数据包无法正确解析。

这就给使用IPsec进行加密通信的应用程序带来了困扰。

因此,需要一种方法来克服NAT 对IPsec的限制,实现安全的通信。

IPsec NAT穿越原理1. NAT Traversal为了解决NAT对IPsec的限制问题,提出了NAT Traversal技术。

NAT Traversal 允许在经过NAT设备时建立和维护安全通道。

a. UDP封装NAT Traversal使用UDP封装技术将原始的IPsec数据包封装在UDP数据包中。

由于UDP是一种无连接的协议,它可以通过NAT设备传输到目标主机。

在发送IPsec数据包之前,发送方会将IPsec数据包封装在UDP数据包中,并将目的端口设置为特定的值(通常是4500)。

这样,NAT设备就会将整个UDP数据包转发到目标主机。

b. NAT检测NAT Traversal还引入了一种称为”keepalive”的机制来检测是否经过了NAT设备。

当IPsec设备与对等方建立连接时,它会周期性地向对等方发送keepalive消息。

如果对等方收到了keepalive消息,则说明没有经过NAT设备。

如果对等方未收到keepalive消息,则说明可能经过了NAT设备,并且需要使用UDP封装技术。

IPSEC NAT 穿越 (两种解法) 小余出品

IPSEC NAT 穿越 (两种解法) 小余出品

IPSEC NAT 穿越(两种解法)需求分析:如图,R2是上海总公司的路由器,R1是苏州分公司路由器,ISP1是长宽的路由,ISP2是电信路由器。

R2的外部地址是公网地址,R1的外部地址是私网地址。

在实际的工程中我们遇到这种问题太正常了,但恰好我们又需要在R1和R4之间建立IPSEC VPN。

NAT和IPSEC是互相冲突的,因为IPSEC保护私网地址和传输层内容,而NAT需要改这些.OK 我们开始解决这个问题!解法一:基于ESP穿越NAT配置如下R1:interface Loopback0ip address 192.168.12.1 255.255.255.0interface Ethernet0/0ip address 172.16.12.1 255.255.255.0half-duplexip route 0.0.0.0 0.0.0.0 172.16.12.2crypto isakmp policy 10authentication pre-sharecrypto isakmp keepalive 60 ISAKMP的DPDcrypto isakmp nat keepalive 10用于在NAT之后的情況,防止NAT丢弃转发条目crypto isakmp key cisco address 202.100.34.4crypto ipsec transform-set myset esp-des esp-md5-hmaccrypto ipsec nat-transparency spi-matching开启SIP-Matching,跟NAT特性有关access-list 101 permit ip 192.168.12.0 0.0.0.255 192.168.34.0 0.0.0.255 crypto map map 10 ipsec-isakmpset peer 202.100.34.4set transform-set mysetmatch address 101interface Ethernet0/0crypto map mapR2:interface Ethernet0/0ip address 172.16.12.2 255.255.255.0ip nat insideip virtual-reassembly IP分片虚拟重组half-duplexinterface Ethernet0/1ip address 202.100.23.2 255.255.255.0ip nat outsideip virtual-reassemblyhalf-duplexip route 0.0.0.0 0.0.0.0 202.100.23.3ip route 192.168.12.0 255.255.255.0 172.16.12.1ip nat service list 1 IKE preserve-portip nat service list 1 ESP spi-matchip nat inside source list 1 interface Ethernet0/1 overload ip nat inside source list 2 interface Ethernet0/1 overload access-list 1 permit 172.16.12.1access-list 2 permit 192.168.12.0 0.0.0.255R3:interface Ethernet0/0ip address 202.100.23.3 255.255.255.0half-duplexinterface Ethernet0/1ip address 202.100.34.3 255.255.255.0half-duplexR4:interface Loopback0ip address 192.168.34.4 255.255.255.0ip nat insideip virtual-reassembly!interface Ethernet0/0ip address 202.100.34.4 255.255.255.0ip nat outsideip virtual-reassemblyip route 0.0.0.0 0.0.0.0 202.100.34.3crypto isakmp policy 10authentication pre-sharecrypto isakmp keepalive 60 ISAKMP的DPDcrypto isakmp nat keepalive 10用于在NAT之后的情況,防止NAT丢弃转发条目crypto isakmp key cisco address 202.100.23.2crypto ipsec transform-set myset esp-des esp-md5-hmaccrypto ipsec nat-transparency spi-matching开启SIP-Matching,跟NAT特性有关access-list 101 permit ip 192.168.34.0 0.0.0.255 192.168.12.0 0.0.0.255 crypto map map 10 ipsec-isakmpset peer 202.100.23.2set transform-set mysetmatch address 101interface Ethernet0/0crypto map mapip nat inside source route-map nat-map interface Ethernet0/0 overload access-list 102 deny ip 192.168.34.0 0.0.0.255 192.168.12.0 0.0.0.255access-list 102 permit ip 192.168.34.0 0.0.0.255 any route-map nat-map permit 1match ip address 102测试结果解法二:基于UDP穿越NAT将cry ips nat-transparency spi-matching 改成cry ips nat-transparency udp-encapsulation即可测试:注意理解“crypto ipsec nat-transparency”这个命令,后面有两个参数,一个是NAT-T支持,一个是SPI-Matching。

NAT_T实现IPSEC穿越NAT的全面分析

NAT_T实现IPSEC穿越NAT的全面分析

502005.8网络安全网络安全技术与应用0 引言IPSEC作为网络实时通信的安全协议,已经成为INTERNET的实际安全标准;而NAT也有效解决了目前IPV4地址的严重不足。

当IPSEC数据包穿越NAT设备时,会产生严重的兼容性问题。

NAT-T(NAT-Traversal)是目前较为流行的一种解决两者兼容性问题的方案,并越来越被广泛采用。

1 IPSEC、NAT工作原理1.1 IPSECIPSEC是IETF制定的保障INTERNET通信安全的标准。

该标准主要由安全协议AH(Authentication)和ESP(EncapsulatingSecurity Payload),密钥交换协议IKE(Internet Key Exchange)两大部份组成。

为在Internet上进行数据通讯的用户提供加密、数据完整性、认证IP报文及防止重放攻击等安全服务。

IPSEC规范定义了两种保护通信数据包的模式:传输模式(Transport Mode):在数据包的IP报头和其余部分之间插入IPSEC信息。

图1 传输模式隧道模式(Tunnel Mode):保留原有的IP数据包,然后在数据包外面封装新的IP报头和IPSEC信息。

图2 隧道模式1.2 NAT(Network Address Translation)NAT是为了缓解日益紧张的Internet公网地址匮乏的问题,而采用的一种将内部私有网络IP地址映射为外部公网IP地址的技术标准。

主要可以划分为静态NAT,动态NAT和网络地址端口转换NAPT三种类型。

其基本工作原理(以NAPT为例)为:NAT设备接受内部主机的数据包,将该包的内部IP地址和TCP/UDP端口号转换为自身的公网IP地址和特定的端口号,然后将数据包送往目标主机;同时,将此映射关系存表。

当NAT收到目标主机的应答后,查表,修改目标主机的IP地址和端口号并回送给相应的客户端。

2 IPSEC、NAT的兼容性问题IPSEC和NAT的设计思想存在矛盾。

IPSEC NAT穿越配置举例

IPSEC NAT穿越配置举例

下,配置ACL规则
port1 [ port2 ] ] [ icmp-type {icmp-type icmp-code | icmp-message} ]
[ precedence precedence ] [ dscp dscp ] [ established ] [ tos tos ] [ time-
Copyright © 2007 杭州华三通信技术有限公司

IPsec NAT穿越配置举例
3.2 配置步骤
配置野蛮模式下IPsec穿越NAT,需要以下步骤:
z 配置访问控制列表 z 配置 IKE 对等体 z 定义安全提议 z 创建安全策略 z 在接口上应用安全策略
1. 配置访问控制列表
在IPsec/IKE组建的VPN隧道中,若存在NAT网关设备,且NAT网关设备对VPN业务数据流进 行了NAT转换的话,则必须配置IPsec/IKE的NAT穿越功能。该功能删去了IKE协商过程中对UDP 端口号的验证过程,同时实现了对VPN隧道中NAT网关设备的发现功能,即如果发现NAT网关设 备,则将在之后的IPsec数据传输中使用UDP封装(即将IPsec报文封装到IKE协商所使用的UDP连 接隧道里)的方法,避免了NAT网关对IPsec报文进行篡改(NAT网关设备将只能够修改最外层的 IP和UDP报文头,对UDP报文封装的IPsec报文将不作修改),从而保证了IPsec报文的完整性 (IPsec数据加密解密验证过程中要求报文原封不动地被传送到接收端)。目前仅在IKE野蛮模式 下支持NAT穿越,主模式下不支持。
操作命令
在系统视图下,创建一个
1
高级访问控制列表
[H3C] acl number acl-number [ match-order { config | auto } ]
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

CISCO IPsec NAT 穿越
一.案例拓扑
二.需求分析:如图,R2是BNET公司上海总公司的路由器,R1是BNET公司苏州分公司路由器,ISP1是长宽的路由,ISP2是电信路由器。

R2的外部地址是公网地址,R1的
外部地址是私网地址。

在实际的工程中我们遇到这种问题太正常了,但恰好我们又需要在R1和R2之间建立IPSEC VPN。

NA T和IPSEC是互相冲突的,因为IPSEC保护私网地址和传输层内容,而NAT需要改这些。

在CISCO设备中,我们只需要一条命令就可以解决这样的问题。

R(config)#crypto isakmp nat keeplive 60 它自动检测是否经过NA T设备,如果发现时NA T设备,则用UDP封装。

三.配置参数
1.R1的配置
hostname R1
crypto isakmp policy 1 //配置IKE策略,同普通IPSEC VPN
hash md5
authentication pre-share
lifetime 60
crypto isakmp key cisco address 201.1.1.2
crypto isakmp nat keepalive 60 //与普通IPSEC不同之处,在此启用IPSEC NA T穿越,并且保持活跃的时间是60秒
!
!
crypto ipsec transform-set tran1 esp-des esp-sha-hmac
!
crypto map map1 1 ipsec-isakmp
set peer 201.1.1.2
set transform-set tran1
match address 101
!
!
!
!
interface Serial0/0
ip address 10.1.1.2 255.255.255.0
serial restart-delay 0
crypto map map1 //接口绑定IPSEC策略
!
interface Serial0/1
no ip address
shutdown
serial restart-delay 0
!
interface Serial0/2
no ip address
shutdown
serial restart-delay 0
!
interface Serial0/3
no ip address
shutdown
serial restart-delay 0
!
interface FastEthernet1/0
ip address 192.168.1.1 255.255.255.0
duplex auto
speed auto
!
ip http server
no ip http secure-server
!
ip route 0.0.0.0 0.0.0.0 10.1.1.1
!
!
access-list 101 permit ip 192.168.1.0 0.0.0.255 192.168.2.0 0.0.0.255 //配置IPSEC保护流
2.ISP1的配置
ISP1#show run
ISP1#show running-config
hostname ISP1
interface Serial0/0
ip address 10.1.1.1 255.255.255.0 //这个地址不是私网地址
ip nat inside //NA T的内部接口
ip virtual-reassembly
serial restart-delay 0
!
interface Serial0/1 //公网地址
ip address 200.1.1.1 255.255.255.252
ip nat outside //NAT的外部接口
ip virtual-reassembly
serial restart-delay 0
clock rate 64000
!
ip route 201.1.1.0 255.255.255.252 200.1.1.2 //到201.1.1.0的路由,保证公网全网互通,真实化境中,我们应该跑路由协议的,并且ISP2是公网的边缘路由器,也可以使用默认路由!
ip nat inside source list 1 interface Serial0/1 overload //网络地址转换——PAT
!
access-list 1 permit 10.1.1.0 0.0.0.255 //允许访问外部的内网地址
3.ISP2的配置(没用的我给删掉了)
Router#show running-config
version 12.4
hostname Router
!
no logging console
interface Serial0/0
ip address 200.1.1.2 255.255.255.252
serial restart-delay 0
!
interface Serial0/1
ip address 201.1.1.1 255.255.255.252
serial restart-delay 0
!
end
小结:ISP2上有该公网区域全部路由,它什么也不用设置
4.R2配置
R2#show running-config
version 12.4
!
hostname R2
!
crypto isakmp policy 1 //IKE策略
hash md5
authentication pre-share
lifetime 60
crypto isakmp key cisco address 200.1.1.1 //注意:这里的对端地址,指向ISP的公公网地址crypto isakmp nat keepalive 60 // 启用NA T穿越,每60秒协商一次
!
!
crypto ipsec transform-set tran1 esp-des esp-sha-hmac
!
crypto map map1 1 ipsec-isakmp
set peer 200.1.1.1 //注意:这里的对端地址,指向ISP的公公网地址,如果指向R1的外部地址10.1.1.1,它是找不到R1的,因为公网上没有这样的地址
set transform-set tran1
match address 101
!
!
!
!
interface Serial0/0
ip address 201.1.1.2 255.255.255.252
serial restart-delay 0
clock rate 64000
crypto map map1
!
!
interface FastEthernet1/0
ip address 192.168.2.1 255.255.255.0
duplex auto
speed auto
!
ip route 0.0.0.0 0.0.0.0 201.1.1.1
!
!
access-list 101 permit ip 192.168.2.0 0.0.0.255 192.168.1.0 0.0.0.255 //IPSEC保护流
!
!
小结:这和两个具有公网地址的路由器做IPSEC差不多,就是添加一条命令,不需要
在ISP路由器上做操作,ISP路由器也不会让你做操作
5.虚拟PC配置
PC1 : 192.168.1.10 255.255.255.0 gateway 192.168.1.1
PC2 : 192.168.2.10 255.255.255.0 gateway 192.168.2.1
6.测试PC1 ping PC2
实验到此完成
提示:这样只能保证两个局域网之间可以建立IPSEC VPN,但是192.168.1.0和192.168.2.0的数据时无法访问互联网的,如果解决呢?实验IPSEC OVER GRE 或者GRE OVER IPSEC,然后再本地局域网网路由器上(R1或者R2上)做NA T
什么是IPSEC OVER GRE 使用GRE 隧道建立VPN,然后使用IPSEC 协议保护192.168.1.0到192.168.2.0的数据流,最终是封装为GRE隧道。

什么是GRE OVER IPSEC
启用GRE隧道,在R1和R2之间建立隧道连接,然后在R1和R2的S0/0接口绑定IPSEC 策略,保护200.1.1.2到201.1.1.2的数据流,最终是IPSEC流,GRE被封装到IPSEC里,所以称作GRE OVER IPSEC。

相关文档
最新文档