暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
Neutron概述.docx
411
8页
1次
2021-09-28
5墨值下载
一、Neutron 概述
Neutron OpenStack 项目中负责提供网络服务的组件,它基于软件定义网络的思想,实现
了网络虚拟化下的资源管理。Neutron 的设计目标是实现 网络即服务(Networking as a
Service ,在设计上遵循了基于 SDN 实现网络虚拟化的原则,在实现上充分利用了 Linux
统上的各种网络相关的技术。
二、Neutron 功能
1. 二层交换
Neutron 支持多种虚拟交换机,一般使用 Linux Bridge Open vSwitch 创建传统的 VLAN
网络,以及基于隧道技术的 Overlay 网络,如 VxLAN GRELinux Bridge 目前只支持
VxLAN)。
2. 三层路由
Neutron Juno 版开始正式加入的 DVR(Distributed Virtual Router)服务,它将原本集中在网
络节点的部分服务分散到了计算节点上。可以通过 namespace 中使用 ip route 或者 iptables 实现
路由或 NAT,也可以通过 openflow OpenvSwitch 下发流表来实现。
3. 负载均衡
LBaaS 支持多种负载均衡产品和方案,不同的实现以 Plugin 的形式集成到 Neutron,通过
HAProxy 来实现
4. 防火墙
Neutron 有两种方式来保障 instance 和网络的安全性,分别是安全组以及防火墙功能,均可
以通过 iptables 来实现,前者是限制进出 instance 的网络包,后者是进出虚拟路由器的网络包。
三、Network
1. Local
Local 网络,本地的一个 Linux Bridge,除了虚拟机的虚拟网卡不连接其他的网络设备,实
际场景很少使用,可以忽略。
2. Flat
Flat 网络,不带 vlan tag 的网络,相当于 Local 网络的 Linux Bridge 连接到一个物理网卡,
该网络中的 instance 能与同网络的 instance 通信,且可以跨多个节点,实际场景也很少用到。
3. VLAN
VlAN 网络,可以跨节点,目前是私有云网络应用较多。
4. VXALN
VXLAN
网络 ,是基于隧道技术的 overlay 网络,通过唯一的 VNI 区分于其他 vxlan 网络
vxlan 中数据包通过 VNI 封装成 UPD 包进行传输,因为二层的包通过封装在三层传输,能够克
vlan 和物理网络基础设施的限制。
5. GRE
GRE
网络,与 vxlan 类似的一种 overlay 网络,使用 IP 包进行封装。
四、Neutron 架构
Neutron 采用分布式架构,由多个组件共同对外提供网络服务,如下图所示:
5
10
15
20
25
30
35
由上图可以看到 Neutron 有以下组件构成:
·
Neutron Server:对外提供 OpenStack 网络 API,接收请求,并调用 Plugin 处理请求。
·
Plugin:处理 Neutron Server 发来的请求,维护 OpenStack 逻辑网络的状态,并调用
Agent 处理请求。
·
Agent:处理 Plugin 的请求,负责在 Network Provider 上真正实现各种网络功能。
·
Network Provider:提供网络服务的虚拟或者物理网络设备,比如 Linux
BridgeOpenVSwitch 或者其他支持 Neutron 的物理交换机。
·
QueueNeutron ServerPlugin Agent 之间通过 Messaging Queue 通信和调用
·
Database:存放 OpenStack 的网络状态信息,包括 NetworkSubnetPortRouter 等。
举例说明
为了了解他们之间的关系,我们举个例子进行说明,创建一个 VLAN100
NetworkNetwork Provider Linux Bridge
1Neutron Server 接收到创建 Network 的请求,通过 Message Queue(RabbitMQ)通知已
注册的 Linux Bridge Plugin
2Plugin 将要创建的 Network 的信息(例如名称、VLAN ID )保存到数据库中,并通
Message Queue
通知运行在各节点上的 Agent
3 Agent 收到消息后会在节点上的物理网卡(比如 eth2)上创建 VLAN 设备(比如
eth2.100),并创建 Bridge(比如 brqXXX)桥接 VLAN 设备。
这里进行几点说明:
1Plugin 确定的是网络要配置成什么样子,而于如配置,则交由 Agent 成。
2PluginAgent Network Provider 是配使用的,比如上例中 Network Provider
Linux Bridge就得使用 Linux Bridge Plugin Agent Network Provider 换成了
OVS 或者物理交换机,Plugin Agent 得替换。
3Plugin 的一个要的责是在数据库中维护 Neutron 网络的状态信息,这就造成一个
问题:所有 Network Provider Plugin 编写套非常类似的数据库访问代码。为了解
问题Neutron Havana 版本实现了一个 ML2(Modular Layer 2) Plugin,对 Plugin 的功能进
抽象和封装。有了 ML2 Plugin各种 Network Provider 无需开发自己 Plugin,只
ML2 开发相应的 Driver 可以了工作量难度都大大减少。ML2 会在后面详细讨论
5
10
15
20
25
of 8
5墨值下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