2021SC@SDUSC
Openstack Neutron
一.Neutron 简介
Neutron 是Openstack提供其他接口设备间的网络通信的模块。它实现了Openstack的网络API
Neutron允许使用者建立和确定网络连接并确定”云“的地址。
Openstack网络负责虚拟网络的创建和管理,包括Nova创建的虚拟机组成的网络,交换机,子网和路由还有防火墙和VPN。
Openstack 网络包括服务器,一个保存永久数据的数据库以及任意数量的插件以用来和原生linux网络机制交互。
- Neutron组件:neutron-server ,neutron-plugin,neutron - agent
- 组件功能:neutron-server 用来接收neutron REST API调用的服务器。负责将不同的rest api发送到不同的neutron -plugin(与各组件交互)
neutron-plugin是不同网络功能实现的入口,从neutron-server 接受rest api,向neutron database 完成一些信息注册,将具体要执行的业务操作和参数传给neutron-agent(操作数据库)
neutron-agent 接受neutron传来的操作和参数,转化为设备级的操作,完成实际的操作。当设备发生问题时将事件通知给plugin。(真正执行者)
Network | 一个隔离的二层广播域。Neutron 支持多种类型的 Network,包括 Local, Flat, VLAN, VxLAN 和 GRE |
Subnet | 一个 IPv4 或者 IPv6 地址段。Instance 的 IP 从 Subnet 中分配。每个 Subnet 需要定义 IP 地址的范围和掩码。 |
Port | 虚拟交换机上的一个端口。Port 上定义了 MAC 地址和 IP 地址,当 instance 的虚拟网卡 VIF(Virtual Interface) 绑定到 Port 时,Port 会将 MAC 和 IP 分配给 VIF。 |
==一个Project对应多个Network,Network对应多个Subnet,Subnet对应多个Port,一个Port对应一个VIF,一个instance
二.Neutron基本功能
- Neutron 为整个 OpenStack 环境提供网络支持,包括二层交换,三层路由,负载均衡,防火墙和 VPN 等。
- 路由:
- 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中的物理网卡,在到目的的虚拟机。
到达路由器,有物理路由器转发到 VLAN B中的物理网卡,在到目的的虚拟机。