为 Neutron 准备物理基础设施(I) - 每天5分钟玩转 OpenStack(75)

前面讨论了 Neutron 的架构和基础知识,接下来就要通过实验深入学习和实践了。

第一步就是准备实验用的物理环境,考虑如下几个问题:

需要几个节点?

如何分配节点的角色?

节点上部署哪些服务?

配几个网卡?

物理网络如何连接?

1 控制节点 + 1 计算节点 的部署方案

我们的目的是通过实验学习 Neutron 的各种特性。 为了达到这个目的,实验环境应尽量贴近典型的部署方案;但同时,由于是个人学习使用,受物理条件的限制需要尽量利用有限的资源,所以我们采用下面的部署方案:

Q:需要几个节点? A:2 节点 = 1 控制节点 + 1 计算节点

Q:如何分配节点的角色? A:控制节点合并了网络节点的功能,同时也是一个计算节点

Q:节点上部署哪些服务? A:如上图

配置多个网卡区分不同类型的网络数据

OpenStack 至少包含下面几类网络流量

Management

API

VM

External

Management 网络
用于节点之间 message queue 内部通信以及访问 database 服务,所有的节点都需要连接到 management 网络。

API 网络
OpenStack 各组件通过该网络向用户暴露 API 服务。Keystone, Nova, Neutron, Glance, Cinder, Horizon 的 endpoints 均配置在 API 网络上。

通常,管理员也通过 API 网络 SSH 管理各个节点。

VM 网络
VM 网络也叫 tenant 网络,用于 instance 之间通信。
VM 网络可以选择的类型包括 local, flat, vlan, vxlan 和 gre。
VM 网络由 Neutron 配置和管理。

External 网络
External 网络指的是 VM 网络之外的网络,该网络不由 Neutron 管理。
Neutron 可以将 router attach 到 External 网络,为 instance 提供访问外部网络的能力。
External 网络可能是企业的 intranet,也可能是 internet。

这几类网络只是逻辑上的划分,物理实现上有非常大的自由度。

我们可以为每种网络分配单独的网卡;
也可以多种网络共同使用一个网卡;
为提高带宽和硬件冗余,可以使用 bonding 技术将多个物理网卡绑定成一个逻辑的网卡

我们的实验环境采用下面的网卡分配方式:

控制节点 3 网卡(eth0, eth1, eth2),计算节点 2 网卡(eth0, eth1)
合并 Management 和 API 网络,使用 eth0,IP 段为 192.168.104.0/24
VM 网络使用 eht1
控制节点的 eth2 与 External 网络连接,IP 段为 10.10.10.0/24

网络拓扑

实验环境的网络拓扑如下图所示

分割线上方的网络由网络管理员(就是我们啦)配置。
主要涉及 Management, API 和 external 网络。
配置的内容包括节点上的物理网卡,物理交换机和外部路由器,防火墙以及物理连线等

分割线下方主要是 VM 网络,由 Neutron 管理。
我们只需要通过 Web GUI 或者 CLI 操作,Neutron 会负责实现。

下一节我们将安装和配置控制节点和计算节点。

时间: 2024-09-20 18:00:07

为 Neutron 准备物理基础设施(I) - 每天5分钟玩转 OpenStack(75)的相关文章

Neutron 物理部署方案 - 每天5分钟玩转 OpenStack(68)

前面我们讨论了 Neutron 的架构,本节讨论 Neutron 的物理部署方案:不同节点部署不同的 Neutron 服务组件. 方案1:控制节点 + 计算节点 在这个部署方案中,OpenStack 由控制节点和计算节点组成. 控制节点部署的服务包括:neutron server, core plugin 的 agent 和 service plugin 的 agent. 计算节点部署 core plugin 的agent,负责提供二层网络功能. 这里有两点需要说明: 1. core plugi

Neutron 默认安全组规则 - 每天5分钟玩转 OpenStack(115)

