AOS-CX에서 RoCE 구성하기 (2) – 실습편

지난 포스팅에서 RoCE가 무엇인지, 왜 필요한지에 대해 알아보았습니다.

그렇다면, 이번에는 AOS-CX 스위치에 RoCE를 구현하기 위한 방법을 알아보도록 하겠습니다.
HPE Aruba Neworking CX 스위치에 RoCEv2를 구성하기 위해서는 다음과 같은 항목들이 필요합니다.

  • 무손실 네트워크 패브릭을 보장하기 위한 DCB 이더넷 및 DCB 지원 스위치
    • 패킷 손실을 방지하는 PFC
    • 트래픽 클래스(TC)를 보호하는 ETS
    • L3 링크를 통한 ECN (& PFC)
  • RoCE를 지원하는 NIC

2025년 3월 현재 지원 가능한 스위치는 CX 10000, 9300, 8400, 8360, 8325, 8100 스위치 시리즈입니다.

RoCE 기반 솔루션에서 호스트(Initiator 또는 Target)는 무손실 트래픽이 올바른 802.11p 또는 DSCP값으로 연결된 스위치로 전송되도록 구성됩니다. 패브릭의 스위치는 Initiator와 Target을 향하는 L2링크와 스위치간의 L3링크를 활용합니다.

RoCEv2 스위치 구성 방법

AOS-CX 스위치에 RoCEv2을 구현하기 위해서는 아래와 같은 순서로 진행해야 합니다.

  1. LLDP 및 DCBx 활성화
  2. QoS Pool 설정 (CX8325/9300/10000)
  3. QoS Queue 프로필 구성
    (2개의 Queue 프로필로 최고의 성능 – 하나 Queue는 손실 트래픽용 / 나머지는 무손실 트래픽용)
  4. QoS Queue/Schedule 프로필 구성 및 적용
  5. Global Trust 설정
  6. 무손실 이더넷이 필요한 인터페이스에 PFC 설정
  7. Flow-Control Watchdog 설정
  8. Application TLV(Type-Length-Value) 설정
  9. ECN 임계치 프로필 설정
1. LLDP 및 DCBx 활성화 Config

DCBx 관련 참고사항

  • DCBx는 CX8100/8360/8325/8400/9300/10000 시리즈에서 지원합니다.
  • DCBx는 기본적으로 비활성화 되어 있습니다.
  • DCBx를 지원하는 인터페이스에서는 LLDP를 사용하도록 설정해야 합니다.
  • DCBx는 LLDP에 의존하기 때문에 물리 인터페이스에서만 지원됩니다.
    그리고 매니지먼트 또는 논리 인터페이스에서는 지원되지 않습니다.
  • AOS-CX는 DCBx의 IEEE 및 CEE 버전을 지원합니다.
  • AOS-CX는 모든 TLV에서 ‘의지 비트’를 0으로 설정하여 DCBx를 알립니다.
    이는 스위치가 피어의 구성과 일치하도록 구성을 변경할 의향이 없음을 피어에게 알립니다.
  • 피어 디바이스가 IEEE DCBx를 지원하지 않는 경우, show dcbx 인터페이스 출력에 표시됩니다.
  • LLDP DCBx는 전역적으로 또는 인터페이스 수준에서 활성화할 수 있습니다.

실제로 AOS-CX의 Config 구성 방법은 아래와 같습니다.

  • LLDP 활성화 (기본값: 활성화 상태)
switch(config)# lldp
  • LLDP 상태 확인
switch(config)# show lldp configuration

LLDP Global Configuration
=========================

LLDP Enabled                 : Yes
LLDP Transmit Interval       : 30
LLDP Hold Time Multiplier    : 4
LLDP Transmit Delay Interval : 2
LLDP Reinit Time Interval    : 2
LLDP Trap Enabled            : No
  • 기본 IEEE 버전으로 글로벌하게 DCBx 활성화 (기본값: 비활성화)
