txwwy 发表于 2004-10-15 10:39:19

router os 的VPN(包括PPPTP、L2TP)都不能够穿越NAT,但很多公司采用了其他的方法是可以的,不知道大家对此有什么解决方案?

txwwy 发表于 2004-10-15 10:50:24

刚查到点资料,正测试中VPN与NAT兼容不容忽视   无论是大企业还是中小企业,都在广泛使用NAT技术,因此VPN常常要与NAT组合使用。PPTP穿过NAT服务器不成问题,最主要的问题是IPSec数据包与NAT不兼容,因为IKE协议和由IPSec保护的数据包无法进行NAT转换。采用IPSec或L2TP/IPSec协议的VPN方案都要解决NAT兼容性问题。  IPSec支持传输模式和隧道模式,AH(验证报头)或ESP(封装安全性负载)协议可用于这两种模式。IPSec传输模式用于实现端对端安全通信,通过AH或ESP报头对IP有效荷载提供保护。IPSec隧道模式用于实现路由器、网关之间的安全通信,通过AH或者ESP提供对整个IP数据包的保护。使用隧道模式时,将通过AH或ESP报头与其他IP报头来封装整个IP数据包。在传输模式下,IPSec报头放置在数据包的IP部分和上层报头之间。在隧道模式下,整个IP数据包封装在另一个IP数据包中,而IPSec报头放置在两个IP报头之间。在需要机密性的情况下,ESP和AH都是必需的。在无需机密性的情况下,AH足以提供身份验证和完整性。  NAT不仅用来解决IP地址紧缺的问题,而且能使得内外网络隔离,提供一定的网络安全保障。在内部网络中使用内部地址,通过NAT把内部地址转换成合法的公网IP地址在Internet上使用,实际上将IP包内的地址用合法的IP地址来替换。NAT有3种类型:静态NAT、动态地址NAT、网络地址端口转换(NAPT)。静态NAT设置起来最为简单,内部网络中的每个主机都被永久映射成外部网络中的某个合法的地址。而动态地址NAT则是在外部网络中定义了一系列的合法地址,采用动态分配的方法映射到内部网络。NAPT则是把内部地址映射到外部网络的一个IP地址的不同端口上。显然,NAT对IP的低层进行了修改。  然而,由于IPSec协议架构本身的原因,加上缺乏支持IPSec的NAT设备,当IPSec和NAT在一起运行时就会出现很多问题。常见的问题有:①NAT和AH IPSec无法一起运行,因为NAT会改变IP包的IP地址,而IP包的任何改变都会被AH标识所破坏。②当两个IPSec网关之间采用了NAPT功能,没有设置IPSec流量处理的时候,IPSec和NAT无法协同工作。③在传输模式下,ESP IPSec不能和NAPT一起工作,因为在这种传输模式下,端口号受到ESP的保护,端口号的任何改变都会被认为是破坏。L2TP/IPSec使用的就是ESP IPSec传输模式。④在隧道模式下,如果使用ESP,TCP/UDP报头是不可见的,因此不能进行内外地址的转换,不过此时静态NAT和ESP IPSec可以一起工作,因为只有IP地址要进行转换,对高层协议没有影响。  显然IPSec系统无法部署在NAT的后面。解决这些问题的办法有:① 在NAT环境(静态NAT)下工作使用IPSec ESP隧道模式。采用这种模式,IPSec保护的数据包能够穿越NAT路由器。②确保先执行NAT,再进行IPSec处理。一种方法是在IPSec系统之后部署一个NAT路由器,这也是最简单的办法。另一种方法是使用同时支持NAT和IPSec的设备,许多路由器、防火墙产品都能在对数据包进行IPSec处理之前完成NAT转换。③启用新的VPN技术。IPSec NAT遍历(NAT-T,也译为“穿越”、“穿透”)旨在解决IPSec NAT的兼容性问题,对IKE消息和处理过程进行了修改,将IPSec保护的数据包封装为UDP消息。这种技术支持IPSec包穿越NAT。

txwwy 发表于 2004-10-15 10:51:52

NAT模式下VPN的建立
页: [1]
查看完整版本: VPN与NAT兼容性的问题