OpenStack 분산 라우터(DVR) 기술 분석

Analaysis of OpenStack Neutron Distributed Virtual Router Technology

저자
박종근, 윤승현, 이범철 / 네트워크컴퓨팅융합연구실
권호
30권 3호 (통권 153)
논문구분
일반 논문
페이지
105-114
발행일자
2015.06.01
DOI
10.22648/ETRI.2015.J.300311
초록
다양한 규모와 형태의 클라우드 인프라를 보다 쉽게 구축하고 관리할 수 있는 공개 소프트웨어 기반의 클라우드 운영체제인 OpenStack은 Icehouse 배포판 이후부터 새로운 기능의 추가 못지 않게 안정성 확보에 주력하면서 엔터프라이즈 클라우드를 위한 기본 기능이 성숙 단계에 진입하고 있는 것으로 판단된다. 다만, 클라우드 네트워킹을 담당하는 Neutron의 경우 네트워크 기능 가상화(NFV: Network Functions Virtualisation) 기술의 출현으로 더욱 많은 관심을 받고 있으나 아직 기술의 복잡성, 성능 및 고가용성 등에 대한 우려 등으로 폭넓게 활용되지 못하고 있다. 이에 따라 Neutron 프로젝트에서는 분산 라우터(DVR: Distributed Virtual Router) 기술과 L3(Layer 3) 고가용성 기술 등을 새롭게 선보이게 되었다. 본고에서는 지난 10월, 10번째로 발표된 Juno 배포판의 특징을 간략히 살펴본 다음, Neutron 프로젝트에서 꾸준히 요구되어 왔던 분산 라우터(DVR) 기술에 대한 개발 현황과 특징 그리고 동작 방식에 대해 정리한다.
   3258 Downloaded 3918 Viewed
목록

Ⅰ. 서론

지난 2010년 Austin 배포판을 시작으로 알파벳 순서에 따라 6개월마다 새로운 배포판을 공식 발표하고 있는 공개 소프트웨어 기반의 OpenStack 프로젝트는 다양한 규모와 형태의 클라우드 인프라를 보다 쉽게 구축하고 관리할 수 있는 클라우드 운영체제로서 이에 대한 관심과 활용 사례는 전 세계적으로 급증하고 있는 추세이다[1]. 특히 프로젝트 초기에는 북미 지역의 개발자와 기업들이 주축이 되어 프로젝트를 이끌어 왔다면, 최근에는 유럽뿐만 아니라 중국, 일본, 인도 등 아시아 지역의 개발자도 활발히 프로젝트에 주도적으로 참여함으로써 명실상부 글로벌 프로젝트로서의 면모를 강화해 나가고 있다.

지난 2014년 4월, 9번째로 공식 발표된 Icehouse 배포판 이후부터 새로운 기능의 추가 못지않게 안정성 확보에 주력하면서 엔터프라이즈 클라우드의 구축 및 운용을 위한 기본 기능은 점차 성숙 단계에 진입하고 있는 것으로 판단된다. 특히 HP, Red Hat, Mirantis, Canonical 등 글로벌 솔루션 벤더의 공격적인 시장 확대 및 점유 경쟁이 가속화됨에 따라 OpenStack의 안정화는 물론 상용 서비스에서의 활용사례는 더욱 증가할 것으로 예상된다.

다만, OpenStack 프로젝트에서 클라우드 네트워킹을 담당하는 Neutron의 경우에는 활용 사례가 꾸준히 증가하고는 있지만, 여전히 기술의 복잡성, 성능, 고가용성 등에 대한 우려의 목소리가 존재하고, 동시에 대안 기술로서 Nova-network이 아직 상존함에 따라 Neutron이 보편적으로 널리 활용되지 못하고 있기도 하다.

사실상 Neutron은 NVGRE(Network Virtualization using Generic Routing Encapsulation), VxLAN(Vir-tual Extensible Local Area Network)을 통한 멀티테넌시 확장 지원, 동적인 네트워크 프로비저닝 및 IP (Internet Protocol) 주소 관리, 방화벽, 부하분산장비 등 다양한 네트워크 서비스 장비의 제어 등 종전의 Nova-network이 갖는 클라우드 네트워크 기술의 한계를 극복하고 테넌트별 다양한 네트워크 서비스 제어를 통해 완전한 멀티테넌트 기반의 클라우드 네트워크 환경 제공을 목표로 개발되었다[2]. 그러나, 가상 라우터를 비롯한 다양한 네트워크 서비스가 모두 네트워크 노드에 위치함에 따라, 네트워크 노드에 온갖 트래픽이 집중되고 단일장애점(SPOF: Single Point of Failure)으로서의 구조적 제약을 가지는 한계가 있다.