switch(config)# lldp dcbx
  • DCBx 특정 버전을 선택 가능 (아래 예시는 CEE 버전 사용)
switch(config)# lldp dcbx version cee
  • 인터페이스에 DCBx 활성화 (글로벌에서 활성화하면 기본적으로 전부 활성화)
switch(config-if)# lldp dcbx
  • DCBx 상태 확인
switch(config-if)# show dcbx interface 1/1/3
DCBx admin state             : enabled
DCBx operational state       : inactive
DCBx version                 : local = ieee, remote=NONE
PFC opertaional state        : inactive
2. QoS Pool 설정 (CX8325/9300/10000)

CX 8325/9300/10000 플랫폼의 QoS 풀 옵션을 사용하면 무손실 트래픽 전용 패킷 버퍼 풀을 생성할 수 있습니다.
QoS Pool 명령을 사용하면 무손실 풀 크기, 풀과 연결된 헤드룸 버퍼, 해당 풀에 매핑되는 우선순위를 생성할 수 있습니다.

무손실 Pool의 크기는 기기에서 사용 가능한 총 버퍼 메모리의 백분율입니다.
Headroom Pool 메모리는 무손실 Pool에서 할당되며, 일시 중지가 선언된 후 포트에 도착하는 패킷을 저장하는 데 사용됩니다.

  • QoS Pool 설정
switch(config)# qos pool {1 | 2 | 3} lossless size <factory-default | PERCENT> percent headroom <factory-default | KBYTES> kbytes priorities <PRIORITY>

QoS Pool 구성을 위한 각 파라미터에 대한 설명은 다음과 같습니다.

파라미터(Parameter)설명
{1|3}무손실 Pool 숫자를 정의
가능한 숫자는 1~3 (CX 8325, 9300, 10000 스위치의 경우)

NOTE: CX 8100, 8360, 8400의 경우, 1개의 Pool만 가능
<PERCENT>무손실 Pool의 크기를 퍼센트 단위로 지정
기본값: 40.6
범위: 10~90%. 이 Pool에 할당할 패킷 버퍼 메모리의 백분율 (정수 포맷)
또는
범위: 10.00~90.00%: 이 Pool에 할당할 패킷 버퍼 메모리의 백분율 (십진수 포맷)
<factory-default>기본 무손실 풀(Pool) 또는 헤드룸(Headroom) 버퍼 크기를 지정
<PRIORITY>풀(Pool)에 매핑할 PFC 우선순위를 지정
범위: 0~7

여러개의 우선순위를 매핑하려면 쉼표로 구분 (ex. 1, 3, 6)

<Example 1> QoS Pool 1개를 구성하고 단일 패킷 우선순위(4)를 할당

switch(config)# qos pool 1 lossless size 60 percent headroom 2048 kbytes priorities 4

<Example 2> QoS Pool 1개를 구성하고 두 개의 패킷 우선순위(3, 4)를 할당

switch(config)# qos pool 1 lossless size 60 percent headroom 2048 kbytes priorities 3,4

일단 생성된 새 Pool 설정은 구성을 startup-config에 저장하고 스위치를 재부팅할 때까지 적용되지 않습니다.
QoS 풀 사용량을 모니터링하려면 show qos pool 명령을 실행하면 됩니다.

switch# show qos pool statistics
Packet-Buffer Pool Statistics
 
Recent-Peak Interval: 1427 seconds

Packet Buffer Pools   Total Size     Peak Use   Recent Peak  Current Use
-------------------   ----------   ----------   -----------  -----------
Lossy Pool                 19036           20            20            0
Lossless Pool 1             8679         5579          5579            0
  Headroom 1                3078            0             0            0
Lossless Pool 2                0            0             0            0
  Headroom 2                   0            0             0            0
