[ACSA 교육#39] Stacking

보다 탄력적이고 안정적인 고성능 네트워크를 설계, 구현 및 구성하기 위해서는 Stacking(스태킹) 기술이 필요합니다.

이번 포스팅에서는 이 Stacking 기술에 대해서 알아보고, Aruba 스위치의 Stacking 기술인 VSF(Virtual Switching Framework)와 VSX(Virtual Switching eXtension)에 대해서도 알아보겠습니다.

Operation Plane – Data / Control / Management Plane

네트워크 장치는 논리적으로 3개의 운영 평면(Operation Plane)으로 구성되며, 각 평면별로 수행하는 역할이 다릅니다.

Data Plane

데이터 평면(Data Plane)은 소프트웨어 보다 훨씬 빠른 ASIC(Application-Specific Integrated Circuits, 주문형 반도체)이라는 특수 하드웨어를 사용하여 프레임을 수신하고 전송합니다.
ASIC은 데이터를 변조(Modulation) 및 복조(Demodulation)하고, 프레임 전송과 수신에 관련된 기능을 처리합니다.

Control Plane

제어 평면(Control Plane) 로직은 수신된 데이터로 무엇을 할 것인지 결정합니다.
이러한 결정은 라우팅, 스위칭, 보안 또는 트래픽 최적화와 같은 내부 프로세스를 통해 이뤄집니다. 데이터 평면과 제어 평면은 가능한 한 빨리 모든 데이터를 처리하기 위해 서로 긴밀한 관계를 갖고 있습니다.

Management Plane

관리 평면(Management Plane)을 사용하여 장치를 모니터링하고 구성하게 됩니다.

이 평면은 보안이나 접근제어 등의 이유로 데이터 평면과 분리되어야만 합니다.
아마도 모든 네트워크 관리자는 장치에 대한 접근이 VLAN 또는 VRF와 같은 것으로만 의존하는 것을 원하지 않을 것입니다. 제어나 데이터 평면에 문제가 발생하더라도 장치에 접근할 수 있어야 합니다. 또한, 사용자가 관리 평면에 접근하는 것을 원하지 않을 것입니다. 이는 심각한 보안 문제가 될 수 있기 때문입니다.

※ 참고: ArubaOS-CX 장치에는 데이터 평면과 완전히 분리가 되어 있는 OOBM(Out-of-Band Mangement)을 위한 별도의 인터페이스와 VRF가 적용되어 있습니다.

Stacking 기술

Stacking(스태킹) 기술을 사용하면 여러 개의 물리적 스위치 그룹을 가상 스위치라는 단일 장치로 관리할 수 있게 됩니다. 제어(Control) 및 관리(Management) 평면 기능은 하나의 그룹 구성원(Group Member)에 중앙 집중되게 되고, 각 구성원(Member)은 자체의 독립적인 데이터 평면(Data Plane)을 운영하게 됩니다.

Stacking 기술을 활용할 경우에 얻는 이점은 다음과 같습니다.

  • 관리 편의성: 더 이상 각각의 개별 스위치에 연결 및 구성, 관리할 필요가 없어집니다. Primary 스위치에서 구성하기만 하면 됩니다. 그럼 가상 스위치의 구성원(Member)들에게 자동으로 해당 구성(Config) 정보가 배포됩니다.
    이는 네트워크 설정과 운영, 유지관리를 단순화합니다.
  • 네트워크 간소화: 여러 장치가 공통의 제어 평면(Control Plane)을 공유하기 때문에 라우팅 프로토콜과 스패팅 트리(Spanning Tree)가 스태킹 그룹 내에서 필요하지 않습니다. 각각의 그룹 내 장치는 단일 장치로 인식하게 됩니다.

분산 데이터 평면 & 분산 링크 애그리게이션

스태킹 기술은 모든 구성원(Member)에게 분산되어 있는 데이터 평면(Data Plane)을 유지 관리하게 됩니다.
즉, 각 물리적 장치가 ARP와 MAC과 같은 Forwarding Table을 개별적으로 생성하고 채우게 되고, 이 테이블은 제어 평면(Control Plane)을 통해 모든 구성원들에게 공유됩니다.

모빌리티 컨트롤러(Mobility Controller)나 방화벽, 서버 등은 LAG(Link Aggregation Group) 연결을 인식하기 때문에 스위치에 LAG를 활성화해서 스태킹의 이점을 누릴 수도 있습니다.
아래 예시의 그림을 보면 SW1에 문제가 발생하더라도 트래픽은 여전히 다른 LAG 링크를 사용할 수 있게 됩니다.

LAG와 스태킹 기능을 사용하면 네트워크에서 사용 가능한 모든 링크를 동시에 완전하게 사용할 수 있게 됩니다.
하나의 Stack은 단일의 제어 평면(Control Plane)에서 동작하기 때문에 앞서 얘기한 것처럼 Spanning Tree가 필요하지 않습니다. Aruba는 이러한 구성을 적극 권장하고 있습니다.

Aruba VSF Stacking 솔루션 및 플랫폼

Aruba Virtual Switching Framework(VSF)는 이더넷 링크를 사용하여 서로 연결되어 있는 개별 물리적 스위치를 단일의 가상 스위치로 구성합니다. 모든 구성원 스위치는 앞서 말한 것과 같이 단일의 제어 평면(Control Plane)을 공유하며, VSF에 연결된 장치는 단일의 장치로 인식하게 됩니다.

ArubaOS-CX에서 VSF는 6300M과 6300F를 비롯하여 6200F 모델에서 지원됩니다. (2021년 11월 기준)
다른 ArubaOS-CX 스위치는 VSX라는 기술을 사용합니다. 6300 스위치 시리즈는 최대 10대의 구성원을 묶어서 스태킹을 구성할 수 있으며, 6200 스위치 시리즈는 최대 8대의 구성원을 묶어서 스태킹 구성이 가능합니다.
이 기능은 기본적으로 활성화되어 있습니다.

VSF 기술은 ArubaOS-CX 스위치 뿐만 아니라 ArubaOS 스위치 제품군에서도 사용할 수 있습니다. 하지만 CX 스위치와 다르게 기본적으로 비활성화되어 있습니다.

VSF 기능은 ArubaOS-CX와 ArubaOS 플랫폼간에 호환되지 않습니다. 즉, 서로 다른 OS 제품군의 스위치와 모델로 VSF 스택을 구성할 수 없습니다.

VSF 구성원의 역할과 링크

앞서 반복적으로 설명한 것처럼, Aruba VSF는 스택의 구성원에서 동작하는 단일의 제어 평면(Control Plane)을 생성합니다. 이 구성원이 기본 구성원(Primary Member)이며, 항상 member ID 1을 사용합니다.
이 장치는 스택에서 Master(Conductor) 역할을 갖습니다.

※ 참고: ArubaOS-CX 스위치의 기본 Member ID 1인 VSF 지원 스위치로 부팅 됩니다.
즉, 스위치가 Primary Member로 동작한다는 것을 의미합니다.

보조 구성원(Secondary Member)는 기본 구성원(Primary Member)에서 장애가 발생했을 경우, 고 가용성(High Availability)를 제공합니다. 보조 역할을 수행할 구성원을 선택할 수 있지만, 반드시 명시적으로 정의해야 합니다. 1을 제외한 아무 ID 값을 구성하기만 하면 됩니다.

VSF의 나머지 다른 장치는 데이터 플레인만 동작하는 구성원이며, Master(Conductor) 역할을 맡을 수는 없습니다.
VSF 스택 구성을 위해 각 스위치는 SFP56 또는 SFP+ 포트를 사용하여 서로 연결합니다. VSF용 포트로 구성하게 되면, 더 이상 Layer 2 또는 Layer 3 인터페이스로 사용할 수가 없게 됩니다. 즉, VSF 포트는 더 이상 데이터 평면(Data Plane)에 속하지 않게 됩니다.

VSF 개방형 가상 스위치 데이터베이스(OVSDB)

이전 포스팅에서 현재 상태 데이터베이스(Current State Database)에 말씀드린 적이 있습니다.
ArubaOS-CX 아키텍처의 가장 중요한 요소로, 모든 제어 및 관리 프로토콜과 연결됩니다. VSF 스택에서는 이 데이터베이스가 Master(Conductor) 스위치에서 실행됩니다.

스위치 그룹에서 VSF가 구성되어 실행되면, Open Virtual Switch Database(OVSDB)도 생성됩니다. 이 새로운 데이터베이스는 마스터 스위치에서 실행되며, VSF 스택 자체에 대한 상태 및 구성 데이터를 포함합니다.

마스터 스위치는 중단 없이 마스터 역할을 빠르게 넘겨줄 수 있도록 OVSDB 콘텐츠를 스탠바이(Secondary Member)와 동기화 합니다. OVSDB의 데이터베이스에는 다음과 같이 6개의 테이블이 있습니다.

  • VSF 멤버 테이블
  • VSF 링크 테이블
  • 시스템 테이블: 구성원(Member) 수, MAD 상태, 조각(Fragment) 상태, 토폴로지 유형 등
  • 서브시스템 테이블: 구성원별 부팅 시간
  • 인터페이스 테이블
  • 토폴로지 테이블

VSF 토폴로지

VSF 구성원은 데이지 체인(Daisy Chain) 또는 링(Ring) 토폴로지 중 하나의 방식으로 스위치 스택을 물리적으로 연결해야만 합니다.

  • Daisy Chain: 이름에서 알 수 있듯이 이 토폴로지는 이더넷 연결을 체인 형태로 VSF 구성원을 연결하게 됩니다.
    위 그림에서 보시는 것처럼 스위치나 링크간 문제로 인해 스택이 쪼개질 수 있다는 것을 알 수 있습니다.
  • Ring Topology: 이 토폴로지는 스위치나 링크 장애를 대비해서 백업 링크를 제공하고 있어 권장하는 구성입니다.

※ 참고: 두 개의 스위치로 이뤄진 스택에서는 Ring Topology가 허용되지 않습니다.

※ 참고: Full Mesh 토폴로지는 지원하지 않습니다.

VSF 요구사항

ArubaOS-CX 스위치에 VSF를 구성하기 위해서는 다음과 같은 요구사항을 만족해야 합니다.

  • ArubaOS-CX 10.04 이상의 버전 필요
  • 모든 구성원은 같은 OS-CX 버전을 사용해야 함
  • 같은 시리즈의 스위치의 경우 모델을 혼용해서 스태킹 구성이 가능 (i.e. 6300M 48p + 6300M 24p + 6300F 24p 등)
  • VSF 링크는 일반적인 이더넷 링크를 사용
  • 10G, 25G 또는 50G와 같은 업링크 사용할 것을 권장

VSF Member ID 및 포트 번호

VSF 스택을 구성할 때, 모든 물리적 스위치 장치는 단일 제어 평면(Control Pane)을 사용합니다.
이는 그림과 같이 표준 ArubaOS-CX Member/Slot/Port 표기법을 사용하여 모든 스위치의 인터페이스를 구성할 수 있음을 의미합니다.

“show interface brief” 명령어를 사용하여 스택 내 모든 스위치의 포트 정보를 확인할 수 있습니다.

※ 참고: 모든 6300/6200 스위치는 고정형 스위치이기 때문에 slot 번호는 항상 1로 고정됩니다.

VSF 구성 방법 (VSF Configuration Example)

  • Access-1 (Master) 설정
Access-1(config)# vsf member 1
Access-1(config-vsf)# link 1 1/1/27
  • Access-2 (Standby) 설정
Access-2(config)# vsf member 1
Access-2(config-vsf)# link 1 1/1/27
Access-2(config)# vsf renumber-to 2
Access-2(config)#! Switch reboots
  • Secondary 구성원 추가
Access-1(config)# vsf secondary-member 2
Access-1(config)#! Switch reboots
  • 구성 확인
Access-1# show vsf
<<<Omitted Output>>>
Mbr Mac Address         type         Status
ID
--- ------------------- ------------ ---------
1   88:3a:30:97:c7:00   JL668A       Master
2   88:3a:30:97:1a:80   JL668A       Standby

VSF Pre-Provisioning

ArubaOS-CX 스위치는 구성원(Member) 사전 프로비저닝(Pre-Provisioning)을 지원합니다.
이 기능을 통해 스위치가 스택에 연결되기 전에 특정 스위치 모델에 대한 VSF 링크 및 구성원을 준비할 수 있게 합니다.
해당 스위치가 스택 내로 들어가게 되면, 적절한 구성 정보를 통해 부팅하게 됩니다.

Switch-6300(config-vsf)# vsf member 4
Switch-6300(config-vsf)# type jl658a
Switch-6300(config-vsf)# link 1 1/1/25
Switch-6300(config-vsf)# link 2 1/1/26

Layer 2 트래픽 추적: Unicast

VSF 구성원이 Layer 2 포워딩을 위한 프레임을 받게 되면, L2 Forwarding Table을 참조하여 보낼 인터페이스를 결정합니다. 자기 자신이나 다른 구성원에 있을 수 있는 인터페이스로 프레임을 전달하게 됩니다.
보내야 할 인터페이스가 다른 구성원에 있는 경우, 출발지 구성원은 VSF 링크를 통해 패킷을 전달합니다.

VSF 패브릭 환경은 링크 애그리게이션을 구성한 스위치와 유사합니다.
물리적 인터페이스가 아닌 논리적 LAG 개체에서 MAC주소를 학습합니다. 각 통신을 전달하기 위해서 하나의 LAG 구성원 링크를 선택합니다.

그러나 VSF는 해당 물리적 인터페이스를 선택하기 위해서 LAG 해시 함수를 사용하지 않습니다.
VSF의 멤버는 VSF 링크를 사용하기 보다는 자기 자신의 로컬 링크를 사용하는 것을 선호합니다. 만약 VSF 멤버가 애그리게이션 내에 여러 개의 로컬 링크를 갖고 있다면, 일반적인 해싱 메커니즘을 사용하여 링크를 선택합니다.

VSF Failover & OSPF Graceful Restart

기본 구성원(Primary Member)은 스택에서 가장 중요한 장치이며 제어 및 관리 평면(Control & Management Plane)이 동작됩니다. 외부의 장치는 이 멤버와 직접 라우팅 및 스위칭 프로토콜을 교환합니다.
이 구성원에 문제가 발생하여 프로토콜 교환이 실패할 경우, 전체 스택이 다운되게 됩니다.

따라서, 이중화를 위해서 VSF의 보조 구성원(Secondary Member)를 구성해야 합니다.

보조 구성원은 기본 구성원에 장애가 발생시 마스터 역할을 맡게 됩니다. 새 마스터는 모든 제어 평면 프로토콜(Control Plane protocol)을 실행하고 구성 데이터베이스(Configuration Database)를 사용하며, 관리 세션에 응답하게 됩니다.

기본 구성원에 장애가 발생하면 Layer 2 트래픽은 중단 없이 계속 전달됩니다. OSPF와 같이 Layer 3 프로토콜은 Failover 이벤트를 피어(Peer)에게 알려서 정상적으로 재시작합니다. 이것은 OSPF의 인접성(Adjacency)을 재구축하도록 합니다. 컨버전스 도중에 스위치는 장애가 발생하기 전에 마지막으로 알려진 라우팅 정보를 기반으로 트래픽을 계속 라우팅하여 보내게 됩니다. 이것은 일반적으로 몇 초 정도만 지속됩니다. OSPF가 완전히 재정상화되면, 새롭게 많은 정보를 사용하여 라우팅하게 됩니다.

VSF에는 선점(Preemption)이 없습니다. 즉, 장애가 발생했던 멤버가 스택에 다시 합류하더라도 스택의 마스터를 대체하지 않고 대기(Standby) 역할을 수행하게 됩니다.

VSF 링크 장애

VSF 링크에 장애가 발생하게 되면, VSF 스택이 조각(Fragmented)이 날 수 있습니다.

위의 그림은 링크 장애로 인해 조각난 VSF 스택을 보여줍니다. 원래 SW1은 Primary이고, SW2는 Secondary였습니다. 하지만, 조각난 이후에는 두 스위치 사이에 직접적인 연결이 없게 됩니다. SW1은 자기 스스로가 계속 Primary라고 인지하게 되고, SW2는 SW1과 통신이 되지 않기 때문에 이제 자신이 Primary라고 생각하게 됩니다.
이러한 상태를 스플릿 브레인 상태(Split-Brain Condition)라고 합니다. 두 조각은 서로 통신하지 않지만, 계속 작동하게 됩니다.

스플릿 브레인은 불안정하고 예기치 않은 네트워크 동작을 유발할 수 있습니다.
하나의 조각에서 수신되고 다른 조각으로 보내야 하는 패킷은 버려집니다(Discarded). 설상가상으로 두 조각 모두 동일한 IP주소와 동일한 라우팅 정보를 사용하기 때문에 외부 장치는 중복된 데이터를 채우게 될 수도 있습니다.
이로 인해서 매우 이상한 네트워크 동작이 발생하게 됩니다.

※ 참고: 데이지 체인 프로토콜에서 VSF 구성원이 장애가 발생하는 경우에도 스플릿 브레인 상태가 발생할 수 있습니다.

스플릿 브레인 상태를 해결하는 가장 좋은 방법은 조각 중 하나의 포트를 비활성화 하는 방법입니다. 위 그림에서는 SW2의 모든 포트를 비활성화하는 방법입니다.

MAD(Multi-active Detection) – Split Detection (스플릿 탐지)

MAD(Multi-active Detection)을 사용하여 스플릿 브레인 상황을 피할 수 있습니다. 즉, VSF 링크의 장애가 발생하여 Standby 멤버가 포함된 조각(Segment)이 Primary 멤버의 상태를 확인합니다. 원래의 기본 구성원(Primary Member)이 정상적으로 동작한다면, 기본 구성원이 포함되지 않은 조각의 모든 구성원(Member)은 모든 포트를 비활성화 합니다.
VSF는 두 가지의 메커니즘을 사용하여 기본 구성원의 상태를 감지하고 확인합니다.

  • Management Interface Split Detection (관리용 인터페이스 스플릿 탐지): 이 방법을 사용하려면 OOBM(Out-of-Band Management) 인터페이스를 기본(Primary) 및 보조(Secondary) 구성원에 연결해야 합니다. 이 인터페이스들은 모두 동일한 Layer 2 브로드캐스트 도메인(VLAN)에 있어야 합니다.
    이 네트워크는 활성 스택 조각(Active Stack Fragment)을 식별하는데 사용됩니다. 각 구성원은 현재 작동 중인 스택의 조각을 식별하기 위해 스플릿 탐지 프로토콜 패킷을 브로드캐스트 합니다.
  • Peer Switch-based Detection (피어 스위치 기반 탐지): 이 방법은 추가 연결이 필요하지 않으며, LAG(Link Aggregation Group) 구현에 의존합니다. 스위치는 LAG 피어에게 인터페이스 상태(기본 및 보조 스택(Primary and Secondary Stack)에 연결된 인터페이스)에 대해 확인합니다. LAG 피어가 기본 구성원이 연결된 인터페이스 상태가 정상이라면, 대기(Standby) 구성원은 스플릿 브레인 상태를 탐지하고 해당 인터페이스를 셧다운합니다.

VSX (Virtual Switching eXtension) 소개

Aruba VSX는 ArubaOS-CX 스위치를 위한 가상화 기술입니다. 이 기술은 8000 시리즈와 6400 스위치 시리즈 모델에서 동작합니다. VSX 기술은 일반적으로 데이터센터용 스위치나 코어 스위치에 적용합니다. 반면에 VSF는 액세스 스위치 모델에 적합합니다.

VSX는 데이터 평면(Data Plane) 성능을 향상시킵니다. VSF를 사용할 경우에 제어 평면(Control Plane)은 기본 구성원(Primary Member)에서만 동작합니다. 따라서 기본 구성원이 아닌 구성원이 제어 평면으로 패킷 처리를 요청할 때 약간의 시간이 낭비됩니다.
하지만, VSX를 사용하게 되면 각 구성원이 자신 자체의 제어 평면을 실행하기 때문에 더 빠른 의사 결정과 대기 시간 감소 및 성능 향상이 가능합니다.

VSX 스위치는 각각 별도의 제어 평면을 실행하지만 구성(Configuration)에 대한 데이터베이스 동기화를 계속 유지합니다. VSF와 달리 각 스위치는 다른 디바이스에 하나의 가상화된 스위치로 표시하면서 제어부를 수정하고 채울 수 있습니다. VSX를 사용하면 다운타임이 거의 없고 지속적인 패킷 전달로 멤버를 업그레이드할 수 있습니다.


ArubaOS-CX 스위치는 VSF와 VSX라는 두 가지 가상화 기술을 사용합니다.
각 스위치의 목적에 따라 VSF를 사용하는 모델과 VSX를 사용하는 모델이 구분됩니다.

각각의 특징을 그림과 같이 표현하면 다음과 같습니다.

VSX에 대해 좀 더 자세한 내용은 향후 ACSP 강의를 포스팅할 때 다루도록 하겠습니다.