이와 같은 Neutron의 구조적 제약사항을 해결하기 위해 지금까지 복수의 네트워크 노드 허용, L3(Layer 3) 고가용성 보장, 가상 라우터의 분산 배치 등의 기술이 개발되어 오고 있으며, 이를 통해 Neutron의 안정성 및 고가용성을 지속적으로 제고하고 있다.

본고에서는 먼저 OpenStack Juno 배포판의 특징을 간략히 살펴본 다음, Neutron에 새롭게 등장한 기술 중에서 분산 라우터(DVR: Distributed Virtual Router) 기술에 대한 개발 현황과 특징 그리고 동작 방식에 대해 분석한다.

Ⅱ. OpenStack Juno 특징

OpenStack Foundation은 지난 10월 16일, 10번째 배포판인 OpenStack Juno를 공식 발표하였다. 전체 133개 기업 또는 기관에 소속된 약 1,400여 명의 개발자가 Juno 배포판의 개발에 참여하였으며, 이는 지난 4월에 발표된 Icehouse 배포판에 비해 약 16% 정도 증가한 수치이다. 전 세계의 기업 및 기관 소속 개발자 중에서도 HP, Red Hat, Mirantis 순으로 많은 기여를 한 것으로 집계되었으며, 이는 OpenStack 기반의 공격적인 시장 확보 경쟁과도 무관하지는 않다. OpenStack Juno 배포판에서는 총 342개의 새로운 기능이 추가 개발되었으며 약 3,200여 개의 오류가 해결되었고, 컴퓨팅, 네트워크, 스토리지 장비에 대한 97개의 드라이버 또는 플러그인 지원이 추가된 것으로 발표되었다[1][3].

이전 Icehouse 배포판의 특징은 새로운 기능의 추가보다는 프로젝트의 안정성을 제고하고, 프로젝트 간 통합을 강화한 것으로 요약할 수 있다[4]. 이에 반해 금번 Juno 배포판의 특징은 다음과 같이 크게 두 가지로 정리할 수 있다.

- 네트워크 기능 가상화(NFV: Network Functions Virtualisation) 지원을 위한 기반 마련

- 데이터 처리를 위한 Sahara 프로젝트 추가

먼저 네트워크 기능 가상화 지원과 관련해서는 2014년 5월 Atlanta에서 개최된 Design Summit에서 NFV WG(Working Group)을 구성하고, OpenStack 환경에서 NFV 워크로드를 실행하기 위한 유스케이스의 분석과 함께 Nova 프로젝트를 중심으로 새로운 기능이 개발되었다. 또한 Kilo 배포판 이후에도 우선 Nova 프로젝트와 Neutron 프로젝트를 중심으로 다양한 기능이 새롭게 개발될 전망이다.

Sahara 프로젝트는 Hadoop과 Spark 기반의 빅데이터 클러스터를 자동으로 구성하고 관리할 수 있는 것으로서, Juno 배포판에서 11번째 공식 프로젝트로 포함되었다.

Juno 배포판에서는 기존 프로젝트의 안정화뿐만 아니라 새로운 기능 개선도 많이 이루어졌는데, 본고에서는 분산 라우터(DVR) 기술이 포함된 Neutron 프로젝트에 대해서만 특징을 좀 더 살펴보기로 한다. Neutron의 Juno 배포판 특징은 다음과 같이 크게 네 가지로 꼽을 수 있다.

- 분산 라우터(DVR)

- L3 고가용성

- IPv6(IP Version 6) 지원

- Security Groups 개선

분산 라우터(DVR) 기술은 네트워크 노드에 집중되었던 가상 라우터를 가상 머신이 생성되는 각 컴퓨트 노드에 분산 배치함으로써 네트워크 노드로의 트래픽 집중을 해결하고 네트워크 노드의 장애 시에도 가상머신 간 또는 외부 단말과의 통신을 일정 부분 보장하기 위한 기술이다. L3 고가용성 기술은 VRRP(Virtual Routing Redundancy Protocol)을 이용하여 라우터의 단일 장애점을 해소하고 자동절체(auto-failover) 기능을 제공함으로써 고가용성을 보장하는 기술이다. 또한 사용자의 테넌트 네트워크 구성에서도 IPv6를 공식 지원한다. 각 컴퓨팅 노드마다 Linux iptables를 이용하여 가상머신의 트래픽을 필터링하기 위한 Security Group의 경우, 단일 컴퓨트 노드에 생성되는 가상 머신의 수와 가상 네트워크의 수가 증가함에 따라 iptables의 필터링 규칙(chain rule)이 폭증하게 되며 결국 전반적인 패킷 필터링 성능 저하를 초래한다. 따라서 Juno 배포판에서는 Linux iptables과 ipset을 조합하여 필터링 규칙을 계층적으로 구성함으로써 검색 효율을 개선한 것이 특징이다.