3. QoS Queue(대기열) 프로필 구성
  • QoS Queue 프로필은 로컬 우선순위를 대기열에 매핑합니다.
  • CoS-Map은 로컬 우선순위에 대한 802.1p 우선순위 코드 매핑을 정의합니다.
  • 무손실 이더넷에 대한 QoS 큐 프로파일과의 관계는 CoS1 맵과 DSCP2 맵입니다.
  • 시스템 시작 시 두 Map 모두 공장 기본값이 적용됩니다.
switch# show qos cos-map default
code_point local_priority color   name
---------- -------------- ------- ----
0          1              green   Best_Effort
1          0              green   Background
2          2              green   Excellent_Effort
3          3              green   Critical_Applications
4          4              green   Video
5          5              green   Voice
6          6              green   Internetwork_Control
7          7              green   Network_Control
switch# show qos dscp-map

DSCP     code_point local_priority mpls_exp color   name
-------- ---------- -------------- -------- ------- ----
000000   0          1              0        green   CS0
Codepoints 1-7 removed for brevity
001000   8          0              1        green   CS1
Codepoints 9-15 removed for brevity
010000   16         2              2        green   CS2
Codepoints 17-23 removed for brevity
011000   24         3              3        green   CS3
Codepoints 25-31 removed for brevity
100000   32         4              4        green   CS4
Codepoints 33-39 removed for brevity
101000   40         5              5        green   CS5
Codepoints 40-47 removed for brevity
110000   48         6              6        green   CS6
Codepoints 48-55 removed for brevity
111000   56         7              7        green   CS7
Codepoints 57-63 removed for brevity
  • Queue 프로필은 Queue에 로컬 우선순위를 할당할지 여부를 결정
  • 모든 포트에 하나의 Queue 프로필을 구성해야 함
  • PFC에 사용되는 코드 포인트에는 고유한 로컬 우선 순위가 할당되어야 함
    (즉, PFC에 사용되는 로컬 우선 순위에는 다른 코드 포인트를 할당할 수 없음)
  • 트래픽이 흐르는 동안에는 PFC PCP에 대한 CoS/큐 맵을 변경하거나 PFC 트래픽이 사용 중인 큐를 변경 불가
  • Burst Absorption을 위한 최상의 Queue 깊이를 제공하기 때문에 Two Queue 솔루션이 선호됨

CoS-Map 대기열을 구성합니다. 아래는 2 Queue 모델의 예입니다.
로컬 우선순위 4가 Queue 1에 매핑된 유일한 트래픽이며 무손실로 구성 가능합니다.

switch(config)# qos queue-profile que-pro1
switch(config-queue)# map queue 0 local-priority 0
switch(config-queue)# map queue 0 local-priority 1
switch(config-queue)# map queue 0 local-priority 2
switch(config-queue)# map queue 0 local-priority 3
switch(config-queue)# map queue 1 local-priority 4
switch(config-queue)# map queue 0 local-priority 5
switch(config-queue)# map queue 0 local-priority 6
switch(config-queue)# map queue 0 local-priority 7
switch(config)# show qos queue-profile que-pro1
queue_num local_priorities name
--------- ---------------- ----
0         0,1,2,3,5,6,7
1         4

무손실 트래픽에 로컬 우선순위를 사용하는 경우, 동일한 대기열에 여러 개의 로컬 우선순위를 할당하지 않는 것이 좋습니다.

대기열 구성에 관계없이 무손실 대기열은 일반적으로 무손실 풀에 버퍼링된 패킷만 보관하므로 다른 대기열의 손실 패킷이 버퍼 가용성에 부정적인 영향을 미치지 않는다는 점에 유의하세요. 아래 예에서와 같이 대기열 수가 줄어드는 대신 결합된 다양한 유형의 ‘기타’ 트래픽에 대해 차별화된 스케줄링/서비스를 구성할 수 있는 기능이 상실된다는 단점이 있습니다.

4. QoS Queue/Schedule 프로필 구성 및 적용