Neutron 为 instance 提供了两种管理网络安全的方法: 安全组(Security Group)和虚拟防火墙. 安全组的原理是通过 iptables 对 instance 所在计算节点的网络流量进行过滤. 虚拟防火墙则由 Neutron Firewall as a Service(FWaaS)高级服务提供. 其底层也是使用 iptables,在 Neutron Router 上对网络包进行过滤. 这两种安全方案我们都会讨论,本章先重点学习安全组. 默认安全组 每个 Project(租

Neutron 架构 - 每天5分钟玩转 OpenStack(67)

前面我们讨论了 Neutron 的基本概念,今天我们开始分析 Neutron 的架构. Neutron 架构 与 OpenStack 的其他服务的设计思路一样,Neutron 也是采用分布式架构,由多个组件(子服务)共同对外提供网络服务. Neutron 由如下组件构成: Neutron Server对外提供 OpenStack 网络 API,接收请求,并调用 Plugin 处理请求. Plugin处理 Neutron Server 发来的请求,维护 OpenStack 逻辑网络的状态, 并调用

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

上次我们讨论了 Neutron 提供的功能,今天我们学习 Neutron 模块几个重要的概念. Neutron 管理的网络资源包括 Network,subnet 和 port,下面依次介绍. network network 是一个隔离的二层广播域.Neutron 支持多种类型的 network,包括 local, flat, VLAN, VxLAN 和 GRE. locallocal 网络与其他网络和节点隔离.local 网络中的 instance 只能与位于同一节点上同一网络的 instanc

访问 Neutron 外部网络 - 每天5分钟玩转 OpenStack(143)

前面我们学习了位于不同 Neutron subnet 的 instance 可以通过 router 通信,今天开始讨论 instance 如何访问外部网络. 这里的外部网络是指的租户网络以外的网络.租户网络是由 Neutron 创建和维护的网络. 外部网络不由 Neutron 创建.如果是私有云,外部网络通常指的是公司 intranet:如果是公有云,外部网络通常指的是 internet. 具体到我们的实验网络环境: 计算节点和控制节点 eth1 提供的是租户网络,IP 段租户可以自由设置. 控

Neutron Vlan Network 原理- 每天5分钟玩转 OpenStack(92)

前面我们陆续学习了 Neutron local network,flat network 和 DHCP 服务,从本节将开始讨论 vlan network. vlan network 是带 tag 的网络,是实际应用最广泛的网络类型.下图是 vlan100 网络的示例. 1. 三个 instance 通过 TAP 设备连接到名为 "brqXXXX" linux bridge. 2. 在物理网卡 eth1 上创建了 eth1.100 的 vlan interface,eth1.100 连接

实践 Neutron 前的两个准备工作 - 每天5分钟玩转 OpenStack(78)

上一节配置了 linux-bridge mechanism driver,本节再做两个准备工作: 1. 检视初始的网络状态.2. 了解 linux bridge 环境中的各种网络设备. 初始网络状态 我们首先考察实验环境最初始的网络状态.随着学习的深入,我们会对网络不断进行新的配置,大家也将看到网络一步一步发生的变化. 在我们的实验环境中,当前节点上只存在物理网卡设备 ethX,还没有 bridge 和 tap,状态如下: 控制节点 计算节点 了解 linux bridge 环境中的各种网络设备

Neutron 功能概述 - 每天5分钟玩转 OpenStack(65)

从今天开始,我们将学习 OpenStack 的 Networking Service,Neutron.Neutron 的难度会比前面所有模块都大一些,内容也多一些.为了帮助大家更好的掌握 Neutorn,CloudMan 也会分析地更详细一些. Neutron 概述 传统的网络管理方式很大程度上依赖于管理员手工配置和维护各种网络硬件设备:而云环境下的网络已经变得非常复杂,特别是在多租户场景里,用户随时都可能需要创建.修改和删除网络,网络的连通性和隔离已经不太可能通过手工配置来保证了. 如何快速响

理解 Neutron Server 分层模型 - 每天5分钟玩转 OpenStack(69)

本节开始讨论 Neutron 的各个服务组件,首先学习 Neutron Server . 上图是 Neutron Server 的分层结构,至上而下依次为: Core API对外提供管理 network, subnet 和 port 的 RESTful API. Extension API对外提供管理 router, load balance, firewall 等资源 的 RESTful API. Commnon Service认证和校验 API 请求. Neutron CoreNeutron