背景:
在IPv4的网络中,IP地址是紧缺资源,为了能让用户上网,我们往往要使用PAT(Port Address Translation)端口地址转换技术(也称为端口多路复用技术)。这种技术可以使用一个IP地址被多个会话所复用。与NAT(Network Address Ttanslation)技术只对IP地址做转换不同,PAT技术为了区分源自于不同主机的会话,不仅仅转换源IP地址,而且还会转换这次会话的源端口,把它转换成为一个未被使用的大于1023的端口号。从互联网返回的数据包,通过不同的目的端口号来区分不同的会话。实现一个地址的多会话复用。
有鉴于此,IPSec VPN通道的中间如果经过了PAT转换就会产生问题。
实验环境搭建:
本实验一共需要使用2台路由器,1台防火墙。由左到右分别模拟公司中心节点出口路由器(site1)、互联网防火墙(PATdevice)和公司分支节点出口路由器(site2)。其中site1的环回口(loopback0)模拟公司中心节点内部网络,site2的环回口(loopback0)模拟公司分支节点内部网络。IP地址规划如图所示。
该拓扑是一个lan-to-lan全网接入的VPN拓扑,site1和site2是本次IPSec VPN实验的加密设备。site2位于PATdevice内部,使用的是私有网络地址。为了能使site2访问互联网,并且与site1建立IPSec VPN,我们在PATdevice上配置了PAT地址转换,把内部192.168.1.0/24网络PAT转换到PATdevice的E0口地址(100.100.100.2/24)。
加密的感兴趣的分别为site1身后的10.10.10.0/24网络和site2身后的10.10.20.0/24网络之间的流量。
实验结果:
隧道两端可以正常通信
实验分析:
PAT不仅仅要转换源IP地址,还要转换传输层(四层)源端口号。IPSec VPN用的ESP是一个三层技术,没有传输层头部,自然也就没有传输层端口号。那么按照这个原理推理下来此VPN隧道应该不能建立成功才对,可是实验为什么可以通信呢?
原因就在于中间的PAT设备开启了NAT-T技术!
NAT-T技术介绍:
NAT-T技术解决问题的思路其实很简单。如下图所示,这项技术在原ESP头部和外层IP头部之间,插入了一个UDP/4500的头部。使得PAT设备按照处理一个普通UDP数据包的方式对它进行处理。有个NAT-T技术的协助,ESP数据包就能够穿越PAT设备了。
注: 默认情况下主流的一些的防火墙和路由器都自动开启了NAT-T功能
提示:有运营骨干网安全设备的小伙伴一定要注意了,一定要记得放行UDP的4500端口哦,万一两端有人建立有穿越PAT的IPSec VPN呢。