QoS Schedule 프로필은 Queue가 패킷을 전송하는 순서와 각 Queue에 대해 정의된 서비스의 양을 결정합니다.
해당 프로필은 사용자 구성 또는 기본값(Factory-default)을 사용하여 모든 인터페이스에 항상 적용됩니다.

구성 방법은 모든 포트에 대한 글로벌 Schedule 프로필과 인터페이스별로 특정 Schedule 프로필을 지정할 수 있습니다.
전역 프로필과 인터페이스별 프로필이 모두 구성된 경우에는 인터페이스별 Schedule 프로필이 사용됩니다.

무손실 트래픽을 전송하는 인터페이스에는 무손실 흐름 환경에 적합한 대역폭이 할당되도록 Schedule 프로필을 구성해야 합니다.

CX 스위치는 공장 기본값이 Schedule 프로필로 자동 프로비저닝되며, 이 프로필은 가중치가 1인 모든 Queue에 WFQ3 및 DWRR4 스케줄링 알고리즘을 할당합니다.

또한, CX 스위치에는 각 Queue가 비워질때까지 Queue 우선순위의 내림차순(7→0)으로 서비스하는 사전 정의된 엄격한 Schedule 프로필이 있습니다. 이 엄격한(Strict) Schedule 프로필은 기본적으로 적용되지 않지만 모든 인터페이스 및 모든 Queue 프로필에서 사용할 수 있습니다.

아래 예는 2 Queue 환경에서의 ETS 구성을 보여줍니다.

switch(config)# qos schedule-profile sch-pro1
switch(config-schedule)# dwrr queue 0 weight 15
switch(config-schedule)# dwrr queue 1 weight 15

이 설정은 가중치를 사용하여 각 Queue에 사용 가능한 대역폭의 양을 설정합니다.
위 예의 설정은 Queue 0과 Queue 1 모두에 대역폭의 50%가 적용되도록 합니다.

switch(config)# show qos schedule-profile sch-pro1
queue_num alogrithm     weight max-bandwidth_kbps
--------- ------------- ------ ------------------
0         dwrr          15
1         dwrr          15

Schedule 설정을 Queue 프로필에 적용합니다.

switch(config)# apply qos queue-profile que-pro1 schedule-profile sch-pro1

Qos Schedule 프로필 구성에는 다음과 같은 사항을 따라야 합니다.

  • 각 포트에는 고유한 Schedule Profile이 있을 수 있습니다.
  • Queue는 패킷을 전송하는 순서와 각 Queue에 정의된 서비스의 양을 결정합니다.
  • factory-default 프로필과 strict 프로필은 삭제하거나 변경할 수 없습니다.
  • 적용된 스케줄 프로필은 제한적으로 변경할 수 있습니다.
    그 외 변경을 하면 스케줄 프로필을 사용할 수 없게 되며 프로필을 수정할 때까지 공장 기본 프로필로 되돌아갑니다:
    (dwrr queue의 가중치, strict 프로필의 대역폭)

Schedule 프로필 관련 보다 많은 정보는 CX 가이드 문서를 참조하세요.

5. Global Trust 설정

관련 포트에 적절한 Trust 구성을 적용해야 합니다.
802.1p 마킹에 주로 의존하는 RoCE 기반 솔루션의 경우, 사용자는 마킹이 신뢰되는지 확인해야 합니다.

따라서 Global Trust 모드를 CoS로 설정하는 것이 좋습니다.
Global Trust 모드를 CoS로 설정하면 개별 신뢰 모드가 아직 구성되지 않은 모든 인터페이스에 적용됩니다.

그런 다음, 802.1p 태그가 없는 모든 L3 인터페이스에 DSCP 재정의가 적용될 수 있습니다.

다음 CLI 명령어는 Global Trust를 구성하는 방법입니다.

switch(config)# qos trust
cos	Trust 802.1p priority and preserve DSCP or IP-ToS
dscp	Trust DSCP and remark the 802.1p priority to match

