[云计算]OpenStack - Neutron(未完善)
目录Neutron在OpenStack中的位置
可以为虚拟机或者 OpenStack 组件提供网络服务,(由 Nova-network 独立出来的)随着需承载业务的能力的增长作为 Nova 子组件无法满足。
过程:neutron-server 接收网络请求,会将其记录到 DB 中,调用不同的Agent,Agent 通过不同的驱动实现网络服务。
Neutron 架构
网络结构 | 功能 |
---|---|
Management Network | 提供OpenStack组件间的内部通信,该网络内的IP地址只有数据中心内部可达。 |
Data Network | 提供云内部VM间的数据通信,该网络内的IP地址取决于使用的网络插件程序。 |
External Network | 提供VM与Internet的通信,Internet上的任何人都可以访问该网络内的IP地址。 |
API Network | 为租户提供包括Networking API在内的所有OpenStack API,可被Internet上任何人访问。 与External Network基本一致,甚至可以创建一个external network子网作为该网络。 |
Neutron 组件
模块 | 功能 | 一般部署位置 |
---|---|---|
Neutron-server & plugin | 接收REST请求,向keystone鉴权,与数据库交互,提供API功能 | 控制节点 |
Neutron database | Neutron数据库,管理数据 | 控制节点 |
L2 agent(ovs-agent) | 连接网络端口,处理数据包 | 计算节点 |
Dhcp-agent | 提供DHCP服务 | 网络节点 |
L3-agent | 为客户机访问外部网络提供3层转发服务 | 网络节点 |
RPC(Message Queue) | 消息队列,用于Plugin与agent之间的通信 | 所有节点 |
- Neutron本身是一套开放的SDN框架和接口,实现允许第三方的SDN接入OpenStack。
- Neutron同时他有一套默认的SDN实现(ML2等)。
Neutron Server机制
- Neutron Server包含两个部分:Neutron-common、Plugin。
- Core Rest API
- 插件功能的最小集合,即每个插件都必须有的功能,也就是对网络、子网、端口的CRUD操作。
- API Extensions
- 针对具体插件实现,租户可以利用这些插件的独特功能,如ACL、QoS。
- Plugin
- 存储当前逻辑网络的配置信息,判断和存储逻辑网络和物理网络的对应关系(比如为一个逻辑网络选择一个vlan),并与一种或多种交换机通信来实现这种对应关系(一般通过宿主机上的插件代理来实现这种操作,或者远程登录到交换机上来配置)。
Neutron Server - ML2/L2
- ML2插件:通过TypeManager和MechanismManager实现二层的互通