第四章:常见的IPsec VPN的问题

思科出版社

123456789 8页
8 9页

失效切换后/ CBWFQ LLQ DiffServ和IPsec的影响

在本节中,我们将探索语音IP (VoIP)部署在一个分支网络场景中。VoIP是delay-sensitive-that说必须接收数据包与一致的延迟(低抖动)。所示图4 -,两个路由器想相互通信的一系列不同带宽的广域链接。低速的链接,有时可以将报文丢弃由于可用带宽的超额认购。因此QoS要求确保声音(RTP)数据包不放弃当这种情况发生时(其他数据包被丢弃)。由于这些原因,QoS必须用于IP流量在帧中继链接。

图4 -

图4 -

IPsec和DiffServ VoIP实现

失效切换后/ CBWFQ LLQ DiffServ实现结合提供QoS的语音流量和分支。因为公司的安全政策规定保密话音通信,IPsec vpn企业数据转发器之间已经配置路由器,路由器和所有分支与IPsec / DiffServ需求提出若干设计注意事项:

  • 如果使用啊,不允许修改IP报头(啊麦克风无效在接收的VPN端点)。这可以防止评论在网络设备之间的电话。因此,RTP交通必须相应地标记之前IPsec封装(路由器或手机)如果使用啊。

  • 啊和ESP,如果收到数据包antireplay窗口外,它们了。因此,如果交通延迟队列由于QoS的决定,它会下降,如果收到antireplay窗口之外的另一端的IPsec VPN隧道。

  • ESP、原始IP报头和QoS信息封装在ESP和加密与适当的变换。这有效地呈现DiffServ位QoS所读取所需的中间两个IPsec的VPN端点之间的网络节点。除非这些碎片被成功复制到外部IP报头ESP封装、网络节点之间的两个IPsec的VPN端点可能不适当分类IPsec-processed RTP数据包。

IPsec对IntServ和回复的影响

除了问题概述失效切换后/ CBWFQ LLQ DiffServ和RSVP实现IPsec vpn提供进一步的设计问题来解决。正如我们前面提到的,回复提供了一种信号方法主动提供一个给定的源和目的地之间的资源。RSVP通过交换之间一系列的RSVP路径和回复RESV消息源和目的地。如果回复源和目的地之间的中间网络节点无法破译的RSVP RESV消息,会如此如果他们在一个IPsec VPN加密,中间网络节点不能使用RSVP-RESV消息源和目的地之间的动态储备资源(见图4 - 12)。

图4 - 12

图4 - 12

IPsec和RSVP信令不相容

因此,动态地提供资源源和目的地之间的中间节点,需要及时、有序的基于ip的应用程序流量,RSVP信令消息必须加密之外的转发路径。

在IPsec vpn解决碎片问题

在IPsec VPN环境中,解决MTU和碎片问题至关重要。否则,整个VPN性能和操作问题的风险。我们将讨论碎片重新组装的影响和MTU问题在本节中,并提供适当的IPsec解决方案设计MTU可能超过环境,导致分裂。

片段处理加密设备之间的影响主要集中在加密设备执行重组的零散的包。尽管大多数网络设备和目前可用的VPN端点可以crypto-switched快速路径片段加密的数据包,解密IPsec端点必须解密所有片段可以重组前的链包。图42举例说明了一个IPsec VPN部署包的重组前解密的目的地IPsec VPN网关。

图42

图42

分散处理加密设备之间

这种重组的行为是在流程级别完成的,极大地影响了VPN的性能。在IPsec的环境中,每个预防措施应采取片段数据包之前他们是使用IPsec加密,这样管理员就可以保证分片和重组的目标都是设备与适当的计算资源可用。

MTU发现之路

IP PMTUD技术用于动态地发现最大MTU大小两个端点之间的原始设备包的最低MTU碎片路径。因此,PMTUD防止中间网络设备破碎数据包,导致过多的CPU开销在接收IPsec端点进行重新组装。考虑中所描述的场景学报》第4 - 14图,Host_A希望打开一个TCP会话Server_B IP网络路由使用路由器,B和C。

学报》第4 - 14图

学报》第4 - 14图

PMTUD和IPsec

