SlideShare a Scribd company logo
1 of 83
Download to read offline
OpenStack Neutron 분석
2015. 05. 11
㈜파이오링크
SDN개발실 이준 (jun.lee@piolink.com)
© PIOLINK, Inc. SDN No.1
Contents
 Backgrounds
 OpenStack Neutron Overview
 History of OpenStack Neutron
 Details of OpenStack Neutron
- Concept of OpenStack Networking
- OpenStack Networking Architecture
- OpenStack Neutron Network
- OpenStack Neutron Plugins and Agents
 OpenStack Networking Deployment Use Cases
 SDN Controller with OpenStack Neutron
 Summary
 References
2
© PIOLINK, Inc. SDN No.1
 Backgrounds
3
© PIOLINK, Inc. SDN No.1
Backgrounds
 Terminology in OpenStack Neutron
- OpenStack: Cloud 환경에서 Computing, Storage, Network 등 자원을 관리하는 Cloud OS
• Open Source Software 프로젝트의 집합 (Nova, Swift, Cinder, Neutron, Horizon, Keystone …)
- Nova: VM (Virtual Machine) Instance 를 구축하고 관리
- Neutron: Virtual Network 관리
- Keystone: 인증서비스 제공
- Horizon: Dashboard 구성, VM 설치 및 관리 모니터링 등을 지원
- Tenant: 사용자에 대한 논리적인 그룹, OpenStack 에서 Resource 는 사용자에게 직접 할당되지
않고 Tenant 단위로 할당
- Fixed IP: Virtual Instance 를 생성할 때 사용하는 Private IP
• Host 내부에서 만 통신 가능
• VM 이나 External Network 와 통신 시 SNAT 필요 (L3 Agent 에서 수행)
- Floating IP: Virtual Instance 를 외부에서 사용 가능하도록 해주는 Public IP
- Network Virtualization: Network 를 Virtual Machine 처럼 생성해서 사용하는 것
4
© PIOLINK, Inc. SDN No.1
Backgrounds
5
 OpenStack Basic Architecture for Networking Service
Compute Node
Controller
Node
Controller NodeNetwork Node
 OpenStack 에서 Networking Service 제공을 위해, Network Node, Compute Node, Controller Node 로 구성
© PIOLINK, Inc. SDN No.1
 OpenStack Neutron Overview
6
© PIOLINK, Inc. SDN No.1
OpenStack Neutron Overview
7
 Concept of OpenStack Neutron
Nova
Neutron
VM VM VM
User
Create VMs
Create Network and
Attach Port to VM
Network 1 Network 2
 Nova (Compute Node)에서는 VM Instance 를 생성하는 역할을 담당
 Neutron 에서는 Network Virtualization Service를 제공: Virtual Network 를 생성하고 관리하는 역할을 담당
 Virtual Network 를 설정하고 VMs 을 연결할 수 있는 추상화된 API 를 제공 (소프트웨어 기반의 Network Service 제공)
 Virtual Switch 와 Physical Switch 를 연결
 다양한 Networking 관련 기술 및 장비를 지원하기 위해 Plugin 방식을 사용
© PIOLINK, Inc. SDN No.1
OpenStack Neutron Overview
 Concept of OpenStack Neutron: Network Virtualization
8
Tenant View
Physical View
Data Center Network
Hypervisor
Phy server1
VM
A1
VM
B1
Hypervisor
Phy server2
VM
A2
Hypervisor
Phy server3
VM
B2
VM
A1
VM
A2
Network A
VM
B1
VM
B2
Network B
 하나의 물리 네트워크상에 독립적인 서로 다른 Virtual Network 를 운용할 수 있는 기술을 의미
 Neutron 을 통해 OpenStack 에서 다양한 형태의 Virtual Network Topology 구성이 가능 함
© PIOLINK, Inc. SDN No.1
OpenStack Neutron Overview
 Concept of OpenStack Neutron: Architecture
9
 외부에서 Virtual Network 를 생성하고 제어가 가능하도록 REST API 형태로 외부에 공개
 Neutron Server 는 외부 요청을 처리하고, DB 에 작업상태를 수시로 업데이트
 Neutron Server 를 통해 전달된 요청은 Keystone과 연결된 모듈을 통해 인증과 접근권한을 확인
- 인증된 메시지만 설정된 Neutron Plugin 으로 전달
 외부에 공개되는 API 는 Core API 와 Extension API 로 구분 가능
- Core-plugins: L2 Network, L3 Subnet, 포트제어, IP 주소관리 와 같이 기본적인 역할을 하는 Plugin
- Service-plugins: Load balancing, firewall, VPN 과 같은 부가적인 네트워크 서비스를 제공하는 Plugin
NeutronNeutron Server
API Clients
Core Neutron API Extension API
Authentication & Authorization via OpenStack Keystone
Neutron Pluggable Backend
REST API
Core-plugins Service-plugins
DB
Horizon GUI Neutron CLI
ML2 OVS Cisco LB FW VPN L3 service
© PIOLINK, Inc. SDN No.1
OpenStack Neutron Overview
10
 Concept of OpenStack Neutron: Core API
VM1
10.0.0.2
Network1
10.0.0.0/24
VM2
10.0.0.3Nova
Neutron
Virtual Server
Virtual Interface (VIF)
Virtual Port
Virtual Network
 Network, Subnet, Port 들의 추상화를 통해 해당 객체를 제어할 수 있는 API 제공
- Network: 독립된 L2 Network Segment 를 의미 함 (Layer2 Broadcast Domain, VLAN 개념과 유사함)
- Subnet: Network 에서 사용하는 IP주소 범위를 의미함, 각 Network 는 Multiple subnets 사용 가능
- Port: L2 Network 에 연결되는 지점을 의미 함, Port 에는 MAC 주소와 Fixed IP 주소가 할당 됨
Subnet
© PIOLINK, Inc. SDN No.1
OpenStack Neutron Overview
 Concept of OpenStack Neutron: Core API 예제
- Networking API v2.0 사용
- Networks: List, show information for, create, update, and delete networks
• POST /v2.0/networks // Network 생성
• GET /v2.0/networks/{network_id} // Network 정보 조회
- Subnets: List, show information for, create, update, and delete subnet resources
• POST /v2.0/subnets // Subnet 생성
• GET /v2.0/subnets/{subnet_id} // Subnet 정보 조회
- Ports: List, show information for, create, update, and delete ports
• POST /v2.0/ports // Port 생성
• GET /v2.0/ports/{port_id} // Port 정보 조회
11
© PIOLINK, Inc. SDN No.1
OpenStack Neutron Overview
12
 Concept of OpenStack Neutron: Core API Details
Horizon Neutron Nova
Create Network
Network-id
Create Subnet
Subnet-id
Create Port
Port-id
Create a VM with Port = Port-id
 Neutron 을 통해 Network, Subnet, Port 등을 생성하고 Nova 를 통해 VM 을 생성
Figure: Create a VM Flow
© PIOLINK, Inc. SDN No.1
OpenStack Neutron Overview
 Concept of OpenStack Neutron: Extension API 예제
- Networking API v2.0 사용
- Load-Balancer-as-a-Service (LBaaS)
• POST /v2.0/lb/vips // load balancer VIP 생성
• GET /v2.0/lb/vips/{vip_id} // VIP 정보 조회
• POST /v2.0/lbaas/pools // load balancer pool 생성
• GET /v2.0/lbaas/pools/{pool_id} // load balancer pool 정보 조회
- Virtual-Private-Network-as-a-Service (VPNaaS)
• POST /v2.0/vpnservices // VPN Service 생성
• GET /v2.0/vpnservices/{service_id} // VPN Service 상세정보 조회
• POST /v2.0/vpn/ipsecsiteconnections // IPSec connection 생성
• GET /v2.0/vpn/ipsecsiteconnections/{connection_id} // IPSec connection 정보 조회
13
© PIOLINK, Inc. SDN No.1
OpenStack Neutron Overview
14
 Concept of OpenStack Neutron: Plugin Architecture
Neutron
Plugin
Network Controller
(Agent)
Network Appliance /
Software Switch
Plugin Plugin Plugin
Network
Controller
Network
Controller
Network
Controller
Type A Type B Type B
…
Application
Select a plugin to use
Neutron API
 OpenStack Neutron 은 다양한 Vendor 의 요구사항을 수용하기 위해 Plugin – Agent 구조로 되어 있음
 Plugin 은 명령을 전달하는 역할 / Agent 는 명령어를 전달받아 실제 장비나 Software 에 명령어 실행
 Plugin Architecture 장점: 기본적으로 제공되는 기능이 부족하다면, Third Party 에서 원하는 기능을 추가 할 수 있음
 PIOLINK 에서도 Neutron Plugin 의 LBaaS Driver 개발 경험 있음 (뒤 슬라이드에서 설명)
© PIOLINK, Inc. SDN No.1
OpenStack Neutron Overview
15
 Concept of OpenStack Neutron: Plugin Architecture
Controller Node
Neutron Server
REST API 제공
Messaging
 Plugin 은 명령을 전달하는 역할 / Agent 는 명령어를 전달받아 실행
- Agent 에서는 실제 장비 또는 가상장비에 설정 이나 Virtual Network 생성 등을 수행
 Neutron 에 다양한 Plugin 이 존재 함 (각 Vendor 들의 상용제품 포함)
Network Node
Compute Node
L3 Agent
L2 Agent
DHCP Agent
L2 Agent
Virtual Router 생성
Virtual L2 Switch 생성
Fixed IP 주소 할당
Virtual L2 Switch 생성
Message
Queue
Adv Services
Plugin
LB, VPN 등 설정
© PIOLINK, Inc. SDN No.1
 History of OpenStack Neutron
16
© PIOLINK, Inc. SDN No.1
History of OpenStack Neutron
 OpenStack Release
17
Release Name Release Date Included Components
Austin Oct 12, 2010 Nova, Swift
Bexar Feb 3, 2011 Nova, Glance, Swift
Cactus Apr 15, 2011 Nova, Glance, Swift
Diablo Sep 22, 2011 Nova, Glance, Swift
Essex Apr 5, 2012 Nova, Glance, Swift, Horizon, Keystone
Folsom Sep 7, 2012 Nova, Glance, Swift, Horizon, Keystone, Quantum, Cinder
Grizzly Apr 4, 2013 Nova, Glance, Swift, Horizon, Keystone, Quantum, Cinder
Havana Oct 17, 2013 Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer
Icehouse Apr 17, 2014 All above, Trove
Juno Oct 16, 2014 All above
Kilo Apr 30, 2015 All above, Sahara
Liberty
Oct 15, 2015
(Under Discussion)
 Diablo, Essex 에서는 Quantum 이 실험적으로, Folsom 부터 Quantum 이 공식 프로젝트로 포함 되었음
 Havana 부터는 상표권 문제로 Quantum 대신 Neutron 이라는 이름으로 변경 (Quantum = Neutron)
© PIOLINK, Inc. SDN No.1
History of OpenStack Neutron
 OpenStack Networking Service
- OpenStack 의 Networking Service 는 Quantum 출현 전후로 변화가 생김
- OpenStack Austin ~ Essex
• OpenStack 초기 배포 버전의 경우 Nova 프로젝트의 Nova-Network 를 통해
사용자 or 사용자 그룹에게 기본적인 L2 Virtual Network 만을 제공
- OpenStack Folsom ~
• Nova-Network 의 여러 가지 기술적 제약사항과 확장 가능성을 고려하여 독립된
Networking Service 필요성이 제기 됨
• Quantum/Neutron 을 통해 VM에 대한 Multi-tenant Network 연결 서비스 와
다양한 Network 기반 Service 제공 가능
• Quantum/Neutron 을 통해 Switching, Routing, Load Balancing, VPN 등
Data Center 에서 사용되는 다양한 기술을 제공이 가능 함
18
© PIOLINK, Inc. SDN No.1
History of OpenStack Neutron
 OpenStack Nova Network
- Nova 는 OpenStack 에서 VM 을 관리하는 하위 프로젝트 명
- 초기에는 VM 을 관리하는 Nova 에서 Network 도 함께 관리 하였음
• 초기에는 VM Instance 와 Network 가 동시에 관리되어야 한다고 생각
- Nova 구성 요소 내 Nova Network 라는 하위 구성 요소를 두고 설계되어 발전
• Nova Network 는 OpenStack 에서 Network Resource 를 관리
- Nova Network 에서는 아래 3가지 Mode 를 지원
• Flat Mode
• Flat DHCP Mode
• VLAN DHCP Mode
19
© PIOLINK, Inc. SDN No.1
History of OpenStack Neutron
 OpenStack Nova Network: Flat Mode
20
VM VM VM
Bridge
G/W
eth0
 가장 간단한 Networking 구조
 모든 VM Instance 가 하나의 bridge 에 연결되어 고정 IP를 부여 받음
 VM 이 Booting 시 Network Configuration (/etc/network/interface)에 저장된 정보를 통해 IP 할당
© PIOLINK, Inc. SDN No.1
History of OpenStack Neutron
 OpenStack Nova Network: Flat DHCP Mode
21
VM VM VM
Bridge
G/W
eth0
 Flat Mode 와 마찬가지로 모든 VM Instance 가 하나의 Bridge 에 연결
 dnsmasq 를 통해 IP를 할당 받음
 dnsmasq: DNS, DHCP 서버 역할을 하는 OpenSource
dnsmasq
© PIOLINK, Inc. SDN No.1
History of OpenStack Neutron
 OpenStack Nova Network: VLAN DHCP Mode
22
VM VM VM
Bridge
G/W
eth0
dnsmasq Bridge
G/W
dnsmasq
vlan 100 vlan 101
 VM Instance를 Public 영역에 노출시키지 않음 (VPN 을 통해 접근 가능)
 Project 별로 VLAN 과 Bridge를 생성 (Project 는 Private IP 대역을 얻음)
 VM Instance 는 Project 가 할당 받은 Private IP중 하나를 얻음
 Nova VPN (CloudPipe): 사용자가 VLAN 밖에서 VLAN 내의 VM Instance 에 접근하기 위해 사용하는 VPN Instance
 OpenStack 초기 Version 에서는 Tenant 를 Project 라고 표현 하였음
© PIOLINK, Inc. SDN No.1
History of OpenStack Neutron
 OpenStack Quantum/Neutron 의 출현 배경
- 기술적 제약
• Cloud Computing Service 가 확산되면서 아래와 같은 기술이 요구됨
- Multi tenancy 지원
» Data Center 내에서 User or Tenant 가 생성한 Network 가 독립된 Network 처럼 동작 하는 것
» VLAN, Tunneling, MPLS (Multi-Protocol Label Switching) 기술 등을 통해 제공 가능
- Dynamic Network Provisioning
» Tenant Network 구성을 위해 Resource 를 할당하고 설정하는 일을 자동화 하는 기술
- VM Migration
» 서비스 품질 보장을 위해 생성한 VM 을 다른 서버로 이전(Migration)하는 기술
» 서비스 연속성 보장을 위해 IP 주소 등 Network 설정이 그대로 유지되어야 함
• 상용 Vendor 하드웨어 구성과 연계를 위한 통합된 Network Virtualization 방안 필요
• Nova Network 에서는 일부 기본적인 기술만을 지원
- Multi tenancy 지원
» VLAN을 이용하여 4094개의 Multi Tenant Network 구성 가능
» Data Center 의 규모가 확대되고 VM 수가 증가함에 따라 더욱더 많은 Tenant Network 구성이 요구됨
- Dynamic Network Provisioning
» Tenant Network 구성을 위한 Resource 를 할당하고 설정을 관리자가 수작업을 통해 해야 함
23
© PIOLINK, Inc. SDN No.1
History of OpenStack Neutron
 OpenStack Quantum/Neutron 의 출현 배경
- Tenant 제어의 한계
• 기업에서 Cloud Computing 환경 도입 시 이미 운용 중이던 복잡한 Infra를 가급적 그대로 유지하길 원함
• Cloud Computing 환경에서 기존 Infra 를 그대로 재현하기 위해서는 아래와 같은 기술이 필요 함
- Multi tier Network 생성
» Multi tier Network 웹 서비스 제공 시 성능향상 및 보안 성을 높이기 위해 웹 서버, 응용 서버, 데이터베이스 서버를 각각 분
리하여 다 계층 으로 구성하는 방법
- IP 주소 관리
» Data Center 내에서 동일한 IP 주소를 중복해서 사용 가능하도록 지원
- Network 서비스 장비의 추가 및 설정
» Load Balancer, Firewall 등 다양한 Network Service 장비를 Tenant 별로 쉽게 추가하고 제어할 수 있도록 지원
- 원격 서버 또는 장비와의 VPN (Virtual Private Network)연결
» Cloud Infra 밖의 원격 서버나 장비와 VPN 연결을 통해 안전한 Virtual Private Network 환경 구축 지원
24
© PIOLINK, Inc. SDN No.1
History of OpenStack Neutron
 OpenStack 배포 Version 별 Quantum/Neutron 특징