다음으로 Kilo 배포판의 특징으로 예상되는 사항을 정리한다. 오는 2015년 4월 30일에 Juno의 후속으로 공식 발표될 예정인 Kilo 배포판에서는 컴퓨팅 노드로서 베어메탈(bare metal) 서버를 운용할 수 있는 Ironic 프로젝트가 신규 공식 프로젝트로 추가될 예정이며, Ironic 프로젝트의 컴퓨트 드라이버는 이미 Juno 배포판에 포함되어 있기도 하다. 또한 Kilo 배포판에서는 네트워크 기능 가상화(NFV)를 위해 다양한 기능이 추가될 것으로 전망된다. 무엇보다도 Nova 프로젝트와 Neutron 프로젝트를 중심으로 통신장비 수준(carrier-grade)의 클라우드 운영체제를 위한 다양한 기능 개선사항(blueprints)들이 제기되어 있기 때문에, 어떤 기능 개선사항들이 개발되고 또 개발 방향이 앞으로 어떻게 전개될 것인지를 살펴볼 필요가 있다. 더욱이 지난 9월 30일 리눅스 재단(Linux Foundation)에서 발표한 공개 소프트웨어 기반의 네트워크 기능 가상화 플랫폼 개발 프로젝트인 OPNFV(Open Platform for NFV) 프로젝트에서 가상 인프라 관리(VIM: Virtual Infrastructure Manager) 솔루션으로서 OpenStack을 가장 우선적으로 고려하고 있으므로 Kilo 배포판 또는 Liberty 배포판에서 네트워크 기능 가상화와 관련된 다양한 많은 기능이 포함될 것으로 기대된다[5][6].

Ⅲ. 분산 라우터(DVR) 기술

본 장에서는 Juno 배포판에서 새롭게 등장한 Neutron 프로젝트의 분산 라우터(DVR) 기술에 대한 개발 현황과 특징 그리고 동작 방식에 대해 분석한다.

1. 목적 및 배경

OpenStack 기반의 클라우드 인프라 환경에서 클라우드 네트워킹 기술은 Nova-network 또는 Neutron 프로젝트를 통해 제공될 수 있다. OpenStack의 Austin 배포판부터 Nova 프로젝트의 하부 기능으로 포함된 Nova-network과 달리, Folsom 배포판에서 공식 프로젝트가 된 Neutron(초기에는 Quantum으로 프로젝트가 명명되었으나, Havana 배포판부터 Neutron으로 개명됨)은 클라우드 네트워킹을 위한 다양한 고급 기능들을 제공할 수 있다. 그러나 정작 Nova-network에서 제공되었던 기능으로서, 가상머신이 위치한 물리 서버에서 다른 물리 서버를 경유하지 않고 바로 외부망으로 트래픽을 전달할 수 있는 multi-host 기능이 Neutron에서는 제공되지 않으면서 Neutron에서 제공해야 할 주요 기능 개선사항 중 하나로 꾸준히 지적되어 왔다.

특히 Neutron의 구조적 특성상 다양한 네트워크 서비스가 위치하는 동시에 외부망과 직접 연결되는 네트워크 노드에 트래픽이 집중될 수밖에 없고, 네트워크 노드에 장애가 발생할 경우 클라우드 네트워킹 서비스 전체의 장애로 이어질 수밖에 없는 한계를 갖고 있다.

요컨대, 분산 라우터(DVR) 기술의 목적은 위와 같이 네트워크 노드의 단일 장애점 및 트래픽 집중 문제를 해결하여 서비스의 안정성과 고가용성을 제고하고, 네트워크 노드로 인한 클라우드 인프라 확장성의 한계를 해소하기 위해 도입된 기술이다.

2. 설치 및 설정

분산 라우터(DVR) 기술을 활성화하기 위해서는 몇 가지 설치 및 설정사항을 고려해야 한다. 먼저 기존의 중앙집중형 가상 라우터의 경우, 가상 라우터 제어를 위한 L3 에이전트를 네트워크 노드에만 설치하였지만, 각 컴퓨트 노드에 가상 라우터가 분산 배치되는 분산 라우터(DVR)의 경우에는 네트워크 노드뿐만 아니라 모든 컴퓨트 노드에도 L3 에이전트를 설치하여야 한다.

