问答题 【说明】
由于历史的原因,部署带Internet协议安全的第二层隧道协议(L2TP/IPSec)的问题之一在于无法定位网络地址转换(NAT)之后的IPSec对话方。Internet服务提供商和小型办公/家庭办公(SOHO)网络通常使用NAT来共享单个公共IP地址。虽然NAT有助于节省剩余的IP地址空间,但是它们也给诸如IPSec之类的端对端协议带来了问题。
一种称为IPSec NAT穿越(NAT-T)的新技术正在由Internet工程任务组的IPSec网络工作组标准化。IPSec NAT-T是在标题为“UOSec包的UDP封装”和“IKE中的NAT穿越协商”的Inter-net草案中描述的。IPSec NAT-T对协商过程进行了修改,并且定义了发送受IPSec保护的数据的不同方法。
与通过NAT使用IPSec有如下相关的问题,请简要回答如何通过IPSec NAT-T解决办法解决这些问题?
问答题 【问题1】
NAT无法更新上层校验和,TCP和UDP报头包含一个校验和,它整合了源和目标IP地址和端口号的值。当NAT改变了某个包的IP地址和(或)端口号时,它通常要更新TCP或UDP校验和。当TCP或UDP校验和使用了ESP来加密时,它就无法更新这个校验和。由于地址或端口已经被 NAT更改,目的地的校验和检验就会失败。虽然UDP校验和是可选的,但是TCP校验和却是必需的。应该如何解决?
【正确答案】
【答案解析】解决办法:通过在NAT-OA IKE有效载荷中发送原始地址,接收方拥有检验解密之后的上层校验和(源和目标IP地址和端口)所需的所有信息。
问答题 【问题2】
NAT无法多路传输IPSec数据流。ESP保护的IPSec流量没有包含可见的TCP或UDP报头。 ESP报头位于IP报头和加密的TCP或UDP报头之间,并且使用IP协议号50。因此,TCP或UDP端口号就无法将流量多路传输到不同的专用网主机。ESP报头包含一个名为Security Parameters Index(安全参数索引,SPI)的字段。SPI与明文(plaintext)IP报头中的目标IP地址和IPSec安全协议(ESP或AH)结合起来用于识别IPSec安全关联(SA)。应该如何解决?
【正确答案】
【答案解析】解决办法:通过使用UDP报头封装ESPPDU,NAT能够使用UDP端口来多路传输IPSec数据流。跟踪ESP报头中的SPI就不再必要了。
问答题 【问题3】
无法改变IKEUDP端口号。IPSec的某些实现同时使用UDP端口500来作为源和目标UDP端口号。然而,对于一个位于NAT之后的IPSec对话方,NAT会改变初始IKE主模式包的源地址。根据具体的实现方式,来自500之外的其他端口的IKE流量可能会被丢弃。应该如何解决?
【正确答案】
【答案解析】解决办法:IPSec NAT-T对话方能够接受来自500之外的端口的IKE消息。此外,为了防止 IKE敏感(IKE-aware)的NAT修改IKE包,IPSec NAT-T对话方在主模式协商期间把IKE UDP端口500改为UDP端口4500。为了允许IKE流量使用这个新的UDP端口,您可能必须配置防火墙以允许UDP端口4500。