1. 项目介绍​Openstack Networking(neutron)管理所有虚拟网络,包括网络基础设施(VNI)和访问层方面的物理网络(PNI)。它允许租户创建高级的虚拟网络拓扑结构,包括的服务有防火墙、负载均衡器、虚拟专用网络(VPNs)。​Networking提供了以下对象的抽象:网络、子网、路由器。每个功能模拟其物理实现:网络包含子网,路由提供不同子网、网络之间的​​路由​​通信。​每一个路由有一个网关连接网络,有很多接口连接子网。子网能够通过路由连接到其他子网的机器上。​任何给定的网络至少要设置一个外部网络。这个网络不仅仅是一个虚拟网络。相反这个网络是用来访问互联网的,因为这个网络仅仅代表外部网络的一部分,这个网络在中的DHCP是禁用的。​除了外部网络,任何网络设置有一个或者多个内部网络。这些软件定义的网络直接连接到云主机。然后虚拟机所在子网连接到一个​​路由器​​的接口上,该路由器的另一个接口连接到外部网络,这样云主机就可以直接连接到网络了。外部网络访问云主机,则需要把外部IP绑定到云主机。​Networking也支持安全组,安全组通过管理员来定义防火墙规则。一台云主机可以属于一个或者多个安全组。​Networking的每个插件都有它自己的概念。虽然操作Networking不是至关重要的,但是理解这些概念可以帮助你建立Networking。所有网络的安装使用一个核心插件和一个安全组插件;此外,Firewall-as-a-service(FWaaS)和Load-balancing-as-aservice(LBaaS)插件是可选用的。​
  2. 服务组件​neutron-server 是 OpenStack Networking 服务器的主要流程。它是一个 Python 后台进程,将用户请求从 OpenStack Networking API 中继到配置的插件中。OpenStack Networking 还包含 3 个代理,它们通过消息队列或标准 OpenStack Networking API 与主要 Neutron 进程交互:​neutron-dhcp-agent 用于创建和管理虚拟DHCP Server,向所有租户网络提供动态主机配置协议 (Dynamic Host Configuration Protocol, DHCP) 服务。​neutron-l3-agent 用于创建和管理虚拟路由器,执行 L3/网络地址转换 (Network Address Translation) 转发,以支持外部网络访问租户网络上的 VM。​ neutron-openvswitch-agent 用于创建虚拟的二层switch,在每个虚拟机管理程序上执行本地虚拟交换机配置。​Neutron插件架构目前已有很多不同功能和性能参数的插件,而且插件数量仍在增长。目前包含以下插件:​Openvswitch , linux bridge , NEC openflow​Neutron API 向用户和其他服务公开虚拟网络服务接口,但这些网络服务的实际实现位于一个插件中,插件向租户和地址管理等其他服务提供了隔离的虚拟网络。任何人都应该能够通过 Internet 访问 API 网络,而且该网络实际上可能是外部网络的一个子网。前面已经提到过,Neutron API 公开了一个网络连接模型,其中包含网络、子网和端口,但它并不实际执行工作。Neutron 插件负责与底层基础架构交互,以便依据逻辑模型而传送流量。​
  3. 网络服务的原理​Neutron只负责实现网络抽象的API,真正的功能是采用插件来完成的。插件大致分为两类:核心插件(core plugin)和服务插件(service plugin)。​其中核心插件实现了对网络二层和三层的抽象。​二层插件是ML2,ML2中又通过实际的type(local,vlan,gre,vxlan,flat——负责对应类型网络的虚拟化)和Mechanism driver(openvswitch,linux bridge——实际的网络实现机制)来对二层网络进行模拟。​三层插件L3-Agent,和DHCP-Agent来提供虚拟的三层网络服务。​Service plugin则是基于core plugin提供的功能的基础上提供额外的服务,如LBaaS插件提供负载均衡服务、VPNaaS提供VPN服务等。​
  4. 网络服务的搭建先配置控制节点(Controller Node),进行以下操作。
  1. 首先配置网络服务所需要的数据库首先在数据库中创建名为neutron的数据库:

然后授权neutron用户对neutron库拥有完全权限:​

Neutron 网络服务_桥接

  1. 创建keystone认证加载admin的环境变量,source admin-openrc.sh创建keystone认证用户neutron、neutron服务实体,endpoint