25
Compute Node
Controller
Node
Management
Data
External API
Internet
Controller Node
quantum Server
quantum
*-plugin-agent
Network Node
quantum
*-plugin-agent
quantum
L3 Agent
quantum
DHCP Agent
- OpenStack Folsom
 최초로 Quantum 이 공식 프로젝트로 포함 (Quantum 이전 Diablo, Essex 에서는 시험적으로 포함되어 있었음)
 L3 Subnet 을 제어할 수 있는 API 추가 (L2 관련 API 기존에 지원), 서로 다른 L2 네트워크에서 Fixed IP 중복 사용 가능하도록 변경
 Provider Network, L3 forwarding, SNAT, Floating IP 관리 등 L3 네트워크 제어가 가능하도록 기능 확장
 Multiple Router 를 지원 가능 하도록 변경
 Neutron 신규 Plugin 추가: Open vSwitch, Cisco, Linux Bridge, Nicira NVP, Ryu, NEC
© PIOLINK, Inc. SDN No.1
History of OpenStack Neutron
 OpenStack 배포 Version 별 Quantum/Neutron 특징
26
Compute Node
Controller
Node
Management
Data
External API
Internet
Controller Node
quantum Server
quantum
*-plugin-agent
Network Node
quantum
*-plugin-agent
quantum
L3 Agent
quantum
DHCP Agent
- OpenStack Grizzly
quantum
Metadata agent
 Multiple Network 지원 (복수의 Network Node 를 배치하여 Network Service 장애 위험 최소화, High Availability 지원 가능)
 HA Proxy를 기반으로 Load Balancer (LBaaS) 서비스 제공
 L3/L4 Packet filtering 기능 추가, Meta plugin 실험적으로 추가
 Neutron 신규 Plugin 지원: Big Switch, Brocade, Hyper-V, Plum Grid, Midonet, 기존 Plugin 개선: Nicira NVP, Ryu
© PIOLINK, Inc. SDN No.1
History of OpenStack Neutron
 OpenStack 배포 Version 별 Quantum/Neutron 특징
27
Compute Node
Controller
Node
Management
Data
External API
Internet
Controller Node
neutron server
neutron
*-plugin-agent
Network Node
neutron
*-plugin-agent
neutron
L3 Agent
neutron
DHCP Agent
- OpenStack Havana
 Code Name: Quantum 에서 Neutron 으로 변경 됨
 Load Balancer (LBaaS) 기능 개선, VPN (VPNaaS), Firewall (FWass) 등의 Service 추가
 ML2 Plugin 개념이 처음으로 나옴
© PIOLINK, Inc. SDN No.1
History of OpenStack Neutron
 OpenStack 배포 Version 별 Quantum/Neutron 특징
28
Compute Node
Controller
Node
Management
Data
External API
Internet
Controller Node
neutron server
Layer 2 Agent (OVS)
Network Node
ML2 Plug-in
Layer 2 Agent (OVS)
Layer 3 Agent
- OpenStack Icehouse
ML2 Plugin
ML2 Plug-in
DHCP Agent
 Neutron 안정화 와 Testing 에 초점, ML2 Plugin 이 기본 Plugin 으로 채택
 Neutron 신규 Driver/Plugin 추가: IBM SDN-VE, Nuage, OneConvergence, OpenDaylight
 Load Balancing Service Driver 추가: Embrace, NetScaler, Radware
 Neutron 신규 VPN Dirver 추가 (Cisco CSR)
© PIOLINK, Inc. SDN No.1
History of OpenStack Neutron
 OpenStack 배포 Version 별 Quantum/Neutron 특징
29
Compute Node
Controller
Node
Management
Data
External API
Internet
Controller Node
Neutron Server
Layer 2 Agent (OVS)
Network Node
ML2 Plug-in
Layer 2 Agent (OVS)
Layer 3 Agent
- OpenStack Juno
ML2 Plugin
ML2 Plug-in
DHCP Agent
Metadata Agent
 Distributed Virtual Router 지원, Tenant Network 에 IPv6 지원, L3 Agent 에 HA 지원 및 성능 향상
 Neutron 신규 Plugin 추가
- A10 Networks LBaaS driver, Arista L3 route plugin, Brocade L3 routing plugin, Cisco APIC ML2 Driver, Cisco CSR L3 routing plugin, Freescale SDN ML2 Mechanism
Driver, Nuage Networks ML2 Mechanism Driver, SR-IOV capable NIC ML2 Mechanism Dirver, OpenContrail Neutron Plugin
© PIOLINK, Inc. SDN No.1
History of OpenStack Neutron
 OpenStack 배포 Version 별 Quantum/Neutron 특징
30
Compute Node
Controller
Node
Management
Data
External API
Internet
Controller Node
Neutron Server
Layer 2 Agent (OVS)
Network Node
ML2 Plug-in
Layer 2 Agent (OVS)
Layer 3 Agent
- OpenStack Kilo
ML2 Plugin
ML2 Plug-in
DHCP Agent
Metadata Agent
 Subnet allocation, ML2 Hierarchical Port Binding, 신규 LBaaS Version 2 API, OVS ML2 Driver 를 위한 Port Security, IPv6 관련 API 추가
 Neutron 신규 Plugin 추가
- A10 Networks LBaaS driver, Brocade LBaaS V2 Driver, Brocade ML2 driver for MLX and ICX switches, Brocade L3 routing plugin for MLX switch, Brocade Vyatta vRouter L3
Plugin, Brocade Vyatta vRouter Firewall Driver, Brocade Vyatta vRouter VPN Driver, Cisco CSR VPNaaS Driver, Dragonflow SDN based Distributed Virtual Router L3 Plugin,
Freescale FWaaS Driver, Intel Mcaffe NGNW FWaaS Driver, IPSEC Strongswan VPNaaS Driver
© PIOLINK, Inc. SDN No.1
 Details of OpenStack Neutron
31
© PIOLINK, Inc. SDN No.1
Details of OpenStack Neutron
 Concept of OpenStack Networking
- Data Center 에서 사용되는 다양한 기술을 가상화 하고 프로그래밍 가능한 형태로
사용할 수 있도록 제공하는 것!
32
© PIOLINK, Inc. SDN No.1
Details of OpenStack Neutron
 OpenStack Networking Architecture
33
Network Node
Compute Node
Controller
Node
Internet
Controller Node
 OpenStack Networking 은 독립된 형태의 서비스
 OpenStack Networking 구성은 한 개의 Controller Node, 한 개의 Network Node, 적어도 한 개의 Compute Node 가 필요
- 각 Node 별 Network Interface 개수와 구성은 서로 다름
 OpenStack Networking 에서는 Switching, Routing, Load Balancing, Firewall, VPN 등 Data Center 에서 사용되는 다양한
기술을 제공
© PIOLINK, Inc. SDN No.1
Details of OpenStack Neutron
34
 OpenStack Networking Architecture
Network Node
Compute Node
Controller
Node
Internet
Controller Node
VM 01 VM 02
Neutron Server
 OpenStack Networking Architecture 에서 각 Node 역할은 다음과 같음
- Network Node: DHCP Server, Virtual Router 등 Network
- Compute Node: 생성된 VM Instance 가 위치하는 Node, Compute Service 와 Neutron Plugin
- Controller Node: 모든 OpenStack API 서비스를 제공
© PIOLINK, Inc. SDN No.1
Details of OpenStack Neutron
 OpenStack Networking Architecture
35
Network Node
Compute Node
Controller
Node
Management
Data
External API
Internet
 OpenStack Networking Architecture 에서는 네 종류의 Network 를 정의
- Management Network: 서비스를 구성하는 Node 간 통신에 사용 (Messaging Service, Database Service)
- API Network: Cloud 사용자와 서비스에게 OpenStack API 를 제공하는 용도로 사용
- External Network: Neutron Router 를 통해 외부 네트워크에서 접근
- Data Network: Instance 간 데이터를 주고받는 Network
• (특정 Node 에 대해서만 로컬 Network 를 구성하거나 flat 또는 VLAN tagging으로 구성 가능)
Controller Node
© PIOLINK, Inc. SDN No.1
Details of OpenStack Neutron
 OpenStack Networking Architecture
36
Compute Node
Controller
Node
Management
Data
External API
Internet
 Three nodes Architecture 에서 각 Node 에 위치하는 Neutron 프로세스
 Controller Node 의 Neutron Server 를 통해 API 를 제공 (외부에서 Network 관련 설정이 가능하도록)
 Neutron Server 는 REST API를 통해 들어오는 요청사항을 처리하도록 기존에 설정된 Neutron Plugin 에 전달
 Neutron Server 에서 제공하는 REST API를 통해 다양한 Networking 기술을 쉽게 이용 가능 함
Controller Node
Neutron Server
Neutron Plugin
Neutron
Plugin Agent
Neutron
Layer2 Agent (OVS)
Network Node
Neutron
Plugin Agent
Neutron
L3 Agent
Neutron
DHCP Agent
Neutron Layer2
Agent (OVS)
© PIOLINK, Inc. SDN No.1
Details of OpenStack Neutron
 OpenStack Neutron Network
- Neutron 에서 제공하는 Network Type 은 아래와 같음
• Local
- 다른 Network 나 Node 와 독립적으로 존재
- 같은 Compute Node 의 동일한 Network 에 있는 Instance 간 통신만 가능
• Flat
- VLAN tagging 을 적용하지 않거나 Network 과 분리되지 않은 형태
• VLAN
- 802.1q tagging 을 이용하여 Network 를 분리
- VLAN 간 Routing 을 위해서 Router 필요
• VXLAN 과 GRE
- OVS Plugin 을 이용 Overlay Network 를 구성
- Cloud 내의 모든 Host 에 대한 P2P Tunnel 을 생성
37
© PIOLINK, Inc. SDN No.1
Details of OpenStack Neutron
 OpenStack Neutron Network
- Neutron 에서 Instance 에 대한 연결을 제공하는 두 종류의 Network 가 존재 함
• Provider Network: 관리자가 생성한 Network
- Data Center 의 Physical Network 에 직접 Mapping
- Flat 과 VLAN 을 주로 사용 (Local, GRE 사용 가능하나 일반적으로 사용하지 않음)
• Tenant Network: 사용자가 생성한 Network
- Tenant 에 속한 Instance 간 연결을 위해 필요
- Default 설정에서는 Tenant Network 는 다른 Tenant Network 나 Tenant 안에 있는 다른 Network와 격리
38
Compute Node
Tenant Network 1
VM1
VM2
Tenant Network 2
VM3
VM4
Network Node
Provider Network
Neutron Router
© PIOLINK, Inc. SDN No.1
Details of OpenStack Neutron
39
 OpenStack Neutron Plugins and Agents
Compute Node
Controller
Node
Management
Data
External API
Internet
Controller Node
Neutron Server
Layer 2 Agent (OVS)
Network Node
ML2 Plug-in
Layer 2 Agent (OVS)
Layer 3 Agent
ML2 Plugin
ML2 Plug-in
DHCP Agent
Metadata Agent
 OpenStack 각 Node 에 설치되는 Neutron 프로세스는 Plugin 과 Agent 로 구성되어 있음
 Neutron Server 는 Centralized Controller 역할을 수행
- 실제 Network 관련 command 나 configuration 은 Compute Node 와 Network Node 에서 수행
© PIOLINK, Inc. SDN No.1
Details of OpenStack Neutron
40
 OpenStack Neutron Plugins and Agents
Neutron Server
Neutron Core
plugins
Neutron Service
plugins
Core API
Network, Port, Subnet
Resource and Attribute Extensions API
Provider Network, Port Binding, Router, Quotas, Security Groups, Agent Scheduler, LBaaS, FWaaS VPNaaS …
Message Queue
DHCP Agent
L3 Agent
IP Tables on
Network Node
L2 Agent
OVS on
Compute Node
Neutron Plugin
Controller Node
 Plugin: 외부에서 호출한 REST API에 따라 해당하는 Plugin을 수행, Core Plugin 과 Service Plugin 으로 구분
- Core Plugin: L2 connectivity 와 IP Address Management 등 기본적인 을 담당
- Service Plugin: Routing (L3), Firewall, Load Balancing 등 서비스 관련 기능을 담당
 Agent
- Neutron Server 로 부터 명령을 수신하여 (via plugin or directly) 실제 Networking 관련 동작을 구현하는 entity
ML2
OVS
CiscoNexus
MoreVendor
Plugins
LoadBalancer
Firewall
VPN
L3services
© PIOLINK, Inc. SDN No.1
Details of OpenStack Neutron
41
 OpenStack Neutron Plugins and Agents
Controller
Node
Management
Data
External API
Internet
Controller NodeNetwork Node
Neutron Server
ML2 Plugin
Compute Node
OVS Agent
OVS Switch
VM VM
1
2
3
4
① REST API 를 통해 Request 를 Neutron Server 가 수신
② Plugin 을 통해 RPC 메시지를 Compute Node 의 OVS Agent 로 전달
③ Compute Node 의 OVS Agent 는 RPC 메시지 수신
④ OVS Agent 는 OVS Switch configure 수행
© PIOLINK, Inc. SDN No.1
Details of OpenStack Neutron
42
 OpenStack Neutron Plugins and Agents : Open vSwitch Layer 2 Agent
Compute Node
Controller Node
Neutron Server
Layer 2 Agent (OVS)
Network Node
ML2 Plug-in
Layer 2 Agent (OVS)
Layer 3 Agent
ML2 Plugin
ML2 Plug-in
DHCP Agent
Metadata Agent
 VM Instance 와 다른 Network Resource 에 L2 연결을 제공 (L2 Switching 제공)
 Monolithic Plugin 으로 다른 Networking Plugin 과 동시사용 불가
 VLAN, VXLAN, GRE 등을 지원하여 독립된 Tenant Network 생성이 가능
© PIOLINK, Inc. SDN No.1
Details of OpenStack Neutron
43
 OpenStack Neutron Plugins and Agents: Layer 3 Agent
Compute Node
Controller Node
Neutron Server
Layer 2 Agent (OVS)
Network Node
ML2 Plug-in
Layer 2 Agent (OVS)
Layer 3 Agent
ML2 Plugin
ML2 Plug-in
DHCP Agent
Metadata Agent
 L2 Network 에 연결되는 Router 를 Configuration 하는 역할
 Linux IP Stack 과 iptables 를 사용하여 L3 forwarding, NAT 동작을 구현
 Network Namespace 를 이용하여 Multiple Independent Virtual Router 생성 (Overlapping IP)이 가능
 Network Namespace 개념은 다음 슬라이드에서 설명
© PIOLINK, Inc. SDN No.1
Details of OpenStack Neutron
 OpenStack Neutron Plugins and Agents : Network Namespace
- OpenStack 은 Multi Tenancy 를 지원하도록 설계 되었음
• User 별로 Compute 와 Network Resource를 구성한 Group 을 중복생성 가능
- Network Namespace 를 통해, 각 Tenant Network 별로 Router, Firewall, Network Interface Device
를 별도로 구성 가능
• qdhcp namespace: DHCP 역할 (l2 agent)
• qrouter namespace: Router 역할 (l3 agent)
• qlbass namespace: Load Balancer 역할 (Advanced Service)
44
Hardware
Linux Kernel Global Namespace (net interfaces, routing tables, IP Stack, IPtables)
Tenant1
Namespace1
(net interfaces,
routing tables,
iptables)
Tenant2
Namespace2
(net interfaces,
routing tables,
iptables)
TenantN
NamespaceN
(net interfaces,
routing tables,
iptables)
…
© PIOLINK, Inc. SDN No.1
Details of OpenStack Neutron
45
 OpenStack Neutron Plugins and Agents : DHCP Agent
