9. Tenant View vs Infra View
Tenant-A
VM
VM
net2
VM
R
net1
VM
Internet
Tenant-A
VM
net1
R
VM
Tenatn View
Infra (Provider) View
VM
VM
vSwitch
VM
VM
vSwitch
VM
VM
vSwitch
Internet
SW
Data Center Network
SW
GW
10. Tenant View vs Infra View
• Neutron は論理操作をユーザに提供
• 物理操作はプラグイン or NW Controller が行う
Tenant-A
VM
User
VM
net2
VM
R
net1
VM
Internet
Tenant-A
REST API
VM
net1
R
VM
Neutron
Tenatn View
Nova
Infra (Provider) View
Plugin
NW
Controller
VM
VM
vSwitch
VM
VM
vSwitch
VM
VM
vSwitch
Internet
SW
Data Center Network
SW
GW
16. Neutron Architecture
• 物理ネットワークの制御は Neutron Plugin が行う。
• Plugin を切り替えることで、様々なネットワーク技術を利用
できる。現在は同時には一種類のみ利用可。
CLI / Dashboard (Horizon) / Orchestration Tool
Nova API
Neutron API
Nova
Neutron
Nova Compute
Nova Compute
VM
VM
Neutron Plugin
agent
Physical Network
VM
Virtual Switch
agent
HW Switch
VM
Virtual Switch
17. CLI / Dashboard (Horizon) / Orchestration Tool
Nova API
Neutron API
Nova
Neutron
Nova Compute
Nova Compute
VM
VM
Neutron Plugin
agent
Physical Network
VM
Virtual Switch
agent
HW Switch
VM
Virtual Switch
18. OpenStack と OpenFlow の連携
CLI / Dashboard (Horizon) / Orchestration Tool
Neutron API
Nova API
Neutron
Nova
NEC OpenFlow Plugin
Nova Compute
VM
OFC API
OpenFlow Controller
agent
Nova Compute
VM
VM
agent
Virtual Switch
Virtual Switch
OpenFlow Protocol
Network
VM
HW Switch
19. 最近の構造
Neutron の基本構造
• API に対応して、物理操作を行う Plugin が存在
– Plugin を切り替えることで、様々なネットワーク技術を利用可能
– 複数のPlugin (Core + Service *N) が併存。一つのPluginで複数のAPIも対応可
• OpenStack の一部だが、Neutron 単体でも利用可能
– Neutron API を使うことで、特定のベンダーAPI に Lock-In されにくくなるかも
Neutron API
LBaaS
API
FWaaS
API
L3 API
Compute API
Neutron
LBaaS
Plugin
FWaaS
Plugin
Nova
L2 API
Compute Node
L2/L3 Plugin
VM
Agent
XXX
HAProxy
Driver
Agent
L3
Agent
Network
Controller
OpenFlow Controller など
VM
vSwitch
HW Switch
20. Neutron Plugin (Core)
•
ML2 (Modular Layer 2) plugin
•
•
•
•
•
Open vSwitch plugin (VLAN, GRE, VXLAN)
Linux Bridge plugin (VLAN, VXLAN)
Hyper-V plugin
Brocade plugin
Mellanox plugin
•
Nicira NVP Plugin
– Will be renamed to Vmware NSX plugin
•
•
Ryu Plugin
NEC OpenFlow Plugin
– Trema SliceableSwitch (OSS), ProgrammableFlow
•
•
•
•
Big Switch plugin
Midonet plugin
PLUGGrid plugin
Cisco Plugin
– Cisco UCS, Nexus 1000V . Open vSwitch もあわせて制御
30. LBaaS
• Grizzly で追加
– LBaaS API (tenant API) 策定
– HAProxy reference implementation のみ
• Havana
– Service Type Framework
• Backend が指定可能に。複数のドライバーを選択して LB pool を作成
できる
– Vendor Driver, LB Plugin の追加
• Icehouse
–
–
–
–
–
Multiple VIPs per pool, VIP の pool 間での移動
Layer7 support
SSL termination
Routed Service Insertion (LVS based) ?
https://etherpad.openstack.org/p/icehouse-neutron-lbaas
31. FWaaS
• Havana で追加
–
–
–
–
Horizon, Heat support
FWaaS API (rule, policy, firewall resource)
L3-agent based impl, some vendor plugin
制限事項
• 1 firewall per tenant (with l3-agent)
• Firewall applies to all routers
• Icehouse
–
–
–
–
–
Service Insertion/Service Type Framework
Zone
Apply Operation
Counters
https://etherpad.openstack.org/p/icehouse-neutron-fwaas
32. VPNaaS
• Havana で追加
– IPSec VPN (L3 VPN) のみサポート
– Horizon, Heat support
• Icehouse
– Service Type Framework
• 複数種類のVPNのサポート
–
–
–
–
–
SSL-VPN
IPSec Certification Support
MPLS/BGP
(L2-VPN?)
https://etherpad.openstack.org/p/NeutronVPNaaSIce
House
33. Neutron API の位置付け
Horizon, Heat or Orchestration
LBaaS API
HW
Appliance
Process
Based LB
(HAProxy)
LB
Service
VM
Compute API
L2/L3 API
Virtual Router
VM
VM
VM
Virtual Network
OpenStack が提供するのは Abstraction と Integration (≠ Virtualization)
Neutron には L2/L3 API と Advanced Service API が両方存在している。
両者を区別してみると、理解しやすいと思います。