863. SDN 컨트롤러 스플릿 브레인 방어 및 분산 클러스터 고가용성 제어기

핵심 인사이트: 862번에서 ONOS 같은 뇌(컨트롤러)를 5대 묶어서 절대 죽지 않는 분산 클러스터를 만들었다고 했다. 그런데 만약 지진이 나서 5대 중 2대가 있는 서울과, 3대가 있는 부산 사이의 광케이블 통신망이 '뚝' 끊어지면 어떻게 될까? 서울의 뇌 2대는 부산 애들이 다 죽은 줄 알고 "이제부터 내가 1대장이다! 전국 스위치 나를 따르라!"고 명령하고, 부산의 뇌 3대도 서울 애들이 죽은 줄 알고 "우리가 대장이다! 명령을 따른다!"라고 지시한다. 전국 스위치들은 양쪽에서 반대되는 지시를 받고 미쳐버린다. 하나의 몸(통신망)에 자아(뇌)가 두 개로 쪼개져 멘탈 붕괴가 오는 이 끔찍한 현상, '스플릿 브레인'을 어떻게 막아낼지가 분산 제어 평면의 절대적 생존 과제다.

Ⅰ. 단일 컨트롤러의 한계와 분산 클러스터(Cluster)의 도입

  • SPOF (단일 고장점): 컨트롤러 서버 1대에 전국망 1,000대의 스위치를 맡기면, 1대가 죽었을 때 전국 통신이 마비됩니다.
  • 해결책: 컨트롤러 서버를 3대, 5대, 7대로 여러 대 묶어서(Cluster) 구축합니다. 한 놈이 죽으면 옆에 놈이 리더(Master) 자리를 물려받아 스위치 통제를 멈춤 없이 이어나갑니다(Active-Standby 또는 Active-Active 구조의 고가용성, HA 보장).

Ⅱ. 대재앙: 스플릿 브레인 (Split-Brain) 현상 🌟

클러스터링의 가장 치명적인 부작용입니다.

  • 상황: 5대의 컨트롤러가 완벽하게 동기화되어 일하다가, 중간 네트워크 선이 끊어져 **[A그룹: 2대]**와 **[B그룹: 3대]**로 네트워크가 단절(Network Partition)됩니다.
  • 뇌의 분열: 양쪽 그룹은 상대방이 진짜 죽어서 통신이 안 되는 건지, 아니면 선만 끊긴 건지 구별하지 못합니다.
  • 그래서 양쪽이 모두 "아, 저쪽 대장이 죽었구나! 이제 우리 그룹이 리더로 승격해서 스위치들에게 명령(플로우 테이블)을 내리자!"라고 스스로 착각하여 하나의 망에 두 명의 왕(Master)이 동시에 존재하게 됩니다. 이들이 서로 모순되는 경로(명령)를 하달하면서 네트워크 전체 트래픽이 지옥(블랙홀)으로 빠집니다.

Ⅲ. 스플릿 브레인 방어 기법 (분산 합의 알고리즘) 🌟

현대 SDN 컨트롤러(ONOS, ODL 등)는 이 뇌 분열을 막기 위해 뼛속부터 수학적인 투표(합의) 마법을 장착하고 있습니다.

1. 쿼럼 (Quorum, 정족수) 기반 합의 알고리즘 (Raft / Paxos) 🌟

  • 가장 확실한 민주주의 투표 시스템입니다.
  • 법칙: "전체 멤버의 절반 이상(과반수, Majority)이 살아남아 투표할 수 있는 그룹만이 진짜 리더(Master) 자격을 가진다!"
    • 전체가 5대일 때 과반수는 3대입니다.
    • 아까처럼 네트워크가 끊어져 [A그룹: 2대]와 [B그룹: 3대]로 쪼개졌을 때를 봅니다.
    • A그룹(2대): "우리끼리 대장 뽑자! 어? 우리 둘뿐이네? 5대 중 과반수(3표)가 안 되잖아? 우린 가짜구나. 입 닥치고 가만히 있자(운영 중지)."
    • B그룹(3대): "우리끼리 투표하자! 오, 우리가 3표(과반수)를 확보했네! 우리가 찐이다! 계속 스위치에 명령 내려!"
  • 이 수학적 쿼럼(Quorum) 투표 덕분에, 스위치들은 오직 B그룹(진짜 뇌)의 지시만 받게 되어 스플릿 브레인이 100% 방어됩니다. (※ 이래서 컨트롤러나 분산 DB 서버 대수는 무조건 홀수인 3대, 5대, 7대로 짝수를 피해서 구축해야만 동점(Tie)이 안 나옵니다.)

2. Tie-Breaker (제3의 감시자 / 심박선)

  • 돈이 없어서 컨트롤러를 딱 2대(짝수)만 샀을 때의 꼼수입니다. 2대가 끊어지면 과반수가 성립이 안 되니까요.
  • 1번 뇌와 2번 뇌 외에, 저 멀리 클라우드에 가벼운 투표 전용 감시자(Tie-breaker, Witness) 서버를 하나 띄웁니다.
  • 둘 사이가 끊어지면, 1번 뇌와 2번 뇌가 제3의 감시자에게 연락해 "나 살아있어 나한테 표 줘!"라고 묻습니다. 감시자의 표를 얻어 2표를 확보한 쪽만이 진짜 왕이 되는 생존 게임 전술입니다.

Ⅳ. 마스터-슬레이브(Master-Slave) 역할 위임과 트래픽 분할

ONOS는 5대의 뇌를 뒀다고 5대가 한 스위치에 똑같이 명령을 내리지 않습니다(충돌).

  • 1,000대의 스위치 중 1~200번 스위치는 1번 뇌가 'Master(대장)'가 되어 독점 관리하고, 2번 뇌는 이 그룹의 'Standby(대기)'로 역할(Role)을 분담합니다.
  • 만약 1번 뇌가 죽으면 뗏목(Raft) 알고리즘이 0.01초 만에 2번 뇌를 1~200번 스위치의 새로운 Master로 승격시켜 끊김 없는 고가용성을 완성합니다.

📢 섹션 요약 비유: SDN 분산 클러스터가 5명의 똑똑한 '공동 함장'들이 몰고 가는 거대한 우주 전함이라면, 스플릿 브레인은 함장실 한가운데에 투명한 방음벽(네트워크 단절)이 떨어져 2명과 3명이 서로의 목소리를 못 듣게 된 대재앙입니다. 방음벽 양쪽에서 서로 자기가 유일한 생존자인 줄 알고 "오른쪽으로 꺾어라!", "왼쪽으로 꺾어라!" 조종간(스위치)을 반대로 잡아당겨 전함이 찢어질 위기에 처합니다. 이를 막는 쿼럼(Raft) 방어 시스템은 함장들의 생명줄과 같은 '다수결 절대 원칙'입니다. 조종간을 당기려면 무조건 전체 함장 5명 중 3명(과반수)의 지문 인식이 겹쳐야만 작동합니다. 방음벽에 갇힌 2명 쪽은 지문이 부족해 조종간이 아예 잠겨버리고(침묵), 3명이 살아남은 쪽만이 조종간의 지배권을 합법적으로 쥐게 되어 전함(통신망)이 혼돈 없이 안전하게 항해할 수 있는 민주주의 생존 시스템입니다.