Compute Node
Controller Node
Neutron Server
Layer 2 Agent (OVS)
Network Node
ML2 Plug-in
Layer 2 Agent (OVS)
Layer 3 Agent
ML2 Plugin
ML2 Plug-in
DHCP Agent
Metadata Agent
 Virtual Network 에 위치하고 있는 VM 에 IP 를 할당해주는 역할
 DHCP Server 로 사용하기 위해 dnsmasq 를 사용 함
 dnsmasq: small network 에서 DNS, DHCP Server 로 사용 가능한 free software
© PIOLINK, Inc. SDN No.1
Details of OpenStack Neutron
46
 OpenStack Neutron Plugins and Agents : Metadata Agent
Compute Node
Controller Node
Neutron Server
Layer 2 Agent (OVS)
Network Node
ML2 Plug-in
Layer 2 Agent (OVS)
Layer 3 Agent
ML2 Plugin
ML2 Plug-in
DHCP Agent
Metadata Agent
 VM Instance 부팅 과정에 필요한 IP 주소나 Instance 관련 정보를 제공
© PIOLINK, Inc. SDN No.1
Details of OpenStack Neutron
47
 OpenStack Neutron Plugins and Agents : ML2 Plug-in
Compute Node
Controller Node
Neutron Server
Layer 2 Agent (OVS)
Network Node
ML2 Plug-in
Layer 2 Agent (OVS)
Layer 3 Agent
ML2 Plug-in
ML2 Plug-in
DHCP Agent
Metadata Agent
 ML2: Modular Layer2
 Havana Version 에 처음 포함, Ice House Version 에 기본 Plugin 으로 채택 (기존 Monolithic Plugin 대체하기 위해)
 Data Center 에서 주로 사용되는 여러 가지 L2 networking 기술을 동시에 사용할 수 있게 해주는 framework
 OVS 나 LinuxBridge Agent 와 연동하여 동작
 새로운 L2 Networking 기술을 추가하는 방법 간소화
© PIOLINK, Inc. SDN No.1
Details of OpenStack Neutron
 OpenStack Neutron Plugins and Agents: ML2 Plugin
48
- Before ML2: Compute Node 에 다른 Agent 설치 시 연동 불가능
- After ML2: Compute Node 에 다른 Agent 설치 시에도 연동 가능
Neutron Server
Compute Node A
Open vSwitch
Plugin
Open vSwitch
Agent
Neutron Server
Compute Node B
Linux Bridge
Plugin
Linux Bridge
Agent
Compute Node A
Open vSwitch
Agent
Compute Node B
Linux Bridge
Agent
Neutron Server
ML2
Plugin
or
© PIOLINK, Inc. SDN No.1
Details of OpenStack Neutron
 OpenStack Neutron Plugins and Agents: ML2 Plugin Structure
49
GRE
TypeDriver
VLAN
TypeDriver
VXLAN
TypeDriver
Arista
CiscoNexus
Hyper-V
Linuxbridge
Open
vSwitch
Tail-FNCS
Type Driver Mechanism Driver
 Havana Release 에 공식적으로 포함됨
 Layer 2 에서 핵심 기능들을 Vendor 및 구현 기능별로 구분 하였음
 OpenStack 에서 제공하는 ML2 Plugin 은 Type Driver 와 Mechanism Driver 구조로 되어 있음
 Type Driver: Network Type (GRE, VLAN, VXLAN)
 Mechanism Driver: Network Implement (Vendor Specific)
 ML2 도입에 따라 Vendor 하드웨어와의 통합이 증가
© PIOLINK, Inc. SDN No.1
Details of OpenStack Neutron
50
 OpenStack Neutron Plugins and Agents: Service Plug-in
- Load Balancer as a Service (LBaaS)
• Open Source 인 HA Proxy 를 통해 구현 (Grizzly 에 처음 포함)
• Multi Vendor 지원 추가 (Havana 에 포함)
• HW 기반 LB 와 SW기반 LB가 서로 연동할 수 있도록 Driver 사용
- Virtual Private Network as a Service (VPNaaS)
• Havana, Icehouse 버전에서 실험적으로 제공
•Open Source 인 OpenSwan 을 통해 구현 (Default Driver)
• Site-to-Site configuration 지원
- Firewall as a Service (FWaaS)
• Service Plugin + Agent + Drivers (Iptables or v Armour)
• firewall policy 적용을 위해 Virtual Router 에 Iptables 를 설정하는 방식
• Vendor specific service can be included
© PIOLINK, Inc. SDN No.1
Details of OpenStack Neutron
 OpenStack Neutron Plugins and Agents: Service Plugin (LBaaS, VPNaaS)
51
Compute Node
Controller
Node
Controller Node
Neutron Server
Network Node
Service Plugin
Service Agent
Message Processing
Driver A Driver B
Device Type A Device Type B
 Advanced Service 지원 구조: Plugin + Agent + Driver 구조
 Third Party 에서 Driver 를 추가하여 새로운 장비를 지원하도록 기능추가 가능 (Cisco, Brocade … etc)
© PIOLINK, Inc. SDN No.1
Details of OpenStack Neutron
52
 OpenStack Neutron Plugins and Agents : LBaaS Service Plugin
Compute Node
Controller
Node
Internet
Controller Node
Neutron Server
Network Node
Layer 3 Agent
LBaaS Agent
HAProxy
VM VM
 LBaaS Agent 에서 HAProxy 를 이용하여 Load Balancing 기능 제공
© PIOLINK, Inc. SDN No.1
Details of OpenStack Neutron
53
 OpenStack Neutron Plugins and Agents : VPNaaS Service Plugin
Internet
Network Node Compute Node Network Node Compute Node
Layer 3 Agent
VM
Layer 3 Agent
VM
IPSec VPN
Router
VPN Driver
Router
VPN Driver
site1 site2
 L3 Agent 에서 Site to Site IPSec VPN 기능 지원
© PIOLINK, Inc. SDN No.1
Details of OpenStack Neutron
54
 OpenStack Neutron Plugins and Agents : FWaaS Service Plugin
Compute Node
Controller
Node
Internet
Controller Node
Neutron Server
Network Node
VM VM
Layer 3 Agent
Router
Firewall Driver
 L3 Agent 에서 Iptables 를 이용하여 Firewall Policy 정책 적용
© PIOLINK, Inc. SDN No.1
Details of OpenStack Neutron
55
 OpenStack Neutron Plugins and Agents : PIOLINK LBaaS Service Plugin
Compute Node
Controller
Node
Internet
Controller Node
Neutron Server
Network Node
Layer 3 Agent
LBaaS Agent
PIOLINK Driver
VM VM
PIOLINK
Load Balancer
 PIOLINK 에서 개발한 LBaaS Driver
 OpenStack Neutron 을 이용하여 PAS-K 제품 설정 가능 함
 PAS-K 를 이용하여 Compute Node 내 VM Instance (Web Server) 로 Traffic 을 균등하게 분배
© PIOLINK, Inc. SDN No.1
Details of OpenStack Neutron
 OpenStack Neutron Plugins and Agents: LinuxBridge Plugin
- bridge 와 8021q Kernel Module 을 사용, Instance 와 Network Resource 를 Virtual Switch 에 연결
하고 Traffic 을 전달
- Linux Bridge 기반으로 Network 구성 시 아래와 같은 Virtual Networking Device 사용
• Tap Device: KVM 과 같은 Hypervisor 에 Virtual Interface 구현에 사용 (Guest OS의 Network Interface 역할)
• VLAN Interface: ethx.<vlan> 이름을 사용, Kernel에서 tagging 된 Packet을 주고받을 수 있음
• LinuxBridge: 여러 Network Interface를 연결하는 Virtual Interface (동일 VLAN 을 연결)
56
eth0
eth1
MGMT & API
Network
External
Network
eth0
MGMT & API Network에
대한 단일 IP주소
brqYYY
(LinuxBridge)
tap0xxxx
tap1xxxx
VM0
eth0
VM1
eth0
K
V
M
eth1.
100
<Figure: Compute Node 에서 Network Architecture>
© PIOLINK, Inc. SDN No.1
Details of OpenStack Neutron
57
 LinuxBridge Plugin 을 이용한 Virtual Network 구성 #01 (One tenant, two networks, one router )
Compute Node (Logical View) Network Node (Logical View)
DHCP
Server
DHCP
Server
Network Node 에 의해 구성
Compute Node 에 의해 구성
© PIOLINK, Inc. SDN No.1
Details of OpenStack Neutron
58
 LinuxBridge Plugin 을 이용한 Virtual Network 구성 #01 (One tenant, two networks, one router )
Compute Node Network Node
© PIOLINK, Inc. SDN No.1
Details of OpenStack Neutron
59
 LinuxBridge Plugin 을 이용한 Virtual Network 구성 #02 (Two tenant, two networks, two routers )
Compute Node (Logical View) Network Node (Logical View)
Network Node 에 의해 구성
Compute Node 에 의해 구성
DHCP
Server
DHCP
Server
© PIOLINK, Inc. SDN No.1
Details of OpenStack Neutron
60
 LinuxBridge Plugin 을 이용한 Virtual Network 구성 #02 (Two tenant, two networks, two routers )
Compute Node Network Node
© PIOLINK, Inc. SDN No.1
Details of OpenStack Neutron
 OpenStack Neutron Plugins and Agents: OVS Plugin
- Open vSwitch : Software 기반 스위치, Virtual Network bridge 와 flow rule 을 사용하
여 Packet 을 forwarding (OpenFlow Protocol 지원)
- OVS 의 핵심 Component
• Kernel Module: 스위치의 Data plane 역할, Packet 에 대한 처리작업 수행
• OVS Daemon: ovs-vswitchd Linux process, Kernel Moudle 의 동작을 제어
• Database Server: Virtual Switch 의 설정을 관리
61
© PIOLINK, Inc. SDN No.1
Details of OpenStack Neutron
62
MGMT & API
Network
External
Network
qbr0xxxx
(Linux Bridge)
qbr1xxxx
(Linux Bridge)
tap0xxxx tap1xxxx
br-int(OVS 통합 Bridge)
qvo0xxxx qvo1xxxx
Int-br-ethX
VM0
eth0
VM1
eth0
br-eth1(OVS Provider Bridge)
phy-br-ethX
ethX
KVM
qvb1xxxxqvb0xxxx
eth0
MGMT & API Network에
대한 단일 IP주소
eth0
 OpenStack Neutron Plugins and Agents: OVS Plugin
- OVS 기반으로 Network 구성 시 아래와 같은 Virtual Networking Device 사용
• Tap Device: Virtual Interface 구현에 사용
• Linux Bridge: 여러 Network Interface 를 연결하는 Virtual Interface (동일 VLAN을 연결)
• Virtual Ethernet Cable: Network Cable 역할, 다양한 Network Resource 를 연결 (OVS bridge – linuxbridge 연결, linuxbridge 간연결)
- OVS bridge-linuxbridge 연결(qvbYYY, qvoYYY” pair 를 사용)
• OVS Bridge: Switch 역할을 수행
• OVS Patch Port: OVS bridge 간 연결을 위해 사용 (int-br-ethX, phy-br-ethX)
© PIOLINK, Inc. SDN No.1
Details of OpenStack Neutron
63
 OVS Plugin 을 이용한 Virtual Network 구성 #01 (One tenant, two networks, one router)
Compute Node Network Node
Network Node 에 의해 구성
Compute Node 에 의해 구성
DHCP
Server
DHCP
Server
© PIOLINK, Inc. SDN No.1
Details of OpenStack Neutron
64
 OVS Plugin 을 이용한 Virtual Network 구성 #01 (One tenant, two networks, one router)
Compute Node Network Node
Network Node 에 의해 구성
Compute Node 에 의해 구성
© PIOLINK, Inc. SDN No.1
Details of OpenStack Neutron
65
 OVS Plugin 을 이용한 Virtual Network 구성 #02 (Two tenant, two networks, two routers )
Compute Node (Logical View) Network Node (Logical View)
Network Node 에 의해 구성
Compute Node 에 의해 구성
DHCP
Server
DHCP
Server
© PIOLINK, Inc. SDN No.1
Details of OpenStack Neutron
66
 OVS Plugin 을 이용한 Virtual Network 구성 #02 (Two tenant, two networks, two routers )
Compute Node Network Node
Network Node 에 의해 구성
Compute Node 에 의해 구성
© PIOLINK, Inc. SDN No.1
 OpenStack Networking Deployment Use Cases
67
© PIOLINK, Inc. SDN No.1
OpenStack Networking Deployment Use Cases
 Single Flat Network
68
Shared Net
30.0.0.0/22
Tenant A
VM1
Tenant B
VM1
Tenant A
VM2
Tenant C
VM1
30.0.0.1
Physical Router
 Nova Network 의 FlatDHCP 와 유사
 VM 에 Single NIC 설정, VM 간 네트워크 동일
 Fixed IP 주소 할당, Floating IP 는 지원되지 않음
Physical Network 에 Mapping 되는
Provider Network
30.0.0.2 30.0.0.3 30.0.0.4 30.0.0.5
© PIOLINK, Inc. SDN No.1
OpenStack Networking Deployment Use Cases
69
 Multiple Flat Networks
Shared Net1
30.0.0.0/24
Tenant A
VM1
Tenant B
VM1
Shared Net2
30.0.1.0/24
Shared Net3
30.0.2.0/24
Tenant A
VM2
Tenant D
VM1
Tenant C
VM1
Physical Router
30.0.0.1
30.0.1.1
30.0.2.1
 Single Flat Network 와 유사
 Tenant 가 Multiple Shared Network 가능
30.0.0.2 30.0.0.3 30.0.1.2 30.0.1.3 30.0.2.2 30.0.2.3
하나의 VM 이 여러 개의 Shared Network 에
속할 수 있는 것이 특징
© PIOLINK, Inc. SDN No.1
OpenStack Networking Deployment Use Cases
70
 Mixed Flat and Private Networks
Shared Net
30.0.0.0/22
Tenant A
VM1
Tenant A
VM2
Tenant B
VM1
Tenant C
VM1
30.0.0.1
Physical Router
Tenant C
VM2
Tenant A – Private Net
10.0.0.0/24
Tenant C – Private Net
10.0.0.0/24
 Flat Network 에서 확장된 형태, VM 에 Multiple NIC 설정, Tenant 별로 Private Network 구성 가능,
 VM 이 gateway 역할을 통해 Private Network 에 routing, NAT, load balancing 과 같은 서비스 제공 가능
10.0.0.2
30.0.0.2
10.0.0.3
30.0.0.3 30.0.0.4
10.0.0.2
30.0.0.5
10.0.0.3
Tenant 별로 Private Network 구성 가능
© PIOLINK, Inc. SDN No.1
OpenStack Networking Deployment Use Cases
71
 Provider Router with Private Networks
Tenant A – Private Net
10.0.0.0/24
Tenant C – Private Net
10.0.1.0/24
Tenant A
VM1
Tenant A
VM2
Tenant C
VM1
Tenant C
VM2
Provider Router
Shared Net
30.0.0.0/22
10.0.0.1 10.0.1.1
30.0.0.2
30.0.0.1
Physical Router
 각 Tenant 들이 하나 이상의 Private Network 생성이 가능, Private Network 는 Provider Router 를 통해 외부와 연결
 Floating IP 를 이용하여 각 VMs 들에게 Public 주소를 할당 (External Network 에서 접속 가능)
 SNAT/DNAT 가능, Tenant 간 Provider Router 를 통한 통신 가능 (대규모 Private Cloud 에서 사용)
SNAT 를 수행 Private Network 에서
External Network 로 접속이 가능하도록
L3 Connectivity 를 제공 함
10.0.0.2 (30.0.0.3) 10.0.0.3 (30.0.0.4) 10.0.1.2 (30.0.0.5) 10.0.1.3
Public IP
© PIOLINK, Inc. SDN No.1
OpenStack Networking Deployment Use Cases
72
 Per-Tenant Routers with private networks
Tenant A – Private Net
10.0.0.0/24
Tenant C – Private Net1
10.0.0.0/24
Tenant A
VM1
Tenant A
VM2
Tenant C
VM1
Tenant C
VM2
Tenant C – Private Net2
10.0.1.0/24
Tenant C
VM3
Tenant C
VM4
Tenant A
Router
Tenant C
Router
Shared Net
30.0.0.0/22
30.0.0.1
Physical Router
10.0.0.1
30.0.0.2 30.0.0.3
10.0.0.1 10.0.1.1
 각 Tenant 들이 하나 이상의 Router 를 갖고 있음, 각 Tenant 는 Private Network 를 생성하고 Router를 통해 외부와 연결
 Multi-tier applications, SNAT 지원 가능
 Public Cloud 에 사용
