目录

  • 前言
  • 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主要问题

  1. 穿越NAT后的身份确认:在IP网络中IP地址是最好的身份标识,IPSecVPN中标准身份标识也是IP地址,如上图所示,从前几期专栏的介绍中我们可以得知,NAT处理过程中会改变IP地址,因此IPSec的身份确认机制必须能够适应IP地址变化;目前解决此问题的方法主要有两种,第一种是使用数字证书替代IP地址作为身份标识,第二种是使用字符串取代IP地址作为身份标识;我国内市场范围内,第二种方法更为常见,部署也更为简单,所以对第二种方法重点介绍
  2. 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相关推荐

  1. NAT-T:IPsec穿越NAT之道

    目录 1. IPsec与NAT矛盾 2.  身份确认 3.  NAT-T 3.1 NAT-T流程 3.2 报文格式 4.  地址复用 4.1. 隧道模式下的冲突 4.2. 传输模式下的冲突 4.3. ...

  2. IPSec的NAT穿越

    IPSec的NAT穿越 本文档的Copyleft归yfydz所有,使用GPL发布,可以自由拷贝,转载,转载时请保持文档的完整性,严禁用于任何商业用途. msn: yfydz_no1@hotmail.c ...

  3. IPSEC是如何穿越NAT的

    我们知道IPSEC在工作的时候,如果遇到了NAT,就会带来麻烦,什么麻烦呢?(IPSEC的基础需要清晰) 主要有2种麻烦 1 如果IPSEC和NAT在同一台设备上的时候,是先进行路由查找,然后进行进行 ...

  4. P2P网络“自由”穿越NAT的“秘密”

    P2P网络"自由"穿越NAT的"秘密"<?xml:namespace prefix = o ns = "urn:schemas-microsof ...

  5. TCP实现P2P通信、TCP穿越NAT的方法、TCP打洞

    原文地址:http://www.vckbase.com/document/viewdoc/?id=1773 这个标题用了两个顿号三个名称,其实说得是同一个东西,只是网上有不同的说法罢了,另外好像还有人 ...

  6. UDP穿越NAT原理

    http://blog.csdn.net/ldd909/article/details/5979967 论坛上经常有对P2P原理的讨论,但是讨论归讨论,很少有实质的东西产生(源代码).在这里我就用自己 ...

  7. P2P网络穿越 NAT穿越

    http://blog.csdn.net/mazidao2008/article/details/4933730 ------------------------------------------- ...

  8. 穿越NAT的p2p通信方法研究

    穿越NAT的p2p通信方法研究 日期:2008-12-08 来源:P2P网  作者:未知 字体:大 中 小 <script src="http://www.ppcn.net/ads/b ...

  9. 穿越NAT的SDWAN技术实现(下)

    本文章内容过长,上中篇请移步主页进行观看,本篇是文章的最终篇,感谢各位看官的支持 书接上文,我们继续来说说NAT在SDWAN中的技术实现. 穿越NAT建立SDWAN隧道 在SDWAN网络中,通常将CP ...

最新文章

  1. 程序员上班啥也不干年入140万,网友:这操作绝了!
  2. angularjs 获取复选框的值_哈迪斯仙酒有什么用 哈迪斯仙酒获取方式以及作用一览...
  3. 计算机二级c选择题题库,C程序设计选择题题库【2018计算机二级考试题库:《C++》选择题练习】...
  4. DCMTK:列出dicom文件的内容
  5. 教你阿里云企业版服务器配置到底怎么选?阿里云ECS相关术语汇总
  6. Log4j快速使用精简版
  7. jl计算机二级c语言考什么,计算机等级考试二级C语言考前密卷(9)2
  8. 组合与继承c++_组合与继承
  9. sys.path.append 和 sys.path.insert辨析
  10. android gesture,Android Gesture 手势创建以及使用示例
  11. selenium-远程调用
  12. golang 报错 missing go.sum entry
  13. android颜色透明度换算详解
  14. 512-rear chassis fan not detected的解决方法
  15. 灵雀云基于 OVN 的 Kubernetes 网络架构解析
  16. 【完结】囚生CYの备忘录(20221121-20230123)
  17. 新房和二手房税费比较
  18. win10可用空间新建卷提示磁盘上没有足够的空间完成此操作如何解决
  19. chrome浏览器安装插件方法
  20. 潮起潮落,自助餐还是被“吃”垮了

热门文章

  1. 「整理文件轻松有妙招!教你如何按类型将文件夹里的文件进行归类保存」
  2. cesium-坐标系统
  3. 离散数学·欧拉图、哈密顿图、无向树和生成树
  4. NR PDSCH——概述和参数配置
  5. undefined 与 undeclared 的区别
  6. 华为盒子EC6110-M、EC6110-T(3798mv310芯片)强刷固件及教程
  7. 使用postman进行并发测试
  8. 烧结银选购22条军规
  9. c语言程序设计考试例题,C语言程序设计考试题答案
  10. 2023年全国最新道路运输从业人员精选真题及答案3