简介
本文档介绍Cisco IOS® XE SD-WAN路由器上的传输控制协议(TCP)优化功能,该功能于2019年8月在16.12版本中引入。涵盖的主题包括先决条件、问题描述、解决方案、Viptela OS(vEdge)和XE SD-WAN(cEdge)之间的TCP优化算法差异、配置、验证和相关文档列表。
先决条件
要求
本文档没有任何特定的要求。
使用的组件
本文档中的信息基于Cisco IOS® XE SD-WAN。
本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您的网络处于活动状态,请确保您了解所有命令的潜在影响。
问题
两个SD-WAN端之间的WAN链路上的高延迟会导致应用程序性能下降。您必须优化关键TCP流量。
解决方案
使用TCP优化功能时,可以改善两个SD-WAN站点之间关键TCP流的平均TCP吞吐量。
了解cEdge瓶颈带宽和往返传输(BBR)与vEdge(CUBIC)的TCP优化之间的概览和差异
在XE SD-WAN实施(在cEdge上)中使用快速BBR传播时间算法。
Viptela OS(vEdge)有一个不同的、较旧的算法,称为CUBIC。
CUBIC主要考虑丢包,并广泛适用于不同的客户端操作系统。Windows、Linux、MacOS、Android已经内置了CUBIC。在某些情况下,如果旧客户端运行不带CUBIC的TCP堆栈,在vEdge上启用TCP优化会带来改进。vEdge TCP CUBIC优化的其中一个例子是使用旧客户端主机和WAN链路出现严重延迟/丢弃的潜艇上。请注意,只有vEdge 1000和vEdge 2000支持TCP CUBIC。
BBR主要关注往返时间和延迟。数据包丢失时没有。如果您通过公共Internet将数据包从美国西海岸发送到东海岸,甚至发送到欧洲,在大多数情况下,您不会看到任何数据包丢失。公共Internet有时在丢包方面表现太好。但是,您看到的却是延迟/延迟。BBR解决了这个问题,BBR由Google在2016年开发。
简而言之,BBR对网络建模,查看每个确认(ACK)并更新最大带宽(BW)和最小往返时间(RTT)。 控制发送基于模型:探测最大BW和最小RTT,接近估计BW并保持在接近带宽延迟产品(BDP)的状态。 主要目标是确保高吞吐量和小的瓶颈队列。
Mark Claypool的此幻灯片显示了CUBIC工作所在的区域:
BBR的运营环境更佳,本幻灯片中还显示了Mark Claypool:
如果您想了解有关BBR 算法的更多信息,可以在bbr-dev邮件列表主页Here的顶部找到多个链接有关BBR的出版物。
小结:
平台和算法
|
键输入参数 |
使用案例 |
cEdge(XE SD-WAN):BBR |
RTT/延迟 |
两个SD-WAN站点之间的关键TCP流量 |
vEdge(Viptela操作系统):CUBICP |
包丢失 |
没有任何TCP优化的旧客户端 |
支持的XE SD-WAN平台
在XE SD-WAN软件版本16.12.1d中,这些cEdge平台支持TCP优化BBR:
- ISR4331
- ISR4351
- CSR1000v,带8个vCPU,最少8 GB RAM
注意事项
- 当前不支持DRAM小于8 GB RAM的所有平台。
- 目前不支持具有4个或更少数据核心的所有平台。
- TCP优化不支持MTU 2000。
- 目前 — 不支持IPv6流量。
- 不支持对流向第三方BBR服务器的DIA流量进行优化。您需要在两端都安装一个cEdge SD-WAN路由器。
- 在数据中心方案中,每个控制节点(CN)仅支持一个服务节点(SN)。
- 目前不支持在同一设备上同时使用安全(UTD容器)和TCP优化的使用案例。
注意:ASR1k当前不支持TCP优化。但是,有一个适用于ASR1k的解决方案,其中ASR1k通过AppNav隧道(GRE封装)将TCP流量发送到外部CSR1kv进行优化。目前(2020年2月)仅支持一个CSR1k作为外部服务节点。这将在配置部分后面介绍。
下表汇总了每个版本的警告,并重点说明了支持的硬件平台:
场景 |
使用案例 |
16.12.1 |
17.2.1 |
17.3.1 |
17.4.1 |
备注 |
分支机构到互联网 |
DIA |
无 |
Yes |
Yes |
Yes |
在16.12.1中,互联网接口上未启用AppQoE FIA |
SAAS |
无 |
Yes |
Yes |
Yes |
在16.12.1中,互联网接口上未启用AppQoE FIA |
分支机构到DC |
单边缘路由器 |
无 |
无 |
EFT |
Yes |
需要支持多个SN |
多个边缘路由器 |
无 |
无 |
EFT |
Yes |
需要流对称或Appnav流同步。16.12.1未经测试 |
多个SN |
无 |
无 |
EFT |
Yes |
vManage增强功能,可接受多个SN IP |
分支机构到分支机构 |
全网状网络 (分支到分支) |
Yes |
Yes |
Yes |
Yes |
|
集中星型 (分支中心分支) |
无 |
Yes |
Yes |
Yes |
|
BBR支持 |
带BBR的TCP选项 |
部分 |
部分 |
全 |
全 |
|
平台 |
支持的平台 |
仅4300和CSR |
除ISR1100外的所有产品 |
all |
all |
配置
SN和CN的概念用于TCP优化:
- SN是一个后台守护程序,负责实际优化TCP流量。
- CN称为AppNav控制器,负责流量选择以及与SN之间的传输。
SN和CN可以在同一路由器上运行,也可以作为不同节点单独运行。
有两种主要使用案例:
- 在同一ISR4k路由器上运行SN和CN的分支机构使用案例。
- 数据中心使用案例,其中CN在ASR1k上运行,SN在单独的CSR1000v虚拟路由器上运行。
本节介绍这两种使用案例。
使用案例1.在分支机构上配置TCP优化(全部在一个cEdge中)
此图显示了分支机构单个独立选项的整体内部架构:
步骤1.要配置TCP优化,您需要在vManage中为TCP优化创建功能模板。导航到配置>模板>功能模板>其他模板> AppQoE,如图所示。
步骤2.将AppQoE功能模板添加到Additional Templates:
以下是模板配置的CLI预览:
service-insertion service-node-group appqoe SNG-APPQOE
service-node 192.3.3.2
!
service-insertion appnav-controller-group appqoe ACG-APPQOE
appnav-controller 192.3.3.1
!
service-insertion service-context appqoe/1
appnav-controller-group ACG-APPQOE
service-node-group SNG-APPQOE
vrf global
enable
!
!
interface VirtualPortGroup2
ip address 192.3.3.1 255.255.255.0
no mop enabled
no mop sysid
service-insertion appqoe
!
步骤3.使用所关注的TCP流量的定义创建集中数据策略以进行优化。
例如:此数据策略匹配IP前缀10.0.0.0/8(包括源地址和目标地址),并为它启用TCP优化:
下面是vSmart策略的CLI预览:
policy
data-policy _vpn-list-vpn1_TCPOpt_1758410684
vpn-list vpn-list-vpn1
sequence 1
match
destination-ip 10.0.0.0/8
!
action accept
tcp-optimization
!
!
default-action accept
!
lists
site-list TCPOpt-sites
site-id 211
site-id 212
!
vpn-list vpn-list-vpn1
vpn 1
!
!
!
apply-policy
site-list TCPOpt-sites
data-policy _vpn-list-vpn1_TCPOpt_1758410684 all
!
!
使用案例2.使用外部SN配置数据中心中的TCP优化
SN和CN的物理分离是分支使用案例的主要区别。在一体化分支机构使用案例中,使用虚拟端口组接口在同一路由器内完成连接。在数据中心使用案例中,充当CN的ASR1k与作为SN运行的外部CSR1k之间存在AppNav GRE封装隧道。CN和外部SN之间不需要专用链路或交叉连接,简单IP可达性就足够了。
每个SN有一个AppNav(GRE)隧道。为了将来使用,如果支持多个SN,建议对CN和SN之间的网络使用/28子网。
建议在CSR1k上使用两个NIC充当SN。如果必须通过vManage配置/管理SN,则需要SD-WAN控制器的第2个NIC。如果要手动配置/管理SN,则第二个NIC是可选的。
此图显示数据中心ASR1k作为CN运行,CSR1kv作为服务节点SN运行:
ASR1k和外部CSR1k的数据中心使用案例的拓扑如下所示:
此AppQoE功能模板显示配置为控制器的ASR1k:
CSR1k配置为外部服务节点如下所示:
故障切换案例
当外部CSR1k发生故障时,数据中心使用案例中的故障切换(CSR1k充当SN):
- 由于SN上的TCP会话被终止,已经存在的TCP会话将会丢失。
- 新的TCP会话将发送到最终目的地,但TCP流量未优化(绕行)。
- 如果SN发生故障,相关流量不会进入黑洞。
故障切换检测基于AppNav心跳,即每秒1次。在3或4个错误后,隧道被声明为down。
分支机构使用案例中的故障切换类似 — 如果SN发生故障,流量会直接以未优化的方式发送到目的地。
验证
使用本部分可确认配置能否正常运行。
使用此CLI命令验证CLI上的TCP优化,并查看优化流摘要:
BR11-CSR1k#show plat hardware qfp active feature sdwan datapath appqoe summary
TCPOPT summary
----------------
optimized flows : 2
expired flows : 6033
matched flows : 0
divert pkts : 0
bypass pkts : 0
drop pkts : 0
inject pkts : 20959382
error pkts : 88
BR11-CSR1k#
此输出提供有关优化流量的详细信息:
BR11-CSR1k#show platform hardware qfp active flow fos-to-print all
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
GLOBAL CFT ~ Max Flows:2000000 Buckets Num:4000000
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Filtering parameters:
IP1 : ANY
Port1 : ANY
IP2 : ANY
Port2 : ANY
Vrf id : ANY
Application: ANY
TC id: ANY
DST Interface id: ANY
L3 protocol : IPV4/IPV6
L4 protocol : TCP/UDP/ICMP/ICMPV6
Flow type : ANY
Output parameters:
Print CFT internal data ? No
Only print summary ? No
Asymmetric : ANY
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
keyID: SrcIP SrcPort DstIP DstPort L3-Protocol L4-Protocol vrfID
==================================================================
key #0: 192.168.25.254 26113 192.168.25.11 22 IPv4 TCP 3
key #1: 192.168.25.11 22 192.168.25.254 26113 IPv4 TCP 3
==================================================================
key #0: 192.168.25.254 26173 192.168.25.11 22 IPv4 TCP 3
key #1: 192.168.25.11 22 192.168.25.254 26173 IPv4 TCP 3
==================================================================
key #0: 10.212.1.10 52255 10.211.1.10 8089 IPv4 TCP 2
key #1: 10.211.1.10 8089 10.212.1.10 52255 IPv4 TCP 2
Data for FO with id: 2
-------------------------
appqoe: flow action DIVERT, svc_idx 0, divert pkt_cnt 1, bypass pkt_cnt 0, drop pkt_cnt 0, inject pkt_cnt 1, error pkt_cnt 0, ingress_intf Tunnel2, egress_intf GigabitEthernet3
==================================================================
key #0: 10.212.1.10 52254 10.211.1.10 8089 IPv4 TCP 2
key #1: 10.211.1.10 8089 10.212.1.10 52254 IPv4 TCP 2
Data for FO with id: 2
-------------------------
appqoe: flow action DIVERT, svc_idx 0, divert pkt_cnt 158, bypass pkt_cnt 0, drop pkt_cnt 0, inject pkt_cnt 243, error pkt_cnt 0, ingress_intf Tunnel2, egress_intf GigabitEthernet3
==================================================================
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Number of flows that passed filter: 4
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
FLOWS DUMP DONE.
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
BR11-CSR1k#
故障排除
目前没有针对此配置的故障排除信息。
相关信息