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