版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。
1、网络架构
openvswitch与linux-bridge相比较而言,openvswitch支持的网络类型更加丰富,应用也比较广泛,因此图示直接使用OVS。linux-bridge支持local, flat, vlan和vxlan 四种network type,目前不支持gre,相比较而言openvswitch支持GRE网络;
OpenStack 至少包含下面几类网络流量
Management:节点之间 message queue 内部通信以及访问 database 服务;API:通过该网络向用户暴露 API 服务;(下图中API网络和管理网络合为一体)VM:VM 网络由 Neutron 配置和管理;External:External 网络指的是 VM 网络之外的网络,该网络不由 Neutron 管理;
管理网络:用户管理所有节点的网络;
内部网络:计算节点与网络节点通过内部网络通信,tenant network(租户网络,租户自己创建管理,网络之间可以重合);
外部网络:内部的VM与外部物理网络间使用外部网络通信使用,一般由管理员创建并赋予相应属性,称为public network(或者叫provider network?);
2、neutron模块
主要包含以下几个部分:
(1)neutron-server:可以理解为类似于nova-api那样的一个组件,一个专门用来接收neutron REST API调用的服务器。负责将不同的rest api发送到不同的neutron-plugin。接受和路由API请求到网络plug-in。一般部署在控制节点(controller),负责通过Neutron-server响应的API请求;
(2)neutron-plugin:可以理解为不同网络功能(例如创建端口(ports)、网络(Networks)、子网(Subnets)等)实现的入口,现在大部分都是软件定义网络,各个厂商都开发自己的plugin(插件)。neutron-plugin接收netron-server发过来的rest api,向neutron database完成一些信息注册(比如用户要建端口