10.0.0.2 (30.0.0.4) 10.0.0.3 (30.0.0.5)
동일한 IP 대역을
중복해서 사용 가능!
10.0.0.2 (30.0.0.6) 10.0.0.3 (30.0.0.7) 10.0.1.2 10.0.1.3
Public IP
© PIOLINK, Inc. SDN No.1
 SDN Controller with OpenStack Neutron
73
© PIOLINK, Inc. SDN No.1
SDN Controller with OpenStack Neutron
 OpenDaylight Helium Architecture
74
 OpenDaylight 에서는 OpenStack 과 연동하기 위한 feature들을 제공
© PIOLINK, Inc. SDN No.1
SDN Controller with OpenStack Neutron
75
 OpenDaylight Helium Architecture
OpenStack Neutron Service
OVSDB VTN Plugin2OC
OVSDB OpenFlow Plugin2OC
Neutron APIs
 OpenStack Service: OpenStack Service 에게 Northbound API를 제공 (REST API 형태)
 VTN Manager: Virtual Tenant Manager
 OVSDB Neutron
 Plugin2OC: Southbound plugin to OpenContrail Platform
OpenStack (via Neutron)
Southbound Interfaces
and Protocol Plugins
Controller Platform
And Services
Neutron APIs
Application and
Orchestration Services
© PIOLINK, Inc. SDN No.1
SDN Controller with OpenStack Neutron
 OpenStack Neutron: ML2 Plugin Structure
76
 OpenStack 에서도 OpenDaylight 과 연동하기 위한 feature를 제공
 SDN 의 장점인 Network Flexibility 가 OpenStack 에 반영 중
 SDN 을 활용하여 기존 하드웨어 활용 및 Network 장비와 연계를 통한 유연한 SDN Infra 를 확보하고자 노력
 OpenStack 과 SDN 연동 시 장점
- Physical & Virtual Network 제어 가능
- Tenant 별 Network 제어 가능 (Flow Management)
GRE
TypeDriver
VLAN
TypeDriver
VXLAN
TypeDriver
Arista
CiscoNexus
Hyper-V
Linuxbridge
Open
vSwitch
Tail-FNCS
Type Driver Mechanism Driver
OpenDaylight
© PIOLINK, Inc. SDN No.1
SDN Controller with OpenStack Neutron
 OpenDaylight with OpenStack Neutron
77
OpenDaylight API (REST API)
ML2 Plugin
OpenStack Service
OpenStack Neutron
OpenDaylight Driver
OVSDB VTN Plugin2OC
 OpenStack ML2 Plugin 의 OpenDaylight Driver 를 통해 OpenDaylight 와 연동 가능
© PIOLINK, Inc. SDN No.1
SDN Controller with OpenStack Neutron
 OpenDaylight with OpenStack Neutron
78
Controller NodeController Node
Neutron Server
Network Node
Layer 3 Agent
DHCP Agent
OVS
Compute Node
VM VM
OVS
Compute Node
VM VM
OVS
ML2 Plugin/
ODC Driver
Physical Switch
Network
Controller NodeOpenDaylight
Neutron API
OVSDB Plugin
REST API Call
 Neutron 과 OpenDaylight 연동을 통해 Data Center 내의 Physical Switch 와 Virtual Switch 제어
© PIOLINK, Inc. SDN No.1
 Summary
79
© PIOLINK, Inc. SDN No.1
Summary
 OpenStack 은 처음 Nova 에서 제공하는 Networking Service 를 사용
 기술적 제약사항으로 Networking Service 만을 위한 Quantum 프로젝트 시작
 상표권 문제로 인해 Quantum 에서 Neutron 으로 Code Name 변경
 OpenStack Neutron 은 Cloud 환경에서 Networking Service 를 제공
- Software 기반의 Networking Service 를 제공
 Neutron 을 이용하여 Cloud 환경에서 유연하게 Networking 변경작업이 가능
 Virtual Network 생성 및 관리 (Network, port, Subnet 생성 및 관리)
 Neutron 을 통해 Physical / Virtual Network 자원을 관리 함
- L2 Switch, L3 Switch, Load Balancer, VPN, Firewall 등
 Neutron 의 Plugin Architecture 를 이용하여 자유롭게 확장 가능
 SDN Controller 와 연동하여 사용 가능
80
© PIOLINK, Inc. SDN No.1
 References
81
© PIOLINK, Inc. SDN No.1
References
 OpenStack Overview Havana, Edgar Magana, October 2013
 OpenStack Neutron and SDN
 OpenStack 클라우드 네트워크 기술 분석, 2013 Electronics and Telecommunications Trends
 Network Virtualization with OpenStack Quantum, OpenStack Quantum Hacker
 From Nova-Network to Neutron and Beyond: A Look at OpenStack Networking
 OpenStack Networking Technical Deep Dive
 OpenStack meetup-pune-aug22-overview
 OpenStack Neutron
 Software Defined Network in OpenStack
 OpenStack and the Transformation of the Data Center
 OpenStack: Inside Out
82
감사합니다.
㈜파이오링크
서울시 금천구 가산디지털2로 98
(가산동 550-1) IT캐슬 1동 401호
TEL: 02-2025-6900
FAX: 02-2025-6901
www.PIOLINK.com
83

More Related Content

What's hot

[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?OpenStack Korea Community
 
MP BGP-EVPN 실전기술-1편(개념잡기)
MP BGP-EVPN 실전기술-1편(개념잡기)MP BGP-EVPN 실전기술-1편(개념잡기)
MP BGP-EVPN 실전기술-1편(개념잡기)JuHwan Lee
 
OpenStack DevStack Install - 2부 (Multi-nodes)
OpenStack DevStack Install - 2부 (Multi-nodes)OpenStack DevStack Install - 2부 (Multi-nodes)
OpenStack DevStack Install - 2부 (Multi-nodes)Ian Choi
 
L3HA-VRRP-20141201
L3HA-VRRP-20141201L3HA-VRRP-20141201
L3HA-VRRP-20141201Manabu Ori
 
OpenStack을 중심으로 한 오픈 소스 & 상용 하이브리드 클라우드
OpenStack을 중심으로 한 오픈 소스 & 상용 하이브리드 클라우드OpenStack을 중심으로 한 오픈 소스 & 상용 하이브리드 클라우드
OpenStack을 중심으로 한 오픈 소스 & 상용 하이브리드 클라우드Ian Choi
 
오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례SONG INSEOB
 
Overview of Distributed Virtual Router (DVR) in Openstack/Neutron
Overview of Distributed Virtual Router (DVR) in Openstack/NeutronOverview of Distributed Virtual Router (DVR) in Openstack/Neutron
Overview of Distributed Virtual Router (DVR) in Openstack/Neutronvivekkonnect
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축Ji-Woong Choi
 
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~ - ...
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~  - ...「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~  - ...
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~ - ...VirtualTech Japan Inc.
 
OpenStackトラブルシューティング入門
OpenStackトラブルシューティング入門OpenStackトラブルシューティング入門
OpenStackトラブルシューティング入門VirtualTech Japan Inc.
 
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDNOpenStack Korea Community
 
日本OpenStackユーザ会 第37回勉強会
日本OpenStackユーザ会 第37回勉強会日本OpenStackユーザ会 第37回勉強会
日本OpenStackユーザ会 第37回勉強会Yushiro Furukawa
 
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기Ian Choi
 
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링OpenStack Korea Community
 
Building IAM for OpenStack
Building IAM for OpenStackBuilding IAM for OpenStack
Building IAM for OpenStackSteve Martinelli
 
OpenvSwitch Deep Dive
OpenvSwitch Deep DiveOpenvSwitch Deep Dive
OpenvSwitch Deep Diverajdeep
 
[242]open stack neutron dataplane 구현
[242]open stack neutron   dataplane 구현[242]open stack neutron   dataplane 구현
[242]open stack neutron dataplane 구현NAVER D2
 
OpenStack勉強会
OpenStack勉強会OpenStack勉強会
OpenStack勉強会Yuki Obara
 

What's hot (20)

[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
[OpenStack Days Korea 2016] Track1 - 카카오는 오픈스택 기반으로 어떻게 5000VM을 운영하고 있을까?
 
MP BGP-EVPN 실전기술-1편(개념잡기)
MP BGP-EVPN 실전기술-1편(개념잡기)MP BGP-EVPN 실전기술-1편(개념잡기)
MP BGP-EVPN 실전기술-1편(개념잡기)
 
OpenStack DevStack Install - 2부 (Multi-nodes)
OpenStack DevStack Install - 2부 (Multi-nodes)OpenStack DevStack Install - 2부 (Multi-nodes)
OpenStack DevStack Install - 2부 (Multi-nodes)
 
L3HA-VRRP-20141201
L3HA-VRRP-20141201L3HA-VRRP-20141201
L3HA-VRRP-20141201
 
OpenStack을 중심으로 한 오픈 소스 & 상용 하이브리드 클라우드
OpenStack을 중심으로 한 오픈 소스 & 상용 하이브리드 클라우드OpenStack을 중심으로 한 오픈 소스 & 상용 하이브리드 클라우드
OpenStack을 중심으로 한 오픈 소스 & 상용 하이브리드 클라우드
 
오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례오픈스택 기반 클라우드 서비스 구축 방안 및 사례
오픈스택 기반 클라우드 서비스 구축 방안 및 사례
 
Overview of Distributed Virtual Router (DVR) in Openstack/Neutron
Overview of Distributed Virtual Router (DVR) in Openstack/NeutronOverview of Distributed Virtual Router (DVR) in Openstack/Neutron
Overview of Distributed Virtual Router (DVR) in Openstack/Neutron
 
Meetup 23 - 02 - OVN - The future of networking in OpenStack
Meetup 23 - 02 - OVN - The future of networking in OpenStackMeetup 23 - 02 - OVN - The future of networking in OpenStack
Meetup 23 - 02 - OVN - The future of networking in OpenStack
 
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
[오픈소스컨설팅]쿠버네티스를 활용한 개발환경 구축
 
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~ - ...
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~  - ...「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~  - ...
「Neutronになって理解するOpenStack Network」~Neutron/Open vSwitchなどNeutronと周辺技術の解説~ - ...
 
OpenStackトラブルシューティング入門
OpenStackトラブルシューティング入門OpenStackトラブルシューティング入門
OpenStackトラブルシューティング入門
 
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN
[OpenStack 하반기 스터디] Interoperability with ML2: LinuxBridge, OVS and SDN
 
日本OpenStackユーザ会 第37回勉強会
日本OpenStackユーザ会 第37回勉強会日本OpenStackユーザ会 第37回勉強会
日本OpenStackユーザ会 第37回勉強会
 
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
[OpenStack] 공개 소프트웨어 오픈스택 입문 & 파헤치기
 
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
[OpenStack Days Korea 2016] Track1 - Monasca를 이용한 Cloud 모니터링
 
Building IAM for OpenStack
Building IAM for OpenStackBuilding IAM for OpenStack
Building IAM for OpenStack
 
OpenvSwitch Deep Dive
OpenvSwitch Deep DiveOpenvSwitch Deep Dive
OpenvSwitch Deep Dive
 
Neutron packet logging framework
Neutron packet logging frameworkNeutron packet logging framework
Neutron packet logging framework
 
[242]open stack neutron dataplane 구현
[242]open stack neutron   dataplane 구현[242]open stack neutron   dataplane 구현
[242]open stack neutron dataplane 구현
 
OpenStack勉強会
OpenStack勉強会OpenStack勉強会
OpenStack勉強会
 

Viewers also liked

NFV Architectural Framework
NFV Architectural FrameworkNFV Architectural Framework
NFV Architectural FrameworkSeung-Hoon Baek
 
20160518 jun lee_ opnfv_brahmaputra_분석
20160518 jun lee_ opnfv_brahmaputra_분석20160518 jun lee_ opnfv_brahmaputra_분석
20160518 jun lee_ opnfv_brahmaputra_분석rootfs32
 
OpenDaylight의 High Availability 기능 분석
OpenDaylight의 High Availability 기능 분석OpenDaylight의 High Availability 기능 분석
OpenDaylight의 High Availability 기능 분석Seung-Hoon Baek
 
NFV VNF Architecture
NFV VNF ArchitectureNFV VNF Architecture
NFV VNF Architecturejungbh
 
QEMU Disk IO Which performs Better: Native or threads?
QEMU Disk IO Which performs Better: Native or threads?QEMU Disk IO Which performs Better: Native or threads?
QEMU Disk IO Which performs Better: Native or threads?Pradeep Kumar
 
20151030 jun lee_vnf 의 reliabilityavailability 제공을 위한 방법 (최종)
20151030 jun lee_vnf 의 reliabilityavailability 제공을 위한 방법 (최종)20151030 jun lee_vnf 의 reliabilityavailability 제공을 위한 방법 (최종)
20151030 jun lee_vnf 의 reliabilityavailability 제공을 위한 방법 (최종)rootfs32
 
ONOS (Open Network Operating System) Blackbird Release 분석
ONOS (Open Network Operating System)  Blackbird Release 분석ONOS (Open Network Operating System)  Blackbird Release 분석
ONOS (Open Network Operating System) Blackbird Release 분석rootfs32
 
20150818 jun lee_openstack kilo release 내용 분석
20150818 jun lee_openstack kilo release 내용 분석20150818 jun lee_openstack kilo release 내용 분석
20150818 jun lee_openstack kilo release 내용 분석rootfs32
 
Introduction to Virtualization, Virsh and Virt-Manager
Introduction to Virtualization, Virsh and Virt-ManagerIntroduction to Virtualization, Virsh and Virt-Manager
Introduction to Virtualization, Virsh and Virt-Managerwalkerchang
 
Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조Seung-Hoon Baek
 
Kvm performance optimization for ubuntu
Kvm performance optimization for ubuntuKvm performance optimization for ubuntu
Kvm performance optimization for ubuntuSim Janghoon
 
Open vSwitch의 Vendor Extension 구현
Open vSwitch의 Vendor Extension 구현Open vSwitch의 Vendor Extension 구현
Open vSwitch의 Vendor Extension 구현Seung-Hoon Baek
 
NFV Management and Orchestration 분석
NFV Management and Orchestration 분석NFV Management and Orchestration 분석
NFV Management and Orchestration 분석rootfs32
 

Viewers also liked (14)

Docker Container
Docker ContainerDocker Container
Docker Container
 
NFV Architectural Framework
NFV Architectural FrameworkNFV Architectural Framework
NFV Architectural Framework
 
20160518 jun lee_ opnfv_brahmaputra_분석
20160518 jun lee_ opnfv_brahmaputra_분석20160518 jun lee_ opnfv_brahmaputra_분석
20160518 jun lee_ opnfv_brahmaputra_분석
 
OpenDaylight의 High Availability 기능 분석
OpenDaylight의 High Availability 기능 분석OpenDaylight의 High Availability 기능 분석
OpenDaylight의 High Availability 기능 분석
 
NFV VNF Architecture
NFV VNF ArchitectureNFV VNF Architecture
NFV VNF Architecture
 
QEMU Disk IO Which performs Better: Native or threads?
QEMU Disk IO Which performs Better: Native or threads?QEMU Disk IO Which performs Better: Native or threads?
QEMU Disk IO Which performs Better: Native or threads?
 
20151030 jun lee_vnf 의 reliabilityavailability 제공을 위한 방법 (최종)
20151030 jun lee_vnf 의 reliabilityavailability 제공을 위한 방법 (최종)20151030 jun lee_vnf 의 reliabilityavailability 제공을 위한 방법 (최종)
20151030 jun lee_vnf 의 reliabilityavailability 제공을 위한 방법 (최종)
 
ONOS (Open Network Operating System) Blackbird Release 분석
ONOS (Open Network Operating System)  Blackbird Release 분석ONOS (Open Network Operating System)  Blackbird Release 분석
ONOS (Open Network Operating System) Blackbird Release 분석
 
20150818 jun lee_openstack kilo release 내용 분석
20150818 jun lee_openstack kilo release 내용 분석20150818 jun lee_openstack kilo release 내용 분석
20150818 jun lee_openstack kilo release 내용 분석
 
Introduction to Virtualization, Virsh and Virt-Manager
Introduction to Virtualization, Virsh and Virt-ManagerIntroduction to Virtualization, Virsh and Virt-Manager
Introduction to Virtualization, Virsh and Virt-Manager
 
Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조Open vSwitch 패킷 처리 구조
Open vSwitch 패킷 처리 구조
 
Kvm performance optimization for ubuntu
Kvm performance optimization for ubuntuKvm performance optimization for ubuntu
Kvm performance optimization for ubuntu
 
Open vSwitch의 Vendor Extension 구현
Open vSwitch의 Vendor Extension 구현Open vSwitch의 Vendor Extension 구현
Open vSwitch의 Vendor Extension 구현
 
NFV Management and Orchestration 분석
NFV Management and Orchestration 분석NFV Management and Orchestration 분석
NFV Management and Orchestration 분석
 

Similar to 20150511 jun lee_openstack neutron 분석 (최종)

20150818 jun lee_openstack juno release 내용 분석
20150818 jun lee_openstack juno release 내용 분석20150818 jun lee_openstack juno release 내용 분석
20150818 jun lee_openstack juno release 내용 분석rootfs32
 
KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)
KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)
KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)Ubuntu Korea Community
 
