1. Neutron 为整个 OpenStack 环境提供网络支持,包括二层交换,三层路由,负载均衡,防火墙和 VPN 等。Neutron 提供了一个灵活的框架,通过配置,无论是开源还是商业软件都可以被用来实现这些功能。
2. 二层交换 Switching
1. Nova 的 Instance 是通过虚拟交换机连接到虚拟二层网络的。Neutron 支持多种虚拟交换机,包括 Linux 原生的 Linux Bridge 和 Open vSwitch。 Open vSwitch(OVS)是一个开源的虚拟交换机,它支持标准的管理接口和协议。
2. 利用 Linux Bridge 和 OVS,Neutron 除了可以创建传统的 VLAN 网络,还可以创建基于隧道技术的 Overlay 网络,比如 VxLAN 和 GRE(Linux Bridge 目前只支持 VxLAN)。
3. 三层路由 Routing
1. Instance 可以配置不同网段的 IP,Neutron 的 router(虚拟路由器)实现 Instance 跨网段通信。router 通过 IP forwarding,iptables 等技术来实现路由和 NAT。
2. Neutron 路由器是一个三层的(L3)的抽象,其模拟物理路由器,为用广提供路由、NAT等服务,在 Openstack网络中,不用子网之间的通信需要路由器,网络与外部网络之间的通信更需要路由器。
3. Neutron 提供虚拟路由器,也支持物理路由器。例如,两个隔离的ⅥLAN网络之间需要实现通信,可以通过物理路由器实现,由物理路由器提供相应的 IP 路由表,确保两个IP子网之间的通信,将两个VLAN网络中的虚拟机默认网关分别设置为路由路由器的接口A和B的IP地址。VLAN中的虚拟机要与 VLANB中的虚拟机通信时,数据包将通过LANA中的物理网卡到达路由器,有物理路由器转发到 VLAN B中的物理网卡,在到目的的虚拟机。
4. 负载均衡 Load Balancing
1. Openstack 在 Grizzly 版本第一次引入了 Load-Balancing-as-a-Service(LBaaS),提供了将负载分发到多个 instance 的能力。
2. LBaaS 支持多种负载均衡产品和方案,不同的实现以 Plugin 的形式集成到 Neutron,目前默认的 Plugin 是 HAProxy。
5. 防火墙 Firewalling
1. Neutron 通过 Security Group 和 Firewall-as-a-Service 两种方式来保障 instance 和网络的安全性。
2. Security Group 通过 iptables 限制进出的 instance 的网络包。
3. Firewall-as-a-Service FWaas 通过 iptables 限制进出虚拟路由器的网络包。
二:架构
一、核心架构
1. Neutron Server:对外提供 OpenStack 网络 API,接收请求,并调用 Plugin 处理请求。
2. Plugin:处理 Neutron Server 发来的请求,维护 OpenStack 逻辑网络状态, 并调用 Agent 处理请求。
3. Agent:处理 Plugin 的请求,负责在 network provider 上真正实现各种网络功能。
4. Network Provider:提供网络服务的虚拟或物理网络设备,例如 Linux Bridge,Open vSwitch 或者其他支持 Neutron 的物理交换机。
5. Queue:Neutron Server,Plugin 和 Agent 之间通过 Messaging Queue 通信和调用。
6. Database:存放 OpenStack 的网络状态信息,包括 Network, Subnet, Port, Router 等。
二、组件详解
1. Neutron Server 详解