네트워킹, MS 주도로 바뀌나

MS, 클라우드 오픈네트워킹용 소프트웨어 발표

컴퓨팅입력 :2016/03/25 17:46

데이터센터 네트워킹 산업의 주도권이 시스코시스템즈에서 소프트웨어플랫폼 회사로 넘어갔다. 특히 네트워킹에서 큰 존재감을 보이지 않았던 마이크로소프트(MS)의 영향력 확대가 눈에 띈다.

언제부턴가 네트워킹 솔루션업체들이 MS 행보에 힘을 보태는 모습이다. 서버 가상화 유행시기 VM웨어 아래로 서버, 스토리지업체가 줄을 섰던 것을 떠올리게 한다.

MS는 이달 9일 캘리포니아주 새너제이에서 열린 오픈컴퓨트프로젝트(OCP)서밋에서 ‘클라우드 오픈네트워킹용 소프트웨어(SONic)’를 발표했다.

소닉은 스위치, 라우터 같은 네트워크 디바이스를 작동하기 위한 소프트웨어 네트워킹 요소의 모음이다. SDN 장비에서 특정 기능, 애플리케이션을 구현하기 위해 필요한 기초요소를 제공한다.

소닉은 네트워킹 하드웨어의 리눅스 OS에 기반해 작동한다. 아키텍처는 플랫폼어브스트랙션서비스(PAS), 스위치어브스트랙션인터페이스(SAI), 소닉 오브젝트라이브러리 API, 스위치 스테이트 서비스(SwSS) 등으로 구성된다.

소닉은 스위치 하드웨어를 시스템디바이스로 인지하는데, 팬, 전원, 상태 LED, 네트워크 트랜시버 등까지 포함한다.

소닉 아키텍처

PAS는 트랜시버, 팬, 전원, LED 등 하드웨어부품을 제어하기 위한 추상화된 인터페이스다. 모든 형태의 시스템디바이스를 플랫폼 독립적으로 추상화한 것으로 시스템디바이스인터페이스(SDI) API라 불린다. 사용자는 시스템 디바이스 드라이버만 있으면 SDI API를 사용해 하드웨어를 제어할 수 있다.

SAI는 지난해 같은 행사에서 MS에서 공개한 것이다. SAI는 네트워크 장비의 패킷포워딩을 담당하는 ASIC을 통제하게 해주는 인터페이스다. 그동안 스위치의 ASIC은 제조사별로 맞춤제작됐다. 제조사의 독자적인 기능이 각사의 ASIC에 기반해 작동했다. SAI는 SDN 앱을 ASIC 종류에 상관없이 동일하게 사용할 수 있게 해준다.

SAI는 작년 7월 OCP의 공식 표준으로 정해졌다. 현재 아리스타, 브로드컴, 델, 멜라녹스 등 OCP 참여 네트워킹 장비업체에서 SAI를 기본 지원한다.

소닉 SwSS 구조

SwSS는 소닉의 핵심이다. 스위치 ASIC이 데이터를 저장하고 동기화하기 위한 API와 데이터베이스 인터페이스를 제공한다. ASCI 초기화(initialization), 컨피규레이션, 현재 상태(current status) 등을 포함한다.

네트워크 애플리케이션은 앱 DB(APP_DB)에서 읽기와 쓰기를 수행한다. 애플리케이션이란 ACL 제어, QoS, 로드밸런서, 넷링크 라우트 싱커 등을 일컫는다.

오케스트레이션 에이전트는 앱DB과 ASIC DB 사이에서 데이터를 읽고 쓴다. 애플리케이션이 명령어를 던지면 오케스트레이션 에이전트가 앱DB에서 이를 받아 ASIC DB를 통해 ASIC 작업을 제어한다.

SwSS의 DB는 키밸류 DB다. MS는 아키텍처 문서를 통해 언어 독립적 인터페이스, 데이터 지속성 수단, 복제, 멀티프로세스 커뮤니케이션 등을 제공하기 때문이라고 선택이유를 설명했다. 레디스(Redis)가 기반 DB엔진으로 쓰였는데, DB엔진은 향후 변경될 수 있다.