[OpenStack Days Korea 2016] Innovating OpenStack Network with SDN solution
[OpenStack Days Korea 2016] Innovating OpenStack Network with SDN solution[OpenStack Days Korea 2016] Innovating OpenStack Network with SDN solution
[OpenStack Days Korea 2016] Innovating OpenStack Network with SDN solutionOpenStack Korea Community
 
OpenStack summit austin 2016
OpenStack summit austin 2016OpenStack summit austin 2016
OpenStack summit austin 2016Yongyoon Shin
 
[OpenInfra Days Korea 2018] (Track 3) - SDN/NFV enabled Openstack Platform : ...
[OpenInfra Days Korea 2018] (Track 3) - SDN/NFV enabled Openstack Platform : ...[OpenInfra Days Korea 2018] (Track 3) - SDN/NFV enabled Openstack Platform : ...
[OpenInfra Days Korea 2018] (Track 3) - SDN/NFV enabled Openstack Platform : ...OpenStack Korea Community
 
Brocade Vyatta Controller Overview
Brocade Vyatta Controller OverviewBrocade Vyatta Controller Overview
Brocade Vyatta Controller OverviewSeung-Hoon Baek
 
[OpenStack Day in Korea 2015] Track 2-4 - Towards Programmable Network (Conce...
[OpenStack Day in Korea 2015] Track 2-4 - Towards Programmable Network (Conce...[OpenStack Day in Korea 2015] Track 2-4 - Towards Programmable Network (Conce...
[OpenStack Day in Korea 2015] Track 2-4 - Towards Programmable Network (Conce...OpenStack Korea Community
 
[온라인교육시리즈] 네이버클라우드플랫폼 주요 업데이트 - 윤진규 클라우드 솔루션 아키텍트
[온라인교육시리즈] 네이버클라우드플랫폼 주요 업데이트 - 윤진규 클라우드 솔루션 아키텍트[온라인교육시리즈] 네이버클라우드플랫폼 주요 업데이트 - 윤진규 클라우드 솔루션 아키텍트
[온라인교육시리즈] 네이버클라우드플랫폼 주요 업데이트 - 윤진규 클라우드 솔루션 아키텍트NAVER CLOUD PLATFORMㅣ네이버 클라우드 플랫폼
 
[OpenStack Days Korea 2016] Track2 - 아리스타 OpenStack 연동 및 CloudVision 솔루션 소개
[OpenStack Days Korea 2016] Track2 - 아리스타 OpenStack 연동 및 CloudVision 솔루션 소개[OpenStack Days Korea 2016] Track2 - 아리스타 OpenStack 연동 및 CloudVision 솔루션 소개
[OpenStack Days Korea 2016] Track2 - 아리스타 OpenStack 연동 및 CloudVision 솔루션 소개OpenStack Korea Community
 
5G SDN/NFV/CNF
5G SDN/NFV/CNF5G SDN/NFV/CNF
5G SDN/NFV/CNFJames Ahn
 
Spring cloud on kubernetes
Spring cloud on kubernetesSpring cloud on kubernetes
Spring cloud on kubernetesSangSun Park
 
OpenStack 인스턴스 간략 사용자_매뉴얼(liberty)_v1
OpenStack 인스턴스 간략 사용자_매뉴얼(liberty)_v1OpenStack 인스턴스 간략 사용자_매뉴얼(liberty)_v1
OpenStack 인스턴스 간략 사용자_매뉴얼(liberty)_v1Ji-Woong Choi
 
[20170328]sdn nfv intro
[20170328]sdn nfv intro[20170328]sdn nfv intro
[20170328]sdn nfv introKyunghee Univ
 
1st SDN Interest Group Seminar - Session2 (121017)
1st SDN Interest Group Seminar - Session2 (121017)1st SDN Interest Group Seminar - Session2 (121017)
1st SDN Interest Group Seminar - Session2 (121017)NAIM Networks, Inc.
 
Wiki academy sysadmin 1_day
Wiki academy sysadmin 1_dayWiki academy sysadmin 1_day
Wiki academy sysadmin 1_dayJo Hoon
 
3rd SDN Interest Group Seminar-Session 3 (130123)
3rd SDN Interest Group Seminar-Session 3 (130123)3rd SDN Interest Group Seminar-Session 3 (130123)
3rd SDN Interest Group Seminar-Session 3 (130123)NAIM Networks, Inc.
 
[OpenStack Days Korea 2016] Track2 - How to speed up OpenStack network with P...
[OpenStack Days Korea 2016] Track2 - How to speed up OpenStack network with P...[OpenStack Days Korea 2016] Track2 - How to speed up OpenStack network with P...
[OpenStack Days Korea 2016] Track2 - How to speed up OpenStack network with P...OpenStack Korea Community
 
시스템/네트워크 관리자가 바로 쓸 수 있는 파이썬
시스템/네트워크 관리자가 바로 쓸 수 있는 파이썬시스템/네트워크 관리자가 바로 쓸 수 있는 파이썬
시스템/네트워크 관리자가 바로 쓸 수 있는 파이썬위키북스
 
SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)
SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)
SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)정명훈 Jerry Jeong
 
[OpenInfra Days Korea 2018] (삼성전자) Evolution to Cloud Native
[OpenInfra Days Korea 2018] (삼성전자) Evolution to Cloud Native[OpenInfra Days Korea 2018] (삼성전자) Evolution to Cloud Native
[OpenInfra Days Korea 2018] (삼성전자) Evolution to Cloud NativeOpenStack Korea Community
 

Similar to 20150511 jun lee_openstack neutron 분석 (최종) (20)

20150818 jun lee_openstack juno release 내용 분석
20150818 jun lee_openstack juno release 내용 분석20150818 jun lee_openstack juno release 내용 분석
20150818 jun lee_openstack juno release 내용 분석
 
KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)
KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)
KT 안재석 박사 - 오픈 소스 기반 클라우드 컴퓨팅 솔루션 open stack 이야기 (2011Y05M28D)
 
[OpenStack Days Korea 2016] Innovating OpenStack Network with SDN solution
[OpenStack Days Korea 2016] Innovating OpenStack Network with SDN solution[OpenStack Days Korea 2016] Innovating OpenStack Network with SDN solution
[OpenStack Days Korea 2016] Innovating OpenStack Network with SDN solution
 
OpenStack summit austin 2016
OpenStack summit austin 2016OpenStack summit austin 2016
OpenStack summit austin 2016
 
[OpenInfra Days Korea 2018] (Track 3) - SDN/NFV enabled Openstack Platform : ...
[OpenInfra Days Korea 2018] (Track 3) - SDN/NFV enabled Openstack Platform : ...[OpenInfra Days Korea 2018] (Track 3) - SDN/NFV enabled Openstack Platform : ...
[OpenInfra Days Korea 2018] (Track 3) - SDN/NFV enabled Openstack Platform : ...
 
Brocade Vyatta Controller Overview
Brocade Vyatta Controller OverviewBrocade Vyatta Controller Overview
Brocade Vyatta Controller Overview
 