管理员等他们的工作站和服务器上启用IP PMTUD Router_B碎片重组的问题是可以避免的。Host_A执行PMTUD使用以下过程:

  1. Host_A创建一个IP数据包大小适当的MTU的本地连接段和设置DF传输到Server_B之前。

  2. Router_A接收数据包,指出,已经设置了DF位。Router_A串行连接的MTU 1414。因为已经设置了DF位和数据包从Host_A Server_B超过MTU的串行接口,它是下降了。

  3. Router_A Host_A,回送一个ICMP不可到达消息携带的MTU(1414)下一跳(Router_A之间的串行接口和C)。

  4. Host_A发送另一个ICMP消息1414字节的长度与DF Server_B设置。

  5. Router_C Router_A接收数据包,并转发。Router_C接收数据包,并指出,已经设置了DF位。因为已经设置了DF位和包大于Router_C MTU的链接Router_B(512),包被删除。

  6. Router_C Host_A,回送一个ICMP不可到达消息携带的MTU(512)下一跳(Router_C和之间的串行接口)。

  7. Host_A发送另一个ICMP消息512字节的长度与DF Server_B设置。

  8. 低于MTU 512字节ICMP消息路径中的任何个人联系。因此Server_B成功转发。Host_A Server_B发送一个ICMP回应听到回声,指示Host_A 512的MTU路径。


注意:路由器在上面的场景中是用来说明PMTUD的一般操作。IPsec和IPsec + GRE隧道使用略有不同的配置PMTUD比之前,被称为“隧道路径MTU发现。”The specific operation of fragment handling using PMTUD in IPsec and IPsec+GRE environments is discussed in greater detail later in this chapter.


IPsec思科IOS可以配置为复制DF比特值ESP-processed外IP报头的包。因此,ICMP流量PMTUD依靠正确操作不需要明确地排除在加密转换路径。

有几个问题必须解决如果PMTUD部分的设计策略,以减轻在IPsec vpn碎片重组的问题。在本节中,我们将简要介绍一些最常见的:

  • 允许ICMP不可到达的消息

  • 病原ICMP消息

  • PMTUD来说上不受支持

  • 调整TCP最大细分市场大小

  • 清理DF-Bit

允许ICMP不可到达的消息

正如我们前面所讨论的在我们概述PMTUD协议,PMTUD严重依赖ICMP不可到达的消息通信段回破碎的MTU主机。是很常见的安全设备,如防火墙、否认ICMP不可到达的消息,因为他们被黑客恶意扫描技术中常用。因此,必须注意确保PMTUD-enabled端点之间的所有路径被检查以确保ICMP遥不可及的确实是允许通过如果PMTUD碎片的首选信息避免沿着路径。

病原ICMP消息

因为PMTUD依赖于收到ICMP遥不可及的回复原始主机上在一个给定的传输窗口,护理应病原反应技术应用于ICMP消息,因为他们可能导致PMTUD过早ICMP消息的传输环境。如果收到订单,ICMP PMTUD环境中不可到达的消息可能会导致混淆原始PMTUD MTU设置主机上。例如,ICMP不可到达的消息延迟在病原队列可能表明一个错误的MTU原始PMTUD主机上设置如果那遥不可及的接收到消息后有效的ICMP使用正确的IP MTU遥不可及的。

PMTUD来说上不受支持

如果PMTUD禁用网络内的主机上,建议网络管理员采取措施确保网络中的数据包分散在其他位置之前加密处理。这可以通过启用IPsec超前碎片在思科IOS和设置DF IPsec-processed包。IPsec超前碎片,IOS IPsec的VPN端点将试图确定封装数据包大小之前加密。如果封装数据包大小预定大于MTU的路径,它是分散在加密之前。已经设置了DF位时,加密路由器将寻找信息在任何ICMP不可到达消息收到的更新需要安装路径MTU SADB条目。另外,如果功能类似于IPsec的VPN端点不支持超前DF的碎片或显式设置在外层IP报头,MTU的IPsec VPN隧道可以手动定义为避免碎片重组的问题。

调整TCP最大细分市场大小

主机发送IP数据包大于最大TCP段大小(MSS)分裂的危险。严格说来,TCP海量存储系统(MSS)中最大的数据量是一个主机愿意接受在一个IP数据报。主机比较TCP MSS缓冲区大小和MTU确定MTU的传输。结果将是较低的TCP MSS或者MTU少40位(IP报头的分配和TCP报头,20位的长度)。一旦决定,每个主机通信所选值相反的主机通过以下描述的交换图4-15

图4-15

图4-15

TCP海量存储系统(MSS)中,IP MTU和碎片

