BE 네트웍스 블로그

SONiC NOS와 함께 작업하기 전에 알았더라면 좋았을 것들 - CCIE의 관점

Cisco IOS, NX-OS, Junos와 같은 기존 네트워크 운영 체제를 수년간 숙달했다면 다음과 같이 분리된 플랫폼으로 전환하는 것이 좋습니다. SONiC (클라우드에서 개방형 네트워킹을 위한 소프트웨어)는 당황스러운 경험이었습니다. CCIE로서 저는 모든 네트워크 OS를 다룰 수 있는 핵심 역량을 갖추고 있다고 생각했습니다. SONiC는 저를 겸손하게 만들었습니다. 강력한 플랫폼이지만 매우 다른 사고방식과 기술을 요구하는 플랫폼입니다. SONiC 여정을 시작하려는 분들을 위해 제가 미리 개발했더라면 좋았을 핵심 기술을 소개합니다.

1. 기본을 넘어선 리눅스 기초

SONiC은 Linux를 기반으로 구축되었습니다. 기본 OS가 숨겨져 있는 기존 NOS와 달리 SONiC은 시스템드, 컨테이너, 배시 스크립트 등 모든 것을 노출합니다. 기본 Linux만으로는 충분하지 않습니다. 익숙해야 합니다:

  • 파일 시스템 탐색하기
  • var/log/에서 로그 읽기
  • 시스템 서비스 문제 해결(systemctl 상태, journalctl)
  • Docker를 통해 컨테이너화된 서비스 관리하기(docker 실행, docker 로그)

SSH 또는 핑을 활성화하는 것 외에는 Linux CLI에 손을 대지 않았다면 금방 길을 잃게 될 것입니다.

2. 컨테이너화된 아키텍처 이해

SONiC은 마이크로서비스 기반입니다. 각 네트워킹 기능(BGP, LLDP, DHCP 릴레이)은 자체 Docker 컨테이너에서 실행됩니다. 즉

  • 로그는 컨테이너별로 다릅니다.
  • 네트워킹 네임스페이스는 트래픽을 격리할 수 있습니다.
  • 장애는 시스템의 나머지 부분에 영향을 주지 않고 특정 컨테이너로 격리할 수 있습니다.


저는 모든 것이 중앙 집중화되어 있는 Cisco IOS에서 자랐기 때문에 '모놀리식 OS'의 본능을 잊어야 했습니다. 라우팅 결정이 한 컨테이너에서 이루어지고 인터페이스가 다른 컨테이너에서 관리될 때 문제 해결은 매우 달라집니다.

3. Redis 및 SONiC DB 모델로 작업하기

SONiC은 구성, 상태, 기본 하드웨어 추상화 계층 사이의 중개자로 Redis DB를 사용합니다. CONFIG_DB, STATE_DB, APPL_DB 등 여러 개의 논리적 DB가 있으며, 각각 고유한 용도로 사용됩니다. 알아야 할 것이 있습니다:

  • DB 항목을 쿼리하는 방법(redis-cli -n 키 *)
  • 스키마(SONiC YANG 모델 도움말)
  • swss 프로세스가 Redis에서 데이터를 소비하는 방법


미리 시간을 더 투자해 SONiC의 DB 스키마와 오케스트레이션 파이프라인을 이해했다면 많은 고민을 덜 수 있었을 텐데 하는 아쉬움이 남습니다.

4. Git 및 소스 코드 탐색

SONiC은 오픈 소스입니다. 무언가가 고장 나거나 예상대로 작동하지 않을 때, 검색을 통해 공개 GitHub 문제를 찾아보거나 소스 코드를 읽어보거나 과감하게 시스템을 직접 빌드/디버그할 수도 있습니다. 이 경우 다음과 같은 사항을 확실히 파악하는 것이 도움이 됩니다:

  • Git 기본(복제, diff, 브랜치)
  • Python/C++ 코드 읽기(특히 swss, syncd, orchagent에서)
  • SONiC 빌드 시스템을 통한 이미지 빌드


참고로 제조업체, 통합업체 또는 파트너로부터 SONiC에 대한 지원을 받는다면 위와 같은 작업을 할 필요가 없겠지만, 저는 항상 새로운 것을 배우려고 노력합니다.

5. 데브옵스 및 자동화 사고방식

SONiC은 원래 클라우드 규모 운영자를 위해 구축되었습니다. 수동 구성은 권장하지 않습니다. 포용:

  • 테라폼 리소스 블록
  • Ansible 플레이북
  • config_db.json을 통한 설정 관리
  • 이미지 관리 및 ZTP
  • 네트워크 변경을 위한 CI/CD 파이프라인


여전히 CLI를 통해 한 줄씩 구성을 편집하고 있다면 잘못하고 있는 것입니다.

결론

SONiC는 단순한 NOS가 아니라 미래의 네트워크 기능을 지원하는 플랫폼입니다. SRE처럼 생각하는 엔지니어에게는 보상을 주고 기존 워크플로우에 집착하는 엔지니어에게는 불이익을 줍니다. 저는 SONiC 경험을 통해 많이 성장했지만, 다시 돌아갈 수 있다면 Linux, 컨테이너, 자동화 분야에서 더 많은 준비를 할 것입니다. 개방형 네트워킹의 미래인 SONiC에 도달할 때 레벨을 올릴 준비를 하세요.

Josh Saul 사진

조쉬 사울

제품 마케팅 부사장

Josh Saul은 25년 이상 오픈 소스 네트워크 솔루션을 개척해 왔습니다. 설계자로서 그는 GE, Pfizer, NBC Universal의 핵심 네트워크를 구축했습니다. Cisco에서 엔지니어로 근무할 때는 포춘 100대 금융 부문의 고객에게 자문을 제공하고 고객에게 새로운 기술을 전파했습니다. 최근에는 VMware(Broadcom에 인수), Cumulus Networks(Nvidia에 인수), Apstra(주니퍼에 인수)에서 마케팅 및 제품 팀을 이끌었습니다.

ko_KR
문의하기
저희는 네트워크에 대해 이야기하는 것을 정말 좋아합니다!