SlideShare a Scribd company logo
Neutron 原理详解
 OpenStack网络服务
◦ 网络服务实现方式
 Neutron介绍
 Neutron组件剖析
◦ 基本概念
◦ 系统架构
◦ 网络启用流程分析
◦ ML2
 Neutron典型部署模式
 动手实验
◦ 练习1:租户私有网络创建练习
 FLAT
 FLATDHCP
 VLAN
 MULTI-HOST
nova-network负责网络功能
FLAT
 指定一个子网,规定虚拟机能使用的ip地址范围
 创建实例时,从有效ip地址池获取一个IP,为虚拟机实例分配,然
后在虚拟机启动时候注入虚拟机镜像(文件系统);
 手动配置好网桥(br100),所有的系统实例都是和同一个网桥连
接;网桥与连到网桥的实例组成一个虚拟网络
 网络控制器(nova-network节点)对虚拟机实例进行NAT转换,
实现与外部的通信
 目前配置注入只能够对Linux类型的操作系统实例正常工作
 与Flat模式一样,从ip池取出ip分配给虚拟机实例,所有的实例都在计算
节点中和一个网桥相关。
 网络控制器(运行nova-network服务的节点)运行dnsmasq作为
DHCP服务器监听这个网桥;
 实例通过dhcp bootp发送请求;
 网络控制器把从一个指定的子网中获得的IP地址响应给虚拟机实例;
 实例通过网络控制器与外部实现互相访问
FLATDHCP
FLATDHCP
Source: http://blog.csdn.net/hilyoo/article/details/7721401
 每个用户分配一个VLAN,每个用户创建的instance在同一VLAN里
 每个用户分配一个网段,网络控制器上的DHCP服务器为所有的
VLAN所启动,为虚拟机分配私网IP地址
 网络控制器为所有instance做NAT转换
 解决了二层隔离的问题,但是VLAN 4096的限制,导致单个集群只
能最多4096个用户使用,符合企业私有云使用,但是不适合公有云
VLAN
 没有集中的nova-network服务,消除网络瓶颈
 每个nova-compute节点上,同时运行nova-network和
dnsmasq,nova-network提供NAT和防火墙服务,dnsmasq负责
DHCP IP地址分配
 可以和VLAN配置一起使用,同一个VLAN里面的虚拟机相互之间可
以互通
 符合公有云部署需求,但是nova-network HA是一个隐患
MUTLI-HOST模式
Multi-Host模式
 传统桥接模式
 用户不能自定义网络
 网络隔离
 大规模部署
OpenStack 早些版本网络的问题
 高密度
 多租户
 大规模扩展
 虚拟机的可移动性
 资源的管理的自动化
 价格
 用户自定义网络
 丰富的多层拓扑结构
 QoS保证
 防火墙、VPN、IDS、LBAAS等安全服务
 监控和审计
 网络连接服务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
ComputeNova 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
Neutron plugin.API + Plugin = Neutron Service
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 APINeutron
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 ip
Mixed 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
VMVM
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
VMVM
nova-compute
Source: http://sdrv.ms/YdnQYS
◦ 租户私有网络创建练习
 练习1:利用Dashboard创建私有网络,并创建instance
 练习2:为instance 分配一个floating IP 验证连通性
 Email:yongluo2013@gmail.com
 Blog : http://yongluo2013.github.com
 WeiXin:@嗨皮
 WeiBo :@warrior_罗勇

More Related Content

What's hot

微服務自己動手做
微服務自己動手做微服務自己動手做
微服務自己動手做
YenChen Liu 劉晏辰
 
OpenStack Neutron Introduction
OpenStack Neutron IntroductionOpenStack Neutron Introduction
OpenStack Neutron Introduction
Liang Bo
 
Docker
DockerDocker
Docker
旭 張
 
主库自动切换 V2.0
主库自动切换 V2.0主库自动切换 V2.0
主库自动切换 V2.0
jinqing zhu
 
再生龍於雲端環境之應用
再生龍於雲端環境之應用再生龍於雲端環境之應用
再生龍於雲端環境之應用
Chenkai Sun
 
Docker集群管理 工具篇
Docker集群管理 工具篇Docker集群管理 工具篇
Docker集群管理 工具篇
Guangya Liu
 
Docker初识
Docker初识Docker初识
Docker初识
hubugui
 
Docker open stack
Docker open stackDocker open stack
Docker open stack
Guangya Liu
 
