本文主要是介绍Openstack学习(2)——Neutron,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Neutron 的设计目标是实现“网络即服务(Networking as a Service)”。为了达到这一目标,在设计上遵循了基于SDN 实现网络虚拟化的原则,在实现上充分利用了Linux系统上的各种网络相关技术。
Neutron 功能
- 二层交换Swithing:Nova的Instance是通过虚拟交换机连接到虚拟二层网络的。Neutron支持多种虚拟交换机,包括 Linux 原生的 Linux Bridge 和 Open vSwitch。 Open vSwitch(OVS)是一个开源的虚拟交换机,它支持标准的管理接口和协议。 用 Linux Bridge 和 OVS,Neutron 除了可以创建传统的 VLAN 网络,还可以创建基于隧道技术的 Overlay 网络。
- 三层路由Routing:Instance可以配置不同网段的 IP,Neutron 的 router(虚拟路由器)实现 instance 跨网段通信。router 通过 IP forwarding,iptables 等技术来实现路由和 NAT。
- 负载均衡:Load-Balancing-as-a-Service(LBaaS),提供了将负载分发到多个 instance 的能力。LBaaS 支持多种负载均衡产品和方案,不同的实现以 Plugin 的形式集成到 Neutron,目前默认的 Plugin 是 HAProxy。
-
防火墙:
-
Security Group: 通过iptables 限制进出instance的网络包。
-
Firewall-as-a-Service:FWaas,限制进出虚拟路由器的网络包,也是通过iptables实现。
-
网络资源
neutron管理的网络资源包括:
- network: local、flat、VLAN、VcLAN
- subnet:是一个IPv4或者IPv6地址段。instance的IP从subnet中分配。每个subnet需要定义IP地址的范围和掩码。network 与 subnet 是 1对多 关系。一个 subnet 只能属于某个 network;一个 network 可以有多个 subnet。
- port: port 可以看做虚拟交换机上的一个端口。port上定义了MAC地址和IP地址,当instance的虚拟网卡VIF(Virtual Interface)绑定到port时,port会将MAC和IP分配给VIF。 subnet 与 port 是 1对多 关系。一个 port 必须属于某个 subnet;一个 subnet 可以有多个 port。
LBaaS
Load Balance as a service(LBaaS)是Neutron提供的一项高级网络服务。LBaaS允许的租户在自己的网络中创建和管理load balancer。
LBaaS 有三个主要的概念:Pool Member,Pool 和 Virtual IP
-
Pool Member: 是layer4的实体,拥有IP地址并通过监听端口对外提供服务。例如 Pool Member 可以是一个web server,IP 为 172.16.100.9 并通过 80 端口提供 HTTP 服务。
-
Pool: 由一组 Pool Member组成。 这些Pool Member 通常提供同一类服务。
- VirtualIP: 也称作VIP,是定义在load balancer上的IP地址。每个pool member都有自己IP,但对外服务 则是通过VIP。
load balancer 负责监听外部的连接,并将连接分发到 pool member。外部 client 只知道 VIP,不知道也不需要关心是否有 pool 或者有多少个 pool member。
OpenStack Neutron 目前默认通过 HAProxy 软件来实现 LBaaS。HAProxy 是一个流行的开源 load balancer。Neutron 也支持其他一些第三方 load balancer。
这篇关于Openstack学习(2)——Neutron的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!