SONiC (Software for Open Networking in the Cloud)

1. 오픈소스 네트워크 운영체제, SONiC의 개념 및 특징

  • SONiC: Software for Open Networking in the Cloud
개념특징
하드웨어 종속성 해소 위해 Linux Container, SAI 기반 오픈소스 네트워크 운영체제– 도커 기반 모듈 구조
– SAI 하드웨어 독립성
– 오픈소스 생태계 협업
– 대규모 클라우드에 활용
  • 과거 네트워크 시장은 특정 하드웨어와 OS가 강하게 결합된 벤더 락인(Vendor Lock-in) 문제가 컸기 때문에 대규모 클라우드 환경에서 비용을 절감하고 다양한 화이트박스 스위치를 유연하게 제어할 수 있는 표준화된 오픈소스 OS의 필요성으로 SONiC이 등장

 

2. SONiC의 아키텍처 및 핵심 기술

(1) SONiC의 아키텍처

SONiC 아키텍처

(2) SONiC의 핵심 기술

구분핵심 기술역할
데이터 관리 측면Docker 컨테이너– 모든 기능이 개별 도커 컨테이너로 분리되어 구동
– 장애 발생 시 해당 컨테이너만 재시작으로 안정성 확보
Redis 데이터베이스– 독립된 컨테이너는 인메모리 DB로 정보를 공유
– 모든 네트워크 상태가 Redis에 실시간 동기화
H/W 추상화 측면SAI (Switch Abstraction Interface)– 다양한 ASIC의 하드웨어 제어를 API로 표준화
– 칩 종류에 관계없이 동일한 코드로 스위치를 제어
SwSS (Switch State Service)– SwSS는 상위 라우팅의 상태 변화를 수신
– 이를 SAI 표준 규격으로 변환하여 전달
라우팅 제어 측면Syncd (Synchronization Daemon)– Syncd는 Redis와 하드웨어 상태를 동기화
– SAI를 통해 하드웨어 레지스트리를 직접 제어
FRRouting (FRR)– FRR은 BGP·OSPF 등 표준 라우팅 프로토콜을 처리
– 데이터센터 내 대규모 트래픽 경로를 학습하고 제어
  • SONiC은 하드웨어 종속을 해소 가능한 오픈소스 네트워크 운영체제이지만 하드웨어 기능 파편화와 시스템 아키텍처의 복잡성으로 인해 디버깅 어려움 등 한계점 존재

 

3. SONiC의 한계점 및 대응 방안

구분한계점대응 방안
H/W 측면하드웨어/칩셋별 지원 기능 파편화– HCL 사전 검증과 CI/CD 기반 테스트 자동화 구축
– 사전 검증된 화이트박스 스위치를 선별하여 표준화
S/W 측면시스템 아키텍처 복잡성으로 인한 디버깅 어려움– gNMI 텔레메트리로 State DB 변화를 실시간 추적
– 컨테이너 덤프 분석 도구를 모듈화하여 자동 배포
  • 최근 네트워크 분야는 대규모 AI 클러스터와 엔터프라이즈 에지 영역으로 확장이 가속화되는 추세이며, SONiC은 RoCEv2 기반의 무손실 네트워크 제어와 텔레메트리 기반 자동화를 통해 클라우드 오픈 네트워킹의 표준 OS가 될 것으로 전망

 
[참고]

  • SONiC Foundation, Deep dive into SONiC Architecture & Design, 2024.3

콘텐츠 사용 시 출처 표기 부탁 드리고, 댓글은 큰 힘이 됩니다^^