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

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. A* 算法之父、人工智能先驱Nils Nilsson逝世 | 缅怀
  2. 如何系统地入门学习stm32?
  3. js 连接mysql_搭建node服务(二):操作MySQL
  4. vs2013 未将对象引用设置到对象的实例
  5. TableView的优化
  6. Ubuntu 16.04 开机自动锁定数字键盘
  7. 【Flink】Flink 源码之时间处理
  8. 有些投资人从机构出来,自己单干做投资,募资一毛钱都没募到
  9. Linux网络服务-LAMP之Php基于Apache的模块实现
  10. SWOT分析思维的一些基本思考与见解
  11. jack插头_连接器,插孔,插头和端口有什么区别?
  12. TX云虽然是大企业但其实让我有些难过
  13. C语言入门题库——求2+22+222+......+22222的值
  14. IDEA maven项目使用Junit报错 java: 程序包org.junit不存在
  15. 不懂面试官想要哪种数据分析师,简历写的再好也没用!文末有福利
  16. 云可信 数未来| 中国电子云总部揭牌
  17. 商业调查——您可以下载 16 个免费问卷模板
  18. 转:色情网站背后的秘密 播放器捆绑木马传毒
  19. Inserting操作导致死锁Oracle
  20. C语言中唯一的一个三目运算符(条件运算符)

热门文章

  1. 朴素贝叶斯-后验概率最大化的含义(公式最后的推导)
  2. MATLAB实现分支定界法求解整数规划
  3. BACnet IP通讯方式组网步骤
  4. ​数据科学家必须了解的事:中心极限定理
  5. 「底层原理」一层层剥开文件系统的面纱,彻底理解Linux文件系统
  6. Pandas输出文件使用Excel打开时中文出现乱码的解决方法
  7. 量化交易系列【4】高频函数:rolling与expanding用法
  8. STM32F767多通道ADC采集+DMA传输
  9. EasyExcel组件导出Excel文件
  10. 编译原理——文法的基本概念