以下内容为网络内容整理,如有侵权部分,通知删除:

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理解总结(一)相关推荐

  1. Neutron 理解 (6): 如何实现虚拟三层网络

    Neutron 理解 (1): Neutron 所实现的虚拟化网络 Neutron 理解 (2): 使用 Open vSwitch + VLAN 组网 Neutron 理解 (3): Open vSw ...

  2. Neutron 理解(5):Neutron 是如何向 Nova 虚机分配固定IP地址的

    Neutron 理解 (1): Neutron 所实现的虚拟化网络 Neutron 理解 (2): 使用 Open vSwitch + VLAN 组网 Neutron 理解 (3): Open vSw ...

  3. Neutron 理解 (3): Open vSwitch + GRE/VxLAN 组网

    Neutron 理解 (1): Neutron 所实现的虚拟化网络 Neutron 理解 (2): 使用 Open vSwitch + VLAN 组网 目前,OpenStack Neutron 支持使 ...

  4. Neutron 理解 (6): Neutron 是怎么实现虚拟三层网络的 [How Neutron implements virtual L3 network]

    Neutron 理解 (6): Neutron 是怎么实现虚拟三层网络的 [How Neutron implements virtual L3 network] 学习 Neutron 系列文章: (1 ...

  5. Neutron 理解 (2): 使用 Open vSwitch + VLAN 组网 [Neutron Open vSwitch + VLAN Virtual Network]

    学习 Neutron 系列文章: (1)Neutron 所实现的虚拟化网络 (2)Neutron OpenvSwitch + VLAN 虚拟网络 (3)Neutron OpenvSwitch + GR ...

  6. 理解Docker(5):Docker 网络

    本系列文章将介绍 Docker的相关知识: (1)Docker 安装及基本用法 (2)Docker 镜像 (3)Docker 容器的隔离性 - 使用 Linux namespace 隔离容器的运行环境 ...

  7. Neutron 分布式虚拟路由(Neutron Distributed Virtual Routing)

    本系列会分析OpenStack 的高可用性(HA)概念和解决方案: (1)OpenStack 高可用方案概述 (2)Neutron L3 Agent HA - VRRP (虚拟路由冗余协议) (3)N ...

  8. vxlan 资料及其在 neutron中的应用

    2019独角兽企业重金招聘Python工程师标准>>> VXLAN 是一个新兴的SDN 标准,它定义了一种新的 overlay 网络,它主要的创造者是 VMware, Cisco 和 ...

  9. 【neutron】OpenStack Neutron -- 学习资料

    OpenStack Neutron -- 学习资料 学习什么 neutron代码的整体架构,消息通知.rpc如何实现,RESTful API如何实现 neutron的部署,常见问题的定位方法 neut ...

最新文章

  1. Windows上创建文件夹链接
  2. 程序员职场的出路在哪里
  3. 《软件需求模式》阅读笔记01
  4. 【CentOS Linux 7】实验2【Shell编程及应用】
  5. Angular里的按钮事件注册方法一例
  6. 端口停止使用_我停止使用
  7. Python验证和可视化冰雹猜想、角谷猜想、考拉兹猜想
  8. 最大流matlab代码,计算最小费用最大流MATLAB源代码.doc
  9. 2018-2019-2 20165221 【网络对抗技术】-- Exp6 信息搜集与漏洞扫描
  10. Weka的下载与安装
  11. colmak键盘_人小鬼大,ikbc 新款 Poker 2 机械键盘体验分享
  12. react redux mysql_实现React-redux的基本功能
  13. Python最全学习路线
  14. 一站式数字藏品收款系统开发解决方案
  15. java计算机毕业设计老鹳窝旅游网源码+系统+数据库+lw文档+mybatis+运行部署
  16. CA认证原理以及实现(下)
  17. 联想异能者z51-70笔记本如何bios设置u盘启动?
  18. 如何打造一款直播App(方法流程)
  19. 【比亚迪半导体】关联销售占比超过50%,关联销售毛利率是非关联销售的一倍
  20. Android逆向之frida-dexdump脱壳分析某肿瘤sign

热门文章

  1. Excel数据透视表:切片器
  2. Hadoop详解以及历史版本介绍
  3. 小白学编程c语言,小白学编程,是先学C语言还是C++?
  4. 新星计划Day2【JavaSE】 枚举类与注解
  5. Android9怎样安装xposed,EdXposed 在android 9 上的安装和使用
  6. C#【控件篇】按Tab键可以跳转到下个控件(TabIndex、TabStop的设置)
  7. Python——turtle绘制动漫形象(魔法少女小圆晓美焰,super beautiful)
  8. 需求分析之数据流图学习
  9. ZZULIOJ:按身高站队(实验课)
  10. TCP/ip 协议端口范围 详解