ipsec 穿越NAT RFC文档

合集下载

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穿越原理什么是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 VPN技术规范(最终对外发布版)08-1-10

IPSEC VPN技术规范(最终对外发布版)08-1-10

IPSec VPN技术规范IPSec VPN Technology Specification国家密码管理局2008年1月目 次目次 (I)前言 (II)引言 (III)1 范围 (1)2 规范性引用文件 (1)3 术语与缩略语 (1)3.1术语 (1)3.2缩略语 (2)4 密码算法和密钥种类 (3)4.1密码算法 (3)4.2密钥种类 (3)5 协议 (3)5.1密钥交换协议 (3)5.2安全报文协议 (29)6 IPSec VPN产品要求 (37)6.1产品功能要求 (37)6.2产品性能要求 (38)6.3安全管理要求 (38)7 IPSec VPN产品检测 (39)7.1产品功能检测 (39)7.2产品性能检测 (40)7.3安全管理检测 (41)8 合格判定 (41)附 录 A IPSec VPN概述 (42)A.1 安全联盟及安全联盟数据库 (42)A.1.1 定义和范围 (42)A.1.2 安全联盟的功能 (42)A.1.3 安全联盟的组合 (43)A.2 安全联盟数据库 (43)A.2.1 安全策略数据库 (43)A.2.2 选择符 (44)A.2.3 安全联盟数据库 (44)前 言本规范由国家密码管理局提出。

本规范由国家密码管理局归口。

本规范中的附录A为资料性附录。

本规范主要起草单位:华为技术有限公司、深圳市奥联科技有限公司、深圳市深信服电子科技有限公司、网御神州科技(北京)有限公司、无锡江南信息安全工程技术中心。

本规范主要起草人:刘平、朱志强、董浩、雷建、刘建锋、李小京、邱钢、向明。

引 言本规范对IPSec VPN的技术协议、产品的功能、性能和管理以及检测进行了规定,可用于指导IPSec VPN产品的研制、检测、使用和管理。

本规范的协议部分主要依据RFC4301、RFC4302、RFC4303、RFC4308、RFC4309等标准制定。

按照我国相关密码政策和法规,结合我国实际应用需求及产品生产厂商的实践经验,对密钥协商、密码算法及使用、某些功能项的实施方法提出了一些特定的要求。

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的设计思想存在矛盾。

13 IPSec 和地址转换(NAT-T)

13 IPSec 和地址转换(NAT-T)