분산 라우터(DVR)를 활성화하기 위한 설정 옵션은 L3 플러그인, L3 에이전트 그리고 L2(Layer 2) 에이전트에 대한 설정으로 나누어 볼 수 있다. 먼저 L3 플러그인 설정은 Neutron의 기본 설정파일인 neutron.conf 파일에서 router_distributed 설정항목의 값을 True로 설정해야 한다. L3 에이전트의 설정사항은 l3_agent.ini 파일을 통해 이루어지는데, L3 에이전트가 설치된 서버가 네트워크 노드인지 또는 컴퓨트 노드인지에 따라 달라진다. 네트워크 노드인 경우에는 agent_mode 설정항목의 값을 dvr_snat으로 설정하고, 컴퓨트 노드인 경우에는 dvr로 설정한다. 만일 기존의 중앙집중형 가상 라우터인 경우에는 네트워크 노드의 이 설정항목 값을 legacy로 설정하여야 한다. 또한, router_delete_na-mespace 설정항목 값을 True로 설정함으로써 L3 에이전트에 의해 각 노드에 생성된 각종 네임스페이스가 가상 라우터 등의 삭제 시 함께 삭제될 수 있도록 한다. 마지막으로 L2 에이전트 설정은 ml2_conf.ini 파일을 통해 이루어지는데, enable_distributed_routing 설정항목과 l2_population 설정항목을 각각 True로 설정하고, 테넌트 네트워크의 유형을 VxLAN 또는 NVGRE로 설정한다.

3. 네임스페이스

중앙집중형의 가상 라우터인 경우에는 L3 에이전트가 하나의 가상 라우터에 대해 하나의 라우터 네임스페이스를 네트워크 노드에 생성한다. 라우터 네임스페이스는 가상 라우터로 들어온 트래픽에 대해 라우팅과 네트워크 주소변환(NAT: Network Address Translation)을 위한 라우팅 테이블과 송신측 네트워크 주소 변환(SNAT: Source NAT) 규칙 및 수신측 네트워크 주소 변환(DNAT: Destination NAT) 규칙을 갖고 있다.

그러나 분산 라우터(DVR) 환경에서는 네트워크 노드와 컴퓨트 노드에 각각 설치된 L3 에이전트에 의해 다양한 네임스페이스가 생성된다. 먼저 임의의 테넌트에 대해 하나의 가상 라우터가 생성되면, 모든 네트워크 노드와 가상 머신이 생성되는 컴퓨트 노드에는 가상 라우터에 대한 라우터 네임스페이스가 생성되며 네임스페이스 내부에 서브넷 간 라우팅을 위한 라우팅 테이블이 설정된다. 기존 중앙집중형의 가상 라우터에 대한 네임스페이스와의 가장 큰 차이점은 기존에는 외부망으로 연결되는 게이트웨이가 해당 라우터 네임스페이스 내에 정의되고 라우팅 테이블에 외부망으로 연결될 트래픽에 대한 라우팅 규칙이 정의되었지만, 분산 라우터(DVR) 환경에서의 라우터 네임스페이스는 클라우드 인프라 내의 가상 네트워크 서브넷에 대한 라우팅만을 다룬다. 만일 생성된 가상 라우터에 연결된 가상 네트워크 상에 가상 머신이 생성되면, 실제 가상 머신이 위치하는 컴퓨트 노드에도 네트워크 노드에서와 동일한 라우터 네임스페이스가 생성되고, 동일한 테넌트의 서로 다른 서브넷에 속하는 가상 머신 간 트래픽은 네트워크 노드의 라우터 네임스페이스를 경유하지 않고 컴퓨트 노드의 라우터 네임스페이스를 통해 컴퓨트 노드 간 직접 통신으로 전달된다(east-west routing).

분산 라우터(DVR) 환경에서는 하나의 가상 라우터에 대해 라우터 네임스페이스 외에 SNAT 네임스페이스가 네트워크 노드에 추가로 생성된다. SNAT 네임스페이스는 가상 라우터와 연결된 가상 네트워크 상에 생성된 가상 머신이 공인(public) IP인 Floating IP를 갖지 않는 경우, 외부 단말에 접속하기 위한 송신측 네트워크 주소 변환(SNAT)을 진행하며, SNAT 네임스페이스에서는 이를 위한 네트워크 주소 변환 규칙이 정의되어 있다.

