IP : 传输控制协议 (TCP)

MPTCP和产品支持概述

2015 年 8 月 28 日 - 机器翻译
其他版本: PDFpdf | 英语 (2015 年 4 月 23 日) | 反馈

简介

本文提供概述多重通道的TCP (MPTCP),其在流检查的影响和是和没有影响的是受它的思科产品。

贡献由杰伊年轻人和丹尼尔翼, Cisco TAC工程师。

MPTCP概述

背景信息

在数据中心环境内连接的对互联网或主机由多条路径经常连接。然而,当TCP使用数据传输时,通信限制到单个网络路径。很可能,两台主机之间的一些路径拥塞,而备选路径是利用不足的。如果同時,使用这些多条路径网络资源更有效地使用是可能的。另外,因为提供提高吞吐量和改善的弹性网络故障,使用多个连接提高用户体验。

MPTCP是一套扩展对启用在多个连接间将被分离和运载的单个数据流的正常TCP。参考的RFC6824 :多重通道的操作的TCP扩展与多个地址欲知更多信息。

如此图表所显示, MPTCP能分离9mbps流到在发送方节点的三个不同的SUB流,随后聚集回到在接收的节点的原始数据数据流。

输入MPTCP连接的数据正确地操作,通过一正常TCP连接执行;传输的数据保证和欧达交付。因为MPTCP调节网络堆叠并且在传输层内运行,应用程序使用透明地。

会话建立

MPTCP使用TCP选项为了协商和谱写音乐数据分离和重组在多个SUB流的。TCP选项30由互联网分配号码授权中心(IANA)保留为由MPTCP的不包括使用。参考的传输控制协议(TCP)参数欲知更多信息。在一普通TCP会话的建立, MP_CAPABLE选项在初始包括同步(SYN)数据包。如果响应方支持和选择协商MPTCP,它也回应在SYN确认(ACK)数据包的MP_CAPABLE选项。在此握手内被交换的密钥在将来用于为了验证加入,并且其他TCP会话删除到此MPTCP里流。

加入其他SUB流

当视为必要, host-a也许启动从一个不同的接口或地址来源的另外的SUB流到host-b。如同最初的SUB流, TCP选项用于为了指示希望合并与另一个SUB流的此SUB流。在最初的SUB流建立内被交换(与哈希算法一起) host-b用于的密钥为了确认加入请求由host-a的确发送。附属SUB流4元组(来源IP、目的地IP、源端口和目的地端口)跟那不同主要的SUB流;此流也许通过网络采取一个不同的路径。

添加地址

host-a有多个接口,并且很可能, host-b有多个网络连接。host-b隐含地得知地址A1和A2由于host-a从被注定的其地址中的每一个的根源的SUB流对B1。很可能, host-b通告其其它地址(B2)对host-a,以便其他SUB流做对B2。这通过TCP选项30完成。如此图表所显示, host-b通告其备用地址(B2)对host-a,并且两个另外的SUB流创建。由于MPTCP在开放式系统互联(OSI)堆叠的网络层上运行,通告的IP地址可以是IPv4,IPv6或者两个。很可能,某些SUB流由IPv4同时传输,当其他SUB流由IPv6传输。

分段,多重通道和重组

必须在多个SUB流间分段和分配数据流给对MPTCP由应用程序由发送方。在传送回到应用程序前,必须然后重新召集它到单个数据流。

MPTCP检查每个SUB流性能和延迟和动态地调节数据的分配为了获取最高的总吞吐量。在数据传输期间, TCP报头选项包括关于MPTCP顺序/确认号的信息,当前SUB流顺序/确认号和校验和。

在流检查的影响

许多安全设备可能zero-out或用没有选项(NOOP)值替换未知TCP报头。如果网络设备执行此对在最初的SUB流的TCP Syn信息包, MP_CAPABLE广告删除。结果,看来到服务器客户端不支持MPTCP,并且恢复对正常TCP操作。

如果报头保留,并且MPTCP能设立多个SUB流,由网络设备的轴向数据包分析也许不可靠作用。这是因为数据流的仅部分转入对每个SUB流。协议检测效果在MPTCP的也许从没什么变化到服务的全双工中断。效果变化基于什么,并且多少数据检查。数据包分析也许包括防火墙应用层网关(ALG或修正),网络地址转换(NAT) ALG、应用程序可见性和控制(AVC),或者基于网络的应用程序识别(NBAR)。如果应用检查在您的环境要求,推荐清除TCP选项30启用。

