深入理解Neutron -- OpenStack网络实践:概述和基本概念

转载 2015年11月19日 16:36:50

概述

Neutron 的设计目标是实现“网络即服务”,为了达到这一目标,在设计上遵循了基于“软件定义网络”实现网络虚拟化的原则,在实现上充分利用了 Linux 系统上的各种网络相关的技术。

理解了 Linux 系统上的这些概念将有利于快速理解 Neutron 的原理和实现。

涉及的 Linux 网络技术

  • bridge:网桥,Linux中用于表示一个能连接不同网络设备的虚拟设备,linux中传统实现的网桥类似一个hub设备,而ovs管理的网桥一般类似交换机。
  • br-int:bridge-integration,综合网桥,常用于表示实现主要内部网络功能的网桥。
  • br-ex:bridge-external,外部网桥,通常表示负责跟外部网络通信的网桥。
  • GRE:General Routing Encapsulation,一种通过封装来实现隧道的方式。在openstack中一般是基于L3的gre,即original pkt/GRE/IP/Ethernet
  • VETH:虚拟ethernet接口,通常以pair的方式出现,一端发出的网包,会被另一端接收,可以形成两个网桥之间的通道。
  • qvb:neutron veth, Linux Bridge-side
  • qvo:neutron veth, OVS-side
  • TAP设备:模拟一个二层的网络设备,可以接受和发送二层网包。
  • TUN设备:模拟一个三层的网络设备,可以接受和发送三层网包。
  • iptables:Linux 上常见的实现安全策略的防火墙软件。
  • Vlan:虚拟 Lan,同一个物理 Lan 下用标签实现隔离,可用标号为1-4094。
  • VXLAN:一套利用 UDP 协议作为底层传输协议的 Overlay 实现。一般认为作为 VLan 技术的延伸或替代者。
  • namespace:用来实现隔离的一套机制,不同 namespace 中的资源之间彼此不可见。


基本概念

Neutron管理下面的实体:

  • 网络:隔离的 L2 域,可以是虚拟、逻辑或交换,同一个网络中的主机彼此 L2 可见。
  • 子网:隔离的 L3 域,IP 地址块。其中每个机器有一个 IP,同一个子网的主机彼此 L3 可见。
  • 端口:网络上虚拟、逻辑或交换端口。所有这些实体都是虚拟的,拥有自动生成的唯一标示id,支持CRUD功能,并在数据库中跟踪记录状态。

网络

隔离的 L2 广播域,一般是创建它的用户所有。用户可以拥有多个网络。网络是最基础的,子网和端口都需要关联到网络上。

网络上可以有多个子网。同一个网络上的主机一般可以通过交换机或路由器连通起来。

子网

隔离的 L3 域,子网代表了一组分配了 IP 的虚拟机。每个子网必须有一个 CIDR 和关联到一个网络。IP 可以从 CIDR 或者用户指定池中选取。

子网可能会有一个网关、一组 DNS 和主机路由。不同子网之间 L3 是互相不可见的,必须通过一个三层网关(即路由器)经过 L3 上进行通信。

端口

可以进出流量的接口,往往绑定上若干 MAC 地址和 IP 地址,以进行寻址。一般为虚拟交换机上的虚拟接口。

虚拟机挂载网卡到端口上,通过端口访问网络。当端口有 IP 的时候,意味着它属于某个子网。

抽象系统架构

无论哪种具体的网络虚拟化实现,一个简化和抽象后的系统架构可以表述为下图所示。

抽象系统架构

在启用 DVR 特性(J 版本以后支持)之前,所有流量(东西向、南北向)都需要经过网络节点的转发;DVR 特性则允许东西向流量和带有 Floating IP 的南北向流量不经过网络节点的转发,直接从计算节点的外部网络出去。

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

深入理解Neutron -- OpenStack网络实现:GRE模式

GRE模式 下图给出了在OpenStack中网络实现的一个简化的架构示意。 一般的,OpenStack中网络实现包括vlan、gre、vxlan 等模式,此处以gre模式为例。 ...

Delphi7高级应用开发随书源码

  • 2003年04月30日 00:00
  • 676KB
  • 下载

neutron中网络虚拟化技术的应用

柯晓东 Neutron依赖的组件多,看起来太麻烦。买了某本珠玑的书,该书字间距太大,唠嗑比较多,知识普及了但不深入。 最后通过看问人、看代码,终于搞通了一点。字不如表,表不如图。用图来揭示neutro...

Openstack组件实现原理 — Glance架构(V1/V2)

目录目录 Glance Image service Image service 的组件 Glance-Api Glance-Registry Glance-db Image StoreStore Ba...
  • Jmilk
  • Jmilk
  • 2016年06月24日 22:59
  • 7740

OpenStack的架构详解

OpenStack既是一个社区,也是一个项目和一个开源软件,它提供了一个部署云的操作平台或工具集。其宗旨在于,帮助组织运行为虚拟计算或存储服务的云,为公有云、私有云,也为大云、小云提供可扩展的、灵活的...

Neutron 网络基本概念 - 每天5分钟玩转 OpenStack(66)

上次我们讨论了 Neutron 提供的功能,今天我们学习 Neutron 模块几个重要的概念。 Neutron 管理的网络资源包括 Network,subnet 和 port,下面依次介绍。...

Neutron 网络基本概念 - 每天5分钟玩转 OpenStack(66)

本节我们学习 Neutron 的几个重要的概念:Network,Subnet 和 Port。

OpenStack网络实战系列一:通过Openvswitch实践了解交换机的基本概念和操作

本文通过openvswitch和Linux网络命名空间的基本操作帮助大家初步理解网络交换机的基本概念及操作,为后续理解和研究openstack网络概念打下初步基础。...

Linux进程理解与实践(一)基本概念和编程概述(fork,vfork,cow)

进程 and 程序 什么是程序?    程序是完成特定任务的一系列指令集合。 什么是进程?   [1]从用户的角度来看:进程是程序的一次执行过程   [2]从操作系统的核心来看:进程是操作系...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深入理解Neutron -- OpenStack网络实践:概述和基本概念
举报原因:
原因补充:

(最多只允许输入30个字)