분산 라우터(DVR)의 또 다른 특징은 가상 머신이 Floating IP를 갖는 경우, 가상 머신이 생성된 컴퓨트 노드에 수신측 네트워크 주소 변환(DNAT)을 위한 FIP(Floating IP) 네임스페이스가 추가로 생성된다. FIP 네임스페이스는 임의의 컴퓨트 노드에 Floating IP를 갖는 가상 머신이 하나 이상 존재하는 경우 생성되며, 가상 포트를 통해 라우터 네임스페이스와 연결된다. 만일 임의의 컴퓨트 노드에 다른 라우터 또는 다른 테넌트에 속하는 가상 머신들이 각각 Floating IP를 가지더라도 컴퓨트 노드에 FIP 네임스페이스는 하나만 생성된다. FIP 네임스페이스에는 가상 머신에 할당된 Floating IP로 향하는 트래픽은 라우터 네임스페이스로 전달하고, 그 외의 외부로 향하는 트래픽은 외부망으로 전달하도록 라우팅 테이블을 유지하고 있으며, Floating IP에 대한 실질적인 수신측 네트워크 주소 변환(DNAT)은 FIP 네임스페이스가 아닌 라우터 네임스페이스에서 이루어진다.

마지막으로 DHCP(Dynamic Host Configuration Protocol) 네임스페이스는 하나의 네트워크에 대해 하나의 DHCP 네임스페이스가 네트워크 노드에 생성되며, 이는 중앙집중형의 가상 라우터 환경과 분산 라우터(DVR) 환경 모두 동일하게 구성되고 동작한다.

참고로 분산 라우터(DVR) 환경에서는 가상 라우터에 하나의 서브넷에 대한 2개의 게이트웨이 포트가 생성된다. 하나는 서브넷의 게이트웨이 포트((그림 1)의 qr-XXXX 포트)로서 라우터 네임스페이스에서 라우팅을 위한 것이며, 다른 하나는 SNAT을 위한 게이트웨이 포트((그림 1)의 sg-YYYY 포트)로서 SNAT 네임스페이스에서 할당되는 포트이다. 따라서, 하나의 가상 네트워크를 생성한 다음 가상 라우터에 연결하면 가상 머신에 할당하는 서브넷 IP 주소 외에 기본적으로 3개의 IP 주소가 사용되며, 각각 라우터 게이트웨이 포트, SNAT 게이트웨이 포트, 그리고 DHCP 서버 포트이다.

(그림 1)

OpenStack 분산 라우터(DVR)의 네임스페이스 구성 예시

images_1/2015/v30n3/ETRI_J003_2015_v30n3_105_f001.jpg

*NS(Namespace)

4. 동작방식

앞서 언급한 바와 같이, 분산 라우터(DVR) 기술의 목적은 네트워크 노드의 단일 장애점 및 트래픽 집중 문제를 해결하고, 네트워크 노드로 인한 클라우드 인프라 확장성의 한계를 해소하기 위한 것이다. 따라서, 본 절에서는 분산 라우터(DVR) 환경에서 가상 머신의 트래픽 흐름이 어떻게 바뀌어 네트워크 노드의 트래픽 집중과 단일 장애점 문제를 해결하는지를 살펴보기로 한다.

먼저 (그림 2)와 같이 임의의 가상 머신이 외부 단말과 통신할 때의 트래픽 흐름(north-south routing)에 대해 살펴본다. 종전의 중앙집중형 가상 라우터 환경에서는 가상 머신의 트래픽이 모두 네트워크 노드의 가상 라우터를 거쳐 외부망으로 전달된 반면, 분산 라우터(DVR) 환경에서는 가상 머신이 공인 IP, 즉, Floating IP를 갖는지에 따라 트래픽 흐름이 달라진다. 단, 이러한 차이점은 OpenStack Juno 배포판에서만 유효하다. 즉, Kilo 배포판이나 Liberty 배포판에서는 추가적인 기능 개선을 통해 트래픽의 흐름이 달라질 수도 있다.

(그림 2)

가상 머신과 외부 단말사이의 트래픽 흐름

images_1/2015/v30n3/ETRI_J003_2015_v30n3_105_f002.jpg