RoCEv2의 경우, 무손실 패킷을 전송할 때 엔드포인트에 설정된 방법에 따라 trust CoS 또는 trust DSCP를 사용할 수 있습니다.

VLAN 태그가 없는 경우에는 trust DSCP가 사용됩니다.
VLAN 태그가 있는 경우, 사용자는 엔드포인트가 올바른 패킷 우선순위로 채우는 것으로 알려진 패킷 필드에 따라 trust CoS 또는 trust DSCP 중에서 선택할 수 있습니다.

Global Trust 설정이 적용된 것을 확인하는 방법은 show qost trust 명령어를 사용합니다.

switch(config)# show qos trust
qos trust cos
switch(config)# show qos trust
qos trust dscp
6. PFC 설정

PFC는 LAN 및 SAN 기술에서 통합된 802.3 이더넷 미디어 인터페이스에 대한 흐름 제어를 가능하게 합니다.

PFC는 링크에서 대역폭에 대한 contention(경합)이 발생했을 때, 디바이스의 congestion(혼잡)으로 인해 특정 우선순위의 패킷이 손실되는 것을 방지하기 위한 것입니다. 이를 통해 RoCE와 같은 손실에 민감한 프로토콜이 동일한 통합 패브릭 내에서 손실을 허용할 수 있는 프로토콜과 공존할 수 있게 됩니다.

RoCE를 지원하는 CX 스위치는 PFC를 지원하지만, CX 10000 스위치의 PFC(LLFC RxTx도 포함)에 대한 주의 사항은 PFC용으로 구성된 포트 우선 순위에 도착하는 흐름이 분산 서비스 프로세서에 표시되지 않는다는 것입니다.

따라서 이러한 흐름은 모니터링 및 구성된 규칙에 표시되지 않습니다.

PFC를 구성하기에 앞서 다음 사항을 유의해야 합니다.

  • 특정 환경에서 무손실 동작을 보장하려면, 트래픽 경로의 모든 엔드포인트와 스위치에 PFC를 사용하도록 설정해야 함
  • PCP 0은 PFC 무손실 Queue에 사용 불가
    또한, 일부 스위치에서 생성되는 프로토콜 및 제어 패킷이 이 우선순위를 사용하므로 PCP 7에 PFC를 구성하지 않는 것을 권장함. 이러한 패킷이 일시 중지된 Queue에 갇히면 프로토콜 관련 문제가 발생할 수 있음
  • 모든 트래픽 제어에 대한 우선순위는 먼저 QoS Pool 명령을 사용하여 무손실 Pool에 매핑해야 함
  • 무손실 네트워킹이 필요한 링크의 양쪽 끝에서 PFC를 구성해야 함
  • L3 인터페이스에서 PFC는 분류를 위해 DSCP 값을 사용해야 함
    VLAN 태그를 사용하는 경우에는 PFC는 DSCP 값 대신 802.1Q 태그를 사용

CX 10000, 8325 스위치에서 인터페이스 우선순위가 PFC로 구성된 경우, 패킷의 손실 또는 무손실 여부를 결정하는데 사용되는 패킷 필드는 로컬 우선순위 분류에 사용되는 패킷필드(구성된 Trust Mode 기반)와 다를 수 있습니다.

QoS 신뢰모드가 로컬 우선순위(및 그에 따른 전송 Queue)를 결정하는 반면, 로컬 우선순위 값은 태그가 없는 프레임에 대한 패킷의 손실 또는 무손실 특성을 결정하는데만 사용됩니다.

CX 스위치에 PFC를 구성할 때 다음 사항을 알아둬야 합니다.

  • CX 10000, 9300, 8325 스위치는 인터페이스당 7개의 무손실 PFC 우선순위를 구성할 수 있음
  • CX 8360, 8100 스위치는 인터페이스당 2개의 무손실 PFC 우선순위를 구성할 수 있음
  • CX 8400 스위치는 인터페이스당 1개의 무손실 PFC 우선순위를 구성할 수 있음

