网络通信 频道

高招:IPsec VPN、NAT冲突轻松解决

二.IPsec与NAT的冲突问题分析

IPsec的设计和NAT存在冲突,它主要表现在以下几点:

(1)IPsec中的AH协议和NAT存在冲突.AH用验证算法保护包括IP头在内的整个
IP报文不被修改,如果到达执行NAT功能的网关,NAT需要修改IP报文,经过修改的报文到达对方后因无法通过验证,会被丢弃.ESP协议由于只保护IP载荷,所以如果修改IP地址不会影响通信.IPsec和NAT的校验也存在冲突.TCP/UDP/SCTP中校验都是依赖于IP源目的地址的,它需要计算“伪头”(即IP源、目的地址加上TCP头),通过NAT和NAPT后由于地址和端口被修改,校验要重新计算.如果对源报文进行了完整性或密码保护,报文到达对方后,验证就会出现不一致,对方IPsec将丢弃此报文,除非IPsec使用通道模式、IPsec/GRE模式或不计算校验才能避免报文丢弃.即使这样也仍然存在问题,在IKE中最普遍最基本的验证方法就是预共享密钥,这种方法依赖于源IP地址,所以也和NAT冲突,解决办法就是使用另外的验证方法,如X.509.

(2)IKE的协商端口固定为500,这和NAPT有冲突.当多个主机在一台NAT设备后与
同一目的主机协商IKE SA 时,从这一目的主机来的报文需要由NAPT分路到不同的源主机,典型的做法是转换内部主机IKE的UDP源端口.但是,在重建密钥时会出现不可知错误,除非修改的源端口在重建密钥时用作目的端口.

(3)当多个主机在一个NAT设备后与同一个目标主机协商安全策略库(SPD)的内容时,
很可能发送到错误的SA(安全关联) 中,因为对目标主机来说,这些SA 好象是相同的,它们都是存在于同一对主机间.

0
相关文章