만일 가상 머신이 공인 IP 없이 사설(private) IP인 Fixed IP만을 갖는 경우에는 가상 머신이 외부 단말에 접근할 수는 있지만, 외부 단말에서 가상 머신을 접근할 수는 없다. 이때 가상 머신에서 외부 단말로 향하는 트래픽의 흐름은 (그림 2)의 가상 머신 VM(Virtual Machine)-2에서 시작되는 트래픽의 흐름과 같다. 가상 머신 VM-2에서 시작된 트래픽은 수신측 IP 주소가 외부 단말의 공인 IP이므로 먼저 가상 머신이 위치하는 컴퓨트 노드의 가상 라우터 게이트웨이를 거친 다음, 네트워크 노드의 SNAT 네임스페이스의 게이트웨이에 전달되며, SNAT 네임스페이스의 외부 게이트웨이 포트에 할당된 공인 IP 주소로 송신측 주소를 변환(SNAT)한 다음 외부 단말로 전달한다. 외부 단말에서 가상 머신으로 보내지는 응답 트래픽은 기본적으로 전송된 트래픽 경로의 역순으로 전달되는데, 다만 가상 머신이 위치하는 컴퓨트 노드에서 가상 라우터를 거치지 않고 바로 가상 머신으로 전달되는 것만 차이가 있다.

이와 달리 가상 머신이 공인 IP 주소를 할당받는 경우에는 외부 단말과의 양방향 통신이 모두 가능하다. (그림 2)에서 가상 머신 VM-1이 공인 IP 즉, Floating IP를 갖는 경우에는 외부 단말과 통신하기 위해 네트워크 노드를 경유하지 않고 바로 컴퓨트 노드의 라우터 네임스페이스와 FIP 네임스페이스를 통해 외부 단말과 통신이 가능하다. 따라서, 종전의 중앙집중식 가상 라우터 기술과 비교했을 때 분산 라우터(DVR) 기술은 Floating IP를 갖는 가상 머신이 외부 단말과 통신할 때 네트워크 노드에 트래픽 처리 부하를 주지 않고 네트워크 노드의 장애 시에도 통신이 가능한 것이 특징이다.

분산 라우터(DVR)의 장점은 동일한 테넌트 내에서 서로 다른 서브넷에 속하는 임의의 두 가상 머신 간의 통신(east-west routing)에서도 두드러지게 나타난다. 기존의 중앙집중식 가상 라우터 환경에서는 서로 다른 두 서브넷에 속하는 가상 머신이 서로 통신하기 위해서는 가상 라우터가 위치하는 네트워크 노드를 경유해야만 했으며, 이는 네트워크 노드의 트래픽 집중 등의 문제점을 초래했다. 그러나 분산 라우터(DVR) 환경에서는 (그림 3)과 같이 서로 다른 두 서브넷에 속하는 가상 머신이 통신할 때 네트워크 노드를 경유하지 않고 송신측 가상 머신이 위치하는 컴퓨트 노드의 라우터 네임스페이스에서 라우팅 된 다음 수신측 가상 머신이 위치하는 컴퓨트 노드로 트래픽이 바로 전송된다. 따라서 가상 머신 간의 통신에서도 분산 라우터(DVR) 기술을 통해 네트워크 노드의 트래픽 집중을 초래하지 않고 네트워크 노드의 장애 시에도 상호 통신이 가능한 장점을 갖는다.

(그림 3)

가상 머신 간 트래픽 흐름

images_1/2015/v30n3/ETRI_J003_2015_v30n3_105_f003.jpg

5. 향후 개선사항

Juno 배포판에서 처음 소개된 분산 라우터(DVR) 기술은 앞에서 살펴본 바와 같이 Floating IP를 갖는 가상 머신이 외부 단말과 통신하거나, 동일한 테넌트의 서로 다른 서브넷에 속하는 가상 머신이 서로 통신할 때 네트워크 노드를 경유하지 않고도 통신을 가능하게 한다. 그러나 이러한 분산 라우터(DVR) 기능은 아직 실험적으로 사용해 볼 수 있는 단계에 지나지 않으며, OpenStack Neutron 개발팀에서는 Kilo 배포판 이후에 추가 개선될 분산 라우터(DVR) 기술로서 크게 다음과 같이 5가지 사항을 꼽고 있다.

- VPNaaS(Virtual Private Network as a Service) 지원

- VLAN(Virtual Local Area Network) 지원

- IPv6 지원

- 분산 DHCP 서비스

- 분산 SNAT 서비스

Neutron의 VPNaaS는 실질적으로 L3 에이전트를 통해 제어된다. 기존의 중앙집중형 가상 라우터 환경에서는 L3 에이전트가 네트워크 노드에서 가상 라우터에 대한 네임스페이스를 생성하고 제어하면서 모든 기능을 제공해 왔지만, 분산 라우터(DVR) 환경에서는 네트워크 노드뿐만 아니라 컴퓨트 노드에도 L3 에이전트가 실행되며 가상 라우터 네임스페이스 외에도 SNAT 네임스페이스와 FIP 네임스페이스를 생성하고 제어한다. 따라서 분산 라우터(DVR) 환경에서 VPNaaS를 제공하기 위해서는 L3 에이전트 및 VPNaaS 서비스 제어 기능을 추가로 개선해야 한다.