IPSec和地址转换一IPSec和地址转换IPSec对等体设备要对所有IPSec流量进行加密运算,如果流量较大且频繁,可能会占用较高的设备资源,这时网关设备的稳定程度会降低;为了提高设备的稳定性,可以通过两台设备负责分担这项任务一般情况下,网络设备的合理安排可以带来很多好处;从内到外一次可以安排上网行为管理设备、入侵检测与防护设备、防火墙设备、路由器设备;如果将NAT配置在路由器上,即外网一侧,可以有以下几点好处1节省IP地址:IPSec设备与路由器之间可以使用私网地址2屏蔽VPN设备的IP,保护VPN网关·地址转换存在的问题及解决方案存在的问题ISAKMP/IKE阶段2是通过AH协议或ESP协议实现加密或认证功能的,其区别在于AH协议只提供认证功能,且要求对整个三层数据(包括IP包头)实现认证;而ESP协议同时提供加密盒认证的功能,但认证只对三层数据的有效载荷(不包括IP包头)实现;假设对等体之间使用AH协议实现数据认证,IPSec会对整个三层数据进行散列单向算法得到ICV值,并封装在数据与IP包头之间,途径NAT设备会改变数据包头的源IP地址,这就使得对等体另一端设备通过HMAC功能验证时,无法得到相同的ICV数值而导致阶段2连接失败;而ESP协议只对三层的有效载荷实现认证,不会影响ICV值的计算,因此1 AH协议不能与NAT设备一同工作2 ESP协议不能和PAT设备一同工作解决方案这里提供两种解决方案1使用静态NAT配置实现ipnat inside source static local-ip global-iplocal-ip是VPN设备的IP地址,global-ip是转换后的公网IP;这是最简单的解决方法,但却无法实现IP地址的节省,因为将VPN设备的地址静态转换成公网IP后,该公网IP将无法再被其他私有地址复用2实现ESP协议与PAT一同工作实现实现ESP协议与PAT一同工作,实现一个公网地址转换内网所有私有IP;但ESP是一个三层协议,由于三层协议的有效载荷部分完全被加密,缺少需要的TCP或UDP包头中的端口号信息,无法实现转换;所以需要在IP包头和ESP包头之间添加新的四层包头信息Cisco提供了三种解决方案NAT-T(NAT穿越):在IOS12.2(13)T版本后引入;一个开放的标准,他会在ISAKMP/IKE 阶段1建立过程中检测在对等体之间是否存在地址转换设备,如果确实存在,它就会在后续的数据包的IP包头和ESP包头之间插入一个标UDP包头,且目标端口号为4500ASA防火墙默认不启用NAT穿越,需要使用命令开启crypto isakmpnat-traversal路由器上默认是启用NAT穿越的;但是需要做静态映射Cisco私有的解决方案:IPSec over TCP、IPSec over UDP;此两种方案无论在VPN对等体之间是否存在NAT设备,总是会在IP头和ESP头之间插入TCP或UDP,所以相对第一种方案比较占设备资源IPSec VPN的连接端口号管理连接端口号为UDP 500数据连接端口号为UDP 4500二路由器实现NAT-T如图R2路由器模拟ISP服务提供商,R1上配置PAT实现内网对Internet的访问;两台防火墙之间建立IPSec VPN,连接穿过NAT设备,配置实现两端对等体成功建立IPSec连接;这里要注意,因为PAT只转发从内网发起的通信,对于外网发起的通信就要通过静态NAT来实现;即将内网的VPN设备发布到公网,这样对等体之间才能实现通信根据以上环境,现在进行配置对等体之间的配置与之前的并无差别,但是要实现对等体之间的通信,还需要在网关路由器上配置静态NATASA1上的配置基本配置IPSec配置1启用ISAKMP/IKE(防火墙上默认没有开启,路由器上默认是开启的)2配置管理连接策略3配置预共享密钥对端防火墙地址4配置crypto ACL5配置交换链接的传输集6配置crypto map与路由器的配置不同7应用在接口上ASA2上的配置基本配置ISAKMP配置1启用ISAKMP/IKE(防火墙上默认没有开启,路由器上默认是开启的)2配置管理连接策略3配置预共享密钥对端网关外接口地址4配置crypto ACL5配置交换链接的传输集6配置crypto map7应用在接口上R1上的配置基本配置NAT配置(命令语法:ipnat inside source static udp 192.168.1.2 500 interface f1/0 500)其中1.2是防火墙outside接口地址PAT配置除了2.0网段,其他都转发最后进行测试PC1即可以访问外网,又可以访问互联网注意如果分公司这边也要接入互联网,则需要在防火墙上做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 } ]

几种方式解决SIP穿越NAT总结

几种方式解决SIP穿越NAT总结

几种方式解决SIP穿越NAT总结SIP穿越NAT的几种方式多媒体会话信令协议是在准备建立媒体流传输的代理之间交换信息的协议,媒体流与信令流截然不同,它们所采用的网络通道也不一致。

由于协议自身设计上的原因,使得媒体流无法直接穿透网络地址转换/防火墙(NAT/Firewall)。

因为它们生存期的目标只是为了建立一个在信息中携带IP地址的分组流,这在遇到NAT/Firewall 时会带来许多问题。

而且这些协议的目标是通过建立P2P(Peer to Peer)媒体流以减小时延,而协议本身很多方面却与NAT存在兼容性问题,这也是穿透 NAT/Firewall的困难所在。

而NAT仍是解决当前公用IP地址紧缺和网络安全问题的最有力手段,所以解决NAT穿越成为首要问题。

