Neutron组件基础知识介绍(二)

  • Neutron架构


    Neutron组件基础知识介绍(二)_第1张图片
    Neutron架构
  1. neutron Server
    报刊守护进程neutron-server和各种插件(plugin),他们即可以安装在控制节点也可以安装在网络节点,neutron-server提供API接口,并且把API的调用请求传给已经配置好的插件进行后续的处理
  2. neutron L2 agent
    为虚拟网络提供2层交换服务,通过一个特定的插件来实现
  3. neutron-dhcp-agent
    为虚拟机提供DHCP服务
  4. neutron-l3-agent
    为虚拟机访问外部网络提供3层转发服务
  • Plugin/Agent架构


    Neutron组件基础知识介绍(二)_第2张图片
    Plugin/Agent架构

    典型Plugin/Agent架构如上图所示
    4.1. 控制节点上面api获取到其他组件请求,Core Plugins主要负责二层交换,
    Service Plugins主要负责三层路由,二者大部分都是和数据库通讯
    4.2. Plugins将和数据库通讯以后的数据做一层封装写入到缓存MQ队列
    4.3. L2 agent负责二层交换的服务
    4.4. L3 agent负责三层路由的服务
    4.5. DHCP agent负责自动获取网络地址的服务
    4.6. ML2 Plugin介绍
    一般情况下,Plugin和Agent是成对出现的,但是由于Plugin主要负责数据库的增产改查,如果有多个Plugin必然在代码层面要重写,不便于扩展,这个时候就出现了ML2 Plugin,它本质上是将对数据库的操作做了一层封装,实现的架构如下所示


    Neutron组件基础知识介绍(二)_第3张图片
    ML2 Plugin
  • DHCP agent

  1. 为虚拟机提供DHCP服务
  2. 每个网络的DHCP运行在一个network namespace中,namespace由qdhcp-命名
  3. dnsmasq是被Neutron用来提供DHCP和DNS服务的一个开源软件
  4. 创建虚拟机的网络过程


    Neutron组件基础知识介绍(二)_第4张图片
    vm获取ip地址过程

4.1. nova-compute向Neutron Server 发送一个请求虚拟机IP地址的请求
4.2. Neutron Server为虚拟机创建MAC地址和IP地址,将此信息存储到数据库当中4.3. Neutron Server同时将这个信息异步发送给DHCP agent
4.4. DHCP agent收到对应信息以后再发送给dnsmasq,后者将它保存起来
4.5. nova创建虚拟机以后会初始化MAC地址
4.6. 当虚拟机启动的时候,默认的ip地址是0.0.0.0,会发送一个广播,dnsmasq会监听到虚拟机发送的报文,对应的将对应MAC地址的IP地址返回给虚拟机,这样虚拟机启动完成以后就会有IP地址

L3 agent

  1. L3 agent负责路由、浮动IP分配、地址转换和安全组管理
  2. 通过iptables实现安全组、路由以及地址转换
  3. 每个虚拟路由运行在一个network namespace中,每个namespace 由qroute-命名

你可能感兴趣的:(Neutron组件基础知识介绍(二))