현재 Juno 배포판에서는 분산 라우터(DVR) 기능을 활성화하기 위해서는 반드시 테넌트 네트워크를 NVGRE 또는 VxLAN으로 설정해야만 한다. 즉, VLAN 기반의 테넌트 네트워크 환경에서는 분산 라우터(DVR) 기능을 활성화할 수 없다. 따라서 테넌트 네트워크의 유형과 무관하게 분산 라우터(DVR) 기술을 적용할 수 있도록 개선해야 한다. 마찬가지로 Juno 배포판부터 IPv6 기반의 테넌트 네트워크 환경을 운용할 수 있지만, 분산 라우터(DVR) 환경에서는 아직 IPv6를 지원하지 못한다.

그러나 무엇보다도 좀 더 완전한 분산 라우터(DVR) 환경이 제공되기 위해서는 아직도 네트워크 노드에 집중되는 DHCP 서버와 SNAT 네임스페이스가 컴퓨트 노드 등으로 분산되어야 한다. 즉, 현재의 분산 라우터(DVR) 환경에서도 DHCP 서버와의 통신이나 Floating IP를 갖지 않는 가상 머신이 외부 단말과 통신할 때에는 반드시 네트워크 노드를 경유해야 함으로써 네트워크 노드 장애 시 서비스 장애를 초래할 수밖에 없다. 따라서, DHCP 서버와 SNAT 네임스페이스가 완전히 분산될 수 있어야만 분산 라우터(DVR) 환경이 OpenStack Neutron의 기본 구축 모델로서 활용될 수 있을 것으로 전망된다.

IV. 결론

글로벌 커뮤니티의 활발한 협력과 기여 그리고 글로벌 솔루션 업체의 전폭적인 지지와 시장 선점 경쟁 등에 힘입어 OpenStack은 명실상부 클라우드 운영체제의 사실 표준(de facto standard) 플랫폼으로서 지위를 굳혀가고 있다. 특히 Folsom 배포판에서 공식 프로젝트가 된 Neutron의 출현은 OpenStack이 클라우드 컴퓨팅의 제어 관리뿐만 아니라 클라우드 네트워킹에 대한 폭넓은 제어 관리를 가능하게 함으로써 OpenStack의 지배적 세력 확장에 큰 기여를 했음은 명백하다.

그러나 OpenStack Neutron 프로젝트의 많은 기능적 우수성과 장점에도 불구하고 네트워크 노드가 갖는 구조적 한계는 Neutron과 Neutron에 적용된 네트워크 기술이 복잡하고 어렵다는 일종의 진입 장벽과 함께 Neutron의 보편화에 가장 큰 장애요소를 꼽혀 왔다. 이에 따라, Neutron이 대체하려는 Nova-network이 Havana 배포판 이후에는 공식 폐기될 것으로 전망되었으나, 부득이 잠정적으로 기술지원 및 업그레이드를 지속하기로 하는 등 Neutron이 OpenStack의 클라우드 네트워킹 기술로서 확실한 자리매김을 완전하게 하지 못한 것도 사실이다.

이러한 Neutron의 구조적 제약사항을 해결하기 위해 하나의 OpenStack 클라우드 인프라 내에서 복수의 네트워크 노드를 허용하여 임의의 네트워크 노드에 주어지는 트래픽 처리 부하를 경감하거나, L3 에이전트의 고가용성을 보장하여 서비스 연속성을 개선하거나, 가상 라우터를 네트워크 노드뿐만 아니라 가상 머신이 위치하는 컴퓨트 노드에도 분산 배치함으로써 네트워크 노드의 트래픽 부하와 단일 장애점 문제를 해결하려 하는 등 많은 노력을 기울여 오고 있다.

본고에서 소개한 분산 라우터(DVR) 기술은 아직 실험적인 단계에 불과하고 분산 SNAT 등 개선해야 할 사항들이 아직 남아 있지만, Neutron이 명실상부 Open-Stack의 클라우드 네트워킹 분야를 전담하기 위한 중요한 개선으로 꼽지 않을 수 없다. 물론 분산 라우터(DVR) 기술로 인해 모든 컴퓨트 노드에도 최소 독립적인 네트워크 인터페이스가 종전보다 하나 더 필요로 하고, 외부망과 연결하는 스위치 등 네트워크 장비의 증설이 불가피한 부분도 간과할 수는 없지만, 클라우드 인프라를 통해 제공하는 가상 인프라 서비스의 고가용성, 안정성, 그리고 확장성을 보장하고, 클라우드 인프라 구축 모델을 필요에 따라 선택적으로 적용할 수 있다는 점에서는 장점으로 꼽지 않을 수 없다.