以下订单的事件描述序列所示图4-15上图:

  1. Host_A的海量存储系统(MSS)中缓冲20 k的MTU 1500。比较MSS缓冲区的MTU链接,少一个40位分配IP和TCP报头(1500 - 40 = 1460)并选择较低的值为1460(1460 < 20000)发送给Host_B。

  2. Host_B 16 k海量存储系统(MSS)中缓冲和2048接口MTU大小。它确实比较类似Host_A的第1步中,选择2008 (2048 - 40)。然后比较了收到Host_A值并选择较低的价值1460的海量存储系统(MSS)中值(1460 < 2008)。

  3. 其2008年MSS Host_A Host_B信号。

  4. Host_A比较收到价值2008的TCP MSS值在步骤1中派生并选择较低的两个值,1460年,作为其TCP海量存储系统(MSS)中。

TCP MSS值使用MTU值来帮助避免分裂。在上面的示例中,MTU值选择,因为它们比TCP海量存储系统(MSS)中值小。然而,如果海量存储系统(MSS)中值小于MTU,然后主机A和B将选择MSS + 40字节的最大数据包长度TCP流量。注意,在这种情况下,更大的MTU仍将用于UDP流量值。

清理DF-Bit

如果DF一点了在源和目标之间的PMTUD路径,沿着路径的网络节点将片段ICMP PMTUD消息而不是删除和回复ICMP遥不可及的。这显然会打破PMTUD的操作。如今大多数可用的IP接入设备能够清除DF的IP报头。

分裂行为思科IOS的VPN端点

IPsec的开销和IPsec + GRE封装IP数据包往往导致分裂,这就是为什么PMTUD,默认情况下,启用IPsec VPN路由器。然而,片段的细节处理和PMTUD nonVPN环境略有不同。在本节中,我们将讨论处理碎片在IPsec和IPsec + GRE隧道和一些额外的IPsec VPN环境中可用的解决方案,以避免分裂。

使用IPsec vpn隧道路径MTU发现解释MTU ICMP信息不可到达的消息和更新相应的路径MTU IPsec SA。典型PMTUD操作和片段的处理一个IPsec VPN中说明了图4-16

图4-16

图4-16

片段处理和PMTUD操作IPsec隧道

下面描述了操作说明图4-16:

  1. Host_A发送1500字节(本地接口MTU大小)Server_B包。

  2. Router_A接收数据包发送在1以上,观察到的ESP封装数据包大小超过了MTU串行连接到b因为Host_A DF的数据包,Router_A滴数据包并发送一个ICMP不可到达的消息包含MTU大小为1442 (1500 bytes-58bytes max ESP开销)回到Host_A。

  3. Host_A收到ICMP MTU信息不可到达的消息,并将另一个ICMP数据包转发Router_A 1442字节长度。Router_A封装了ESP和转发的包它与DF跨VPN设置在外层头。

  4. 从Router_A Router_C收到ICMP消息在步骤3中,并指出数据包超过Router_B MTU的串行接口。因为DF位被设置,Router_C滴包和前锋一个ICMP遥不可及的Router_A MTU 1440嵌入式的大小。

  5. 从Router_C Router_A收到ICMP的消息在步骤4。Router_A指出1440年的MTU大小的PMTU字段SA与Router_B建立。Router_A确实1440年发送一个新的ICMP消息长度,而是这是由Host_A在步骤6。

  6. Host_A 1442年重新传输一个ICMP消息长度,因为它没有收到确认来自原始发送ICMP消息在步骤2。

  7. Router_A比较ESP-encapsulated数据包大小(1442 + 58)收到的包上面步骤6的路径MTU(1440)和包。Router_A响应ICMP不可到达的MTU 1342(少1400 PMTU ESP 58的开销字节)嵌入。

  8. Host_A集MTU 1342和远期Server_B新的1342字节的信息。现在消息和相关的ESP开销低于MTU端到端路径,导致一个成功的从Host_A Server_B传播。

正如我们在本章前面所讨论的,在别人,有时需要封装特定交通类型用IPsec GRE之前处理。处理多播流量,例如,是一个实例,一个将寻求封装GRE普通文本的交通状况在封装之前ESP。这是通常被称为IPsec + GRE。这个过程包括一个额外的开销,24字节的GRE头应用除了ESP或啊头。更重要的是,它增加了额外的隧道PMTUD操作步骤在试图避免分裂。图4-17说明了片段处理过程在一个IPsec +使用PMTUD GRE的场景。

