IPSec NAT-T穿越技术

IPSec NAT-T穿越技术

在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穿越(NATTraversal,NAT-T)就是为解决这个问题而提出的,RFC3947,3948中定义,在RFC4306中也加入了NAT-T的说明,但并没废除RFC3947,3948,只是不区分阶段1和阶段2。该方法将ESP协议包封装到UDP包中(在原ESP协议的IP包头外添加新的IP头和UDP头,也被称为NAT-T头部)

使之可以在NAT环境下使用的一种方法,这样在NAT的内部网中可以有多个IPSec主机建立VPN通道进行通信(原因是如下图,因为有了UDP报文的封装ESP加密的报文后,PAT模式下使用UDP端口号可以区分不同的ESP PAYLOAD:)。

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

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

但是还是有新的问题,对于ESP的传输模式,NAT 无法更新上层校验和。因为TCP 和 UDP 报头包含一个校验和,它整合了源和目标 IP 地址和端口号的值,而源和目的IP地址和端口号在做NAT时会发生改变。

当 NAT 改变了某个包的 IP 地址和(或)端口号时,它通常要更新 TCP 或 UDP 校验和。当 TCP  UDP 校验和使用了 ESP 来加密时,它就无法更新这个校验和。由于地址或端口已经被 NAT 更改,目的地的校验和检验就会失败。虽然 UDP 校验和是可选的,但是 TCP 校验和却是必需的。所以ESP的传输模式也不支持NAT穿越。

 ESP封装的隧道模式:从ESP隧道模式的封装中,我们可以发现,ESP隧道模式将整个原始的IP整个进行了加密,且在ESP的头部外面新加了一层IP头部,所以NAT如果只改变最前面的新的IP地址对后面受到保护的部分是不会有影响的。因此,IPsec只有采用ESP的隧道模式来封装数据时才能与NAT共存。

AH模式的IPSec VPN由于完整性校验牵涉到IP头部,所以NAT无法对其修改,不兼容。

ESP的传输模式,因为TCP部分被加密,NAT无法对TCP校验和进行修改,不兼容。

ESP的隧道模式,由于NAT改动外部的IP而不能改动被加密的原始IP,使得只有这种情况下才能与NAT共存。

NAT穿越(NAT TraversalNAT-T)

Cisco IOS的版本在12.2(13)T以后,可以支持NAT-T技术。以前NATIPsec只能以11的形式共存(非PAT的情况),NAT-T打破了这种形式(因为使用了NAT-T包头做的UDP端口区分)。而且NAT-T支持ESP的传输模式。NAT-T的基本思想:将ESP协议包封装到UDP包中(在原ESP协议的IP包头外添加新的IP头和UDP头)。使得NAT对待它就像对待一个普通的UDP包一样。而且支持ESP的传输模式。NAT-T的基本原理和执行步骤

1. 检测通信中是否存在NAT设备和对方是否支持NAT-T

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

上面的NAT-D数据就是源IP和源端口(或者目的IP和目的端口)的组合分别计算的hash值,用于验证peer之间是否存在NAT设备,但是无法区分是PAT还是一对一的NAT

如果有NAT存在且双方都支持NAT-T,则:

上面IKE1-2个包相互发送VID来声明自己是否支持NAT-TIKE3-4个包(MM主模式)或者2-3个包(AM主动模式)发送由源IP和源端口号,以及目的IP和目的端口组合分别计算的NAT-D负载。

如果双方判断后确实需要NAT-T技术,则在IKE5-6个包开始后面所有ISKAMP包,以及所有的ESP包,都被封装到中目的UDP4500的包中。

判定CISCO路由器是否启用NAT-T技术,可以通过show crypto ipsec sa