Docker - 30秒生出100台伺服器
Docker - 30秒生出100台伺服器Docker - 30秒生出100台伺服器
Docker - 30秒生出100台伺服器
升煌 黃
 
20220224台中演講k8s
20220224台中演講k8s20220224台中演講k8s
20220224台中演講k8s
chabateryuhlin
 
RxJS 6 新手入門
RxJS 6 新手入門RxJS 6 新手入門
RxJS 6 新手入門
Will Huang
 
Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2
redhat9
 
Bypat博客出品-服务器运维集群方法总结
Bypat博客出品-服务器运维集群方法总结Bypat博客出品-服务器运维集群方法总结
Bypat博客出品-服务器运维集群方法总结redhat9
 
Wot2013云计算架构师峰会 -陈轶飞2
Wot2013云计算架构师峰会 -陈轶飞2Wot2013云计算架构师峰会 -陈轶飞2
Wot2013云计算架构师峰会 -陈轶飞2dotCloud
 
Openstack的研究与实践
Openstack的研究与实践Openstack的研究与实践
Openstack的研究与实践
OpenCity Community
 
OpenStack Resource Scheduling
OpenStack Resource SchedulingOpenStack Resource Scheduling
OpenStack Resource Scheduling
Guangya Liu
 
Docker應用
Docker應用Docker應用
廣宣學堂: 企業導入微服務實戰
廣宣學堂: 企業導入微服務實戰廣宣學堂: 企業導入微服務實戰
廣宣學堂: 企業導入微服務實戰
Paul Chao
 
企業導入微服務實戰 - updated
企業導入微服務實戰 - updated企業導入微服務實戰 - updated
企業導入微服務實戰 - updated
Paul Chao
 

What's hot (20)

微服務自己動手做
微服務自己動手做微服務自己動手做
微服務自己動手做
 
OpenStack Neutron Introduction
OpenStack Neutron IntroductionOpenStack Neutron Introduction
OpenStack Neutron Introduction
 
Docker
DockerDocker
Docker
 
Openstack网络规划
Openstack网络规划Openstack网络规划
Openstack网络规划
 
主库自动切换 V2.0
主库自动切换 V2.0主库自动切换 V2.0
主库自动切换 V2.0
 
再生龍於雲端環境之應用
再生龍於雲端環境之應用再生龍於雲端環境之應用
再生龍於雲端環境之應用
 
Docker集群管理 工具篇
Docker集群管理 工具篇Docker集群管理 工具篇
Docker集群管理 工具篇
 
Docker初识
Docker初识Docker初识
Docker初识
 
Docker open stack
Docker open stackDocker open stack
Docker open stack
 
Docker - 30秒生出100台伺服器
Docker - 30秒生出100台伺服器Docker - 30秒生出100台伺服器
Docker - 30秒生出100台伺服器
 
20220224台中演講k8s
20220224台中演講k8s20220224台中演講k8s
20220224台中演講k8s
 
RxJS 6 新手入門
RxJS 6 新手入門RxJS 6 新手入門
RxJS 6 新手入門
 
Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2Bypat博客出品-服务器运维集群方法总结2
Bypat博客出品-服务器运维集群方法总结2
 
Bypat博客出品-服务器运维集群方法总结
Bypat博客出品-服务器运维集群方法总结Bypat博客出品-服务器运维集群方法总结
Bypat博客出品-服务器运维集群方法总结
 
Wot2013云计算架构师峰会 -陈轶飞2
Wot2013云计算架构师峰会 -陈轶飞2Wot2013云计算架构师峰会 -陈轶飞2
Wot2013云计算架构师峰会 -陈轶飞2
 
Openstack的研究与实践
Openstack的研究与实践Openstack的研究与实践
Openstack的研究与实践
 
OpenStack Resource Scheduling
OpenStack Resource SchedulingOpenStack Resource Scheduling
OpenStack Resource Scheduling
 
Docker應用
Docker應用Docker應用
Docker應用
 
廣宣學堂: 企業導入微服務實戰
廣宣學堂: 企業導入微服務實戰廣宣學堂: 企業導入微服務實戰
廣宣學堂: 企業導入微服務實戰
 
企業導入微服務實戰 - updated
企業導入微服務實戰 - updated企業導入微服務實戰 - updated
企業導入微服務實戰 - updated
 

Viewers also liked

Openstack Networking and ML2
Openstack Networking and ML2Openstack Networking and ML2
Openstack Networking and ML2
Szlovencsak Attila
 
