본문

OpenStack Neutron #1. Neutron vs. Nova-network

Neutron프로젝트는 오픈스택의 네트워크 환경을 담당한다. Neutron 위키페이지를 인용하자면 Neutron은 '오픈스택 서비스들(Nova)에 의해 관리되는 인터페이스 장치(vNIC)간에 NaaS(사용자가 원하는대로 제공되는 네트워크)기능을 제공하기 위한 오픈스택 프로젝트'이다. 또한 Neutron은, '온디맨드의, 확장가능한, 기술에 종속적이지 않는 네트워크 추상화를 제공하기 위한 서비스들과 이에 관련된 라이브러리들의 구현'을 그 목표로 한다. 여기에서 중요한 단어는 '추상화'이다. 이에 대해서는 다음 게시물에서 다루기로 한다.


Neutron이 나오기 전까지 OpenStack의 네트워크를 담당하는것은 nova-network의 몫이었다. nova-network는 컴퓨트를 담당하는 nova 프로젝트 내에서 네트워크를 관리하는 프로세스이며, NAT, DHCP, DNS등의 기능을 제공하였다. nova-network를 사용하여 구축한 네트워크를 legacy network라 부르며, 이 환경에서는 가상머신에 할당할 Floating IP가 오픈스택이 설치되는 네트워크의 IP대역에 한정되는등의 문제가 있었다. 또한 테넌트 네트워크를 제어할 수 없으며 추가적인 네트워크 서비스들(방화벽등)을 제공하는데 한계가 있었다.


[그림 1,2] Nova기반 네트워크와 Neutron기반 네트워크 (출처: OpenStack Quantum Intro (OS Meetup 3-26-12))


따라서 이를 극복하기 위해 Folsom버전부터 공식적으로 Neutron이 등장하게 되었다. (처음에는 Quantum으로 이름을 지었다가 상표권분쟁으로 Neutron으로 개명함) 물론 작은 규모 배치에는 nova-network으로도 충분하지만, 데이터센터와(특히 분산환경) 같은 환경에서는 Neutron이 필수적이다. VLAN만을지원하던 nova에서 발전하여 VXLAN, NVGRE등의 오버레이 터널링을 지원함으로써 더욱 원활한 테넌트 기능을 제공하고, 기존의 LinuxBridge에 더불어 OVS까지 지원하여 고급 네트워킹 기능을 수행할 수 있게 되었다. 그리고 API를 통하여 보안 및 정책, QoS 관리가 가능하고 상태모니터링등의 기능도 수행할 수 있게 되었다.


Nova-network에 대비하여 Neutron이 갖는 장점으로는 다음이 있다.

  • 클라우드 테넌트에 API를 제공하여, 더욱 풍성한 네트워킹 토폴로지 구현괴 고급 네트워크 정책설정이 가능하다.
    • 멀티티어 웹 어플리케이션 토폴로지 생성
  • 고급 네트워크 기능들을 위한 혁신적인 플러그인들을 사용할 수 있다.
    • L2-inL3 터널링을 사용하여 VLAN의 한계를 극복하고 E2E QoS보장 및 NetFlow와같은 모니터링 프로토콜을 사용할 수 있다.
  • 오픈스택 테넌트 네트워크에 적용되는 고급 네트워크 서비스들을 제공할 수 있다.
    • LB-aaS, VPN-aaS, firewall-aaS, IDS-aaS (not implemented), data-center-interconnect-aaS.
  • Horizon GUI에 기능추가
    • Neutron L2/L3 네트워크 및 서브넷 생성/삭제
    • 특정 Neutron 네트워크상에 가상머신 동작시키기
  • API 확장 프레임워크 제공
    • "Provider Network"는 Neutron L2네트워크를 실제 데이터센터내의 특정 VLAN으로 매핑시킬 수 있다.


댓글

Holic Spirit :: Tistory Edition

design by tokiidesu. powerd by kakao.