IPsec 和 NAT 的冲突问题详解

原创 2015年03月25日 17:04:42

背景

IPsec 协议可以用来在 IP 层提供校验和加密等安全特性。基于 IPsec 的 VPN 已经成为 site-site 模式下高可靠连通方案的首选。

NAT 最初是为了解决地址不足的问题,它将 NAT 网关后的实际地址隐藏起来,对外呈现一个外部地址,通常包括基于地址的映射(设备负责将内外地址进行对应和替换)和基于端口(通常外部为同一地址,根据到达端口的不同替换为内部不同的地址和端口)的映射。

两者都是常见的网络技术,然而当 IPsec 处理位于 NAT 处理后工作的时候往往会产生冲突。

IPsec

首选,IPsec 支持两种模式:传输和隧道。传输模式只对 IP 包负载应用IPsec协议,对 IP 包头不进行任何修改,因此只能应用于主机对主机的 IPsec VPN 中。隧道模式中 IPsec 将原有的整个 IP 网包封装成带有新的 IP 头部的网包,这样就隐藏了真实的网包信息。隧道主要应用于主机到网关的远程接入的情况。

IPsec 协议支持两种头部:Authentication Header(AH) 和 Encapsulation Security Payload。前者只可以进行认证,后者则即可以加密也可以认证。

传输模式

下图展示了传输模式下原始网包和封装后网包的格式。

transfer

隧道模式 下图展示了隧道模式下原始网包和封装后网包的格式。

tunnel

冲突总结

  • 首先,由于 NAT 往往需要修改包头中的地址(出去的时候修改源地址、进来的时候修改目的地址),这就让 AH 的认证失败了。因为 AH 头验证的是头部+负载的整个网包。但是 ESP 头则不受影响,因为它不检查 IP 包头信息。
  • 校验和。IP 校验和只校验 20 字节的 IP 头;而 ICMP 校验和覆盖整个报文(ICMP 报头 + ICMP 数据);UDP、TCP校验包括整个报文,而且还有 12 字节的 IP 伪首部,包括源 IP 地址(4字节)、目的 IP 地址(4字节)、协议(2字节,第一字节补0)和 TCP/UDP 包长(2字节)。那么,在传输模式下,ESP 加密和验证的 TCP/UDP 头信息,跟外面的 IP 包头信息就对不上了。原始网包中目标地址是对方的外部地址,而收到的网包目标地址则是内部地址了。
  • IKE 架构中的地址往往不允许修改,端口也是固定的,这跟 NAT 冲突。
  • 同一个 NAT 后的设备在外面看起来往往是来自同一个外部地址,而后面可能有多个 VPN 用户,这将导致协商阶段的冲突。
  • 应用层网关,因为负载被加密了,自然无法解析和修改,导致失败。
  • NAT 超时后,导致 VPN 连接失败。
  • 其它,包括对分片包的处理等。

解决思路

首先 AH 头因为是对整个网包的认证,所以是无法跟 NAT 共存的。而 ESP 头只保护 IP 包头以外的内容,因此是可能跟 NAT 设备共存的。

目前,为了解决这一问题,提出了 NAT-T 方案。在 ESP 外面除了新的 IP 包头,再添加一个 UDP 头,这样,外面的 NAT 设备操作的是新的 IP 头和 UDP 头,而跟内部信息无关。

NAT-T 在实际操作中,需要中间 NAT 设备的探测。

参考

转载请注明:http://blog.csdn.net/yeasy/article/details/44624095

IPSec NAT 穿越概述

由于历史的原因,部署带 Internet 协议安全的第二层隧道协议(L2TP/IPSec)的问题之一在于无法定位网络地址转换(NAT)之后的 IPSec 对话方。 Internet 服务提供商和小型办...

nat与ipsec之间的问题

在NAT技术和IPsec技术的应用都非常广泛。但从本质上来说,两者是存在着矛盾的。 1.从IPsec的角度上说,IPsec要保证数据的安全,因此它会加密和校验数据。 2.从NAT的观点来看,为...
  • zcanjie
  • zcanjie
  • 2015年05月21日 11:41
  • 1256

L3---fragment---ipsec: ipsec对3层分片的处理

# # This doc describe: # # $(ipsec)'s special handling to fragments # ----------------------------...
  • xzhao28
  • xzhao28
  • 2015年04月13日 13:35
  • 268

强叔侃墙 VPN篇 IPSec遭遇NAT处变不惊,见招拆招化险为夷

前文说到,使用模板方式可以在总舵与公网IP不固定的分舵之间建立IPSec隧道。至此,无论是拥有固定公网IP的分舵还是动态获得公网IP的分舵,都可以通过IPSec安全地访问总舵,天地会业务兴隆一片祥和。...

【Kali】利用Ettercap进行ARP欺骗和中间人攻击

http://xiao106347.blog.163.com/blog/static/215992078201352055231824/ 攻击主机平台:kali-linux         被攻击...

nat与ipsec之间的问题

在NAT技术和IPsec技术的应用都非常广泛。但从本质上来说,两者是存在着矛盾的。 1.从IPsec的角度上说,IPsec要保证数据的安全,因此它会加密和校验数据。 2.从NAT的观点来看,为...
  • zcanjie
  • zcanjie
  • 2015年05月21日 11:41
  • 1256

技术点详解---IPSec穿越NAT

技术点详解—IPSec穿越NATIPSec在NAT环境中的部署是VPN的热门难点技术之一,本专栏针对该问题进行原理性探讨,为后续VPN部署方案做下铺垫。IPSec VPN穿越NAT会遇到哪些问题IPS...

技术点详解---IPSec穿越NAT

引用自http://www.h3c.com.cn/Service/Channel_Service/Operational_Service/ICG_Technology/201006/677319_30...

ipsec+nat穿越配置举例

  • 2013年01月28日 22:02
  • 806KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:IPsec 和 NAT 的冲突问题详解
举报原因:
原因补充:

(最多只允许输入30个字)