图4-7演示了IPsec网络中片段数据包的改进处理。例中所示的情况图4-7上面,数据包在两个IPsec VPN网关ISP_GW_A和ENT_DMZ_IN之间的中间点被分割。DMZ防火墙ENT_FW接收碎片,并配置为虚拟碎片重新组装。因此,防火墙不进行任何重新组装。相反,它最初只允许片段链中的第一个片段通过,而不进行检查。虚拟片段重组使防火墙可以在不重组数据包的情况下检查原始数据包的剩余片段。因此,虚拟碎片重组在本例中扮演着至关重要的角色,因为防火墙将不得不解密链中的每个片段,以便重新组装包,而这并没有被配置为这样做。
ICMP未达过滤
ICMP未达通常黑客用来发现和利用网络弱点,并且是用于寻找在防火墙保护的环境开口的扫描技术的基本组成部分。因此,它是很常见的防火墙不回复与ICMP未达过滤的消息。这种行为打破了基本的工具,IPsec的可以使用,以避免从加密路径MTU检测(PMTUD)后分段包出现的性能问题。
正如本章后面详细讨论的那样,PMTUD沿着路径发送ICMP消息,依赖于ICMP不可到达消息中的信息来限制PMTUD设备在使用IPsec加密之前必须分割到的MTU。沿着PMTUD路径插入防火墙有效地打破了这个模型,因为它将抑制ICMP不可到达的响应,即将MTU大小调整信息带回分段的PMTUD设备。
NAT问题中的IPsec VPN设计
引入NAT是为了解决公共可用地址空间耗尽的问题。它通过将私有源或目标IP地址转换为公共IP地址来实现这一点。正如我们之前在第2章“IPsec基础”中讨论的那样,IPsec的设计部分是为了防止在IPsec VPN隧道的两个端点之间传输时对数据的操纵。考虑到隧道模式下的IPsec保护IP报头不受操纵,当设备试图对隧道模式下受保护的IPsec包执行NAT时,就会出现不兼容性。本节将介绍这两种技术之间的一些内在不兼容性,并探讨一些同时部署它们的解决方案。
内在IPsec NAT /不兼容问题
在NAT环境中部署IPsec vpn应该小心,因为NAT和IPsec之间存在许多已知的不兼容性。NAT的本性就是爱修改,或翻译时,IP包的一部分,特别是源和目的地地址或端口,当分组是连接来自给定源到一给定目的地的路线。IPSec协议的性质是检测和防止一个给定的源和目的地之间的分组的恶意操纵。其中存在的IPsec的起源/ NAT不兼容性-的NAT的本质是操纵数据包,而IPsec的本质是维护包的完整性。
回顾我们在第2章中的讨论,IPsec定义了一套协议,如AH和ESP,它们可以在不同的模式(如隧道或传输)下运行,并在给定转换中的可选hmac中包含不同程度的身份验证或强度。因为每个协议以不同的方式保护IP包的不同部分,NAT的效果可能因每个协议而不同。一些协议特有的IPsec/NAT不兼容性的例子包括:
NAT环境中的IPsec密钥消息完整性检查(MIC)失败
入站IPsec SA选择器在NAT环境中的不一致性
在PAT环境中IKE Rekeying失败
重叠的IPsec安全策略数据库条目
NAT设备上的IPsec安全参数索引冲突
嵌入式IP地址转换限制
单向NAT的支持
TCP和用户数据报协议(UDP)校验和失败
在NAT环境下的IPsec啊键控麦克风故障
认证头协议在密钥MIC中包括源地址和目的地址,以提供比ESP协议更大的认证范围和完整性。使用AH在VPN端点之间操纵包的源/目标地址将导致接收VPN端点的MIC失败。ESP没有这种特定的不兼容性,因为源和目标信息不包括在完整性检查中。
入站IPsec SA选择器在NAT环境中的不一致性
如果IKE验证第2个阶段选择,并且引发剂的源地址转换途中响应,那么RFC 2401规定,响应丢弃拆封分组,作为转换后的IP地址不匹配SA选择值。
在PAT环境中IKE Rekeying失败
IKE应答器必须在正确的端口上响应IKE请求。在非pat环境中,默认为UDP 500。然而,在情况下,艾克发起者端口转换为其他超过500,艾克应答器必须能够响应艾克请求翻译后的端口上,必须能够这样做可以预见和可靠地对艾克再续键消息到达正确的目的地(正确的艾克发起者)。
重叠的IPsec安全策略数据库条目
当两个或多个IPsec启动器使用它们的源地址作为其第2阶段标识符时,IPsec响应器可以将这两个源视为相同的。因此,响应方可能会为多个源安装重叠的安全策略数据库条目。因此,响应程序面临通过不正确的sa将流量转发到其源的风险。在IPsec响应器中创建重叠的安全策略数据库条目,这是由于作为第2阶段SA标识符的本地地址内存在重复的NAT导致的图4-8。
NAT环境中的SPD混淆
NAT设备上的IPsec安全参数索引冲突
当两个启动尝试协商阶段2 SA具有相同的目的地,和安全性参数索引(SPI)基NAT是源和目的地之间发生,有时该NAT设备导致转发混乱从响应者引发剂上发生SPI冲突。考虑场景图4-9。然后,应答器将安装两个不同的SPI项(即2001年和2002年)。然而,由于入站和出站SPI建立彼此独立的发生,两个发起人确实可以安装类似的SPI项(即,既会声称,他们已经安装了SPI 2000为同一目标)。因为来自与Router_A和Router_B交通使用相同的UDP源端口信息,NAT设备使用用于转发决定重叠的SPI。其结果是,从应答交通可能被转发到不正确的引发剂由于在NAT设备(即,NAT设备不知道2000业务转发该引发剂SPI于)SPI冲突。
NAT设备中的SPI重叠
嵌入式IP地址转换限制
一些应用程序处理嵌入到IP数据包的有效载荷信息。在这两个ESP和AH协议,数据包的有效载荷是完整保护。因此,改变该有效载荷,如那些NAT将试图执行,是不可能内的ESP和AH封装有效载荷。
单向NAT的支持
在一些情况下,NAT设备将只安装一次分组从一个给定的接口接收到(即,内侧到外侧)的NAT / PAT的条目。一旦条目被安装在NAT设备上,业务可以在两个方向上被转发。然而,直到所安装的条目,在其他方向上(即,外到内)将不会被转发接收的通信量,作为NAT / PAT的条目将不会被动态地用于该接口上接收到的业务创建。
TCP和UDP校验失败
TCP和UDP校验和包括IP源和目的地地址作为计算的一部分。因此,NAT翻译源或目的地址可引起NAT处理之后这些校验和计算。这个问题出现在IPsec和地方TCP和UDP校验和计算和验证NAT环境。这种特殊的不兼容,不影响的IPsec隧道模式或IPsec + GRE,因为这些方法都不需要使用他们的计算已转换的源和目的IP地址,TCP / UDP校验和验证。
NAT透明度(NAT- t)
IPsec NAT- t允许IPsec VPN端点动态检测其远程端点上对NAT- t的支持,并检测两个端点之间是否存在NAT设备。如果NAT是通过使用NAT- t检测到的,那么两个端点将动态地就IPsec NAT- t包的适当处理达成一致(如ESP包的UDP封装等)。因此,NAT- t允许两个VPN端点跨可能存在于两个端点之间的一个或多个NAT点无缝地建立IPsec VPN端点。
请考虑中描述的示例图4到10其中,Router_A和Router_B这两个路由器通过防火墙Ent_FW相互通信。
IPsec NAT-T的操作
路由器A和B都有NAT- t的能力,并且通过以下交换顺序,动态地同意通过NAT路径处理IPsec包:
在IKE阶段1协商期间,Router_A将其供应商ID发送给Router_B。这一阶段的NAT- t通常被称为“NAT支持”交换。
Router_B在IKE主模式(MM1和MM2,阶段1)协商期间向Router_A发送其供应商ID字符串有效负载,让Router_A知道它确实支持NAT-T。这在NAT- t上下文中也称为“NAT支持”交换。
在路由器A和B同意NAT- t支持后,它们必须确定两者之间是否存在NAT。这个阶段通常被称为“NAT检测”。在NAT-T的这个阶段,源和目的地之间交换多个NAT-D有效载荷。NAT-D有效负载由地址和散列组成。每个对等点通常以主模式向另一个对等点发送两个NAT-D有效负载(MM3和MM4)——一个用于目标地址,另一个用于源地址。当NAT-D有效载荷在每个对等点之间发送时,散列在远程端进行验证。如果哈希值匹配,则可以安全地确定NAT做不存在。如果哈希值不匹配,则可以安全地确定为NAT做存在。
在交换NAT- d有效负载来检测NAT信息之后,交换IPsec快速模式消息来决定哪个对等点(没有,或者两者都没有)将使用NAT- t。此协商在IKE阶段2中以快速模式(QM1和QM2)执行。
在图4到10,内部源地址转换正在由PIX执行。IPsec的端点已经确定使用NAT-T的步骤如上所述1-4此行为。在这种情况下,路由器A和B都将包封ESP数据包在UDP,特此纠正3个不兼容性使用IPsec和NAT:
ESP和AH与PAT之间的不兼容
IKE固定端口和PAT之间不兼容
UDP校验和NAT之间的不相容性(中间NAT-T的UDP报头校验设置为0)
注意:如上所述下,Cisco IOS将在IKE阶段1次协商尝试NAT-T。的Cisco IOS自动配置NAT-T,并有无需手动配置。使用NAT-T禁用UDP ESP报文的封装,执行从IOS CLI以下命令:
Router_A(配置)#没有加密IPsec nat透明udp封装
SPI-Based NAT
IPsec spi提供了另一个元素,NAT设备可以使用该元素在两个端点之间转发数据。当IPsec通信流通过NAT设备时,各种加密保护元素经常被NAT转换,包括源IP地址、目的IP地址、源端口和目的端口。另一个可以用来在NAT设备中填充转换表的字段是IPsec SPI。但是,正如我们前面所讨论的,当重叠的IPsec隧道和重叠的spi通过NAT设备时,就会出现IPsec和NAT的不兼容性。
Cisco IOS发布了12.2T版本,之后在IPsec加密端点上采用了一种预测性SPI选择算法,使其能够在IKE期间选择唯一的SPI。这有效地使加密路径中的NAT设备能够使用IPsec spi来构建它的转换表,而不会遇到本章前面讨论的重叠spi导致的转换和转发问题。
请再次考虑图4-9,但是在NAT设备上启用了可预测选择的SPI和SPI匹配。NAT设备现在可以在不使用PAT的情况下区分转发表中的多个启动器(源)。相反,SPI匹配用于区分两个IPsec VPN隧道启动器,路由器A和路由器B。
IPsec对要求QoS的流量流的影响
随着网络技术开始成熟和越来越广泛,对时间和延迟敏感的应用程序越来越多地向聚合解决方案迁移。其中许多应用程序被认为对不同垂直市场中的企业需求至关重要。因此,出现了保证及时交付和订购这些应用程序的需求。在当今的网络化环境中,存在着多种QoS机制,以保证IP网络中对时延敏感的业务关键数据通信的及时交付。QoS本身的范围是如此广泛和深入,以至于我们无法将其全部覆盖。然而,我们将讨论IPsec和QoS之间存在的一些常见的不一致性,这些不一致性带来了设计上的挑战: