시스코 코리아 블로그

[칼럼] 완전히 새롭게 태어난 시스코 Open NXOS!

1 min read



시스코는 최근 Nexus 스위치의 내부 구조를 개선하고 스위치가 동작하는데 필요한 데이터를 하나의 저장소에서 관리하는 새로운 형태의 Nexus 장비의 운영체제, Open NXOS를 발표했습니다.

Open NXOS는 ACI(Application Centric Infrastructure)로 잘 알려진 Nexus9000 개발팀에서 약 2년 전부터 진행된 Nexus장비의 운영체제 리팩토링 프로젝트였다고 합니다. 소프트웨어에서 리팩토링은 기능을 동일하게 유지하면서 소프트웨어 내부 구조를 효율적으로 변경하는 방법을 이야기하는데요.

오늘 칼럼을 통해 Open NXOS에서 크게 변경된 모습을 3가지 측면으로 자세히 살펴보도록 하겠습니다.

Linux와의 완벽한 통합! 

첫번째 변경사항은 Linux와의 완벽한 통합입니다. NXOS가 Linux 커널을 사용하고 있다는 사실! 기존 NXOS에서 Linux 의 기능 중 일부만 사용자에게 제공되었다면, Open NXOS에서는 Linux 기능의 대부분을 사용자에게 제공하는 형태로 변경되었습니다.

네트워크 드라이버를 통합해서 모든 Nexus 인터페이스가 Linux 쉘(shell)에서도 접근할 수 있도록 변경되었고, NXOS의 VRF(Virtual Routing & Forwarding)가 Linux의 네트워크 네임스페이스(namespace)로 1:1 매핑되어 이젠 Linux 쉘 환경에서 VRF에 대한 정보를 확인할 수 있습니다.

또한 Linux의 패키지 관리툴인 RPM(Redhat Package Manager)YUM(Yellowdog Updater Modified)을 도입하여 신규 기능을 위한 소프트웨어 설치 시 복잡한 의존 관계를 간단하고 편리하게 적용할 수 있도록 하였습니다. Linux의 장점과 NXOS 네트워크 스위치의 장점이 결합되어 커스텀 라우팅 소프트웨어도 NXOS를 통해 가능하게 되었지요.

여기에 Linux 컨테이너(LXC)기술을 활용하며 파트너, 고객사 및 3rd 파티 개발자가 Open NXOS에서 동작하는 Linux 어플리케이션을 개발하고 Nexus 장비에서 구동할 수 있는 환경을 제공하고 있습니다. 이를 통해 기존 Linux 어플리케이션을 복잡한 코드 수정없이 Open NXOS 환경에서 동작 시킬수 있기 때문에 Linux 기반 에코시스템을 활용할 수 있으며, 다양한 네트워크 어플리케이션을 Nexus에서 구동할 수 있는 장점을 가지게 됩니다.

이미 다양한 Linux 기반 오픈소스 프로젝트가 Open NXOS와 연동되어 사용되고 있으며, 대표적으로 Puppet, Chef 및 Ansible와 같은 형상 관리툴 그리고 tcollector, Collectd, Nagios 및 Ganglia같은 모니터링툴이 있습니다.

모델(데이터) 기반 아키텍처 

두번째는 이미 ACI 컨트롤러인 APIC(Application Policy Infrastructure Controller)에도 도입된 모델 기반 아키텍처입니다. 모델이라는 용어가 다소 어려우실수 있는데요. 모델은 쉽게 데이터로 이해하시면 됩니다.

기존의 네트워크 장비가 기능(OSPF, BGP, QoS 및 VPN)마다 설정 정보와 상태정보를 따로 따로 관리했었다면, Open NXOS에서는 DME(Data Management Engine)가 모든 기능에 대한 설정 정보와 상태 정보를 계층적인 트리 구조로 관리하도록 진화되었습니다. 이미 APIC에서 MIT(Management Information Tree)란 이름과 개별 항목을 MO(Managed Object)란 이름으로 소개하고 있는 이 개념이 Open NXOS에도 동일하게 적용되어 있습니다.

이렇게 변경되면 어떤 장점이 있을까요? 

가장 큰 장점은 네트워크 장비에서 풍부한 API를 통해 많은 정보들을 효과적으로 제공할 수 있다는 점입니다. 이를 통해 네트워크 자동화를 효과적으로 구현하고, 다양한 시스템과 연동시 설정정보, 상태정보 및 오류정보를 구분해서 쉽게 접근할수 있도록 해줍니다.

모델 기반 아키텍처의 장점을 십분 활용하자 

마지막으로, 모델 기반 아키텍처의 장점을 100% 활용할 수 있는 REST 기반 NX-API탄생입니다. 이미 Nexus 장비에서는 다른 타입의 장비와는 달리 API를 제공해오고 있습니다. 기존의 NX-API와 비교를 하자면 기존 NX-API는 CLI 명령어를 JSON-RPC 방식으로 Nexus 스위치에 전달하는 방식이였구요. 새로운 NX-API REST는 진짜 REST 방식으로 CLI(command line interface) 명령어가 아닌 Managed Object(MO)를 전달하는 방식입니다.

Nexus9000 OpenNXOS

이 방식은 기존에 네트워크 장비를 설정하는 방식에 익숙한 네트워크 엔지니어에게는 낯선 방식이지만, 개발자들에게는 네트워크 스위치의 동작 및 상태에 대해 잘 정의된 개념을 제공하여, 네트워크 스위치 기능에 대한 개념을 쉽게 이해하고 자동화 기능을 연동하는데 큰 도움이 될 것으로 예상됩니다.

좀 더 구체적으로 스위치 호스트네임을 설정하는 예를 살펴보도록 하겠습니다. 기존의 CLI는 어떻게 설정하느냐에 초점을 둔 방식이라면 새로운 REST는 무엇에 초점을 둔다는 겁니다.

즉, 기존에는 스위치 호스트네임을 설정하기 위해서는 우선 설정모드로 들어가는 명령어인 configure terminal 로 설정 모드로 진입하고, 변경하고 싶은 호스트네임에 값을 지정 하는거죠.

예:

configure terminal ;  hostname OpenNXOS1

REST (Representational State Transfer)방식은 설정 변경을 위해서 HTTP 포스트 방식을 사용하여, sys 라는 Managed Object 에 있는 네임이라는 속성값 변경을 통해 같은 작업을 제공하게 됩니다. 그래서 URL을 /mo/sys로 지정하고 콘텐츠타입을 json으로 지정하고 필요한 속성 값을 json 포맷으로 넘겨줍니다.

예:

POST http://switch-ip/api/mo/sys.json

{ “attributes”: { “name” : “OpenNXOS1”} }

Open NXOS에서 적용한 모델 개념은 네트워크 장비의 전체에 적용할수 있는 범용적인 방법이며 모든 네트워크 장비가 동일한 방식으로 설정할 수 있습니다. 또한 필요한 항목 값을 쉽게 조회, 변경할 수 있다는 장점이 있습니다. 이러한 모델 기반 접근은 이미 네트워크 가상화 오케스트레이션을 위한 필수 컨셉으로 이야기되고 있는 NETCONF/YANG에서 사용되고 있습니다.

지금까지 Open NXOS의 주요 변화에 대해서 살펴보았습니다. 이러한 변화는 네트워크 장비의 전반적인 진화 방향과 같이 이해하시는 것이 필요할것 같습니다. Linux의 기능 및 장점이 점점 더 많이 네트워크 장비에 포함되어, 장비의 기능을 보다 범용적인 방법으로 활용할수 있도록 만들어지고 있습니다. 또한 3rd 파티에서도 네트워크 장비에서 구동하는 소프트웨어를 개발/배포하는 형태로 발전하고 있습니다.

이는 더 이상 네트워크 서비스를 물리적인 박스로 한정짓는 시대가 지나갔다는 뜻입니다. 

어쩌면 이후에는 Linux 서버인지 네트워크 스위치인지에 대한 구분도 없어지지 않을까 생각해 봅니다. 

이미 데이터센터 스위칭 부문에서는 다양한 변화가 일고 있습니다. SDN(Software-defined networking)의 핵심 마켓 역시 데이터센터를 통해 이루어지고 있고, 많은 데이터를 처리하는 대형 사업자들이 자사에서 직접 개발한 스위치를 통해 비용과 효과, 두 마리 토끼를 잡기 위해 노력하고 있다는 뉴스도 쉽게 접해볼 수 있습니다.

Open NXOS의 변화는 유연하고 신속한 데이터센터 네트워크를 위한 피할 수 없는 변화라고할 수 있습니다. 이전과는 다른 새로운 변화, 데이터센터 네트워크에 일게된 이 변화의 바람을 Open NXOS와 함께 준비해야할 때입니다.

▶ 칼럼 다운 받기 (클릭)

Cisco IT Connect

시스코 전문가들의 칼럼에 담긴 최신 IT 트렌드!

이 글은 시스코 김형수 SDN 스페셜리스트가 작성한 칼럼입니다.

 

댓글 쓰기