인터페이스에 PFC를 구성하면 해당 우선순위로 표시된 해당 인터페이스에 도착하는 패킷을 삭제하면 안됩니다.
다음 CLI 명령은 1/1/2 인터페이스에 도착하는 우선순위 4의 패킷에 대해 PFC를 활성화합니다.

switch(config)# interface 1/1/2
switch(config-if)# flow-control priority 4

PFC를 설정한 후, show 명령어를 사용하여 적용상태를 확인할 수 있습니다.

switch(config)# show dcbx interface 1/1/2
DCBx admin state: enabled
DCBx operation state : active

Priority Flow Control (PFC)
---------------------------
Operational state : active

Local advertisement:
    Willing	             : No
    MacSec ByPass Capability : No
    Max traffic classes	     : 1

    Priority    Enabled
    0           False
    1           False
    2           False
    3           False
    4           True
    5           False
    6           False
    7           False
7. Flow-control Watchdog 설정

플로우 제어 감시(Flow-control Watchdog) 기능은 물리적 인터페이스에서 PFC가 활성화된 Queue를 모니터링 합니다.

무손실 Queue가 너무 긴 시간동안 일시 중지되면(즉, Queue의 무손실 패킷이 전송되지 않으면) 네트워크 전체에 무손실 버퍼에 대한 혼잡문제가 발생할 수 있습니다. 이러한 상황을 방지하기 위해 송신단(egress)의 무손실 Queue를 모니터링하여 전역으로 지정된 타임아웃 기간동안 전송이 발생하지 않는지 감시합니다.

조건이 맞으면, 영향을 받는 Queue에 대해 Flow Control 감시가 트리거되어 다음과 같은 작업이 수행됩니다.

  • 인터페이스의 Flow-Control Watchdog 타임아웃 카운터가 증가합니다.
  • 영향을 받는 Queue를 점유하는 모든 패킷이 삭제됩니다.
  • 영향을 받는 Queue로 향하는 새 패킷 도착이 삭제됩니다.

트리거 이후에 구성된 Resume Interval이 경과하면 Queue가 정상 작동으로 돌아갑니다.

Flow-Control Watchdog은 PFC가 구성된 인터페이스만 지원됩니다.
Flow-Control Watchdog이 활성화 되면, 포트의 모든 무손실 Queue에서 활성화됩니다.

해당 기능은 CX 10000, 9300, 8325만 지원합니다.

Flow-Control Watchdog을 구성 방법은 다음과 같습니다.

  • 인터페이스에 Flow-Control Watchdog 활성화
switch(config)# flow-control watchdog
  • 인터페이스에 타임아웃 시간 설정
switch(config)# flow-control watchdog timeout <MILLISECONDS> resume <MILLISECONDS>
  • no 명령어를 사용하면 구성된 Flow-Control Watchdog를 되돌릴 수 있음
switch(config)# no flow-control watchdog timeout <MILLISECONDS> resume <MILLISECONDS>

각 시간에 대한 설정을 위한 각 파라미터 다음을 참조하시면 됩니다.

파라미터설명
timeout <MILLISECONDS>Watchdog을 트리거하기 위해 Queue를 일시정지해야 하는 시간(밀리초) 지정
범위: 10~1500 밀리초
기본값: 100 밀리초
resume <MILLISECONDS>Queue가 트리거된 상태로 유지되는 시간(밀리초) 지정
범위: 10~1500 밀리초
기본값: 100 밀리초
8. DCBx 애플리케이션 TLV 설정

DCBx 애플리케이션의 TLV(Type Length Value)는 연결된 장치로 전송되는 DCBx 애플리케이션 우선순위 메시지에서 알립니다.