[OpenStack Day in Korea 2015] Track 2-4 - Towards Programmable Network (Conce...
[OpenStack Day in Korea 2015] Track 2-4 - Towards Programmable Network (Conce...[OpenStack Day in Korea 2015] Track 2-4 - Towards Programmable Network (Conce...
[OpenStack Day in Korea 2015] Track 2-4 - Towards Programmable Network (Conce...
 
[온라인교육시리즈] 네이버클라우드플랫폼 주요 업데이트 - 윤진규 클라우드 솔루션 아키텍트
[온라인교육시리즈] 네이버클라우드플랫폼 주요 업데이트 - 윤진규 클라우드 솔루션 아키텍트[온라인교육시리즈] 네이버클라우드플랫폼 주요 업데이트 - 윤진규 클라우드 솔루션 아키텍트
[온라인교육시리즈] 네이버클라우드플랫폼 주요 업데이트 - 윤진규 클라우드 솔루션 아키텍트
 
[OpenStack Days Korea 2016] Track2 - 아리스타 OpenStack 연동 및 CloudVision 솔루션 소개
[OpenStack Days Korea 2016] Track2 - 아리스타 OpenStack 연동 및 CloudVision 솔루션 소개[OpenStack Days Korea 2016] Track2 - 아리스타 OpenStack 연동 및 CloudVision 솔루션 소개
[OpenStack Days Korea 2016] Track2 - 아리스타 OpenStack 연동 및 CloudVision 솔루션 소개
 
5G SDN/NFV/CNF
5G SDN/NFV/CNF5G SDN/NFV/CNF
5G SDN/NFV/CNF
 
Spring cloud on kubernetes
Spring cloud on kubernetesSpring cloud on kubernetes
Spring cloud on kubernetes
 
OpenStack 인스턴스 간략 사용자_매뉴얼(liberty)_v1
OpenStack 인스턴스 간략 사용자_매뉴얼(liberty)_v1OpenStack 인스턴스 간략 사용자_매뉴얼(liberty)_v1
OpenStack 인스턴스 간략 사용자_매뉴얼(liberty)_v1
 
[20170328]sdn nfv intro
[20170328]sdn nfv intro[20170328]sdn nfv intro
[20170328]sdn nfv intro
 
1st SDN Interest Group Seminar - Session2 (121017)
1st SDN Interest Group Seminar - Session2 (121017)1st SDN Interest Group Seminar - Session2 (121017)
1st SDN Interest Group Seminar - Session2 (121017)
 
Wiki academy sysadmin 1_day
Wiki academy sysadmin 1_dayWiki academy sysadmin 1_day
Wiki academy sysadmin 1_day
 
3rd SDN Interest Group Seminar-Session 3 (130123)
3rd SDN Interest Group Seminar-Session 3 (130123)3rd SDN Interest Group Seminar-Session 3 (130123)
3rd SDN Interest Group Seminar-Session 3 (130123)
 
[OpenStack Days Korea 2016] Track2 - How to speed up OpenStack network with P...
[OpenStack Days Korea 2016] Track2 - How to speed up OpenStack network with P...[OpenStack Days Korea 2016] Track2 - How to speed up OpenStack network with P...
[OpenStack Days Korea 2016] Track2 - How to speed up OpenStack network with P...
 
시스템/네트워크 관리자가 바로 쓸 수 있는 파이썬
시스템/네트워크 관리자가 바로 쓸 수 있는 파이썬시스템/네트워크 관리자가 바로 쓸 수 있는 파이썬
시스템/네트워크 관리자가 바로 쓸 수 있는 파이썬
 
SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)
SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)
SDDC(software defined data center)에서 NFV의 역할과 관리도구 (세미나 발표 자료)
 
[OpenInfra Days Korea 2018] (삼성전자) Evolution to Cloud Native
[OpenInfra Days Korea 2018] (삼성전자) Evolution to Cloud Native[OpenInfra Days Korea 2018] (삼성전자) Evolution to Cloud Native
[OpenInfra Days Korea 2018] (삼성전자) Evolution to Cloud Native
 

20150511 jun lee_openstack neutron 분석 (최종)

  • 1. OpenStack Neutron 분석 2015. 05. 11 ㈜파이오링크 SDN개발실 이준 (jun.lee@piolink.com)
  • 2. © PIOLINK, Inc. SDN No.1 Contents  Backgrounds  OpenStack Neutron Overview  History of OpenStack Neutron  Details of OpenStack Neutron - Concept of OpenStack Networking - OpenStack Networking Architecture - OpenStack Neutron Network - OpenStack Neutron Plugins and Agents  OpenStack Networking Deployment Use Cases  SDN Controller with OpenStack Neutron  Summary  References 2
  • 3. © PIOLINK, Inc. SDN No.1  Backgrounds 3
  • 4. © PIOLINK, Inc. SDN No.1 Backgrounds  Terminology in OpenStack Neutron - OpenStack: Cloud 환경에서 Computing, Storage, Network 등 자원을 관리하는 Cloud OS • Open Source Software 프로젝트의 집합 (Nova, Swift, Cinder, Neutron, Horizon, Keystone …) - Nova: VM (Virtual Machine) Instance 를 구축하고 관리 - Neutron: Virtual Network 관리 - Keystone: 인증서비스 제공 - Horizon: Dashboard 구성, VM 설치 및 관리 모니터링 등을 지원 - Tenant: 사용자에 대한 논리적인 그룹, OpenStack 에서 Resource 는 사용자에게 직접 할당되지 않고 Tenant 단위로 할당 - Fixed IP: Virtual Instance 를 생성할 때 사용하는 Private IP • Host 내부에서 만 통신 가능 • VM 이나 External Network 와 통신 시 SNAT 필요 (L3 Agent 에서 수행) - Floating IP: Virtual Instance 를 외부에서 사용 가능하도록 해주는 Public IP - Network Virtualization: Network 를 Virtual Machine 처럼 생성해서 사용하는 것 4
  • 5. © PIOLINK, Inc. SDN No.1 Backgrounds 5  OpenStack Basic Architecture for Networking Service Compute Node Controller Node Controller NodeNetwork Node  OpenStack 에서 Networking Service 제공을 위해, Network Node, Compute Node, Controller Node 로 구성
  • 6. © PIOLINK, Inc. SDN No.1  OpenStack Neutron Overview 6
  • 7. © PIOLINK, Inc. SDN No.1 OpenStack Neutron Overview 7  Concept of OpenStack Neutron Nova Neutron VM VM VM User Create VMs Create Network and Attach Port to VM Network 1 Network 2  Nova (Compute Node)에서는 VM Instance 를 생성하는 역할을 담당  Neutron 에서는 Network Virtualization Service를 제공: Virtual Network 를 생성하고 관리하는 역할을 담당  Virtual Network 를 설정하고 VMs 을 연결할 수 있는 추상화된 API 를 제공 (소프트웨어 기반의 Network Service 제공)  Virtual Switch 와 Physical Switch 를 연결  다양한 Networking 관련 기술 및 장비를 지원하기 위해 Plugin 방식을 사용
  • 8. © PIOLINK, Inc. SDN No.1 OpenStack Neutron Overview  Concept of OpenStack Neutron: Network Virtualization 8 Tenant View Physical View Data Center Network Hypervisor Phy server1 VM A1 VM B1 Hypervisor Phy server2 VM A2 Hypervisor Phy server3 VM B2 VM A1 VM A2 Network A VM B1 VM B2 Network B  하나의 물리 네트워크상에 독립적인 서로 다른 Virtual Network 를 운용할 수 있는 기술을 의미  Neutron 을 통해 OpenStack 에서 다양한 형태의 Virtual Network Topology 구성이 가능 함
  • 9. © PIOLINK, Inc. SDN No.1 OpenStack Neutron Overview  Concept of OpenStack Neutron: Architecture 9  외부에서 Virtual Network 를 생성하고 제어가 가능하도록 REST API 형태로 외부에 공개  Neutron Server 는 외부 요청을 처리하고, DB 에 작업상태를 수시로 업데이트  Neutron Server 를 통해 전달된 요청은 Keystone과 연결된 모듈을 통해 인증과 접근권한을 확인 - 인증된 메시지만 설정된 Neutron Plugin 으로 전달  외부에 공개되는 API 는 Core API 와 Extension API 로 구분 가능 - Core-plugins: L2 Network, L3 Subnet, 포트제어, IP 주소관리 와 같이 기본적인 역할을 하는 Plugin - Service-plugins: Load balancing, firewall, VPN 과 같은 부가적인 네트워크 서비스를 제공하는 Plugin NeutronNeutron Server API Clients Core Neutron API Extension API Authentication & Authorization via OpenStack Keystone Neutron Pluggable Backend REST API Core-plugins Service-plugins DB Horizon GUI Neutron CLI ML2 OVS Cisco LB FW VPN L3 service
  • 10. © PIOLINK, Inc. SDN No.1 OpenStack Neutron Overview 10  Concept of OpenStack Neutron: Core API VM1 10.0.0.2 Network1 10.0.0.0/24 VM2 10.0.0.3Nova Neutron Virtual Server Virtual Interface (VIF) Virtual Port Virtual Network  Network, Subnet, Port 들의 추상화를 통해 해당 객체를 제어할 수 있는 API 제공 - Network: 독립된 L2 Network Segment 를 의미 함 (Layer2 Broadcast Domain, VLAN 개념과 유사함) - Subnet: Network 에서 사용하는 IP주소 범위를 의미함, 각 Network 는 Multiple subnets 사용 가능 - Port: L2 Network 에 연결되는 지점을 의미 함, Port 에는 MAC 주소와 Fixed IP 주소가 할당 됨 Subnet
  • 11. © PIOLINK, Inc. SDN No.1 OpenStack Neutron Overview  Concept of OpenStack Neutron: Core API 예제 - Networking API v2.0 사용 - Networks: List, show information for, create, update, and delete networks • POST /v2.0/networks // Network 생성 • GET /v2.0/networks/{network_id} // Network 정보 조회 - Subnets: List, show information for, create, update, and delete subnet resources • POST /v2.0/subnets // Subnet 생성 • GET /v2.0/subnets/{subnet_id} // Subnet 정보 조회 - Ports: List, show information for, create, update, and delete ports • POST /v2.0/ports // Port 생성 • GET /v2.0/ports/{port_id} // Port 정보 조회 11
  • 12. © PIOLINK, Inc. SDN No.1 OpenStack Neutron Overview 12  Concept of OpenStack Neutron: Core API Details Horizon Neutron Nova Create Network Network-id Create Subnet Subnet-id Create Port Port-id Create a VM with Port = Port-id  Neutron 을 통해 Network, Subnet, Port 등을 생성하고 Nova 를 통해 VM 을 생성 Figure: Create a VM Flow
  • 13. © PIOLINK, Inc. SDN No.1 OpenStack Neutron Overview  Concept of OpenStack Neutron: Extension API 예제 - Networking API v2.0 사용 - Load-Balancer-as-a-Service (LBaaS) • POST /v2.0/lb/vips // load balancer VIP 생성 • GET /v2.0/lb/vips/{vip_id} // VIP 정보 조회 • POST /v2.0/lbaas/pools // load balancer pool 생성 • GET /v2.0/lbaas/pools/{pool_id} // load balancer pool 정보 조회 - Virtual-Private-Network-as-a-Service (VPNaaS) • POST /v2.0/vpnservices // VPN Service 생성 • GET /v2.0/vpnservices/{service_id} // VPN Service 상세정보 조회 • POST /v2.0/vpn/ipsecsiteconnections // IPSec connection 생성 • GET /v2.0/vpn/ipsecsiteconnections/{connection_id} // IPSec connection 정보 조회 13
  • 14. © PIOLINK, Inc. SDN No.1 OpenStack Neutron Overview 14  Concept of OpenStack Neutron: Plugin Architecture Neutron Plugin Network Controller (Agent) Network Appliance / Software Switch Plugin Plugin Plugin Network Controller Network Controller Network Controller Type A Type B Type B … Application Select a plugin to use Neutron API  OpenStack Neutron 은 다양한 Vendor 의 요구사항을 수용하기 위해 Plugin – Agent 구조로 되어 있음  Plugin 은 명령을 전달하는 역할 / Agent 는 명령어를 전달받아 실제 장비나 Software 에 명령어 실행  Plugin Architecture 장점: 기본적으로 제공되는 기능이 부족하다면, Third Party 에서 원하는 기능을 추가 할 수 있음  PIOLINK 에서도 Neutron Plugin 의 LBaaS Driver 개발 경험 있음 (뒤 슬라이드에서 설명)
  • 15. © PIOLINK, Inc. SDN No.1 OpenStack Neutron Overview 15  Concept of OpenStack Neutron: Plugin Architecture Controller Node Neutron Server REST API 제공 Messaging  Plugin 은 명령을 전달하는 역할 / Agent 는 명령어를 전달받아 실행 - Agent 에서는 실제 장비 또는 가상장비에 설정 이나 Virtual Network 생성 등을 수행  Neutron 에 다양한 Plugin 이 존재 함 (각 Vendor 들의 상용제품 포함) Network Node Compute Node L3 Agent L2 Agent DHCP Agent L2 Agent Virtual Router 생성 Virtual L2 Switch 생성 Fixed IP 주소 할당 Virtual L2 Switch 생성 Message Queue Adv Services Plugin LB, VPN 등 설정
  • 16. © PIOLINK, Inc. SDN No.1  History of OpenStack Neutron 16
  • 17. © PIOLINK, Inc. SDN No.1 History of OpenStack Neutron  OpenStack Release 17 Release Name Release Date Included Components Austin Oct 12, 2010 Nova, Swift Bexar Feb 3, 2011 Nova, Glance, Swift Cactus Apr 15, 2011 Nova, Glance, Swift Diablo Sep 22, 2011 Nova, Glance, Swift Essex Apr 5, 2012 Nova, Glance, Swift, Horizon, Keystone Folsom Sep 7, 2012 Nova, Glance, Swift, Horizon, Keystone, Quantum, Cinder Grizzly Apr 4, 2013 Nova, Glance, Swift, Horizon, Keystone, Quantum, Cinder Havana Oct 17, 2013 Nova, Glance, Swift, Horizon, Keystone, Neutron, Cinder, Heat, Ceilometer Icehouse Apr 17, 2014 All above, Trove Juno Oct 16, 2014 All above Kilo Apr 30, 2015 All above, Sahara Liberty Oct 15, 2015 (Under Discussion)  Diablo, Essex 에서는 Quantum 이 실험적으로, Folsom 부터 Quantum 이 공식 프로젝트로 포함 되었음  Havana 부터는 상표권 문제로 Quantum 대신 Neutron 이라는 이름으로 변경 (Quantum = Neutron)
  • 18. © PIOLINK, Inc. SDN No.1 History of OpenStack Neutron  OpenStack Networking Service - OpenStack 의 Networking Service 는 Quantum 출현 전후로 변화가 생김 - OpenStack Austin ~ Essex • OpenStack 초기 배포 버전의 경우 Nova 프로젝트의 Nova-Network 를 통해 사용자 or 사용자 그룹에게 기본적인 L2 Virtual Network 만을 제공 - OpenStack Folsom ~ • Nova-Network 의 여러 가지 기술적 제약사항과 확장 가능성을 고려하여 독립된 Networking Service 필요성이 제기 됨 • Quantum/Neutron 을 통해 VM에 대한 Multi-tenant Network 연결 서비스 와 다양한 Network 기반 Service 제공 가능 • Quantum/Neutron 을 통해 Switching, Routing, Load Balancing, VPN 등 Data Center 에서 사용되는 다양한 기술을 제공이 가능 함 18
  • 19. © PIOLINK, Inc. SDN No.1 History of OpenStack Neutron  OpenStack Nova Network - Nova 는 OpenStack 에서 VM 을 관리하는 하위 프로젝트 명 - 초기에는 VM 을 관리하는 Nova 에서 Network 도 함께 관리 하였음 • 초기에는 VM Instance 와 Network 가 동시에 관리되어야 한다고 생각 - Nova 구성 요소 내 Nova Network 라는 하위 구성 요소를 두고 설계되어 발전 • Nova Network 는 OpenStack 에서 Network Resource 를 관리 - Nova Network 에서는 아래 3가지 Mode 를 지원 • Flat Mode • Flat DHCP Mode • VLAN DHCP Mode 19
  • 20. © PIOLINK, Inc. SDN No.1 History of OpenStack Neutron  OpenStack Nova Network: Flat Mode 20 VM VM VM Bridge G/W eth0  가장 간단한 Networking 구조  모든 VM Instance 가 하나의 bridge 에 연결되어 고정 IP를 부여 받음  VM 이 Booting 시 Network Configuration (/etc/network/interface)에 저장된 정보를 통해 IP 할당
  • 21. © PIOLINK, Inc. SDN No.1 History of OpenStack Neutron  OpenStack Nova Network: Flat DHCP Mode 21 VM VM VM Bridge G/W eth0  Flat Mode 와 마찬가지로 모든 VM Instance 가 하나의 Bridge 에 연결  dnsmasq 를 통해 IP를 할당 받음  dnsmasq: DNS, DHCP 서버 역할을 하는 OpenSource dnsmasq
  • 22. © PIOLINK, Inc. SDN No.1 History of OpenStack Neutron  OpenStack Nova Network: VLAN DHCP Mode 22 VM VM VM Bridge G/W eth0 dnsmasq Bridge G/W dnsmasq vlan 100 vlan 101  VM Instance를 Public 영역에 노출시키지 않음 (VPN 을 통해 접근 가능)  Project 별로 VLAN 과 Bridge를 생성 (Project 는 Private IP 대역을 얻음)  VM Instance 는 Project 가 할당 받은 Private IP중 하나를 얻음  Nova VPN (CloudPipe): 사용자가 VLAN 밖에서 VLAN 내의 VM Instance 에 접근하기 위해 사용하는 VPN Instance  OpenStack 초기 Version 에서는 Tenant 를 Project 라고 표현 하였음
  • 23. © PIOLINK, Inc. SDN No.1 History of OpenStack Neutron  OpenStack Quantum/Neutron 의 출현 배경 - 기술적 제약 • Cloud Computing Service 가 확산되면서 아래와 같은 기술이 요구됨 - Multi tenancy 지원 » Data Center 내에서 User or Tenant 가 생성한 Network 가 독립된 Network 처럼 동작 하는 것 » VLAN, Tunneling, MPLS (Multi-Protocol Label Switching) 기술 등을 통해 제공 가능 - Dynamic Network Provisioning » Tenant Network 구성을 위해 Resource 를 할당하고 설정하는 일을 자동화 하는 기술 - VM Migration » 서비스 품질 보장을 위해 생성한 VM 을 다른 서버로 이전(Migration)하는 기술 » 서비스 연속성 보장을 위해 IP 주소 등 Network 설정이 그대로 유지되어야 함 • 상용 Vendor 하드웨어 구성과 연계를 위한 통합된 Network Virtualization 방안 필요 • Nova Network 에서는 일부 기본적인 기술만을 지원 - Multi tenancy 지원 » VLAN을 이용하여 4094개의 Multi Tenant Network 구성 가능 » Data Center 의 규모가 확대되고 VM 수가 증가함에 따라 더욱더 많은 Tenant Network 구성이 요구됨 - Dynamic Network Provisioning » Tenant Network 구성을 위한 Resource 를 할당하고 설정을 관리자가 수작업을 통해 해야 함 23
  • 24. © PIOLINK, Inc. SDN No.1 History of OpenStack Neutron  OpenStack Quantum/Neutron 의 출현 배경 - Tenant 제어의 한계 • 기업에서 Cloud Computing 환경 도입 시 이미 운용 중이던 복잡한 Infra를 가급적 그대로 유지하길 원함 • Cloud Computing 환경에서 기존 Infra 를 그대로 재현하기 위해서는 아래와 같은 기술이 필요 함 - Multi tier Network 생성 » Multi tier Network 웹 서비스 제공 시 성능향상 및 보안 성을 높이기 위해 웹 서버, 응용 서버, 데이터베이스 서버를 각각 분 리하여 다 계층 으로 구성하는 방법 - IP 주소 관리 » Data Center 내에서 동일한 IP 주소를 중복해서 사용 가능하도록 지원 - Network 서비스 장비의 추가 및 설정 » Load Balancer, Firewall 등 다양한 Network Service 장비를 Tenant 별로 쉽게 추가하고 제어할 수 있도록 지원 - 원격 서버 또는 장비와의 VPN (Virtual Private Network)연결 » Cloud Infra 밖의 원격 서버나 장비와 VPN 연결을 통해 안전한 Virtual Private Network 환경 구축 지원 24
  • 25. © PIOLINK, Inc. SDN No.1 History of OpenStack Neutron  OpenStack 배포 Version 별 Quantum/Neutron 특징 25 Compute Node Controller Node Management Data External API Internet Controller Node quantum Server quantum *-plugin-agent Network Node quantum *-plugin-agent quantum L3 Agent quantum DHCP Agent - OpenStack Folsom  최초로 Quantum 이 공식 프로젝트로 포함 (Quantum 이전 Diablo, Essex 에서는 시험적으로 포함되어 있었음)  L3 Subnet 을 제어할 수 있는 API 추가 (L2 관련 API 기존에 지원), 서로 다른 L2 네트워크에서 Fixed IP 중복 사용 가능하도록 변경  Provider Network, L3 forwarding, SNAT, Floating IP 관리 등 L3 네트워크 제어가 가능하도록 기능 확장  Multiple Router 를 지원 가능 하도록 변경  Neutron 신규 Plugin 추가: Open vSwitch, Cisco, Linux Bridge, Nicira NVP, Ryu, NEC
  • 26. © PIOLINK, Inc. SDN No.1 History of OpenStack Neutron  OpenStack 배포 Version 별 Quantum/Neutron 특징 26 Compute Node Controller Node Management Data External API Internet Controller Node quantum Server quantum *-plugin-agent Network Node quantum *-plugin-agent quantum L3 Agent quantum DHCP Agent - OpenStack Grizzly quantum Metadata agent  Multiple Network 지원 (복수의 Network Node 를 배치하여 Network Service 장애 위험 최소화, High Availability 지원 가능)  HA Proxy를 기반으로 Load Balancer (LBaaS) 서비스 제공  L3/L4 Packet filtering 기능 추가, Meta plugin 실험적으로 추가  Neutron 신규 Plugin 지원: Big Switch, Brocade, Hyper-V, Plum Grid, Midonet, 기존 Plugin 개선: Nicira NVP, Ryu
  • 27. © PIOLINK, Inc. SDN No.1 History of OpenStack Neutron  OpenStack 배포 Version 별 Quantum/Neutron 특징 27 Compute Node Controller Node Management Data External API Internet Controller Node neutron server neutron *-plugin-agent Network Node neutron *-plugin-agent neutron L3 Agent neutron DHCP Agent - OpenStack Havana  Code Name: Quantum 에서 Neutron 으로 변경 됨  Load Balancer (LBaaS) 기능 개선, VPN (VPNaaS), Firewall (FWass) 등의 Service 추가  ML2 Plugin 개념이 처음으로 나옴
  • 28. © PIOLINK, Inc. SDN No.1 History of OpenStack Neutron  OpenStack 배포 Version 별 Quantum/Neutron 특징 28 Compute Node Controller Node Management Data External API Internet Controller Node neutron server Layer 2 Agent (OVS) Network Node ML2 Plug-in Layer 2 Agent (OVS) Layer 3 Agent - OpenStack Icehouse ML2 Plugin ML2 Plug-in DHCP Agent  Neutron 안정화 와 Testing 에 초점, ML2 Plugin 이 기본 Plugin 으로 채택  Neutron 신규 Driver/Plugin 추가: IBM SDN-VE, Nuage, OneConvergence, OpenDaylight  Load Balancing Service Driver 추가: Embrace, NetScaler, Radware  Neutron 신규 VPN Dirver 추가 (Cisco CSR)
  • 29. © PIOLINK, Inc. SDN No.1 History of OpenStack Neutron  OpenStack 배포 Version 별 Quantum/Neutron 특징 29 Compute Node Controller Node Management Data External API Internet Controller Node Neutron Server Layer 2 Agent (OVS) Network Node ML2 Plug-in Layer 2 Agent (OVS) Layer 3 Agent - OpenStack Juno ML2 Plugin ML2 Plug-in DHCP Agent Metadata Agent  Distributed Virtual Router 지원, Tenant Network 에 IPv6 지원, L3 Agent 에 HA 지원 및 성능 향상  Neutron 신규 Plugin 추가 - A10 Networks LBaaS driver, Arista L3 route plugin, Brocade L3 routing plugin, Cisco APIC ML2 Driver, Cisco CSR L3 routing plugin, Freescale SDN ML2 Mechanism Driver, Nuage Networks ML2 Mechanism Driver, SR-IOV capable NIC ML2 Mechanism Dirver, OpenContrail Neutron Plugin
  • 30. © PIOLINK, Inc. SDN No.1 History of OpenStack Neutron  OpenStack 배포 Version 별 Quantum/Neutron 특징 30 Compute Node Controller Node Management Data External API Internet Controller Node Neutron Server Layer 2 Agent (OVS) Network Node ML2 Plug-in Layer 2 Agent (OVS) Layer 3 Agent - OpenStack Kilo ML2 Plugin ML2 Plug-in DHCP Agent Metadata Agent  Subnet allocation, ML2 Hierarchical Port Binding, 신규 LBaaS Version 2 API, OVS ML2 Driver 를 위한 Port Security, IPv6 관련 API 추가  Neutron 신규 Plugin 추가 - A10 Networks LBaaS driver, Brocade LBaaS V2 Driver, Brocade ML2 driver for MLX and ICX switches, Brocade L3 routing plugin for MLX switch, Brocade Vyatta vRouter L3 Plugin, Brocade Vyatta vRouter Firewall Driver, Brocade Vyatta vRouter VPN Driver, Cisco CSR VPNaaS Driver, Dragonflow SDN based Distributed Virtual Router L3 Plugin, Freescale FWaaS Driver, Intel Mcaffe NGNW FWaaS Driver, IPSEC Strongswan VPNaaS Driver
  • 31. © PIOLINK, Inc. SDN No.1  Details of OpenStack Neutron 31
  • 32. © PIOLINK, Inc. SDN No.1 Details of OpenStack Neutron  Concept of OpenStack Networking - Data Center 에서 사용되는 다양한 기술을 가상화 하고 프로그래밍 가능한 형태로 사용할 수 있도록 제공하는 것! 32
  • 33. © PIOLINK, Inc. SDN No.1 Details of OpenStack Neutron  OpenStack Networking Architecture 33 Network Node Compute Node Controller Node Internet Controller Node  OpenStack Networking 은 독립된 형태의 서비스  OpenStack Networking 구성은 한 개의 Controller Node, 한 개의 Network Node, 적어도 한 개의 Compute Node 가 필요 - 각 Node 별 Network Interface 개수와 구성은 서로 다름  OpenStack Networking 에서는 Switching, Routing, Load Balancing, Firewall, VPN 등 Data Center 에서 사용되는 다양한 기술을 제공
  • 34. © PIOLINK, Inc. SDN No.1 Details of OpenStack Neutron 34  OpenStack Networking Architecture Network Node Compute Node Controller Node Internet Controller Node VM 01 VM 02 Neutron Server  OpenStack Networking Architecture 에서 각 Node 역할은 다음과 같음 - Network Node: DHCP Server, Virtual Router 등 Network - Compute Node: 생성된 VM Instance 가 위치하는 Node, Compute Service 와 Neutron Plugin - Controller Node: 모든 OpenStack API 서비스를 제공
  • 35. © PIOLINK, Inc. SDN No.1 Details of OpenStack Neutron  OpenStack Networking Architecture 35 Network Node Compute Node Controller Node Management Data External API Internet  OpenStack Networking Architecture 에서는 네 종류의 Network 를 정의 - Management Network: 서비스를 구성하는 Node 간 통신에 사용 (Messaging Service, Database Service) - API Network: Cloud 사용자와 서비스에게 OpenStack API 를 제공하는 용도로 사용 - External Network: Neutron Router 를 통해 외부 네트워크에서 접근 - Data Network: Instance 간 데이터를 주고받는 Network • (특정 Node 에 대해서만 로컬 Network 를 구성하거나 flat 또는 VLAN tagging으로 구성 가능) Controller Node
  • 36. © PIOLINK, Inc. SDN No.1 Details of OpenStack Neutron  OpenStack Networking Architecture 36 Compute Node Controller Node Management Data External API Internet  Three nodes Architecture 에서 각 Node 에 위치하는 Neutron 프로세스  Controller Node 의 Neutron Server 를 통해 API 를 제공 (외부에서 Network 관련 설정이 가능하도록)  Neutron Server 는 REST API를 통해 들어오는 요청사항을 처리하도록 기존에 설정된 Neutron Plugin 에 전달  Neutron Server 에서 제공하는 REST API를 통해 다양한 Networking 기술을 쉽게 이용 가능 함 Controller Node Neutron Server Neutron Plugin Neutron Plugin Agent Neutron Layer2 Agent (OVS) Network Node Neutron Plugin Agent Neutron L3 Agent Neutron DHCP Agent Neutron Layer2 Agent (OVS)
  • 37. © PIOLINK, Inc. SDN No.1 Details of OpenStack Neutron  OpenStack Neutron Network - Neutron 에서 제공하는 Network Type 은 아래와 같음 • Local - 다른 Network 나 Node 와 독립적으로 존재 - 같은 Compute Node 의 동일한 Network 에 있는 Instance 간 통신만 가능 • Flat - VLAN tagging 을 적용하지 않거나 Network 과 분리되지 않은 형태 • VLAN - 802.1q tagging 을 이용하여 Network 를 분리 - VLAN 간 Routing 을 위해서 Router 필요 • VXLAN 과 GRE - OVS Plugin 을 이용 Overlay Network 를 구성 - Cloud 내의 모든 Host 에 대한 P2P Tunnel 을 생성 37
  • 38. © PIOLINK, Inc. SDN No.1 Details of OpenStack Neutron  OpenStack Neutron Network - Neutron 에서 Instance 에 대한 연결을 제공하는 두 종류의 Network 가 존재 함 • Provider Network: 관리자가 생성한 Network - Data Center 의 Physical Network 에 직접 Mapping - Flat 과 VLAN 을 주로 사용 (Local, GRE 사용 가능하나 일반적으로 사용하지 않음) • Tenant Network: 사용자가 생성한 Network - Tenant 에 속한 Instance 간 연결을 위해 필요 - Default 설정에서는 Tenant Network 는 다른 Tenant Network 나 Tenant 안에 있는 다른 Network와 격리 38 Compute Node Tenant Network 1 VM1 VM2 Tenant Network 2 VM3 VM4 Network Node Provider Network Neutron Router
  • 39. © PIOLINK, Inc. SDN No.1 Details of OpenStack Neutron 39  OpenStack Neutron Plugins and Agents Compute Node Controller Node Management Data External API Internet Controller Node Neutron Server Layer 2 Agent (OVS) Network Node ML2 Plug-in Layer 2 Agent (OVS) Layer 3 Agent ML2 Plugin ML2 Plug-in DHCP Agent Metadata Agent  OpenStack 각 Node 에 설치되는 Neutron 프로세스는 Plugin 과 Agent 로 구성되어 있음  Neutron Server 는 Centralized Controller 역할을 수행 - 실제 Network 관련 command 나 configuration 은 Compute Node 와 Network Node 에서 수행
  • 40. © PIOLINK, Inc. SDN No.1 Details of OpenStack Neutron 40  OpenStack Neutron Plugins and Agents Neutron Server Neutron Core plugins Neutron Service plugins Core API Network, Port, Subnet Resource and Attribute Extensions API Provider Network, Port Binding, Router, Quotas, Security Groups, Agent Scheduler, LBaaS, FWaaS VPNaaS … Message Queue DHCP Agent L3 Agent IP Tables on Network Node L2 Agent OVS on Compute Node Neutron Plugin Controller Node  Plugin: 외부에서 호출한 REST API에 따라 해당하는 Plugin을 수행, Core Plugin 과 Service Plugin 으로 구분 - Core Plugin: L2 connectivity 와 IP Address Management 등 기본적인 을 담당 - Service Plugin: Routing (L3), Firewall, Load Balancing 등 서비스 관련 기능을 담당  Agent - Neutron Server 로 부터 명령을 수신하여 (via plugin or directly) 실제 Networking 관련 동작을 구현하는 entity ML2 OVS CiscoNexus MoreVendor Plugins LoadBalancer Firewall VPN L3services
  • 41. © PIOLINK, Inc. SDN No.1 Details of OpenStack Neutron 41  OpenStack Neutron Plugins and Agents Controller Node Management Data External API Internet Controller NodeNetwork Node Neutron Server ML2 Plugin Compute Node OVS Agent OVS Switch VM VM 1 2 3 4 ① REST API 를 통해 Request 를 Neutron Server 가 수신 ② Plugin 을 통해 RPC 메시지를 Compute Node 의 OVS Agent 로 전달 ③ Compute Node 의 OVS Agent 는 RPC 메시지 수신 ④ OVS Agent 는 OVS Switch configure 수행
  • 42. © PIOLINK, Inc. SDN No.1 Details of OpenStack Neutron 42  OpenStack Neutron Plugins and Agents : Open vSwitch Layer 2 Agent Compute Node Controller Node Neutron Server Layer 2 Agent (OVS) Network Node ML2 Plug-in Layer 2 Agent (OVS) Layer 3 Agent ML2 Plugin ML2 Plug-in DHCP Agent Metadata Agent  VM Instance 와 다른 Network Resource 에 L2 연결을 제공 (L2 Switching 제공)  Monolithic Plugin 으로 다른 Networking Plugin 과 동시사용 불가  VLAN, VXLAN, GRE 등을 지원하여 독립된 Tenant Network 생성이 가능
  • 43. © PIOLINK, Inc. SDN No.1 Details of OpenStack Neutron 43  OpenStack Neutron Plugins and Agents: Layer 3 Agent Compute Node Controller Node Neutron Server Layer 2 Agent (OVS) Network Node ML2 Plug-in Layer 2 Agent (OVS) Layer 3 Agent ML2 Plugin ML2 Plug-in DHCP Agent Metadata Agent  L2 Network 에 연결되는 Router 를 Configuration 하는 역할  Linux IP Stack 과 iptables 를 사용하여 L3 forwarding, NAT 동작을 구현  Network Namespace 를 이용하여 Multiple Independent Virtual Router 생성 (Overlapping IP)이 가능  Network Namespace 개념은 다음 슬라이드에서 설명
  • 44. © PIOLINK, Inc. SDN No.1 Details of OpenStack Neutron  OpenStack Neutron Plugins and Agents : Network Namespace - OpenStack 은 Multi Tenancy 를 지원하도록 설계 되었음 • User 별로 Compute 와 Network Resource를 구성한 Group 을 중복생성 가능 - Network Namespace 를 통해, 각 Tenant Network 별로 Router, Firewall, Network Interface Device 를 별도로 구성 가능 • qdhcp namespace: DHCP 역할 (l2 agent) • qrouter namespace: Router 역할 (l3 agent) • qlbass namespace: Load Balancer 역할 (Advanced Service) 44 Hardware Linux Kernel Global Namespace (net interfaces, routing tables, IP Stack, IPtables) Tenant1 Namespace1 (net interfaces, routing tables, iptables) Tenant2 Namespace2 (net interfaces, routing tables, iptables) TenantN NamespaceN (net interfaces, routing tables, iptables) …
  • 45. © PIOLINK, Inc. SDN No.1 Details of OpenStack Neutron 45  OpenStack Neutron Plugins and Agents : DHCP Agent Compute Node Controller Node Neutron Server Layer 2 Agent (OVS) Network Node ML2 Plug-in Layer 2 Agent (OVS) Layer 3 Agent ML2 Plugin ML2 Plug-in DHCP Agent Metadata Agent  Virtual Network 에 위치하고 있는 VM 에 IP 를 할당해주는 역할  DHCP Server 로 사용하기 위해 dnsmasq 를 사용 함  dnsmasq: small network 에서 DNS, DHCP Server 로 사용 가능한 free software
  • 46. © PIOLINK, Inc. SDN No.1 Details of OpenStack Neutron 46  OpenStack Neutron Plugins and Agents : Metadata Agent Compute Node Controller Node Neutron Server Layer 2 Agent (OVS) Network Node ML2 Plug-in Layer 2 Agent (OVS) Layer 3 Agent ML2 Plugin ML2 Plug-in DHCP Agent Metadata Agent  VM Instance 부팅 과정에 필요한 IP 주소나 Instance 관련 정보를 제공
  • 47. © PIOLINK, Inc. SDN No.1 Details of OpenStack Neutron 47  OpenStack Neutron Plugins and Agents : ML2 Plug-in Compute Node Controller Node Neutron Server Layer 2 Agent (OVS) Network Node ML2 Plug-in Layer 2 Agent (OVS) Layer 3 Agent ML2 Plug-in ML2 Plug-in DHCP Agent Metadata Agent  ML2: Modular Layer2  Havana Version 에 처음 포함, Ice House Version 에 기본 Plugin 으로 채택 (기존 Monolithic Plugin 대체하기 위해)  Data Center 에서 주로 사용되는 여러 가지 L2 networking 기술을 동시에 사용할 수 있게 해주는 framework  OVS 나 LinuxBridge Agent 와 연동하여 동작  새로운 L2 Networking 기술을 추가하는 방법 간소화
  • 48. © PIOLINK, Inc. SDN No.1 Details of OpenStack Neutron  OpenStack Neutron Plugins and Agents: ML2 Plugin 48 - Before ML2: Compute Node 에 다른 Agent 설치 시 연동 불가능 - After ML2: Compute Node 에 다른 Agent 설치 시에도 연동 가능 Neutron Server Compute Node A Open vSwitch Plugin Open vSwitch Agent Neutron Server Compute Node B Linux Bridge Plugin Linux Bridge Agent Compute Node A Open vSwitch Agent Compute Node B Linux Bridge Agent Neutron Server ML2 Plugin or
  • 49. © PIOLINK, Inc. SDN No.1 Details of OpenStack Neutron  OpenStack Neutron Plugins and Agents: ML2 Plugin Structure 49 GRE TypeDriver VLAN TypeDriver VXLAN TypeDriver Arista CiscoNexus Hyper-V Linuxbridge Open vSwitch Tail-FNCS Type Driver Mechanism Driver  Havana Release 에 공식적으로 포함됨  Layer 2 에서 핵심 기능들을 Vendor 및 구현 기능별로 구분 하였음  OpenStack 에서 제공하는 ML2 Plugin 은 Type Driver 와 Mechanism Driver 구조로 되어 있음  Type Driver: Network Type (GRE, VLAN, VXLAN)  Mechanism Driver: Network Implement (Vendor Specific)  ML2 도입에 따라 Vendor 하드웨어와의 통합이 증가
  • 50. © PIOLINK, Inc. SDN No.1 Details of OpenStack Neutron 50  OpenStack Neutron Plugins and Agents: Service Plug-in - Load Balancer as a Service (LBaaS) • Open Source 인 HA Proxy 를 통해 구현 (Grizzly 에 처음 포함) • Multi Vendor 지원 추가 (Havana 에 포함) • HW 기반 LB 와 SW기반 LB가 서로 연동할 수 있도록 Driver 사용 - Virtual Private Network as a Service (VPNaaS) • Havana, Icehouse 버전에서 실험적으로 제공 •Open Source 인 OpenSwan 을 통해 구현 (Default Driver) • Site-to-Site configuration 지원 - Firewall as a Service (FWaaS) • Service Plugin + Agent + Drivers (Iptables or v Armour) • firewall policy 적용을 위해 Virtual Router 에 Iptables 를 설정하는 방식 • Vendor specific service can be included
  • 51. © PIOLINK, Inc. SDN No.1 Details of OpenStack Neutron  OpenStack Neutron Plugins and Agents: Service Plugin (LBaaS, VPNaaS) 51 Compute Node Controller Node Controller Node Neutron Server Network Node Service Plugin Service Agent Message Processing Driver A Driver B Device Type A Device Type B  Advanced Service 지원 구조: Plugin + Agent + Driver 구조  Third Party 에서 Driver 를 추가하여 새로운 장비를 지원하도록 기능추가 가능 (Cisco, Brocade … etc)
  • 52. © PIOLINK, Inc. SDN No.1 Details of OpenStack Neutron 52  OpenStack Neutron Plugins and Agents : LBaaS Service Plugin Compute Node Controller Node Internet Controller Node Neutron Server Network Node Layer 3 Agent LBaaS Agent HAProxy VM VM  LBaaS Agent 에서 HAProxy 를 이용하여 Load Balancing 기능 제공
  • 53. © PIOLINK, Inc. SDN No.1 Details of OpenStack Neutron 53  OpenStack Neutron Plugins and Agents : VPNaaS Service Plugin Internet Network Node Compute Node Network Node Compute Node Layer 3 Agent VM Layer 3 Agent VM IPSec VPN Router VPN Driver Router VPN Driver site1 site2  L3 Agent 에서 Site to Site IPSec VPN 기능 지원
  • 54. © PIOLINK, Inc. SDN No.1 Details of OpenStack Neutron 54  OpenStack Neutron Plugins and Agents : FWaaS Service Plugin Compute Node Controller Node Internet Controller Node Neutron Server Network Node VM VM Layer 3 Agent Router Firewall Driver  L3 Agent 에서 Iptables 를 이용하여 Firewall Policy 정책 적용
  • 55. © PIOLINK, Inc. SDN No.1 Details of OpenStack Neutron 55  OpenStack Neutron Plugins and Agents : PIOLINK LBaaS Service Plugin Compute Node Controller Node Internet Controller Node Neutron Server Network Node Layer 3 Agent LBaaS Agent PIOLINK Driver VM VM PIOLINK Load Balancer  PIOLINK 에서 개발한 LBaaS Driver  OpenStack Neutron 을 이용하여 PAS-K 제품 설정 가능 함  PAS-K 를 이용하여 Compute Node 내 VM Instance (Web Server) 로 Traffic 을 균등하게 분배
  • 56. © PIOLINK, Inc. SDN No.1 Details of OpenStack Neutron  OpenStack Neutron Plugins and Agents: LinuxBridge Plugin - bridge 와 8021q Kernel Module 을 사용, Instance 와 Network Resource 를 Virtual Switch 에 연결 하고 Traffic 을 전달 - Linux Bridge 기반으로 Network 구성 시 아래와 같은 Virtual Networking Device 사용 • Tap Device: KVM 과 같은 Hypervisor 에 Virtual Interface 구현에 사용 (Guest OS의 Network Interface 역할) • VLAN Interface: ethx.<vlan> 이름을 사용, Kernel에서 tagging 된 Packet을 주고받을 수 있음 • LinuxBridge: 여러 Network Interface를 연결하는 Virtual Interface (동일 VLAN 을 연결) 56 eth0 eth1 MGMT & API Network External Network eth0 MGMT & API Network에 대한 단일 IP주소 brqYYY (LinuxBridge) tap0xxxx tap1xxxx VM0 eth0 VM1 eth0 K V M eth1. 100 <Figure: Compute Node 에서 Network Architecture>
  • 57. © PIOLINK, Inc. SDN No.1 Details of OpenStack Neutron 57  LinuxBridge Plugin 을 이용한 Virtual Network 구성 #01 (One tenant, two networks, one router ) Compute Node (Logical View) Network Node (Logical View) DHCP Server DHCP Server Network Node 에 의해 구성 Compute Node 에 의해 구성
  • 58. © PIOLINK, Inc. SDN No.1 Details of OpenStack Neutron 58  LinuxBridge Plugin 을 이용한 Virtual Network 구성 #01 (One tenant, two networks, one router ) Compute Node Network Node
  • 59. © PIOLINK, Inc. SDN No.1 Details of OpenStack Neutron 59  LinuxBridge Plugin 을 이용한 Virtual Network 구성 #02 (Two tenant, two networks, two routers ) Compute Node (Logical View) Network Node (Logical View) Network Node 에 의해 구성 Compute Node 에 의해 구성 DHCP Server DHCP Server
  • 60. © PIOLINK, Inc. SDN No.1 Details of OpenStack Neutron 60  LinuxBridge Plugin 을 이용한 Virtual Network 구성 #02 (Two tenant, two networks, two routers ) Compute Node Network Node
  • 61. © PIOLINK, Inc. SDN No.1 Details of OpenStack Neutron  OpenStack Neutron Plugins and Agents: OVS Plugin - Open vSwitch : Software 기반 스위치, Virtual Network bridge 와 flow rule 을 사용하 여 Packet 을 forwarding (OpenFlow Protocol 지원) - OVS 의 핵심 Component • Kernel Module: 스위치의 Data plane 역할, Packet 에 대한 처리작업 수행 • OVS Daemon: ovs-vswitchd Linux process, Kernel Moudle 의 동작을 제어 • Database Server: Virtual Switch 의 설정을 관리 61
  • 62. © PIOLINK, Inc. SDN No.1 Details of OpenStack Neutron 62 MGMT & API Network External Network qbr0xxxx (Linux Bridge) qbr1xxxx (Linux Bridge) tap0xxxx tap1xxxx br-int(OVS 통합 Bridge) qvo0xxxx qvo1xxxx Int-br-ethX VM0 eth0 VM1 eth0 br-eth1(OVS Provider Bridge) phy-br-ethX ethX KVM qvb1xxxxqvb0xxxx eth0 MGMT & API Network에 대한 단일 IP주소 eth0  OpenStack Neutron Plugins and Agents: OVS Plugin - OVS 기반으로 Network 구성 시 아래와 같은 Virtual Networking Device 사용 • Tap Device: Virtual Interface 구현에 사용 • Linux Bridge: 여러 Network Interface 를 연결하는 Virtual Interface (동일 VLAN을 연결) • Virtual Ethernet Cable: Network Cable 역할, 다양한 Network Resource 를 연결 (OVS bridge – linuxbridge 연결, linuxbridge 간연결) - OVS bridge-linuxbridge 연결(qvbYYY, qvoYYY” pair 를 사용) • OVS Bridge: Switch 역할을 수행 • OVS Patch Port: OVS bridge 간 연결을 위해 사용 (int-br-ethX, phy-br-ethX)
  • 63. © PIOLINK, Inc. SDN No.1 Details of OpenStack Neutron 63  OVS Plugin 을 이용한 Virtual Network 구성 #01 (One tenant, two networks, one router) Compute Node Network Node Network Node 에 의해 구성 Compute Node 에 의해 구성 DHCP Server DHCP Server
  • 64. © PIOLINK, Inc. SDN No.1 Details of OpenStack Neutron 64  OVS Plugin 을 이용한 Virtual Network 구성 #01 (One tenant, two networks, one router) Compute Node Network Node Network Node 에 의해 구성 Compute Node 에 의해 구성
  • 65. © PIOLINK, Inc. SDN No.1 Details of OpenStack Neutron 65  OVS Plugin 을 이용한 Virtual Network 구성 #02 (Two tenant, two networks, two routers ) Compute Node (Logical View) Network Node (Logical View) Network Node 에 의해 구성 Compute Node 에 의해 구성 DHCP Server DHCP Server
  • 66. © PIOLINK, Inc. SDN No.1 Details of OpenStack Neutron 66  OVS Plugin 을 이용한 Virtual Network 구성 #02 (Two tenant, two networks, two routers ) Compute Node Network Node Network Node 에 의해 구성 Compute Node 에 의해 구성
  • 67. © PIOLINK, Inc. SDN No.1  OpenStack Networking Deployment Use Cases 67
  • 68. © PIOLINK, Inc. SDN No.1 OpenStack Networking Deployment Use Cases  Single Flat Network 68 Shared Net 30.0.0.0/22 Tenant A VM1 Tenant B VM1 Tenant A VM2 Tenant C VM1 30.0.0.1 Physical Router  Nova Network 의 FlatDHCP 와 유사  VM 에 Single NIC 설정, VM 간 네트워크 동일  Fixed IP 주소 할당, Floating IP 는 지원되지 않음 Physical Network 에 Mapping 되는 Provider Network 30.0.0.2 30.0.0.3 30.0.0.4 30.0.0.5
  • 69. © PIOLINK, Inc. SDN No.1 OpenStack Networking Deployment Use Cases 69  Multiple Flat Networks Shared Net1 30.0.0.0/24 Tenant A VM1 Tenant B VM1 Shared Net2 30.0.1.0/24 Shared Net3 30.0.2.0/24 Tenant A VM2 Tenant D VM1 Tenant C VM1 Physical Router 30.0.0.1 30.0.1.1 30.0.2.1  Single Flat Network 와 유사  Tenant 가 Multiple Shared Network 가능 30.0.0.2 30.0.0.3 30.0.1.2 30.0.1.3 30.0.2.2 30.0.2.3 하나의 VM 이 여러 개의 Shared Network 에 속할 수 있는 것이 특징
  • 70. © PIOLINK, Inc. SDN No.1 OpenStack Networking Deployment Use Cases 70  Mixed Flat and Private Networks Shared Net 30.0.0.0/22 Tenant A VM1 Tenant A VM2 Tenant B VM1 Tenant C VM1 30.0.0.1 Physical Router Tenant C VM2 Tenant A – Private Net 10.0.0.0/24 Tenant C – Private Net 10.0.0.0/24  Flat Network 에서 확장된 형태, VM 에 Multiple NIC 설정, Tenant 별로 Private Network 구성 가능,  VM 이 gateway 역할을 통해 Private Network 에 routing, NAT, load balancing 과 같은 서비스 제공 가능 10.0.0.2 30.0.0.2 10.0.0.3 30.0.0.3 30.0.0.4 10.0.0.2 30.0.0.5 10.0.0.3 Tenant 별로 Private Network 구성 가능
  • 71. © PIOLINK, Inc. SDN No.1 OpenStack Networking Deployment Use Cases 71  Provider Router with Private Networks Tenant A – Private Net 10.0.0.0/24 Tenant C – Private Net 10.0.1.0/24 Tenant A VM1 Tenant A VM2 Tenant C VM1 Tenant C VM2 Provider Router Shared Net 30.0.0.0/22 10.0.0.1 10.0.1.1 30.0.0.2 30.0.0.1 Physical Router  각 Tenant 들이 하나 이상의 Private Network 생성이 가능, Private Network 는 Provider Router 를 통해 외부와 연결  Floating IP 를 이용하여 각 VMs 들에게 Public 주소를 할당 (External Network 에서 접속 가능)  SNAT/DNAT 가능, Tenant 간 Provider Router 를 통한 통신 가능 (대규모 Private Cloud 에서 사용) SNAT 를 수행 Private Network 에서 External Network 로 접속이 가능하도록 L3 Connectivity 를 제공 함 10.0.0.2 (30.0.0.3) 10.0.0.3 (30.0.0.4) 10.0.1.2 (30.0.0.5) 10.0.1.3 Public IP
  • 72. © PIOLINK, Inc. SDN No.1 OpenStack Networking Deployment Use Cases 72  Per-Tenant Routers with private networks Tenant A – Private Net 10.0.0.0/24 Tenant C – Private Net1 10.0.0.0/24 Tenant A VM1 Tenant A VM2 Tenant C VM1 Tenant C VM2 Tenant C – Private Net2 10.0.1.0/24 Tenant C VM3 Tenant C VM4 Tenant A Router Tenant C Router Shared Net 30.0.0.0/22 30.0.0.1 Physical Router 10.0.0.1 30.0.0.2 30.0.0.3 10.0.0.1 10.0.1.1  각 Tenant 들이 하나 이상의 Router 를 갖고 있음, 각 Tenant 는 Private Network 를 생성하고 Router를 통해 외부와 연결  Multi-tier applications, SNAT 지원 가능  Public Cloud 에 사용 10.0.0.2 (30.0.0.4) 10.0.0.3 (30.0.0.5) 동일한 IP 대역을 중복해서 사용 가능! 10.0.0.2 (30.0.0.6) 10.0.0.3 (30.0.0.7) 10.0.1.2 10.0.1.3 Public IP
  • 73. © PIOLINK, Inc. SDN No.1  SDN Controller with OpenStack Neutron 73
  • 74. © PIOLINK, Inc. SDN No.1 SDN Controller with OpenStack Neutron  OpenDaylight Helium Architecture 74  OpenDaylight 에서는 OpenStack 과 연동하기 위한 feature들을 제공
  • 75. © PIOLINK, Inc. SDN No.1 SDN Controller with OpenStack Neutron 75  OpenDaylight Helium Architecture OpenStack Neutron Service OVSDB VTN Plugin2OC OVSDB OpenFlow Plugin2OC Neutron APIs  OpenStack Service: OpenStack Service 에게 Northbound API를 제공 (REST API 형태)  VTN Manager: Virtual Tenant Manager  OVSDB Neutron  Plugin2OC: Southbound plugin to OpenContrail Platform OpenStack (via Neutron) Southbound Interfaces and Protocol Plugins Controller Platform And Services Neutron APIs Application and Orchestration Services
  • 76. © PIOLINK, Inc. SDN No.1 SDN Controller with OpenStack Neutron  OpenStack Neutron: ML2 Plugin Structure 76  OpenStack 에서도 OpenDaylight 과 연동하기 위한 feature를 제공  SDN 의 장점인 Network Flexibility 가 OpenStack 에 반영 중  SDN 을 활용하여 기존 하드웨어 활용 및 Network 장비와 연계를 통한 유연한 SDN Infra 를 확보하고자 노력  OpenStack 과 SDN 연동 시 장점 - Physical & Virtual Network 제어 가능 - Tenant 별 Network 제어 가능 (Flow Management) GRE TypeDriver VLAN TypeDriver VXLAN TypeDriver Arista CiscoNexus Hyper-V Linuxbridge Open vSwitch Tail-FNCS Type Driver Mechanism Driver OpenDaylight
  • 77. © PIOLINK, Inc. SDN No.1 SDN Controller with OpenStack Neutron  OpenDaylight with OpenStack Neutron 77 OpenDaylight API (REST API) ML2 Plugin OpenStack Service OpenStack Neutron OpenDaylight Driver OVSDB VTN Plugin2OC  OpenStack ML2 Plugin 의 OpenDaylight Driver 를 통해 OpenDaylight 와 연동 가능
  • 78. © PIOLINK, Inc. SDN No.1 SDN Controller with OpenStack Neutron  OpenDaylight with OpenStack Neutron 78 Controller NodeController Node Neutron Server Network Node Layer 3 Agent DHCP Agent OVS Compute Node VM VM OVS Compute Node VM VM OVS ML2 Plugin/ ODC Driver Physical Switch Network Controller NodeOpenDaylight Neutron API OVSDB Plugin REST API Call  Neutron 과 OpenDaylight 연동을 통해 Data Center 내의 Physical Switch 와 Virtual Switch 제어
  • 79. © PIOLINK, Inc. SDN No.1  Summary 79
  • 80. © PIOLINK, Inc. SDN No.1 Summary  OpenStack 은 처음 Nova 에서 제공하는 Networking Service 를 사용  기술적 제약사항으로 Networking Service 만을 위한 Quantum 프로젝트 시작  상표권 문제로 인해 Quantum 에서 Neutron 으로 Code Name 변경  OpenStack Neutron 은 Cloud 환경에서 Networking Service 를 제공 - Software 기반의 Networking Service 를 제공  Neutron 을 이용하여 Cloud 환경에서 유연하게 Networking 변경작업이 가능  Virtual Network 생성 및 관리 (Network, port, Subnet 생성 및 관리)  Neutron 을 통해 Physical / Virtual Network 자원을 관리 함 - L2 Switch, L3 Switch, Load Balancer, VPN, Firewall 등  Neutron 의 Plugin Architecture 를 이용하여 자유롭게 확장 가능  SDN Controller 와 연동하여 사용 가능 80
  • 81. © PIOLINK, Inc. SDN No.1  References 81
  • 82. © PIOLINK, Inc. SDN No.1 References  OpenStack Overview Havana, Edgar Magana, October 2013  OpenStack Neutron and SDN  OpenStack 클라우드 네트워크 기술 분석, 2013 Electronics and Telecommunications Trends  Network Virtualization with OpenStack Quantum, OpenStack Quantum Hacker  From Nova-Network to Neutron and Beyond: A Look at OpenStack Networking  OpenStack Networking Technical Deep Dive  OpenStack meetup-pune-aug22-overview  OpenStack Neutron  Software Defined Network in OpenStack  OpenStack and the Transformation of the Data Center  OpenStack: Inside Out 82
  • 83. 감사합니다. ㈜파이오링크 서울시 금천구 가산디지털2로 98 (가산동 550-1) IT캐슬 1동 401호 TEL: 02-2025-6900 FAX: 02-2025-6901 www.PIOLINK.com 83