查看in use setting是否为Tunnel(未启用NAT-T

如果CISCO路由器启用了NAT-T技术,则显示如下(Tunnel UDP-Encaps):

判定cisco ASA防火墙是否启用了NAT-T技术,也可以通过show crypto ipsec sa:查看in use setting是否为L2L tunnel(未启用NAT-T

如果CISCO ASA防火墙启用了NAT-T技术,则显示如下:L2L tunnel NAT-T-Encaps

NAT-T的两端peer之间的设备(如ASA设备)的connection会显示如下:UDP 500UDP 4500两个会话(源目端口号一样),其中UDP 500IKE1-44个包,从IKE5个包开始,一直到ESP封装的数据包均封装在UDP4500中。

拓扑图如下(SITE1SITE2之间建立了L2L VPN,Internet模拟被穿越的中间NAT网络):

ASA/IOS NAT-T技术对比表(IOS只支持公有的NAT-T技术)

配置方法

1.ipsec over tcp

该方法导致双方使用TCP端口通信,缺省端口是10000,只支持client方式(远程拨号VPN),该技术牛B的地方是整个工作过程的ISAMPESP包均封装在TCP的某个任意端口号内,包括isakmp的前1-4UDP 500的包也被封装在TCP中,网络的穿越效果最好。缺省被禁用,打开方法:

crypto isakmp ipsec-over-tcp

如下实例,可以同时在ASA端设置多个端口号:

client端的设置方式如下:

当实际环境中不常规VPN通信或NAT-T,IPSEC OVER UDP的时候使用。

2.NAT-T

该方法导致双方最终使用udp 4500端口通信,支持client(远程拨号VPN,L2L 两种方式。缺省是被禁用的。NAT-T的打开方法:

crypto isakmp nat-traversal 20 ,缺省keepalives时间20秒,该isakmp的NAT keeplive包的发送是为了避免在经过的PAT时候,在NAT会话表(xlate)超时(PAT类型的NAT会话表超时时间很短但大于20s)之前维持住该NAT会话表。

3.ipsec over udp

导致双方使用UDP通信,缺省端口10000只支持client方式(远程拨号VPN。缺省被禁用,该技术的前4个包依然是UDP 500的封装,5-6个包开始包含ESP包均封装在任意的UDP端口中(默认是UDP 1000)。

打开方法:

在组策略中配置

hostname(config-group-policy)#ipsec-udp {enable | disable}

hostname(config-group-policy)#ipsec-udp-port10000 //端口号可以任意配置

如下实例:

client端貌似不好设置UDP12345端口,只要ASA服务端设置UDP 12345端口就可以。

上述三种方法都启用时候的优先级别: over tcp>NAT-T>over udp

时间: 2024-11-04 22:19:32

IPSec NAT-T穿越技术的相关文章

cisco GRE over ipsec -NAT环境(外网接口和loopback二种模式)

一.IPSEC:二边静态和NAT-1-11.GRE Over IPSEC Ipterm3:172.99.99.2/24 GW:172.99.99.1Ipterm4:172.99.98.2/24 GW:172.99.98.1R3:F0/0 10.0.0.1 /24 nat inside F0/1:172.99.99.1/24 nat outsideR4:F0/0 10.1.1.2 /24 nat inside F0/1:172.99.98.1/24 nat outsideFortigate:por

NAT(地址转换技术): Network Address Translation Protocol解析

版权声明:本文为@小小呆原创文章,出处! https://blog.csdn.net/gui951753/article/details/79593307 目录 NAT产生背景ip地址基础知识NAT技术的工作原理和特点静态NAT动态NATNAT重载(经常应用到实际中)NAT技术的优缺点优点缺点NAT穿越技术应用层网关(ALG)ALG的实际应用NAT技术的未来参考文献 NAT产生背景 今天,无数快乐的互联网用户在尽情享受Internet带来的乐趣.他们浏览新闻,搜索资料,下载软件,广交新朋,分享信

24.NAT地址转换技术

NAT(network address translation)网络地址转换. NAT技术的作用:将不合法的私网地址转换成合法的公网地址. NAT技术的优点:节省公有合法地址,处理地址重叠,增强灵活性,安全性. NAT技术分类: v 静态NAT:一对一转换,一个私网地址对应一个公网地址. v 动态NAT:多对多转换,多个私网地址对应多个公网地址. v PAT:端口多路复用,多对一转换,多个私网地址对应一个公网地址. 思科NAT相关命令: NAT转换思路: v 确定边界路由器 v 指定内外接口 v

80端口被屏蔽解决方法,80端口穿透之NAT端口映射技术

介绍一种NAT端口映射技术应用,达到80端口穿透目的,解决80端口被屏蔽的问题,也是80端口被屏蔽解决方法中经常用到的. 80端口穿透类似80端口转发,因为80端口被屏蔽,在数据层面来说是不能直接访问的,但通过端口转发后,在数据层是转发,用户访问是直接访问. 80端口穿透之NAT端口映射技术应用: 一,在局域网内启用nat123端口映射.添加映射.这一步虽然简单便很重要.映射时,外网地址使用自己的域名,外网端口直接写定是80端口. 二,映射后,访问下网站地址,不带端口的外网地址,是正常的.之后,

[ipsec] 特别硬核的ike/ipsec NAT穿越机制分析

〇 前言 这怕是最后一篇关于IKE,IPSEC的文字了,因为不能没完没了. 所以,我一直在想这个标题该叫什么.总的来说可以将其概括为:IKE NAT穿越机制的分析. 但是,同时它也回答了以下问题: (1)IKE协议交互消息概述.(2)为什么IKE除了端口500还用了端口4500 .(3)IKE MOBIKE是什么. (4)迷之端口500和迷之端口4500 .(5)IKE/IPsec为什么要将端口500换成端口4500. (6)ike/ipsec为什么使用了两个端口. 另外,本篇的所有内容与讨论仅

思科防火墙NAT穿越技术

拓扑图: 需求: R1作为局域网出口路由器,承担这PAT地址转换功能. ASA需要跟R3建立vpn R4作为局域网内部机器可以跟R3互联,并可以上外网 步骤: 给所有设备配置ip地址,地址规划如上图所示并默认路由 在R4上面配置ip地址配置默认路由 interface FastEthernet0/0 ip address 192.168.1.2 255.255.255.0no shutdown !ip route 0.0.0.0 0.0.0.0 192.168.1.1 在ASA1上面配置ip地址

SIP穿越NAT SIP穿越防火墙-SBC

FireWall&NAT FireWall是一种被动网络安全防卫技术,位于网络的边界,在两个网络之间执行访问控制策略,防止外部网络对内部信息资源的非法访问,也可以阻止特定信息从内部网络被非法输出.一般来说,防火墙将过滤掉所有不请自到的网络通信(除指定开放的地址和端口). NAT技术分为基本的网络地址转换技术(NAT)和网络地址与端口转换技术(NAPT,Network Address and Port Translator),其主要功能是为流出内网的分组分配一个全局的IP地址和端口号作为其源地址和

WebRTC中NAT穿透浅析

说NAT穿透之前先说几个关于WebRTC的概念,可能之前有跟作者一样对WebRTC概念理解错误的同学.. WebRTC(网络实时通信)它是一个支持网页浏览器进行实时语音对话或视频对话的技术,它为我们提供了视频会议的核心技术,包括音视频的采集.编解码.网络传输.显示等功能,并且还支持跨平台:windows,linux,mac,android,iOS. 1.WebRTC的实现原理 webRTC是基于P2P的网络通信,可能有同学不太了解P2P是什么,在此简单解释一下 P2P就是点对点的通信. 下面就拿

使用WebRTC搭建前端视频聊天室——信令篇

博客原文地址 建议看这篇之前先看一下使用WebRTC搭建前端视频聊天室——入门篇 如果需要搭建实例的话可以参照SkyRTC-demo:github地址 其中使用了两个库:SkyRTC(github地址)和SkyRTC-client(github地址) 这两个库和demo都是我写的,如果有bug或是错误欢迎指出,我会尽力更正 前面的话 这篇文章讲述了WebRTC中所涉及的信令交换以及聊天室中的信令交换,主要内容来自WebRTC in the real world: STUN, TURN and s