2. 1. OpenStack Networking
1. Neutron & Nova Network
2. Neutron이 있는데 왜 Nova-Network인가?
2. Nova Network
1. Nova Network란 무엇인가?
2. Nova Network 구성모델 소개
3. Neutron
1. Nova Network에서 Neutron으로의 변화
2. 물리적으로 바라 본 Neutron의 구조
3. 논리적으로 바라 본 Neutron의 구조
4. 그래서 Neutron이란 무엇인가??
5. OVS Plugin / VLAN을 통한 Neutron 구성
6. VM에서 외부망(인터넷)으로 패킷전달 과정
7. 외부망(인터넷)에서 VM오로 패킷전달 과정
2
7. 2. NOVA NETWORK
7
2.2 Nova-Network의 구성모델 소개 – (1) Flat Network
문제점 내용
수동적인 인스턴스(VM)의 IP 할당
인스턴스를 그냥 생성한 경우에는 IP가 할당되
지 않는다. 사용자가 직접 Nova API를 통해 IP
Pool을 생성한 후에서야 IP 할당이 가능하다.
Bridge의 네트워크 연결문제
모든 인스턴스가 하나의 Bridge에 연결되어 있
어 Bridge에 네트워크 연결 문제가 발생할 경우
전체 인스턴스의 내부, 외부망 연결에도 문제가
발생 할 수 있다.
Tenant 간 Traffic 분리의 어려움
Tenant 별 인스턴스가 모두 하나의 bridge에 연
결되어 Tenant간에 격리(Isolation)이 되지 않는
문제가 발생한다.
9. 2. NOVA NETWORK
9
2.2 Nova-Network의 구성모델 소개 – (2) Flat DHCP Network
내용
개선점 Dnsmasq를 통해 Flat Network에서 IP Pool을 통한 수동적인 IP 할당 문제를 해결하였다
문제점
여전히 Flat Network와 같이 하나의 Bridge에 모든 인스턴스가 연결되어 Bridge의 네트
워크 연결 문제 발생시 전체 인스턴스의 네트워크에도 영향을 미친다.
Tenant 별 인스턴스가 모두 하나의 bridge에 연결되어 Tenant간에 격리(Isolation)이 되
지 않는 문제가 발생한다.
11. 2. NOVA NETWORK
11
What is VLAN??
장점 내용
네트워크 리소스 보안강화 같은 네트워크 망이라도 다른 VLAN 그룹이라면 통신은 어렵다.
비용절감의 효과 추가장비(스위치, 라우터 등) 없이도 충분히 독립된 네트워크 구성이 가능하다.
손쉬운 네트워크 그룹이동 하나의 스위치에서 간단한 설정만으로 네트워크 관리자가 네트워크 그룹을 옮
길 때 장비이동 등의 물리적인 소요시간과 노력이 필요하지만 VLAN 구성에서
는 간단한 설정만으로 그룹이동 가능하다.
불필요한 트래픽 감소 VLAN은 서로다른 네트워크 구성이므로 브로드캐스트 패킷이 다른 VLAN으로
전송되자 않아 세분화된 브로드케스트 도메인을 나눌수 있기 때문에 불필요한
트래픽을 줄일 수 있다.
12. 2. NOVA NETWORK
12
2.2 Nova-Network의 구성모델 소개 – (3) VLAN Network
내용
개선점
Tenant 별로 VLAN으로 구분함으로써 Tenant간 Traffic 구분이 가능해졌다. 클라우드 서
비스에서 isolation이 구현된 것이다.
bridge가 여러개로 구성되어 하나의 bridge에 네트워크 연결 오류가 발생하더라도 다른
bridge의 인스턴스에는 별다른 영향을 미치지 않는다.
14. 3. NEUTRON
14
3.1 Nova-Network에서 Neutron으로의 변화
Neutron의 등장요인
1) Nova-Network의 제한적인 범위의 Floating IP로 인해 대규모 클라우드 서비스에 적용
의 어렵다.
2) Nova-Network의 경우 네트워크의 형태가 고정되어 특정 대역폭을 이용하는 네트워크
서비스를 적용할 수 없다.
3) Compute Node를 확장함에 따라 데이터베이스에 직접 접속해야한다. 이로인해 데이터
베이스의 부하가 올 수 있다.
4) 뿐만아니라 각 Compute Node들의 데이터베이스 접속 권한에 따른 보안적 문제가 발
생 할 수 있다.
16. 3. NEUTRON
16
3.3 논리적으로 바라 본 Neutron의 구조
Fig 9. 논리적으로 바라본 Neutron Networking
(본 이미지는 KRnet 2015-Canonical 심장훈 발표자님의 발표자료 참고하여 다시 그린 이미지입니다.)
17. 3. NEUTRON
17
What is Tunneling??
질문 내용
Tunneling 이란 ??
라우터와 라우터, 네트워크와 네트워크 사이에 논리적인 경로를 통
하여 연결하는 방법으로 대표적으로는 GRE 프로토콜이 있다.
GRE Tunneling 이란??
Generic Routing Encapsulation의 약자로 Cisco(社)에서 개발한 대표
적인 Tunneling 프로토콜이다. 주로 가상 네트워크(VPN)를 구축하는
데 사용된다. 복잡한 가상 네트워크의 경로를 거치지 않고 독자적으로
네트워크를 가로질러서 종단과 종단을 연결하기 위해 개발 되었다.
Overlay Network 란??
물리네트워크 위해 성립되는 가상의 네트워크를 의미한다. Overlay
Network 안의 노드는 가상, 논리적 링크로 연결 될 수 있으며 각 링크
는 네트워크 안에서 많은 물리적 링크를 통하지만 그렇다고 물리적
링크를 고려하지는 않는다. 예를 들어 P2P의 경우 Peer to Peer 간의
통신을 위해여러 물리적 경로를 거치지만 Peer와 Peer 간의 데이터
패킷의 출발/도착 연결만 고려하므로 물리적 경로를 고려하지 않는다.
18. 3. NEUTRON
18
3.4 그래서 Neutron 이란 무엇인가?
Fig 10. Neutron의 동작과정
(본 이미지는 KRnet 2015-Canonical 심장훈 발표자님의 발표자료 참고하여 다시 그린 이미지입니다.)
19. 3. NEUTRON
19
Neutron의 Plugin
플러그인 해당 URL
Big Switch Plug-in
(Floodlight REST Proxy)
http://www.openflowhub.org/display/floodlightcontroller/Neutron+
REST+Proxy+Plugin
Brocade Plug-in
http://docs.openstack.org/admin-guide-
cloud/content/ch_networking.html#networking-services
Linux Bridge Plug-in http://wiki.openstack.org/Neutron-Linux-Bridge-Plugin
OpenvSwitch Plug-in
http://docs.openstack.org/havana/install-
guide/install/apt/content/concepts-neutron.openvswitch.html
VMware NSX Plug-in http://www.vmware.com/products/nsx?src=www_bestmatch_us
(장현정 작가님의 “오픈스택을 다루는 기술”서적을 참고하였음을 밝힙니다.)
20. 3. NEUTRON
20
3.5 OVS Plugin / VLAN을 통한 Neutron 구성
Fig 11. Open vSwitch Plugin/ VLAN 모드를 이용한 Neutron Network 구성
(1개의 Tenant, 1개의 가상 Router, 2개의 Subnet, 3개의 VM.)
#3:this is a brief outline of today’s presentation here
#4:최신 릴리즈 Kilo에 대한 OpenStack 공식 매뉴얼 사이트이다. 내용을 확인해보면 OpenStack 공식 설치 메뉴얼에서는 Neutron과 Nova-Network를 이용한 두가지 OpenStack 네트워크 설치구성안을 제안하고 있다. 초기 6번째 릴리즈인 Folsom 이전까지의 OpenStack에서는 Nova 프로젝트에서 직접 초기 인스턴스 생성과 네트워크 설정을 담당하면서 Nova-Network란 개념이 생겨났다. 그 후 OpenStack은 6번째 릴리즈 Folsom 부터 Quantum이라는 이름으로 독립된 프로젝트로 등장했다가 7번째 릴리즈인 Grizzly에서 8번째 Havana로 넘어오면서 Neutron의 이름으로 변경되었다.
#5:여기서 나는 한가지 의문을 가지게 되었는데 “Folsom 이전 버전에서 Nova에 속한 네트워크 서비스 부분(=Nova-Network)을 Neutron 프로젝트로 따로 분류하였는데 왜 아직도 OpenStack 공식 매뉴얼에서는 Nova-Network를 이용한 네트워크와 Neutron을 함께 소개하고 있을까?" 이다. 여기에는 아주 흥미로운게 있는데 우선 [그림 2]를 확인해자. [그림 2]는 OpenStack 8번째 릴리즈인 Havana에 대한 공식 매뉴얼 내용이다. 내용을 확인해보면 OpenStack에서도 실제로 Nova-Network를 Havana 버전까지만 서비스하고 그 이후 Juno버전 이후부터는 지원하지 않을 것이라는 내용이다. (하지만 이전 내용은 9번째 릴리즈인 Icehouse까지 라고 명기 되었다가 Juno 까지라고 수정된다.) Nova-Network의 서비스 종료를 공식 매뉴얼을 통해 알린 것이다. 하지만 실제 OpenStack을 차용하여 상용화된 클라우드 서비스업체들은 대부분 Neutron 보다는 Nova-Network를 이용한 서비스를 많이 이용하고 있다. 최근 서비스를 갓 시작한 ㈜NHN Entertainment의 Toast 클라우드 서비스 또한 Nova-Network를 차용하고 있다. 초기 Neutron에는 오류가 많았었고 이제 안정화에 접어든 Nova-Network의 수요가 여전히 많으면서 OpenStack에서도 여전히 매뉴얼에서 Nova-Network를 제외하지 못하게 된 것이다. 이제부터는 본격적으로 Nova-Network와 Neutron에 대해 세부적으로 설명하도록 하겠다.
#6:위의 [그림 3]는 Nova-Network를 이용한 OpenStack Network를 대략적으로 나타낸 그림이다. Nova-Network는 기본적으로 Controller, Compute 두 개의 노드와 External, Management 두 개의 네트워크로 구성된다. 그리고 클라우드 서비스의 규모가 커짐에 따라 Compute Node를 계속 확장해 나가는 형태이다. 각 Compute Node에서는 Nova-Compute 프로세스를 통해 인스턴스를 생성하면 Nova-Network 프로세스가 생성된 인스턴스의 네트워크를 구현한다. 모든 Node가 External Network 링크와 연결되어 있기 때문에 각 인스턴스들은 Compute Node를 통해 바로 외부 네트워크(인터넷)에 연결된다. 그리고 Controller Node의 Ceilometer Core 프로세스는 Management Network 링크를 통해 각 Compute Node의 Ceilometer Agent 프로세스가 자원의 사용량 및 성능을 측정해 사용자가 자원 상태를 모니터링 할 수 있도록 서비스를 제공한다. 그 외 Nova, Glance, Keystone, Horizon 프로젝트에 대한 내용은 아래 오픈스택<이론편>을 참고하길 바란다.
#7: [그림 6]는 앞에서 설명한 Flat Network로 Nova-Network가 구성된 Compute Node이다. (다시한번 언급하지만 앞으로의 Nova-Network 구성모델에서 Compute Node 환경은 이전에 포스팅한 오픈스택<설치편>의 Compute Node 구성환경을 기본으로 하고 있다.) IP Pool에는 10.0.0.1 ~ 10.0.0.255 범위의 IP를 가지고 있으며 우선 가상의 bridge에 10.0.0.1이 우선할당된다. 그 다음부터는 생성되는 인스턴스 순서대로 bridge에 연결되어 10.0.0.2부터 IP가 할당된다. 여기서 Flat Network 구성모델의 경우 아래 3가지 문제점이 존재한다.
#8:가상화 기술은 격리(Isolation)와 전이(Migration) 두가지 성질을 만족해야 한다.
#9:가상화 기술은 격리(Isolation)와 전이(Migration) 두가지 성질을 만족해야 한다.
#10:가상화 기술은 격리(Isolation)와 전이(Migration) 두가지 성질을 만족해야 한다.
#13:가상화 기술은 격리(Isolation)와 전이(Migration) 두가지 성질을 만족해야 한다.
#25:L2는 OSI 7계층에서 2계층인 Data Link 계층(Layer 2, L2)을 의미하며 Point to Point 간 신뢰성 있는 전송을 보장하기 위한 계층이다. 주로 MAC 주소와 같은 물리적인 주소를 통해 네트워크간 데이터 전송이 이루어진다.
L2에서 동작하는 물리적인 장비로는 L2 Switch, Bridge 등이 있는데 모두 MAC 주소를 기반으로 패킷을 전송하는 장치이다. OpenStack에서는 간단하게 설명하면 “OpenStack의 OVS 가상 Bridge 사이에서 데이터 패킷을 전달하기 위한 중계장치(Agent)”라고 정의할 수 있다.