图4-17

图4-17

片段处理和PMTUD操作IPsec + GRE隧道

PMTUD的操作在一个IPsec + GRE隧道中所示图4-17以下所描述的事件的顺序:

  1. Host_A发送1500字节数据包的DF将Server_B。

  2. Router_A接收数据包,发现已经设置了DF位。GRE封装ESP封装之前发生在这个场景中,所以路由器上的GRE考试过程滴包为1500字节包+ 24字节的GRE开销超过GRE隧道MTU 1500。Router_A与嵌入式Host_A回送一个ICMP遥不可及的MTU值1476 gre头(1500 - 24)的长度。

  3. Host_A发送1476字节数据包的DF将Server_B。

  4. Router_A接收数据包,注意的是,已经设置了DF位。路由器在GRE封装数据包,然后试图在ESP封装它。添加ESP封装将MTU的串行接口MTU 1414,所以Router_A滴包。ESP发送一个ICMP错误消息GRE指示的MTU 1376字节(少1414 max ESP报头长度38个字节)。GRE记录这个值作为新隧道IP MTU。

  5. Host_A重新传输1476字节数据包在步骤3中,还没有收到任何确认。Router_A滴这个包超过了隧道IP MTU在步骤4。Router_A响应与一个ICMP不可到达的消息隧道IP MTU 1414。

  6. Host_A发送一个新的ICMP消息1414 - Server_B字节长度。Router_A封装在GRE,然后封装在ESP。DF位复制到外部IP报头在ESP数据包传输整个IPsec VPN。

  7. Router_C接收数据包,并指出,已经设置了DF位。现在的包是1414的规模,增加了GRE和ESP报头原始发送ICMP消息在步骤6。Router_C滴包,因为它超过了MTU的链接Router_B, DF组。Router_C发送一个ICMP不可到达的消息Router_A的MTU 1400。

  8. Router_A收到ICMP不可到达的消息从Router_C上面步骤7和更新的PMTU字段IPsec SA Router_B 1400字节的值。

  9. Host_A重新传输1414字节Server_B ICMP消息在步骤6中,还没有收到任何确认。

  10. Router_A接收数据包,并封装在GRE。一旦应用ESP封装,数据包的长度超过1400字节的IPsec SA PMTU获得Router_C在步骤8。ESP发送ICMP消息GRE MTU 1342 (1400 - 58 ESP报头字节最大长度)。GRE更新IP隧道MTU和这个值。

  11. Host_A重新传输1414字节(ICMP消息再次在步骤6中,没有收到重传确认在第10步。

  12. Router_A接收数据包,并滴它超过新GRE隧道IP MTU 1342和DF-bit集。Router_A前锋一个ICMP遥不可及的Host_A MTU价值1318字节(1342 GRE MTU少24字节GRE开销)。

  13. 从Router_A Host_A收到ICMP不可到达消息发送12步,并发送一个新的1318字节ICMP消息与DF Server_B位设置。

  14. Router_A接收数据包,在GRE封装,封装在ESP,设置DF在外部IP报头,Router_C和前锋。这次,Router_C前锋ICMP消息源自Host_A Router_B。

  15. Router_B decapsulates ESP数据包,然后decapsulates GRE包,最后将原始ICMP PMTUD消息转发到Server_B。

  16. Server_B承认收到消息,确认Host_A是使用这条道路的MTU大小为1338字节。

虽然DF在PMTUD ICMP消息总是设置正确检测领域的碎片,这些消息被发送ICMP遥不可及的反应DF位设置为0。因此,重要的是要注意,ICMP PMTUD发送的消息从源到目的地永远不会分散,但对这些消息的反应很可能是分散在返回路径。

解决方案防止碎片

在先前的部分中,我们讨论了最常见的方法防止fragmentation-Path MTU发现。然而,正如我们所了解,PMTUD有点费力的使用网络设备来执行。此外,PMTUD可能不是一个选项在网络需要ICMP消息的过滤网络内各点。因此,重要的是要理解其他碎片的方式可以避免在设计一个IPsec VPN。我们将讨论一些技术减轻PMTUD以外的IP碎片在这一节中。

IPsec Prefragmentation

IPsec Prefragmentation是一个思科IOS的特性,使一个加密IPsec的VPN端点试图分裂之前加密如果加密包的大小和额外的头信息超过了MTU端点之间的路径。PMTUD可用于确定SA的MTU的路径,路径。这样做与IPsec Prefragmentation提供一个可伸缩的和可控的方法提高整体性能的一个IPsec VPN加密后,碎片是一个可能性。4-34例子演示了如何使用IPsec配置IPsec加密DF-bit覆盖超前碎片这样的路径MTU SADB将使用隧道PMTUD,动态地确定和大数据包将支离破碎(超过的路径MTU SADB SA)之前加密。

例子4-34支持IPsec Prefragmentation PMTUD和加密DF-bit重写

Router_A #配置Router_A #配置终端输入配置命令,每行一个。结尾CNTL / Z。Router_A(配置)#加密IPsec df-bit集Router_A(配置)#加密IPsec碎片在加密之前Router_A(配置)#

注意:尽管4-34的例子,Router_A将尝试片段大数据包加密前,有许多配置实例IPsec超前碎片和DF-bit覆盖配置不正确。关键是理解的相互依赖性DF-bit设置和超前分段设置解决IPsec碎片设计考虑。DF-bit互操作性的完整清单的IPsec超前分段设置,请参考以下URL CCO:

http://www.cisco.com/en/US/partner/products/sw/iosswrel/ps1839/products_feature_guide09186a0080115533.html


图4-18展示了一个不支持的客户端服务器交换PMTUD。注意,即使没有交换ICMP消息,MTU的道路仍是发现和更新Router_A IPsec SADB。

有三个关键的操作启用这个特性:

  • 超前碎片:转发一个IPsec包之前,Router_A预定的封装数据包大小,并比较它与MTU SADB。如果它是超过预定的MTU大小,包是支离破碎的之前它是加密的。

  • 不支持加密DF-bit重写:当PMTUD,重要的是,Router_A能够设置DF IPsec-encapsulated外IP报头的包。这可以防止碎片和触发器ICMP遥不可及的需要调整路径MTU Router_Ais SADB。

  • 处理ICMP的MTU信息:Router_A破译MTU informa的能力对ICMP遥不可及的(收到IPsec包时DF = 1下降)。它使用这些信息来动态更新SADB MTU的路径。

Router_A和Router_B之间的交换图4-18说明了所有这三个特性协同工作的影响降到最低postencryption碎片在IPsec VPN部署PMTUD note-enabled在端站:

图4-18

图4-18

IPsec片段处理没有PMTUD-Enabled端站

  1. Host_A发送一个1500字节的数据包,注定Server_B。

  2. Router_A接收数据包,并估计ESP封装数据包大小之前加密或转发数据包。Router_A比较估计封装数据包大小与路径MTU和确定大小大于包的路径MTU和碎片。

  3. Router_A应用适当的封装的片段片段链。虽然这样做,它集DF的每个封装数据包等于1。

  4. 从Router_A Router_C接收数据包,比较他们的MTU Router_C Router_B链接,指出DF = 1,并相应地下降较大的数据包。Router_C发送ICMP数据包降到Router_A遥不可及的。

  5. 从Router_C Router_A收到ICMP遥不可及的,并相应地更新SADB MTU的。

  6. Host_A没有收到回复到原来的包内适当的窗口,因此重新传输超时。

  7. Router_A执行前瞻步数转播的包装上的碎片,上浆SADB新MTU的碎片。然后设置DF在每个加密的数据包。

  8. 现在加密的数据包大小低于任何个人联系MTU的路径(< 1400字节),因此Router_B收到。Router_B现在能够解密链中的每个片段重组之前,这一过程是在快速交换路径来完成的。

手动MTU调整

我们已经讨论了很多工具在思科IOS避免碎片IPsec vpn无需手动调整网络内的MTU大小。然而,选择仍然存在增加MTU大小IPsec的VPN端点之间,这样接收数据包的风险小于MTU大小很小。如果一个人必须优化MTU大小以适应IPsec端点之间的交通网络中,每个人都应该考虑以下这种方法缺点:

  • 可伸缩性和管理:记住segment-by-segment基础上MTU大小不同。因此,它可以成为网络管理员费力始终确保每个段的MTU适当调整。网络设计师可以预见的困难手动MTU调优IPsec VPN连接的数量和增加主机向上尺度。

  • 序列化延迟:MTU属性存在减少序列化对网络延迟。段,有虚高MTU大小,网络管理员可以增加延迟较大的数据包序列化在队列中。这种不利影响,对延迟敏感应用,如在IP语音和视频。

相关:
123456789 8页
8 9页
工资调查:结果是在