以SIP通信为例,呼叫建立和媒体通信的建立是依赖SIP消息首部和SDP 消息所描述的地址和端口信息进行的,呼叫双方分别在内网和外网上,内网是通过NAT设备连接到外网,由于NAT设备工作在IP和TCP/UDP层,所以它不对SDP等应用层数据进行NAT变换,因此会造成寻址失败,从而导致呼叫无法正常建立。

另外,VOIP设备的主要通信协议(如SIP和H.323)要求终端之间使用IP地址和端口号来建立端到端的数据侦听外来的呼叫,而防火墙却通常被配置阻止任何不请自到的数据分组通过。

需要网络管理者打开防火墙上的一个端口来接收呼叫建立数据分组,例如5060端口(SIP的通信端口),但IP语音和视频通信协议还要求打开许多别的端口接收呼叫控制信息来建立语音和视频通信,这些端口号事先并不知道,是动态分配的,也就是说网络管理者为了允许语音和视频通信将不得不打开防火墙上所有的端口,防火墙就失去了存在的意义。

所以当前的问题还有需要解决监听端口的问题。

如下图SIP呼叫不成功示意图分析:1 d:211.83.100.100:23766 s:192.168.1.166:10102 d:211.83.100.100:23766 s:211.83.100.166:99933.d:211.83.100.166:9993 s:211.83.100.100:237664.d:192.168.1.166:1010 s:211.83.100.100:237665.d:211.83.100.110:23788 s:211.83.100.100:20206.d:211.83.100.100:3399 s:211.83.100.110:237887.d:211.83.100.166:9993 s:211.83.100.100:237668.d:192.168.1.166:1010 s:211.83.100.100:237669.d:211.83.100.100:3399 s:211.83.100.110:2378810.d:211.83.100.166:9993 s:211.83.100.100:2376611.d:192.168.1.166:1010 s:211.83.100.100:2376612.d:211.83.100.110:23788 s:192.168.1.166:1010d:211.83.100.110:23788 s:211.83.100.166:999313.d:192.168.1.166 s:211.83.100.110:23788 A对B invite 时在SDP中带上了RTP协商的端口和私网IP,B回复200OK时告知RTP时的端口和私网地址,B 收到A的RTP包后回复,因为RTP包记录是私网地址,所以RTP包被丢弃。

IPSec穿越NAT的原理

IPSec穿越NAT的原理

IPSec穿越NAT的原理IPSec穿越NAT的应用已经很多,但是从协议层分析说明的贴子并不多见,现特收集一篇文章大家共享之一、IPSec穿越NAT存在的兼容性问题IPSec作为一种重要的安全技术得到越来越广泛的应用,但客户网络边缘大量使用的NAT地址翻译*作可能影响到IPSec的正常*作。

目前,NAT和IPSec之间存在的不兼容性问题可以分为以下三类:1.NA(P)T固有的问题这类不兼容问题是直接由NA(P)T与IPSec协议本身不兼容造成的,因此并不是所有的NA(P)T设备都存在。

NA(P)T协议固有的不兼容性包括IPSec AH和NAT不兼容、NAT与校验和不兼容、IPSec SPI 选择和NAT不兼容、IKE地址标识符和NAT不兼容、固定IKE目的端口和NAPT之间不兼容、重叠(Overlap)SPD条目和NAT间不兼容、嵌套IP地址和NAT不兼容以及NA(P)T隐含的方向性问题等。

2.NA(P)T实现方面的问题这类不兼容问题虽然不是NA(P)T协议所固有的,但却在大量的NA(P)T实现中存在。

它们不是NA(P)T协议的固有问题,因此原则上在以后的NA(P)T设计实现中可以避免其产生。

但由于这些问题已经广泛存在,因此在NA(P)T穿越方案中必须予以考虑。

NA(P)T实现方面带来的不兼容性包括不能处理非UDP/TCP通信流、NAT映射超时、不能处理输出和输入分片等。

3.辅助功能引入的问题这类不兼容问题出现在那些拟解决IPSecNA(P)T穿越问题的NA(P)T设备中。