이러한 메시지는 네트워크가 트래픽을 올바르게 수신하고 Queue에 넣을 수 있도록 구성된 우선순위로 애플리케이션 트래픽을 전송하도록 DCBx 피어에 지시합니다. 이러한 방식으로 여러 애플리케이션을 구성할 수 있습니다.

연결된 디바이스가 DCBx 애플리케이션 TLV를 준수하지 않는 경우, 트래픽을 올바르게 표시하도록 디바이스를 수동으로 구성해야 합니다.

DCBx의 광고에 대한 애플리케이션 우선순위를 구성하기 위해서는 다음과 같이 설정합니다.

switch(config)# dcbx application {ISCSI | TCP-SCTP <PORT-NUM> | TCP-SCTP-UDP <PORT-NUM> | UDP <PORT-NUM> | ether <ETHERTYPE>} priority <PRIORITY>

다음 예시는 우선순위 4를 사용하여 iSCSI 트래픽을 광고하기 위해 DCBx 구성하는 명령어입니다.

switch(config)# dcbx appliaction iscsi priority 4

우선순위 4를 사용하여 tcp-sctp 포트 860 트래픽을 광고하기 위해 DCBx 구성 예시는 다음과 같습니다.

switch(config)# dcbx application tcp-sctp 860 priority 4
9. ECN 임계치 프로필 설정

ECN(Explicit Congestion Notification)을 사용하면, TCP/IP 기반 네트워크에서 ECN을 사용하는 발신자와 ECN을 사용하는 수신자간에 네트워크 혼잡에 대한 알림을 보낼 수 있습니다. ECN 임계치(Threshold) 프로필은 패킷에 대한 조치(즉, ECN 표시)를 취하기 위한 트리거로 개별 Queue 사용률에 대한 임계값을 설정합니다.

ECN 구성은 사용자가 최상의 성능을 달성하기 위해 다양한 값의 매개변수를 조정할 수 있습니다.
ECN과 PFC를 함께 사용하면 버퍼 오버플로우를 방지하기 위해 PFC가 필요하기 전에 엔드포인트에 발생하는 정체 현상에 대한 피드백을 제공함으로써 네트워크 전반의 성능을 개선할 수 있습니다.

다음 항목들은 ECN 구성에 대한 가이드라인입니다.

  1. 지연에 민감한 트래픽을 전송하는 Queue에 구성
  2. 프로필에 원하는 수의 Queue를 구성 가능
  3. 구성되지 않은 Queue는 임계값 동작이 발생하지 않음을 의미
  4. 임계값 프로필은 기본적으로 생성되거나 구성되지 않음
  5. ECN이 작동하려면, ECN이 활성화된 두 엔드포인트 사이의 경로에 있는 모든 스위치에 ECN이 활성화 되어 있어야 함

만약 ECN 임계값(Threshold)이 너무 높거나 낮게 구성되었을 때 나타나는 현상입니다.

  • ECN 임계값을 너무 높게 구성하면, 손실을 방지하기 위한 PFC Pause가 일어나기 전에 임계값에 도달하지 못함
  • ECN 임계값을 너무 낮게 구성하면, 필요할 때 회선속도로 트래픽을 유지하기 위해 네트워크에서 버퍼링할 수 있는 패킷이 충분하지 않으면 성능이 저하됨

ECN의 임계값은 최소 500kB부터 최대 1500kB까지 구성할 수 있으며, 링크 속도와 왕복 지연시간, 데이터 경로에 있는 인터페이스 over-subscription에 따라 이 값을 늘려서 정체가 있음을 알리기 전에 버퍼 사용량이 더 커질 수 있도록 할 수도 있습니다.