Bluetooth
BluetoothBluetooth
Bluetooth
Sachin Bali
 
OpenStack Cinder Overview - Havana Release
OpenStack Cinder Overview - Havana ReleaseOpenStack Cinder Overview - Havana Release
OpenStack Cinder Overview - Havana Release
Avishay Traeger
 
Modular Layer 2 In OpenStack Neutron
Modular Layer 2 In OpenStack NeutronModular Layer 2 In OpenStack Neutron
Modular Layer 2 In OpenStack Neutron
mestery
 
Openstack Basic with Neutron
Openstack Basic with NeutronOpenstack Basic with Neutron
Openstack Basic with Neutron
KwonSun Bae
 
Inside neutron 2
Inside neutron 2Inside neutron 2
Inside neutron 2
Robin Gong
 
What we do in ml2 p.p
What we do in ml2 p.pWhat we do in ml2 p.p
What we do in ml2 p.p
Made4UInMl2
 

Viewers also liked (7)

Openstack Networking and ML2
Openstack Networking and ML2Openstack Networking and ML2
Openstack Networking and ML2
 
Bluetooth
BluetoothBluetooth
Bluetooth
 
OpenStack Cinder Overview - Havana Release
OpenStack Cinder Overview - Havana ReleaseOpenStack Cinder Overview - Havana Release
OpenStack Cinder Overview - Havana Release
 
Modular Layer 2 In OpenStack Neutron
Modular Layer 2 In OpenStack NeutronModular Layer 2 In OpenStack Neutron
Modular Layer 2 In OpenStack Neutron
 
Openstack Basic with Neutron
Openstack Basic with NeutronOpenstack Basic with Neutron
Openstack Basic with Neutron
 
Inside neutron 2
Inside neutron 2Inside neutron 2
Inside neutron 2
 
What we do in ml2 p.p
What we do in ml2 p.pWhat we do in ml2 p.p
What we do in ml2 p.p
 

Similar to Openstack neutron 原理详解

OpenStack Quantum项目介绍和演示
OpenStack Quantum项目介绍和演示OpenStack Quantum项目介绍和演示
OpenStack Quantum项目介绍和演示OpenCity Community
 
金盾集訓 II
金盾集訓 II金盾集訓 II
金盾集訓 II
Jie-Jyun Liu
 
构建ActionScript游戏服务器,支持超过15000并发连接
构建ActionScript游戏服务器,支持超过15000并发连接 构建ActionScript游戏服务器,支持超过15000并发连接
构建ActionScript游戏服务器,支持超过15000并发连接
Renaun Erickson
 
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
YingSiang Geng
 
Planet Lab
Planet LabPlanet Lab
Planet Lab
Yishuai Chen
 
網路安全原理
網路安全原理網路安全原理
網路安全原理ceed100043
 
[圣思园][Java SE]Network
[圣思园][Java SE]Network[圣思园][Java SE]Network
[圣思园][Java SE]NetworkArBing Xie
 
Track2 -刘继伟--openstack in gamewave
Track2 -刘继伟--openstack in gamewaveTrack2 -刘继伟--openstack in gamewave
Track2 -刘继伟--openstack in gamewaveOpenCity Community
 
Pm 04 华胜天成openstack实践汇报-20120808
Pm 04 华胜天成openstack实践汇报-20120808Pm 04 华胜天成openstack实践汇报-20120808
Pm 04 华胜天成openstack实践汇报-20120808OpenCity Community
 
Mysql proxy+mysql-mmm
Mysql proxy+mysql-mmmMysql proxy+mysql-mmm
Mysql proxy+mysql-mmmYiwei Ma
 
8 集群
8 集群8 集群
8 集群
hik_lhz
 
高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕ideawu
 
Lvs基本原理和配置课件
Lvs基本原理和配置课件Lvs基本原理和配置课件
Lvs基本原理和配置课件galen700
 
Redis 多机特性工作原理简介v2
Redis 多机特性工作原理简介v2Redis 多机特性工作原理简介v2
Redis 多机特性工作原理简介v2ayanamist
 
Lysu's Java Socket notes
Lysu's Java Socket notesLysu's Java Socket notes
Lysu's Java Socket notes
lysu
 
IBM Cloud Private Introduction
IBM Cloud Private IntroductionIBM Cloud Private Introduction
IBM Cloud Private Introduction
Guangya Liu
 
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验colderboy17
 
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
guiyingshenxia
 
