neutron理解总结(一)
以下内容为网络内容整理,如有侵权部分,通知删除:
Linux环境下网络设备的虚拟化主要有以下几种形式,Neutron也是基于这些技术来完成项目私有虚拟网络network的构建。
(1) TAP/TUN
TAP/TUN是 Linux内核实现的一对虚拟网络设备, TAP工作在二层,TUN工作在三层,Linux内核通过TAP/TUN设备向绑定该设备的用户空间程序发送数据,反之,用户空间程序也可以像操作硬件网络设备那样,通 过 TAP/TUN设备发送数据。
(2) Linux Bridge/VLAN
Linux Bridge (网桥)是工作于二层的虚拟网络设备,功能类似于物理的交换机。
(3) Open vSwitch
Open vSwitch 是一个具有产品级质量的虚拟交换机,它使用C语言进行开发 。可以区分被桥接的物理网卡上流淌的数据包属于哪个VM 、哪 个 OS 及哪个用户。接入到OpenvSwitch上的各个 VM分配到不同的VLAN中实现网络的隔离。
实现了分布式的虚拟交换机( Distributed Virtual Switch),一个物理Server上的vSwtch可以透明地与另一Server上的vSwitch连接在一起,
Neutron Server
对外提供OpenStack网络API,接收请求,并调用Plugin处理请求。
Plugin agent
处理Neutron Server发来的请求,维护OpenStack逻辑网络的状态,并调用Agent处理请求。
Database
存放OpenStack的网络状态信息,包括Network,Subnet,Port,Router等。
Queue
Neutron Server Plugin和Agent之间通过Messaging Queue通信和调用。
metadata-agent
instance在启动时需要访问nova-metadata-api服务获取metadata和userdata,比如hostname,ip,public key等。该agent让instance能够通过dhcp-agent或者l3-agent与nova-metadata-api通信。
Plugin agent
Ml2 agent默认安装组件。最常用的是linux bridage和open vswitch。
Dhcp agent
通过dnsmasq为instance提供dhcp服务。
L3 agent
l3 agent可以为project(租户)创建router,提供Neutron subnet之间的路由服务。路由功能默认通过 IPtables 实现。
neutron agent服务:
(1)plug-in agent(neutron-*-agent)
插件代理,需要部署在每一个运行hypervisor的主机上,它提供本地的vSwitch配置,更多的时候得依赖你具体所使用的插件类型。(常用的插件是OpenvSwitch,还包括Big Switch,Floodinght REST Proxy,Brocade, NSX, PLUMgrid, Ryu)
(2)dhcp agent(neutron-dhcp-agent)
DHCP代理,给租户网络提供动态主机配置服务,主要用途是为租户网络内的虚拟机动态地分配IP地址。
(3)l3 agent(neutron-l3-agent)
L3代理,提供三层网络功能和网络地址转换(NAT)功能,来让租户的虚拟机可以与外部网络通信。
(4)metering agent(neutron-metering-agent)
计量代理,为租户网络提供三层网络流量数据计量服务。
Neutron 功能
Neutron为整个OpenStack环境提供网络支持,包括二层交换,三层路由,负载均衡,防火墙和VPN等。
二层交换 Switching
Nova 的 Instance 是通过虚拟交换机连接到虚拟二层网络的。
Neutron 支持多种虚拟交换机,包括 Linux 原生的 Linux Bridge 和 Open vSwitch。
三层路由 Routing
Instance 可以配置不同网段的 IP,Neutron 的 router(虚拟路由器)实现 instance 跨网段通信。router 通过 IP forwarding,iptables 等技术来实现路由和 NAT。
负载均衡 Load Balancing
Openstack 在 Grizzly 版本第一次引入了 Load-Balancing-as-a-Service(LBaaS),提供了将负载分发到多个 instance 的能力。LBaaS 支持多种负载均衡产品和方案,不同的实现以 Plugin 的形式集成到 Neutron,目前默认的 Plugin 是 HAProxy。
防火墙 Firewalling
Neutron 通过下面两种方式来保障 instance 和网络的安全性。
Security Group
通过 iptables 限制进出 instance 的网络包。
Firewall-as-a-Service
FWaaS,限制进出虚拟路由器的网络包,也是通过 iptables 实现。
neutron理解总结(一)相关推荐
- Neutron 理解 (6): 如何实现虚拟三层网络
Neutron 理解 (1): Neutron 所实现的虚拟化网络 Neutron 理解 (2): 使用 Open vSwitch + VLAN 组网 Neutron 理解 (3): Open vSw ...
- Neutron 理解(5):Neutron 是如何向 Nova 虚机分配固定IP地址的
Neutron 理解 (1): Neutron 所实现的虚拟化网络 Neutron 理解 (2): 使用 Open vSwitch + VLAN 组网 Neutron 理解 (3): Open vSw ...
- Neutron 理解 (3): Open vSwitch + GRE/VxLAN 组网
Neutron 理解 (1): Neutron 所实现的虚拟化网络 Neutron 理解 (2): 使用 Open vSwitch + VLAN 组网 目前,OpenStack Neutron 支持使 ...
- Neutron 理解 (6): Neutron 是怎么实现虚拟三层网络的 [How Neutron implements virtual L3 network]
Neutron 理解 (6): Neutron 是怎么实现虚拟三层网络的 [How Neutron implements virtual L3 network] 学习 Neutron 系列文章: (1 ...
- Neutron 理解 (2): 使用 Open vSwitch + VLAN 组网 [Neutron Open vSwitch + VLAN Virtual Network]
学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...
- 理解Docker(5):Docker 网络
本系列文章将介绍 Docker的相关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...
- Neutron 分布式虚拟路由(Neutron Distributed Virtual Routing)
本系列会分析OpenStack 的高可用性(HA)概念和解决方案: (1)OpenStack 高可用方案概述 (2)Neutron L3 Agent HA - VRRP (虚拟路由冗余协议) (3)N ...
- vxlan 资料及其在 neutron中的应用
2019独角兽企业重金招聘Python工程师标准>>> VXLAN 是一个新兴的SDN 标准,它定义了一种新的 overlay 网络,它主要的创造者是 VMware, Cisco 和 ...
- 【neutron】OpenStack Neutron -- 学习资料
OpenStack Neutron -- 学习资料 学习什么 neutron代码的整体架构,消息通知.rpc如何实现,RESTful API如何实现 neutron的部署,常见问题的定位方法 neut ...
最新文章
- A* 算法之父、人工智能先驱Nils Nilsson逝世 | 缅怀
- 如何系统地入门学习stm32?
- js 连接mysql_搭建node服务(二):操作MySQL
- vs2013 未将对象引用设置到对象的实例
- TableView的优化
- Ubuntu 16.04 开机自动锁定数字键盘
- 【Flink】Flink 源码之时间处理
- 有些投资人从机构出来,自己单干做投资,募资一毛钱都没募到
- Linux网络服务-LAMP之Php基于Apache的模块实现
- SWOT分析思维的一些基本思考与见解
- jack插头_连接器,插孔,插头和端口有什么区别?
- TX云虽然是大企业但其实让我有些难过
- C语言入门题库——求2+22+222+......+22222的值
- IDEA maven项目使用Junit报错 java: 程序包org.junit不存在
- 不懂面试官想要哪种数据分析师,简历写的再好也没用!文末有福利
- 云可信 数未来| 中国电子云总部揭牌
- 商业调查——您可以下载 16 个免费问卷模板
- 转:色情网站背后的秘密 播放器捆绑木马传毒
- Inserting操作导致死锁Oracle
- C语言中唯一的一个三目运算符(条件运算符)