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。
-
API —— Core
-
插件功能的最小集合,即每个插件都必须有的功能,也就是对网络、子网、端口的CRUD操作。
-
-
API —— API Extensions
-
针对具体插件实现,租户可以利用这些插件的独特功能,如ACL、QoS。
-
-
Plugin
-
存储当前逻辑网络的配置信息,判断和存储逻辑网络和物理网络的对应关系(比如为一个逻辑网络选择一个vlan),并与一种或多种交换机通信来实现这种对应关系(一般通过宿主机上的插件代理来实现这种操作,或者远程登录到交换机上来配置)。
-
Neutron Server - ML2/L2
-
ML2插件:通过TypeManager和MechanismManager实现二层的互通
-
ML2:Module Layer 2
-
好处:
-
抽象出Plugin中共性代码(例如:DB),减少厂家新增和维护Plugin的工作量,仅需实现driver即可。
-
解决原结构中只支持一个Plugin的问题,同时支持多个driver。
-
通过l2 population减少overlay网络广播流量。文章来源:https://www.toymoban.com/news/detail-614640.html
-
实现异构部署:每个hypervisor node可使用不同的driver文章来源地址https://www.toymoban.com/news/detail-614640.html
-
到了这里,关于[云计算]OpenStack - Neutron的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!