PowerVm_for_DDSC
PowerVm_for_DDSC PowerVm_for_DDSC
PowerVm_for_DDSC
Hermes Chiang
 

Similar to Openstack neutron 原理详解 (20)

OpenStack Quantum项目介绍和演示
OpenStack Quantum项目介绍和演示OpenStack Quantum项目介绍和演示
OpenStack Quantum项目介绍和演示
 
金盾集訓 II
金盾集訓 II金盾集訓 II
金盾集訓 II
 
构建ActionScript游戏服务器,支持超过15000并发连接
构建ActionScript游戏服务器,支持超过15000并发连接 构建ActionScript游戏服务器,支持超过15000并发连接
构建ActionScript游戏服务器,支持超过15000并发连接
 
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
探索 ISTIO 新型 DATA PLANE 架構 AMBIENT MESH - GOLANG TAIWAN GATHERING #77 X CNTUG
 
Planet Lab
Planet LabPlanet Lab
Planet Lab
 
網路安全原理
網路安全原理網路安全原理
網路安全原理
 
[圣思园][Java SE]Network
[圣思园][Java SE]Network[圣思园][Java SE]Network
[圣思园][Java SE]Network
 
Track2 -刘继伟--openstack in gamewave
Track2 -刘继伟--openstack in gamewaveTrack2 -刘继伟--openstack in gamewave
Track2 -刘继伟--openstack in gamewave
 
Pm 04 华胜天成openstack实践汇报-20120808
Pm 04 华胜天成openstack实践汇报-20120808Pm 04 华胜天成openstack实践汇报-20120808
Pm 04 华胜天成openstack实践汇报-20120808
 
Mysql proxy+mysql-mmm
Mysql proxy+mysql-mmmMysql proxy+mysql-mmm
Mysql proxy+mysql-mmm
 
8 集群
8 集群8 集群
8 集群
 
高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕高性能并发Web服务器实现核心内幕
高性能并发Web服务器实现核心内幕
 
Lvs基本原理和配置课件
Lvs基本原理和配置课件Lvs基本原理和配置课件
Lvs基本原理和配置课件
 
Redis 多机特性工作原理简介v2
Redis 多机特性工作原理简介v2Redis 多机特性工作原理简介v2
Redis 多机特性工作原理简介v2
 
Tcpip
TcpipTcpip
Tcpip
 
Lysu's Java Socket notes
Lysu's Java Socket notesLysu's Java Socket notes
Lysu's Java Socket notes
 
IBM Cloud Private Introduction
IBM Cloud Private IntroductionIBM Cloud Private Introduction
IBM Cloud Private Introduction
 
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
 
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
腾讯 马志强 虚拟化环境下 网络 朋务器 平台的协作经验
 
PowerVm_for_DDSC
PowerVm_for_DDSC PowerVm_for_DDSC
PowerVm_for_DDSC
 

More from Yong Luo

Open stack cinder
Open stack cinderOpen stack cinder
Open stack cinder
Yong Luo
 
Openstack HA
Openstack HAOpenstack HA
Openstack HA
Yong Luo
 
open stack glance
open stack glanceopen stack glance
open stack glance
Yong Luo
 
openstack keystone
openstack keystoneopenstack keystone
openstack keystone
Yong Luo
 
Open stack swift
Open stack swiftOpen stack swift
Open stack swift
Yong Luo
 
09 yong.luo-ceph in-ctrip
09 yong.luo-ceph in-ctrip09 yong.luo-ceph in-ctrip
09 yong.luo-ceph in-ctrip
Yong Luo
 
Open stack在企业持续集成中的实战
Open stack在企业持续集成中的实战Open stack在企业持续集成中的实战
Open stack在企业持续集成中的实战
Yong Luo
 

More from Yong Luo (7)

Open stack cinder
Open stack cinderOpen stack cinder
Open stack cinder
 
Openstack HA
Openstack HAOpenstack HA
Openstack HA
 
open stack glance
open stack glanceopen stack glance
open stack glance
 
openstack keystone
openstack keystoneopenstack keystone
openstack keystone
 
Open stack swift
Open stack swiftOpen stack swift
Open stack swift
 
09 yong.luo-ceph in-ctrip
09 yong.luo-ceph in-ctrip09 yong.luo-ceph in-ctrip
09 yong.luo-ceph in-ctrip
 
Open stack在企业持续集成中的实战
Open stack在企业持续集成中的实战Open stack在企业持续集成中的实战
Open stack在企业持续集成中的实战
 

Openstack neutron 原理详解