IPSec×××与NAT,PAT的恩恩怨怨

前面的话:我们都知道×××就是利用公共的网络资源来组建我们企业自己的私有网络,同时由于公共网络公用性的特点,×××同时就得解决私网在公网上的路由问题及数据安全性问题,同时企业网络环境复杂,我们时常需要把IPSec×××与NAT,PAT技术同时结合使用,必须让×××的数据穿越NAT,PAT,就像现在流行的穿越剧一样,虽然有些扯淡,但是也对企业网络有利,这里我们就来扯扯IPSec×××与NAT,PAT 的前世今生,恩恩怨怨,且听我慢慢道来。。。

 

    首先IPsec×××可以使用AH封装,也可以使用ESP封装。IPSec×××可以使用传输模式,也可以使用隧道模式。

我们先来看一下不同封装,不同模式的数据包结构吧:
 

AH封装:

 

ESP封装:

 

1 AH与NAT,PAT 那是死对头了,这辈子是不可能结合了,除非任一方作出让步,做出改变,似乎这个可能性很小,也没谁希望他们能结合

为什么呢?

还用说,肯定是有不可调和的矛盾

AH的验证会验证包括最外层IP头的所有数据(管你是传输模式还是隧道模式),这样AH封装的IPSec×××数据包穿越了NAT或PAT后,要不就是IP头变了,要不就是TCP,UDP头变了,总之有一个东西变了,最终对头收到这个包再要做AH的验证是怎么也通过不了的,这样就不行啦。。。

 

2 ESP与NAT

要分情况了,如果是传输模式

那也是不行的,为什么呢?可能很多熟悉ESP封装结构的同学要叫了,但是莫急,不行就是不行,

因为你们只知其一,不知其二

虽然说ESP的加密与完整验证都与最外层的IP头没有关系,TCP的数据包中还有一个校验,这个校验有一个因子是原来数据包的IP地址,由于传输模式,最外层IP就是原来的IP地址,这样过了NAT后,IP地址肯定会变化,这样ESP的两关都过了,TCP这一关又过不了啊,还是不行,这就也像木桶理论一样,有一块短板都不行的。

而在隧道模式下是可以的,因为隧道模式下能过ESP的两关那是不用说的,同时TCP的那一关,因为原来的IP头都是原封不动,那肯定能过啊,对吧。

 

3 ESP与PAT

正常情况下不管是传输模式还是隧道模式都是不行的,因为要穿过PAT,得有一个TCP或者一样UDP的头部啊,但是此时IP头紧跟就是ESP啊,不是TCP也不是UDP,那肯定就不行了

同时由于传输模式同样存在TCP不能验证的问题,那传输模式下,任何办法也不能让ESP与PAT搞到一块啊。

但隧道模式就一样了,哎,有隧道就是好啊,总会有办法。

不是因为没有TCP或UDP吗?那加一个TCP头不就行了吗?

这样就有了NAT-T的技术啊。

至于具体的NAT-T技术怎么实现的,有时间下回再扯吧,累了。。。。。