더욱이 통신장비 수준(carrier-grade)의 클라우드 인프라와 이에 대한 제어 관리를 지향하는 네트워크 기능 가상화(NFV) 기술이 통신업계를 중심으로 도입될 것으로 예상됨에 따라 소프트웨어 정의 네트워킹(SDN: Software-Defined Networking) 기술을 기반으로 하는 OpenStack Neutron은 더욱 널리 활용될 수 있을 것으로 기대되며, 분산 라우터(DVR) 기술이 일정 부분 네트워크 기능 가상화 환경 구축에 유용하게 적용될 수 있을 것으로 기대된다.

용어해설

네트워크 기능 가상화 고가의 통신 장비에 내장된 여러 기능을 소프트웨어로 구현한 다음, 범용의 대용량 서버, 스토리지, 스위치로 구성된 클라우드 환경에서 필요에 따라 동적으로 가상의 네트워크 기능을 구성하고 운용할 수 있는 기술

분산 라우터(DVR) OpenStack Neutron의 L3 서비스 방식 중 하나로서, 가상 라우터가 중앙집중형의 방식으로 네트워크 노드에 하나 생성되어 L3 서비스를 제공하는 것이 아니라, 네트워크 노드와 컴퓨트 노드에 속성별로 분산 배치되어 L3 서비스를 제공하는 기술

클라우드 운영체제 다양한 규모와 형태의 클라우드 인프라를 손쉽게 구축하고, 클라우드 인프라 자원과 사용자에게 제공된 가상 인프라 서비스를 제어하고 관리하기 위한 소프트웨어로서, 클라우드 관리 플랫폼(Cloud Management Platform)이라고도 함.

Fixed IP OpenStack Neutron의 DHCP 에이전트를 통해 관리되는 IP 주소로서, 테넌트 네트워크 내에서 가상머신에게 동적으로 할당되는 사설 IP 주소

Floating IP OpenStack Neutron의 L3 에이전트 통해 관리되는 IP 주소로서, 테넌트 네트워크의 외부망에서 접근이 가능한 공인 IP 주소

약어 정리

DHCP

Dynamic Host Configuration Protocol

DNAT

Destination Network Address Translation

DVR

Distributed Virtual Router

FIP

Floating IP

IP

Internet Protocol

IPv6

IP Version 6

L2

Layer 2

L3

Layer 3

NAT

Network Address Translation

NFV

Network Functions Virtualisation

NS

Namespace

NVGRE

Network Virtualization Using Generic Routing Encapsulation

OPNFV

Open Platform for NFV

SNAT

Source Network Address Translation

SPOF

Single Point of Failure

VIM

Virtual Infrastructure Manager

VLAN

Virtual Local Area Network

VM

Virtual Machine

VPNaaS

Virtual Private Network as a Service

VRRP

Virtual Routing Redundancy Protocol

VxLAN

Virtual Extensible Local Area Network

WG

Working Group

[1] 

OpenStack, http://www.openstack.org

[2] 

박종근 외, “OpenStack 클라우드 네트워크 기술 분석,” 전자통신동향분석, 제28권 제5호, 2013. 10, pp. 122-132.

[3] 

OpenStack Juno Statistics, http://stackalytics.com/?rel ease=juno

[4] 

박종근, 윤승현, 이범철, “OpenStack Icehouse 특징 및 기술동향,” 전자통신동향분석, 제29권 제5호, 2014. 10, pp. 136-144.

[5] 

OPNFV, http://www.opnfv.org

[6] 

박종근, 윤승현, 이범철, “공개 소프트웨어 기반 네트워크 기능 가상화 플랫폼 개발동향,” 전자통신동향분석, 제29권 제6호, 2014. 12, pp. 93-101.

(그림 1)

OpenStack 분산 라우터(DVR)의 네임스페이스 구성 예시

images_1/2015/v30n3/ETRI_J003_2015_v30n3_105_f001.jpg

*NS(Namespace)

(그림 2)

가상 머신과 외부 단말사이의 트래픽 흐름

images_1/2015/v30n3/ETRI_J003_2015_v30n3_105_f002.jpg
(그림 3)

가상 머신 간 트래픽 흐름

images_1/2015/v30n3/ETRI_J003_2015_v30n3_105_f003.jpg
Sign Up
전자통신동향분석 이메일 전자저널 구독을 원하시는 경우 정확한 이메일 주소를 입력하시기 바랍니다.