IPsec穿越NAT
目录
- 前言
- IPSec
- IPSecVPN穿越NAT主要问题
- IKE身份确认及野蛮(激进)模式协商
前言
IPSec在NAT环境中的部署是VPN的热门难点技术之一。
IPsec协议可以用来在IP层提供校验和加密等安全特性。NAT为了解决地址不足的问题,将私有地址转为公网地址,解决私网路由通信问题。
两个都是非常常见的网络技术,当IPSec位于NAT之后,很多问题就出现了。
IPSec
IPsec支持两种模式:传输和隧道。
- 传输模式对IP包负载应用IPsec协议,对IP包头不进行任何修改。
- 隧道模式中IPsec将原有的整个IP网包封装成带有新的IP头部的网包。
IPsec协议支持两种头部:AH和ESP
再来说说什么情况下需要NAT穿越。简图如下:
上图中IPsec隧道端点落在分支和总部的路由器上,而分支向总部发起隧道协商时源地址是需要经过出口NAT设备进行转换的,该种场景下就需要NAT穿越功能。
但是仅仅这么说,只能知其然不知其所以然。
接着来说为什么上述场景需要NAT穿越,因为NAT与IPSEC天生就是互斥的技术。
IPSecVPN穿越NAT主要问题
- 穿越NAT后的身份确认:在IP网络中IP地址是最好的身份标识,IPSecVPN中标准身份标识也是IP地址,如上图所示,从前几期专栏的介绍中我们可以得知,NAT处理过程中会改变IP地址,因此IPSec的身份确认机制必须能够适应IP地址变化;目前解决此问题的方法主要有两种,第一种是使用数字证书替代IP地址作为身份标识,第二种是使用字符串取代IP地址作为身份标识;我国内市场范围内,第二种方法更为常见,部署也更为简单,所以对第二种方法重点介绍
- IP地址复用:IPSec由AH和ESP两个协议组成,其中AH无法穿越NAT,ESP从理论上可以穿越NAT,但是ESP的IP协议号是50,并不是基于UDP和TCP的协议,因此当NAT网关背后存在多个ESP应用端时,无法只根据协议号进行反向映射,为了使ESP能够在NAT环境中进行地址复用,ESP必须做出改变。
IKE身份确认及野蛮(激进)模式协商
IPSec的身份确认最常见是通过IKE协议代劳,IKE支持的身份认证机制有两种:
1.数字证书方式,通过CA数字证书体系确认身份,是最为安全、可靠的方式。
2.身份标识+预共享密钥方式,通过发起方和响应方预先配置相同的密钥,如bigtree,完成双方对彼此身份的认证,这是最为常见的方式;在预共享密钥认证机制中,身份标识则可以分为几类:
a)指定IP地址,使用IP地址作为身份标识,是IKE的默认方式,响应方只允许指定IP地址发起协商,安全性比较高
b)指定IP地址范围,这种方式依然使用IP地址作为身份标识,由于发起方必须要指定IP地址,否则无法发起协商,指定IP地址范围是响应方特性,如响应方可以指定2.0.0.0/8范围内的地址都可以发起协商,而不是只允许2.1.1.2发起协商,能够减少配置,但安全性略有下降
c)什么都不指定,也是使用IP地址作为身份标识,但允许任意IP地址发起协商,只要预共享密钥一致,双方就能够通过身份确认,通常适用于发起方动态获取公网地址,如PPPoE接入互联网方式,还适用于发起方众多,而响应方不想单独为每个发起方单独指定预共享密钥,这种方式虽然不是非常安全,但是可以简化配置,安全性再次下降
d)指定对端名字,发起方和响应方都预先配置好本端名字,使用该名字作为身份标识,与指定IP地址类似,通过指定对端名字方式,即使双方预共享密钥一致,只要对端名字不合法,立即中断协商,由于名字未与IP地址进行绑定,而且名字在网络中明文传递,安全性不如指定IP地址方式高,但这种身份标识方式可以穿越NAT。
IPsec穿越NAT相关推荐
- NAT-T:IPsec穿越NAT之道
目录 1. IPsec与NAT矛盾 2. 身份确认 3. NAT-T 3.1 NAT-T流程 3.2 报文格式 4. 地址复用 4.1. 隧道模式下的冲突 4.2. 传输模式下的冲突 4.3. ...
- IPSec的NAT穿越
IPSec的NAT穿越 本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途. msn: yfydz_no1@hotmail.c ...
- IPSEC是如何穿越NAT的
我们知道IPSEC在工作的时候,如果遇到了NAT,就会带来麻烦,什么麻烦呢?(IPSEC的基础需要清晰) 主要有2种麻烦 1 如果IPSEC和NAT在同一台设备上的时候,是先进行路由查找,然后进行进行 ...
- P2P网络“自由”穿越NAT的“秘密”
P2P网络"自由"穿越NAT的"秘密"<?xml:namespace prefix = o ns = "urn:schemas-microsof ...
- TCP实现P2P通信、TCP穿越NAT的方法、TCP打洞
原文地址:http://www.vckbase.com/document/viewdoc/?id=1773 这个标题用了两个顿号三个名称,其实说得是同一个东西,只是网上有不同的说法罢了,另外好像还有人 ...
- UDP穿越NAT原理
http://blog.csdn.net/ldd909/article/details/5979967 论坛上经常有对P2P原理的讨论,但是讨论归讨论,很少有实质的东西产生(源代码).在这里我就用自己 ...
- P2P网络穿越 NAT穿越
http://blog.csdn.net/mazidao2008/article/details/4933730 ------------------------------------------- ...
- 穿越NAT的p2p通信方法研究
穿越NAT的p2p通信方法研究 日期:2008-12-08 来源:P2P网 作者:未知 字体:大 中 小 <script src="http://www.ppcn.net/ads/b ...
- 穿越NAT的SDWAN技术实现(下)
本文章内容过长,上中篇请移步主页进行观看,本篇是文章的最终篇,感谢各位看官的支持 书接上文,我们继续来说说NAT在SDWAN中的技术实现. 穿越NAT建立SDWAN隧道 在SDWAN网络中,通常将CP ...
最新文章
- 程序员上班啥也不干年入140万,网友:这操作绝了!
- angularjs 获取复选框的值_哈迪斯仙酒有什么用 哈迪斯仙酒获取方式以及作用一览...
- 计算机二级c选择题题库,C程序设计选择题题库【2018计算机二级考试题库:《C++》选择题练习】...
- DCMTK:列出dicom文件的内容
- 教你阿里云企业版服务器配置到底怎么选?阿里云ECS相关术语汇总
- Log4j快速使用精简版
- jl计算机二级c语言考什么,计算机等级考试二级C语言考前密卷(9)2
- 组合与继承c++_组合与继承
- sys.path.append 和 sys.path.insert辨析
- android gesture,Android Gesture 手势创建以及使用示例
- selenium-远程调用
- golang 报错 missing go.sum entry
- android颜色透明度换算详解
- 512-rear chassis fan not detected的解决方法
- 灵雀云基于 OVN 的 Kubernetes 网络架构解析
- 【完结】囚生CYの备忘录(20221121-20230123)
- 新房和二手房税费比较
- win10可用空间新建卷提示磁盘上没有足够的空间完成此操作如何解决
- chrome浏览器安装插件方法
- 潮起潮落,自助餐还是被“吃”垮了