如果流不可以检查的归结于加密或,如果协议未知,然后轴向设备应该对MPTCP没有影响流。

MPTCP影响的思科产品

这些产品由MPTCP影响:

  • 可适应安全工具(ASA)
  • 思科ASA下一代防火墙服务
  • 入侵防御系统 (IPS)
  • Cisco IOS
  • 应用程序控制引擎 (ACE)
  • Cloud Web安全(ScanSafe)

每种产品在本文随后部分详细描述。

ASA

TCP操作

默认情况下,思科ASA防火墙用NOOP选项(选项1)替换不支持的TCP选项,包括MPTCP选项30。为了允许MPTCP选项,请使用此配置:

  1. 定义策略为了通过设备允许TCP选项30 (使用由MPTCP) :
    tcp-map my-mptcp
       tcp-options range 30 30 allow
  2. 定义流量选择:
    class-map my-tcpnorm
       match any
  3. 定义一张地图从流量到操作:
    policy-map my-policy-map
       class my-tcpnorm
           set connection advanced-options my-mptcp
  4. 激活它在方框或单个接口的:
    service-policy my-policy-map global

协议检测

许多协议的ASA支持检查。检测引擎在变化的应用程序也许有的效果。推荐,如果检查要求,以前描述的Tcp映射没有应用。

思科ASA下一代防火墙服务

TCP操作

如果ASA配置为了允许它, CX版本9.1.2.42和以上允许MPTCP选项。在版本9.1.2.42之前的CX软件版本取消MPTCP选项。

轴向安全套接字协议层(SSL)解密

CX,当配置为SSL解密,作为FULL会话代理。结果,它人格化SSL服务器,当通信给客户端时,并且人格化客户端,当通信到SSL服务器时。因为CX终止两TCP连接,它不使用MPTCP,并且操作恢复对正常TCP操作。

IPS

在签名1306/0的思科IPS产品预警,当TCP选项30在TCP SYN被看到。由于签名在规整器类属于,什么都在promisicious模式不执行。编辑签名为了从触发条件取消选项30是可能的。这防止签名匹配。

Cisco IOS 防火墙

基于上下文的访问控制(CBAC)

CBAC不从TCP数据流去除TCP报头。MPTCP通过防火墙建立连接。

基于区域的防火墙(ZBFW)

ZBF不从TCP数据流去除TCP报头。MPTCP通过防火墙建立连接。

ACE

默认情况下, ACE设备从TCP连接剥离TCP选项。MPTCP连接落回到正常TCP操作。

ACE设备如何所描述也许配置为了通过TCP选项命令允许TCP选项,正如配置安全指南的ACE把柄TCP选项部分vA5(1.0),思科ACE应用程序控制引擎。然而,总是没有推荐这,因为附属SUB流也许被平衡到不同的真实服务器,并且加入发生故障。

Cloud Web安全(ScanSafe)

Cloud Web安全作为Layer-7代理。您是否使用Web安全工具(WSA)或思科ScanSafe塔,客户端终止其在代理的TCP连接。由于服务器不支持MPTCP选项,连接作为一正常TCP连接。

涉及问题的应急方案是配置ScanSafe连接器为了防止MPTCP流重定向对ScanSafe的。当MPTCP流绕过时, ScanSafe连接器直接地从最初请求的Web服务器获取内容,无需联系ScanSafe。欲知更多信息,参考在IS部分的绕过的扫描关于Cisco ISR Web安全的页12用思科ScanSafe解决方案指南

MPTCP没影响的思科产品

结果通常,不检查TCP流或Layer-7信息不修改TCP报头的所有设备,和应该是透明对MPTCP。这些设备也许包括:

  • Cisco 1000系列聚合服务路由器(ASR), ISR 4451-X, Cloud服务路由器(CSR) (Cisco IOS XE产品)
  • Cisco 5000系列ASR (Starent)
  • 广域应用服务(WAAS)
  • 载波级别NAT (CGN) (在载波路由系统(CRS)-1)的载波级别服务引擎(CGSE)刀片
  • 所有以太网交换机产品
  • 所有路由器产品(除非防火墙或NAT功能启用;欲了解更详细的信息请参阅Affected Products部分前在本文)

相关的思科支持社区讨论

思科支持社区是您提问、解答问题、分享建议以及与工作伙伴协作的论坛。


Document ID: 116519