在这些NAT设备中,由于设计部分穿越辅助功能而产生了新的不兼容性,造成更难于解决的问题。

虽然不是所有的NA(P)T设备都提供这种所谓的辅助功能,但鉴于该类问题的普遍性,在NA(P)T穿越方案中也需要考虑这类问题。

在IPSec和NAT的辅助功能之间存在的不兼容问题包括ISAKMP头部检查、对端口500的特殊处理及ISAKMP载荷检查等。

ipsec nat穿越原理

ipsec nat穿越原理

ipsec nat穿越原理IPSec(Internet Protocol Security)是一种在网络通信中提供安全性的协议。

它通过加密和认证机制来保护数据的传输过程,防止数据在传输过程中被窃取或篡改。

而NAT(Network Address Translation)则是一种网络地址转换技术,将私有网络内部的IP地址转换为公共网络地址,以实现内部网络与外部网络的通信。

在网络通信中,当需要在不同私有网络之间建立安全通道时,IPSec 和NAT穿越技术的结合就显得尤为重要。

IPSec本身并不兼容NAT,因为IPSec在传输过程中对IP头部进行了加密,而NAT则需要访问IP头部中的信息来实现地址转换。

因此,如果直接在经过NAT 设备的网络中使用IPSec,就会导致IPSec加密后的IP头部信息被篡改,从而无法正确解密,造成通信失败。

为了解决IPSec和NAT之间的兼容性问题,IPSec NAT穿越技术应运而生。

其基本原理是在经过NAT设备的网络中,将IPSec加密的数据包进行特殊处理,以便在经过NAT设备时能够正确解密。

具体而言,通过在IPSec数据包中添加额外的头部信息,将原始IP头部信息保存在额外头部中,然后在经过NAT设备时,NAT设备只对原始IP头部进行地址转换,而不对额外头部进行操作,从而保证IPSec数据包的完整性和安全性。

在IPSec NAT穿越的过程中,需要考虑到两种情况:一种是在NAT 设备后端的主机是IPSec终端设备,另一种是在NAT设备后端的主机不是IPSec终端设备。

对于第一种情况,需要在NAT设备上配置IPSec穿越规则,以确保IPSec数据包能够正确穿越NAT设备并到达目标IPSec终端设备;对于第二种情况,需要在NAT设备上配置IPSec透明代理,以实现将IPSec数据包正确转发到目标主机上。

总的来说,IPSec NAT穿越技术通过在IPSec数据包中添加额外头部信息,保证了在经过NAT设备时数据包的完整性和安全性。

IPSEC-NAT穿越

IPSEC-NAT穿越

ipsecvpn nat穿越研究前言:阅读本文的前提是读者已经非常熟悉ipsecvpn的原理以及配置,如果对上述技术不清楚的,请先学习相关资料,再阅读本文。

第一部分ipsecvpn nat 穿越原理ipsec使用两种认证技术:AH和ESP,下图是两种认证技术在传输模式(transport mode)和隧道模式(tunnel mode)下的包结构。

默认情况下,cisco使用隧道模式,也是推荐的模式。

从图中可以看出,不管AH使用传输模式还是隧道模式,认证的部分都包含ip包头,根据nat的原理,不管是哪种nat,都会改变ip包头的内容,一但认证的数据在建立隧道的过程中被修改过,则隧道不能建立,所以,使用AH认证方式是无法穿越nat的。

而ESP认证方式则不一样,在传输模式下,它不认证原有的ip包头,而在隧道模式下,它不认证新ip 包头(源地址和目的地址为建立ipsec的两个网关的地址,原ip包头的源和目的地址为实际发生数据传输的两个节点的地址),由于ESP认证的这种特性,使用ESP方式,可以穿越NA T,推荐的模式为:ESP隧道模式。