SDN 앱을 만드는 개발자는 구현하고자 하는 기능을 위해 세부적으로 하드웨어 인터페이스를 신경쓰지 않아도 된다. 레이어3 라우팅, 레이어2 브리징(bridging), ACL, QoS, 텔레메트리 스트리밍, 터널링, 링크 집합, 로드밸런싱, 정책 기반 라우팅 등을 구현할 수 있다.

소닉 오브젝트 라이브러리는 SwSS와 통합돼 있다. 소닉 애플리케이션과 외부 애플리케이션 사이의 소통을 중개한다. 오브젝트라이브러리 인프라는 클라이언트와 서버의 애플리케이션 형태를 정의한다. 클라이언트 앱은 오브젝트의 생성, 설정, 획득, 삭제 등을 명령한다. 서버 앱은 클라이언트에서 요청된 명령을 실행한다.

소닉 오브젝트 라이브러리는 ‘퍼블리서/서브스크라이버’ 모델을 지원한다. 서버 앱이 관련 이벤트를 만들면, 클라이언트 앱은 특정 이벤트와 오브젝트를 등록해뒀다가 이벤트 발생 시 작동한다. MS는 오브젝트 중심의 운영을 가능하게 하고, 클라이언트와 서버 앱 운영을 분리시킬 수 있다고 설명했다.

소닉은 오브젝트 라이브러리와 인터페이스로 C와 C++, 파이썬을 제공한다.

소닉과 SAI을 활용해 BGP라우팅을 구현한 예시

SDN은 중앙집중형 통제 시스템에서 네트워크 장비의 트래픽 처리와 기능 관리를 지시할 수 있도록 설계, 구축된 네트워크 인프라다. 특히 오픈소스를 이용해 네트워크 장비 제조사에 상관없이 통합된 네트워크 환경을 구현한다는 목적에서 정립됐다.

SDN을 구현하는 방식은 크게 두 갈래다. 하나는 네트워킹 장비업체가 SDN 기능을 제공하는 것이고, 다른 하나는 오픈소스로 사용자가 직접 SDN을 개발하는 것이다.

장비업체에서 제공하는 SDN은 각사의 ASIC과 OS 의존성을 갖는다. 시스코가 특히 강한 종속성을 보인다. 시스코 장비에서 활용하는 SDN 앱을 다른 제조사의 장비에서 쓸 수 없다.

반면, 여러 네트워크 장비업체들이 수정을 가하지 않은 리눅스와 범용 ASIC으로 제공하는 추세다. 아리스타네트웍스, 델, HPE 등의 스위치가 대표적이다. 제조사는 리눅스 환경에서 작동하는 SDN 앱을 제공하거나, 앱 개발도구를 제공한다.

MS의 SAI는 리눅스 커널의 하드웨어 접근 경로고, 소닉은 커널위에 올라가는 앱을 개발할 때 하드웨어 제어를 쉽게 하도록 도와준다. 소닉도 당연히 데비안 리눅스 환경에서 돌아간다.

관련기사

SAI와 소닉의 등장으로 SDN을 도입하려는 사용자는 전보다 쉽게 네트워킹 애플리케이션을 만들고 관리할 수 있게 됐다. 시스코에서 제공하는 기능을 만드려면 작동 논리 구축 이전에 복잡한 네트워킹 설정을 해야 하는데, 이 과정을 간소화해준다.

결과적으로 네트워킹 장비업체는 고객을 붙잡아둘 개성을 잃고 있다. 시스코의 시장 헤게모니가 MS로 넘어가는 것이다. 시스코는 새로운 네트워크 아키텍처를 통해 더 강력하고 매력적인 기능을 제공한다는 전략을 취하고 있다. 서버, 스토리지 시장처럼 네트워킹 시장도 결국 OS 개발사 주도로 변할 것인지 주목된다.