소개
이 문서에서는 2019년 8월 16.12 릴리스에 도입된 Cisco IOS® XE SD-WAN 라우터의 TCP(Transmission Control Protocol) 최적화 기능에 대해 설명합니다. 지원되는 항목은 사전 요구 사항, 문제 설명, 해결 방법, vEdge(Virtual OS)와 cEdge(XE SD-WAN) 간의 TCP 최적화 알고리즘 차이, 구성, 확인 및 관련 문서 목록입니다.
사전 요구 사항
요구 사항
이 문서에 대한 특정 요건이 없습니다.
사용되는 구성 요소
이 문서의 정보는 Cisco IOS® XE SD-WAN을 기반으로 합니다.
이 문서의 정보는 특정 랩 환경의 디바이스를 토대로 작성되었습니다. 이 문서에 사용된 모든 디바이스는 초기화된(기본) 컨피그레이션으로 시작되었습니다. 현재 네트워크가 작동 중인 경우 모든 명령의 잠재적인 영향을 미리 숙지하시기 바랍니다.
문제
두 SD-WAN 측 간의 WAN 링크에서 레이턴시가 높으면 애플리케이션 성능이 저하됩니다. 중요한 TCP 트래픽이 있으므로 최적화해야 합니다.
솔루션
TCP 최적화 기능을 사용하면 두 SD-WAN 사이트 간의 중요한 TCP 흐름에 대한 평균 TCP 처리량을 개선할 수 있습니다.
cEdge 병목 대역폭 및 BBR(Round-trip)과 vEdge(CUBIC)에서 TCP 최적화의 개요와 차이점을 살펴보십시오
빠른 BBR 전파 시간 알고리즘은 XE SD-WAN 구현(cEdge)에서 사용됩니다.
Viptela OS(vEdge)에는 CUBIC이라는 다른 이전 알고리즘이 있습니다.
CUBIC은 주로 패킷 손실을 고려하며 다양한 클라이언트 운영 체제 전반에 걸쳐 광범위하게 구현됩니다. Windows, Linux, MacOS, Android에는 이미 큐빅이 내장되어 있습니다. CUBIC 없이 TCP 스택을 실행하는 이전 클라이언트가 있는 경우 vEdge에서 TCP 최적화를 활성화하면 성능이 향상됩니다. vEdge TCP CUBIC 최적화가 도움이 되는 예제 중 하나는 오래된 클라이언트 호스트 및 WAN 링크를 사용하는 잠수함에서 상당한 지연/드랍이 발생하는 경우입니다. vEdge 1000 및 vEdge 2000만 TCP CUBIC을 지원합니다.
BBR은 주로 왕복 시간과 레이턴시에 중점을 두고 있습니다. 패킷 손실이 아닙니다. 미국 서부에서 동부 해안까지 또는 심지어 공용 인터넷을 통해 유럽까지 패킷을 전송하는 경우, 대부분의 경우 패킷 손실이 표시되지 않습니다. 공용 인터넷은 패킷 손실 측면에서 너무 좋은 경우가 있습니다. 하지만 지연/지연 시간이 표시됩니다. 그리고 이 문제는 2016년 구글이 개발한 BBR로 해결된다.
간단히 말해, BBR은 네트워크를 모델링하고 각 승인(ACK)을 확인하고 최대 대역폭(BW) 및 최소 RTT(Round Trip Time)를 업데이트합니다. 그런 다음 제어 전송은 모델을 기반으로 합니다. 최대 BW 및 최소 RTT에 대한 프로브, 예상 BW에 가까운 속도 조절, BDP(Bandwidth-Delay-Product)에 가까운 기내 수신 유지 주요 목표는 작은 병목 현상 대기열로 높은 처리량을 보장하는 것입니다.
Mark Claypool의 이 슬라이드는 CUBIC이 작동하는 영역을 보여줍니다.
BBR은 Mark Claypool의 더 나은 환경에서 작동합니다.
BBR 알고리즘에 대한 자세한 내용을 읽고 싶다면, bbr-dev 메일링 리스트 홈 페이지 상단에 링크된 BBR에 대한 여러 간행물을 찾을 수 있습니다.
요약:
플랫폼 및 알고리즘
|
키 입력 매개 변수 |
사용 사례 |
cEdge(XE SD-WAN): BBR |
RTT/레이턴시 |
두 SD-WAN 사이트 간의 중요한 TCP 트래픽 |
vEdge(Viptela OS): 칸막이 |
패킷 손실 |
TCP 최적화가 없는 이전 클라이언트 |
지원되는 XE SD-WAN 플랫폼
XE SD-WAN SW 릴리스 16.12.1d에서 다음 cEdge 플랫폼은 TCP 최적화 BBR을 지원합니다.
- ISR4331
- ISR4351
- CSR1000v, vCPU 8개 및 최소 8GB RAM
경고
- DRAM이 8GB RAM 미만인 모든 플랫폼은 현재 지원되지 않습니다.
- 데이터 코어가 4개 이하인 모든 플랫폼은 현재 지원되지 않습니다.
- TCP 최적화는 MTU 2000을 지원하지 않습니다.
- 현재 - IPv6 트래픽을 지원하지 않습니다.
- 서드파티 BBR 서버에 대한 DIA 트래픽 최적화는 지원되지 않습니다. 양쪽에 cEdge SD-WAN 라우터가 있어야 합니다.
- 현재 데이터 센터 시나리오에서는 하나의 CN(Control Node)당 하나의 SN(Service Node)만 지원됩니다.
- 현재 동일한 디바이스에서 보안(UTD 컨테이너) 및 TCP 최적화를 함께 사용하는 복합 활용 사례는 지원되지 않습니다.
참고: ASR1k는 현재 TCP 최적화를 지원하지 않습니다. 그러나 ASR1k에는 최적화를 위해 ASR1k가 TCP 트래픽을 GRE(AppNav Tunnel)를 통해 외부 CSR1kv로 전송하는 솔루션이 있습니다. 현재(2020년 2월) 외부 서비스 노드인 CSR1k는 하나만 지원됩니다. 이에 대해서는 구성 섹션의 뒷부분에서 설명합니다.
이 표에는 릴리스별 주의 사항이 요약되어 있으며 지원되는 하드웨어 플랫폼에 밑줄이 표시됩니다.
시나리오 |
활용 사례 |
16.12.1 |
17.2.1 |
17.3.1 |
17.4.1 |
의견 |
브랜치-투-인터넷 |
디아 |
아니요 |
예 |
예 |
예 |
16.12.1에서 AppQoE FIA가 인터넷 인터페이스에서 활성화되지 않았습니다. |
SAAS |
아니요 |
예 |
예 |
예 |
16.12.1에서 AppQoE FIA가 인터넷 인터페이스에서 활성화되지 않았습니다. |
지사-DC |
단일 엣지 라우터 |
아니요 |
아니요 |
왼쪽 |
예 |
여러 SN을 지원해야 함 |
다중 에지 라우터 |
아니요 |
아니요 |
왼쪽 |
예 |
흐름 대칭 또는 Appnav 흐름 동기화가 필요합니다. 16.12.1은 |
여러 SN |
아니요 |
아니요 |
왼쪽 |
예 |
여러 SN IP를 허용하는 vManage 개선 사항 |
지사 간 |
풀 메시 네트워크 (스포크 투 스포크) |
예 |
예 |
예 |
예 |
|
허브 앤 스포크 (스포크 허브 스포크) |
아니요 |
예 |
예 |
예 |
|
BBR 지원 |
BBR을 사용하는 TCP Opt |
부분 |
부분 |
전체 |
전체 |
|
플랫폼 |
지원되는 플랫폼 |
4300 및 CSR만 |
ISR1100 제외 |
모두 |
모두 |
구성
TCP 최적화에 SN 및 CN의 개념이 사용됩니다.
- SN은 TCP 흐름의 실제 최적화를 담당하는 데몬입니다.
- CN은 AppNav Controller라고 하며 트래픽 선택 및 SN과의 전송을 담당합니다.
SN과 CN은 동일한 라우터에서 실행되거나 서로 다른 노드로 분리될 수 있습니다.
두 가지 주요 활용 사례가 있습니다.
- 동일한 ISR4k 라우터에서 실행되는 SN 및 CN의 지사 활용 사례.
- CN이 ASR1k에서 실행되고 SN이 별도의 CSR1000v 가상 라우터에서 실행되는 데이터 센터 활용 사례.
이 섹션에서는 두 가지 사용 사례에 대해 설명합니다.
활용 사례 1. 브랜치에서 TCP 최적화 구성(모두 하나의 cEdge)
이 그림에서는 브랜치의 단일 독립형 옵션에 대한 전반적인 내부 아키텍처를 보여줍니다.
1단계. TCP 최적화를 구성하려면 vManage에서 TCP 최적화를 위한 기능 템플릿을 생성해야 합니다. 그림과 같이 Configuration > Templates > Feature Templates > Other Templates > AppQoE로 이동합니다.
2단계. Additional Templates(추가 템플릿)에서 적절한 디바이스 템플릿에 AppQoE 기능 템플릿을 추가합니다.
다음은 템플릿 컨피그레이션의 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의 물리적 분리입니다. 올인원 브랜치(all-in-one branch) 활용 사례에서는 가상 포트 그룹 인터페이스(Virtual Port Group Interface)를 사용하여 동일한 라우터 내에서 연결이 이루어집니다. 데이터 센터 활용 사례에서는 CN으로 작동하는 ASR1k와 SN으로 실행되는 외부 CSR1k 간에 AppNav GRE 캡슐화 터널이 있습니다. CN과 외부 SN 간에 전용 링크나 교차 연결이 필요 없으며 간단한 IP 연결만으로도 충분합니다.
SN당 하나의 AppNav(GRE) 터널이 있습니다. 여러 SN이 지원되는 향후 사용을 위해 CN과 SN 간의 네트워크에 /28 서브넷을 사용하는 것이 좋습니다.
SN으로 작동하는 CSR1k에는 두 개의 NIC가 권장됩니다. vManage에서 SN을 구성/관리해야 하는 경우 SD-WAN 컨트롤러용 두 번째 NIC가 필요합니다. SN을 수동으로 구성/관리하려는 경우 두 번째 NIC는 선택 사항입니다.
이 그림에서는 CN으로 실행되는 데이터 센터 ASR1k와 서비스 노드 SN으로 실행되는 CSR1kv를 보여줍니다.
ASR1k 및 외부 CSR1k의 데이터 센터 활용 사례에 대한 토폴로지는 다음과 같습니다.
이 AppQoE 기능 템플릿은 컨트롤러로 구성된 ASR1k를 표시합니다.
외부 서비스 노드로 구성된 CSR1k는 다음과 같습니다.
장애 조치 사례
CSR1k가 SN으로 작동하는 데이터 센터 활용 사례의 장애 조치(외부 CSR1k 장애 시):
- SN의 TCP 세션이 종료되었으므로 이미 있는 TCP 세션이 손실됩니다.
- 새 TCP 세션이 최종 대상으로 전송되지만 TCP 트래픽은 최적화되지 않습니다(우회).
- SN 장애 시 흥미로운 트래픽에 대한 블랙홀이 없습니다.
장애 조치 감지는 초당 1비트인 AppNav 하트비트를 기반으로 합니다. 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#
문제 해결
현재 이 설정에 사용할 수 있는 특정 문제 해결 정보가 없습니다.
관련 정보