nat中的pat(最为常用的)方式需要使用传输层的端口,而ipsec里又没有端口号,如何让ipsec能够穿越pat?可以使用UDP封装(源端口和目的端口均为UDP 500),如下图(不采用TCP的原因是TCP头结构过于复杂,而且数据太长,开销大):建立隧道的发起方可以是PA T内部的vpn网关,也可以是PA T外部的vpn网关,不管采用哪种方式,只需要让执行PA T的设备把目的端口为UDP 500的建立隧道请求,转发至PA T 后端的vpn网关,则ipsec可以穿过PA T建立隧道。

第二部分ipsecvpn nat 穿越实验1实验环境完成目标:●按照拓扑图要求连接各个设备●使用ipsec启用VPN,穿透NAT访问内网服务器2实验过程2.1配置基本配置,完成拓扑图,保证连通性mypc为192.168.2.11,server为192.168.0.112.2配置VPN1,启用IPSEC-VPN,使之成为VPN网关2.3配置NAT1,首先是配制普通的网络地址转换,然后配置NAT穿透,映射VPN服务2.4配置ISP,模拟运营商提供时钟2.5配置NAT2,首先是配制普通的网络地址转换,然后配置NAT穿透,映射VPN服务2.6配置配置VPN2,启用IPSEC-VPN,使之成为VPN网关3验证结果3.1用mypc测试其网关之外的路由发现,虽然不能ping通其他路由,但是却能ping通VPN网关,以及VPN网关下面的内网192.168.0.0网段3.2同时服务器端也可访问mypc3.3不止底层的ICMP协议,连应用层的服务也可以穿透3.4甚至是类似\\192.168.0.11这样的操作3.5我们来看下关于IPSEC-VPN的一些信息4总结VPN实现了局域网的对接,把广域网变得象局域网一样简单特别注明!本例子中两台nat路由器并没有完整的路由配置nat1中无ip route 192.168.2.0 255.255.255.0 192.168.3.1nat2中无ip route 192.168.0.0 255.255.255.0 192.168.1.1没有路由也能通信。

SIP之穿越NAT

SIP之穿越NAT

私网
O,p
M,n A,b
Give my ip
公网
[O,p] S,t O,p M,n
X,y
TURN
NAT
分配一个IP和 端口:[O,p]
SIP穿越NAT –TURN SIP穿越 穿越NAT
IETF draft “draft-rosenberg-midcom-turn“draft-rosenberg-midcom-turn06” TURN Server控制分配地址和端口,能分配 Server控制分配地址和端口 控制分配地址和端口, RTP/RTCP地址对 RTP/RTCP地址对(RTCP端口号为RTP端口号加 地址对(RTCP端口号为 端口号为RTP端口号加 1)作为私网终端用户的接收地址,避免了STUN 1)作为私网终端用户的接收地址 避免了STUN 作为私网终端用户的接收地址, 方式中出口NAT对RTP/RTCP地址端口号的任意 方式中出口NAT对RTP/RTCP地址端口号的任意 分配,使得客户端无法收到对端发来的RTCP报 分配,使得客户端无法收到对端发来的RTCP报 对端发RTCP报文时 目的端口号缺省按RTP 报文时, 文(对端发RTCP报文时,目的端口号缺省按RTP 发送) 端口号加 1发送)。
NAT
A,b
P S
SIP穿越NAT – NAT分类 SIP穿越 穿越NAT NAT分类
Full Cone NAT(完全圆锥型 完全圆锥型NAT ) 完全圆锥型
私网 公网
M X,y A,b
Full Cone NAT
P S
•NAT会将客户机地址 会将客户机地址{X:y}转换成公网地址 转换成公网地址{A:b}并绑定 会将客户机地址 转换成公网地址 并绑定 •任何包都可以通过地址 任何包都可以通过地址{A:b}送到客户主机的 送到客户主机的{X:y}地址上 任何包都可以通过地址 送到客户主机的 地址上

IPsecNAT穿越

IPsecNAT穿越

IPsecNAT穿越IPsecNAT穿越是一种网络技术,用于解决IPsec协议在NAT环境下的通信问题。

本文将介绍IPsecNAT穿越的背景和原理,并探讨其在实际应用中的挑战和解决方案。