ECN을 구성할 때에는 다음 사항들을 유의해야 합니다.

  • Queue가 최소 임계값(min-threshold) 제한을 초과하면, ECN 동작은 현재 Queue 크기에서의 마킹 확률에 따라 ECN 가능 전송(ECT) 패킷을 CE로 표시하며, 이 확률은 최소 임계값과 최대 임계값 사이에서 1~100%까지 선형적으로 증가
  • Queue가 최대 임계값(max-threshold) 제한을 초과하면, ECN 동작은 모든 ECT 패킷을 CE로 표시
  • CX 10000, 9300, 8360, 8100 스위치에서는 IP ECN이 언더레이(Underlay)에서만 지원됨
  • CX 8325 스위치는 언더레이(Underlay)와 VXLAN 오버레이(Overlay)에서 IP ECN이 지원됨 – Leaf간 단일 Hop

각 CX 스위치 모델별로 ECN이라는 이름의 임계값 프로필을 설정하기 위해서는 아래와 같이 구성의 차이를 보입니다.
① 비확률 기반 임계값 프로필을 생성

  • CX 8360 & CX 8100 스위치
switch(config)# qos threshold-profile ECN
switch(config-threshold)# queue 1 action ecn all threshold 50 percent
  • CX 8400 스위치
switch(config)# qos threshold-profile ECN
switch(config-threshold)# queue 1 action ecn all threshold 50 kbytes

② 이중 임계값(확률 기반) 프로필 생성 (CX 10000, 9300, 8325 스위치)

switch(config)# qos threshold-profile ECN
switch(config-threshold)# queue 5 action ecn all min-threshold 2000 kbytes max-threshold 4000 kbytes
  • 옵션 1: 모든 포트에 대해 프로필 전역 적용
switch(config)# apply qos threshold-profile ECN
  • 옵션 2: 인터페이스 수준에서 프로필 적용
switch(config)# interface 1/1/3
switch(config-if)# apply qos threshold-profile ECN
  • 옵션 3: 특정 이더넷 또는 LAG 인터페이스에 프로필 적용
switch(config)# interface lag 10
switch(config-if)# apply qos threshold-profile ECN

ECN 임계값 적용에 대한 확인은 show 명령어를 통해 확인할 수 있습니다.

switch (config)# show qos threshold-profile ECN
Queue	Action		Color 	Minimum	Maximum	Max Probability
----- 	--------------	-------	-------	-------	----------------
1 	ecn 		all 	50 	50

Port 	Status
-------	-------
1/1/1 	applied
1/1/10 	applied
1/1/11 	applied
1/1/12 	applied
1/1/13 	applied

이렇게 9가지 단계에 걸쳐 RoCEv2를 AOS-CX 스위치에 구성하는 방법을 알아보았습니다.
기본적으로 데이터센터 제품군으로 분류된 AOS-CX 스위치 제품들은 RoCEv2 구성을 지원합니다.
다만, 각 모델별로 지원하는 Pool의 개수나 PFC 우선순위의 개수가 다를 수는 있습니다.

RoCE라는 기술 자체가 TCP/IP의 Lossy라는 특성을 극복하기 위해 만들어진 기술인만큼 복잡하게 보일 수 있습니다.
또한, QoS, CoS 등 어려운 개념이 등장하는 만큼 천천히 신중하게 따라서 구성하면 금방 이해하고 익힐 수 있을 것입니다.

보다 자세한 내용의 가이드는 아래 URL 또는 PDF를 참고해주세요.


※ 용어 참고

  1. CoS: Class of Service. 전송되는 패킷에 포함된 페이로드 유형을 구분하기 위해 사용되는 매개변수 ↩︎
  2. DSCP: Differentiated Services Code Point. IP 헤더에 붙어 패킷이 받을 서비스의 종류를 나타내는 표식 ↩︎
  3. WFQ: Weighted Fair Queueing. 혼잡 제어를 위한 Queueing 메커니즘 중에 하나 ↩︎
  4. DWRR: Deficit Weighted Round Robin. Queue에 할당된 시간을 기반으로 트래픽을 분배 ↩︎

Leave a Reply

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

This site uses Akismet to reduce spam. Learn how your comment data is processed.