Neutron基础知识学习1

Neutron

OpenStack通过Neutron项目在物理网络环境之上提供满足多租户要求的虚拟网络和服务。Neutron提供的网络虚拟化能力包括:

(1)二层到七层网络的虚拟化:L2(virtual switch),L3(virtual Router和LB),L4-L7(virtual Firewall);

(2)网络连通性:二层网络和三层网络;

(3)租户隔离性;

(4)网络安全性;

(5)网络扩展性;

(6)REST API;

(7)更高级的服务。

Neutron 的设计目标是实现“网络即服务(Networking as a Service)”。

为了达到这一目标,在设计上遵循了基于 SDN 实现网络虚拟化的原则,在实现上充分利用了 Linux 系统上的各种网络相关的技术。

Openstack 网络中的 SDN 组件就是 Quantum.但因为版权问题而改名为Neutron 。

Neutron功能:

Neutron 为整个 OpenStack 环境提供网络支持,包括二层交换,三层路由,负载均衡,防火墙和 VPN 等。Neutron 提供了一个灵活的框架,通过配置,无论是开源还是商业软件都可以被用来实现这些功能。

二层交换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 和网络的安全性。

(1) Security Group

通过 iptables 限制进出 instance 的网络包。

(2) Firewall-as-a-Service

FWaaS,限制进出虚拟路由器的网络包,也是通过 iptables 实现。

Neutron 优点:

Openstack 中的 SDN 组件架构也属于可插拔类型。通过各种插件可以管控不同种类的交换机、路由器、防火墙、负载均衡器并实现 firewall as a service 等许多功能。通过软件来定义的网络,可以对整个云计算设施进行更为精细的掌控。

Neutron 部署方案

方案1:控制节点 + 计算节点:

控制节点:部署的服务包括:neutron server, core plugin 的 agent 和 service plugin 的 agent。

计算节点:部署 core plugin 的agent,负责提供二层网络功能。

需要说明:

  1. core plugin 和 service plugin 已经集成到 neutron server,不需要运行独立的 plugin 服务。

  2. 控制节点和计算节点都需要部署 core plugin 的 agent,因为通过该 agent 控制节点与计算节点才能建立二层连接。

  3. 可以部署多个控制节点和计算节点。

方案2:控制节点 + 网络节点 + 计算节点

**控制节点:**部署 neutron server 服务。

**网络节点:**部署的服务包括:core plugin 的 agent 和 service plugin 的 agent。

**计算节点:**部署 core plugin 的agent,负责提供二层网络功能。

这个方案的要点是将所有的 agent 从控制节点分离出来,部署到独立的网络节点上。

  1. 控制节点只负责通过 neutron server 响应 API 请求。

  2. 由独立的网络节点实现数据的交换,路由以及 load balance等高级网络服务。

  3. 可以通过增加网络节点承担更大的负载。

  4. 可以部署多个控制节点、网络节点和计算节点。

该方案特别适合规模较大的 OpenStack 环境。

*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。

neutron 架构

与 OpenStack 的其他服务的设计思路一样,Neutron 也是采用分布式架构,由多个组件(子服务)共同对外提供网络服务。

Neutron 由如下组件构成:

Neutron Server:

对外提供 OpenStack 网络 API,接收请求,并调用 Plugin 处理请求。

Plugin:

处理 Neutron Server 发来的请求,维护 OpenStack 逻辑网络状态, 并调用 Agent 处理请求。

Agent:

处理 Plugin 的请求,负责在 network provider 上真正实现各种网络功能。

network provider:

提供网络服务的虚拟或物理网络设备,例如 Linux Bridge,Open vSwitch 或者其他支持 Neutron 的物理交换机。

Queue:

Neutron Server,Plugin 和 Agent 之间通过 Messaging Queue 通信和调用。

Database:

存放 OpenStack 的网络状态信息,包括 Network, Subnet, Port, Router 等。

Neutron Server = API + Plugins

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值