OpenStack을 설정하다 보면, Nova-Network, Neutron (Quantum), 그리고 최근 Havana에 포함된 ML2와 같이 새롭고 복잡한(?) 용어들이 많습니다.

본 글을 통해 OpenStack에서 네트워크 관련 부분들을 정리해 보고자 합니다.

NAIM Networks에서 개최하는 PM 교육에서 사용 중인 OpenStack 부교재 내용을 참고하였습니다.

(자료 퍼가실 때, 출처 명시 부탁드립니다 ^^)



OpenStack에서 네트워크 지원 부분은 다음과 같이 변화되었다.

- Nova-Network: Nova는 가상 머신들을 관리하는 OpenStack 프로젝트명으로, 초기에는 가상 머신들을 관리하는 부분에서 네트워크 또한 관리하였다.

- Quantum: OpenStack 버전이 Essex에서 Folsom으로 바뀌면서 포함된 프로젝트명으로, 복잡한 네트워크 부분을 별도의 프로젝트로 분리하고자 기존에 Nova 프로젝트에 속해있던 Nova Network 부분을 Quantum 프로젝트로 분리하였다.

- Neutron: Quantum 이름을 상표권 문제로 더 이상 사용하지 못하면서, Neutron으로 이름을 변경하였다.

- ML2: Havana에 포함되었으며, Neutron에 연결 가능한 플러그인 형태로 개발되었다.



OpenStack에서 IP 주소를 이야기할 때, Fixed IP와 Floating IP라는 용어를 사용한다. 이 두 용어들을 직역하면 '고정IP'와 '유동IP'가 되는데, 네트워크 IP 주소 설정 때 고정 IP, 유동 IP를 의미하는 것이 아님을 유의해야 한다.

Fixed IP

- OpenStack에서 가상 머신 템플릿을 기반으로 인스턴스가 생성되었을 때 할당된 IP 주소

- 해당 인스턴스가 종료될 때까지 계속 가지고 있음

Floating IP

- 필요에 따라 IP 주소를 잠시 연결하거나 해제 가능한 IP 주소

- 예를 들어, 공인 IP 주소를 특정 인스턴스에 잠시 연결했다가 해제하고자 할 때 이용 가능한 IP 주소를 의미함


OpenStack Essex까지는 Nova-Network를 통해 Flat Mode, Flat DHCP Mode, VLAN DHCP Mode 3가지를 지원하였다. Flat Mode는 사용자가 100% 수동으로 Fixed IP 주소를 부여하는 방식을 의미하고, Flat DHCP Mode는 dnsmasq 라는 Linux에서 사용하는 DHCP 서버 프로그램을 활용하여 Fixed IP 주소를 자동으로 부여하는 방식을 의미한다. 그리고, VLAN DHCP mode는 VLAN을 통해 가상 머신 인스턴스들을 그룹화하여, 각 그룹에 할당된 vtag 번호가 달라져 각 그룹 네트워크 격리가 가능해진 상태에서 DHCP 서버를 각 그룹마다 사용하는 방식을 의미한다.



Quantum은 네트워크 가상화를 지원하기 위해 Nova 프로젝트 내 Nova-Network가 수행하던 역할을 별도 프로젝트로 분리하였다고 볼 수 있다. 플러그인을 지원하는 형태로 제작되었는데, 이를 통해 Linux Bridge와 OpenvSwitch를 Quantum에서 플러그인 교체 및 설정 수정을 통해 교체하는 것이 가능해졌다. 뿐만 아니라, 하드웨어 스위치와의 연동을 플러그인 교체 및 설정을 통해 지원 가능해졌으며, SDN 컨트롤러와의 연동 또한 플러그인을 통해 가능해졌다.



(출처: http://pt.slideshare.net/kamesh001/whats-new-in-neutron-for-open-stack-havana)

ML2는 Module Layer 2의 약어로, 이름을 통해 네트워크 2계층 부분에 대한 모듈화를 지원하기 위한 플러그인에 해당된다. Havana에서 포함되기 시작한 플러그인인데, 위 그림과 같은 형태를 지원하기 위해 개발되었다고 볼 수 있다. 기존 Quantum/Neutron에서는 OpenvSwitch 플러그인 사용시, 모든 물리 호스트에 OpenvSwitch를 사용해야만 했었다. 그러나, ML2에서는 각 호스트에서 서로 다른 방식을 쓰더라도 네트워크 2계층이 모듈화되어 OpenStack에서 관리가 가능해졌다.



Posted by Ian Y.