一、背景介绍在传统的网络环境中,IPsec协议已被广泛应用于保证网络通信的安全性。

然而,在存在网络地址转换(Network Address Translation,NAT)的情况下,IPsec协议会面临一些挑战。

NAT会改变IP报文的源IP地址和目的IP地址,打破IPsec协议中源地址和目的地址的匹配关系,从而导致IPsec通信失败。

为了克服这一问题,人们提出了IPsecNAT穿越技术,旨在解决IPsec协议在NAT环境下的通信难题。

二、IPsecNAT穿越原理1. NAT Transparency(NAT透明)IPsecNAT穿越技术通过实现NAT透明,使得NAT设备能够正确地处理经过NAT的IPsec报文。

它在IPsec数据包中添加必要的信息来维护IPsec会话,使得NAT设备能够正确地转发IPsec数据包。

2. NAT Traversal(NAT穿越)NAT穿越是IPsecNAT穿越的核心原理之一。

它通过在IPsec报文中插入额外的头部信息,使得经过NAT设备的IPsec报文能够正常到达目的地。

三、IPsecNAT穿越的挑战尽管IPsecNAT穿越技术提供了一种解决方案,但在实际应用中仍面临一些挑战。

1. NAT类型的差异不同类型的NAT设备对IPsecNAT穿越的支持程度不尽相同。

某些NAT设备可能无法正确处理IPsec报文,导致通信失败。

2. 防火墙配置限制部分防火墙可能会对IPsec通信进行限制,从而影响IPsecNAT穿越的实现。

这需要对防火墙进行相应的配置,在确保安全性的前提下实现IPsecNAT穿越。

3. 性能影响IPsecNAT穿越技术会增加通信的复杂性,导致一定的性能影响。

在大流量的场景下,IPsecNAT穿越可能导致网络延迟增加和吞吐量下降。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

