网络连接服务Network connectivity as a service
提供面向租户(Tenant)的API接口,用于创建虚拟网
络,路由器,负载均衡等,关联instance到指定的
网络和路由
通过API接口管理虚拟或物理交换机
提供plugin架构来支持不同的技术平台
Neutron Private Network – 提供固定私网地址
Neutron Public Network – 提供浮动IP地址
Network
一个L2二层网络单元
租户可通过Neutron API 创建自己的网络
Subnet
一段IPV4/IPV6地址段
为Instance提供私网或公网地址
Router
三层路由器
为租户的Instance提供路由功能
Port
虚拟交换机上的端口
管理Instance的网卡
Nova
Compute Nova
Compute Nova
Compute Nova
Compute Nova Compute
Tenant
Scripts
Horizon
Nova API Clients Neutron Server
Neutron
Plugin
Create-net
. . .
Create-port
virtual switch
Internal plugin
communication.
Neutron API
Create-net
. . .
Create-port
Interfaces from a service
like Nova plug into a
switch manages by the
API + Plugin = Neutron Service Neutron plugin.
Uniform API
for all clients
Open vSwitch
Linux Bridge
Cisco NX1000
Nicira NVP
Ryu
NEC OpenFlow
Floodnight
Dashboard /
Automation Tools
Nova Service
XenServer #1
Neutron Plugin
nova-api
Hypervisor
vswitch
nova-scheduler
nova-compute
Tenant API Tenant API
Internal Plugin
Communication
Internal nova
Communication
Neutron Neutron API
Service Neutron server & ml2 lm2 agent DHCPagent DB Queue
■Neutron Server
实现Neutron API和API扩展
管理Network,subnet,port
管理port的IP地址
■ML2 agent
运行在每个计算节点上(compute node)
连接虚拟机到网络端口
■DHCP agent
负责DHCP配置,为虚拟机分配IP
开始/停止dhcp服务器In multi-host
mode, run on each compute node
(deferred)
Start/stop dhcp server
Maintain dhcp configuration
L3-agent
负责公网浮动ip地址和NAT
负责其他三层特性,例如负载均衡等
每个network对应一个L3 agent
Metadata-agent
提供元数据服务Neutron L3-agent,
dhcp-agent, nova metadata API
server DB和Queue可以和其他组件共享 l3-agent
metadata-agent
Source: http://sdrv.ms/YdnQYS API Client Neutron Server
Create Network (POST /tenant1/network)
Network UUID: ‘abc’
Create Server (POST /tenant1/server) Nova Server
Server UUID: ‘def’
Get Server Interface(s) (GET /tenant1/server/def/interface)
Server Interface UUID List: [ ‘ghi’ ]
Create Port on Network (POST /tenant1/network/abc/port)
Port UUID ‘jkl’
Attach Interface to port (PUT /tenant1/network/abc/port/jkl) { ‘attachment’ : ‘ghi’ }
Success
Source: http://sdrv.ms/YdnQYS
Neutron server
Single FLAT Network
Multi FLAT Network
Mixed Flat and Private Network
Provider Router with private network
Per-tenant Routers with private network
Per-tenant Routers with private network
Single FLAT Network
类似FlatManager
FlatDHCPManager
不支持floating ip
Mutiple FLAT Network
类似FlatManager
FlatDHCPManager
不支持floating ipMixed Flat and Private Network
Provider Router with private
network
Per-tenant Routers with private network
Neutron Multi-Host模式
Data network
Management network
Control node
DHCP qdhcp-xx namespace
Neutron-ns-metadata-proxy
Neutron-metadata-agent
unix socket
Compute node
VM
Neutron-dhcp-agent
Neutron-l3-agent
Neutron-<l2>-agent
VM VM
nova-compute
external network
DHCP qdhcp-xx namespace
Neutron-ns-metadata-proxy
Neutron-metadata-agent
unix socket
Compute node
VM
Neutron-dhcp-agent
Neutron-l3-agent
Neutron-<l2>-agent
VM VM
nova-compute