20150511 jun lee_openstack neutron 분석 (최종)
TRANSCRIPT
© 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 Node Network 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
Neutron Neutron 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.3 Nova
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
ML
2
OV
S
Cis
co
Nexu
s
Mo
re V
end
or
Plu
gin
s
Loa
d B
ala
nce
r
Fire
wa
ll
VP
N
L3 s
erv
ice
s
© PIOLINK, Inc. SDN No.1
Details of OpenStack Neutron
41
OpenStack Neutron Plugins and Agents
Controller Node
Management
Data
External API
Internet
Controller Node Network 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
GR
E
Typ
e D
rive
r
VL
AN
Typ
e D
rive
r
VX
LA
N
Typ
eD
rive
r
Aris
ta
Cis
co
Nexu
s
Hyp
er-V
Lin
uxb
ridg
e
Op
en
vS
witc
h
Ta
il-F N
CS
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
qvb1xxxx qvb0xxxx
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)
GR
E
Typ
e D
rive
r
VL
AN
Typ
e D
rive
r
VX
LA
N
Typ
eD
rive
r
Aris
ta
Cis
co
Nexu
s
Hyp
er-V
Lin
uxb
ridg
e
Op
en
vS
witc
h
Ta
il-F N
CS
Type Driver Mechanism Driver
Ope
nD
aylig
ht
© 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 Node Controller 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 Node OpenDaylight
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