HASH值的计算方法如下,具体HASH是根据协商来确定的:
HASH = HASH(CKY-I | CKY-R | IP | Port)
CKY-I和CKY-R是协商发起方和响应方的cookie。
协商中双方各自至少要发送两个NAT-D载荷,第一个载荷是对方的地址和端口的HASH,后面的载荷是自己的地址和端口,如果本地有多个地址,则要发送多个载荷,包括所有地址和端口的HASH,对方接收到载荷后重新根据收到的包的实际地址端口来计算HASH值后进行比较,就可以知道是否有NAT设备以及哪一方在NAT设备之后了。
0 1 2 3
0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+---------------+---------------+---------------+---------------+
| IPv4 (4 octets) or IPv6 address (16 octets) |
+---------------+---------------+---------------+---------------+
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| ESP header [RFC4303] |
~ ~
2.2 UDP封装协商
UDP封装方式有两种,一种是UDP通道模式封装,一种是UDP传输模式封装,取值为:
UDP-Encapsulated-Tunnel 3
UDP-Encapsulated-Transport 4
当发现存在NAT设备后,就要选择这两者模式中的一种,而一般正常的通道模式封装和传输模式封装取值分别为1和2。在协商封装模式时,提议一方或者是提议NAT模式下的3、4,或者是提议非NAT下的1、2,而不应该同时提议1、2、3、4这四种模式。
其中ID Type只能为ID_IPV4_ADDR或者ID_IPV6_ADDR,保留字段值都要置0。
值得注意的是只是在传输模式下需要传NAT-OA载荷,但通道模式下就没必要传了,具体原因看下节UDP封装方法后再说明。
交换过程如下:
Initiator Responder
因此传输模式下一个TCP上层包被封装为:
应用ESP/UDP之前
----------------------------
IPv4 |orig IP hdr | | |
|(any options)| TCP | Data |
----------------------------
| Next Payload | RESERVED | Payload length |
+---------------+---------------+---------------+---------------+
| ID Type | RESERVED | RESERVED |
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
所定义的UDP头是由RFC768定义的标准UDP头,源端口和目的端口都必须是相同的,校验和字段应该设为0,ESP本身有完整性认证功能,不需要UDP的校验和,ESP头的最开始4个字节是SPI字段,该字段绝不能是0。
由于在计算TCP/UDP校验和的时候要用到IP地址部分,因此需要知道对方的实际原始地址值,因此协商时双方要发送各自的原始地址,使用NAT-OA (NAT Original Address)载荷进行发送,对应发起方来说,NAT-OA载荷中的地址就是自己实际地址和对方的公网地址,而对于响应方来说,NAT-OA载荷中的对方的公网地址和自己的实际地址。
应用ESP/UDP之后
-------------------------------------------------------
封装ESP包的UDP包所用的端口和IKE协商的端口是相同的,一般都是4500,这样NAT设备也不需要处理两个端口了,区分一个UDP封装包的是IKE协商数据还是实际ESP数据是根据ESP头中的SPI字段来进行的,SPI为0表示是IKE数据,否则为实际ESP数据。
3.1. UDP封装ESP包格式
检测对方是否支持NAT-T是通过交换vendor ID载荷来实现的,如果自身支持NAT-T,在IKE开始交互就要发送这种载荷,载荷内容是“RFC 3947”的MD5值,也就是十六进制的“4a131c81070358455c5728f20e95452f”。
判断是否在NAT设备后面是通过发送NAT-D(NAT-Discovery)载荷来实现的,载荷内容是IP地址和UDP端口的HASH值,NAT-D载荷格式如下,载荷类型值是20:
1. 前言
IPSec提供了端到端的IP通信的安全性,但在NAT环境下对IPSec的支持有限,AH协议是肯定不能进行NAT的了,这和AH设计的理念是相违背的;ESP协议在NAT环境下最多只能有一个VPN主机能建立VPN通道,无法实现多台机器同时在NAT环境下进行ESP通信。关于IPSec在NAT环境下的需求问题在RFC3715中进行了描述。
有些的NAT设备具有端口固定的功能,也就是进行NAT转换后只改变地址而不改变端口,而且针对IKE通信使用cookie来区分内部各个IPSec设备的IKE连接,后续IKE协商如果继续用500端口协商就会出现问题。对于这类设备,解决方法是改变IKE协商端口从500到4500,因为这些设备只对500端口进行特殊处理而不对4500端口处理。在协商时,发现了自己在NAT设备之后的一方立即要将协商端口从500该为4500,源和目的端口都是4500,此时协商数据包格式为:
+---------------+---------------+---------------+---------------+
~ HASH of the address and port ~
+---------------+---------------+---------------+---------------+
Initiator Responder
------------ ------------
UDP(500,500) HDR, SA, VID -->
<-- UDP(500,X) HDR, SA, VID
IP UDP(4500,4500) <non-ESP marker> HDR*, IDii, [CERT, ] SIG_I
其中“non-ESP marker”为4字节,在后面介绍其值。
接收方接收此包解密并认证通过后,要改变自己的状态将原来处理500端口状态改为处理4500端口,后续的协商过程都使用4500端口进行,以后500端口收到的不是新协商的包都将被丢弃,协商过程为:
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 |
NAT穿越(NAT Traversal,NAT-T)就是为解决这个问题而提出的,在RFC3947,3948中定义,在RFC4306中也加入了NAT-T的说明,但并没废除RFC3947,3948,只是不区分阶段1和阶段2。该方法将ESP协议包封装到UDP包中(在原ESP协议的IP包头外添加新的IP头和UDP头),使之可以在NAT环境下使用的一种方法,这样在NAT的内部网中可以有多个IPSec主机建立VPN通道进行通信。
UDP(500,500) HDR, KE, Ni,
NAT-D, NAT-D -->
<-- UDP(500,X) HDR, KE, Nr,
NAT-D, NAT-D
UDP(4500,4500) HDR*#, IDii,
[CERT, ]SIG_I -->
<-- UDP(4500,Y) HDR*#, IDir,
[ CERT, ], SIG_R
如果支持NAT-T,在ID载荷中的端口值要设置为0。
------------ ------------
相关文档
最新文档