您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 水利工程 > neutron基础概念介绍
Neutron理解概述Neutron是Openstack的核心组件,为了在分布式环境下面给虚拟机提供网卡,此外,Neutron还要虚拟化网络功能的其它元件,比如交换机,负载均衡器,防火墙,NAT。其官网对其给出的定位是:NaaS1.对外接口:Neutron为Network、Subnet、Port、Router等网络资源建立了逻辑模型,并提供了这些模型的RESTfulAPI、CLI(命令行)、GUI(图形化用户接口)。对外提供的RESTfulAPI,其用户主要是Openstack之内的其他组件(如Nova等)以及Openstack之外的其他系统(如MANO等)。2.对内接口:利用Linux原生的以及其他厂商(或者开源)的虚拟网络功能,再加入一些硬接口件网络功能,构建出真正的网络。概述Neutron接到RestfulAPI请求后,交由模块WSGIApplication进行初步处理,然后这个模块通过PythonAPI调用Neutron的Plugin模块。Plugin模块做了相应处理后,通过RPC调用Neutron的Agent模块,Agent再通过某种协议(比如CLI)对VNF(虚拟网络功能)进行配置。概述1.Neutron通过plugin和agent提供的网络服务。2.plugin位于Neutronserver,包括coreplugin和serviceplugin。3.agent位于各个节点,负责实现网络服务。4.coreplugin提供L2功能,ML2是推荐的plugin。5.使用最广泛的L2agent是linuxbridage和openvswitch。6.serviceplugin和agent提供扩展功能,包括dhcp,routing,loadbalance,firewall,vpn等。Neutron组件及实现•Neutron管理的网元,主要以“软”网元为主(VNF)。这些“软”网元,有3种来源:•1Linux原生的网络功能,比如LinuxRouter、LinuxBridge等。•2开源的网络功能,比如OVS等;•3厂商提供的闭源产品。Neutron组件及实现组件名称实现方式网卡OpenvSwitch防火墙iptables交换机OpenvSwitch,Linux路由器Linuxip协议栈和iptables负载均衡器haproxy对于上面提到的VNF功能,Neutron在实现虚拟化的时候使用到了已有的软件或者模块,主要如下:Neutron组件及实现Neutron功能分布•1节点是个逻辑概念,这些节点可以位于同一主机上,也可分属于不同的主机。•2每个节点都需要部署相应的Agent进程。•在控制节点上,部署了进程neutron-server、DBServer(MySQL)和AMQPServer(RabbitMQ)。•计算节点只有qbr、br-int、br-ethx、br-tun等bridge,所以计算节点上也只部署neutron-openswitch-agent、neutron-linuxbridge-agent等agent进程。•网络节点除了br-int、br-ethx、br-tun等Bridge以为,还有DHCP、Router等虚拟网络功能,所以它还会部署neutron-dhcp-agent、neutron-l3-agent等进程。Neutron功能分布Neutron业务逻辑1.Neutronserver接收api请求。2.plugin/agent实现请求。3.database保存neutron网络状态。4.messagequeue实现组件之间通信。整体网络实现Neutron常用对象和模型1.网络(network)是一个隔离的二层网段,类似于物理网络世界中的LAN2.子网(subnet)子网是一组IPv4或者IPv6地址以及其有关联的配置,它是一个地址池,OpenStack可以从中向虚拟机分配IP地址,每个子网指定为一个无类别域间路由范围,必须和一个网络相关联3.端口(Port)一个Port代表虚拟机网络交换机上面的一个虚拟交换端口。虚拟机的网卡会被连接到port上,当虚拟机的网卡(VIF-VirtualInterface)连接到Port以后,这个vNIC就会拥有MAC地址和IP地址,Port的IP地址是从subnet中分配的4.虚拟交换机(Virtualswitch)Neutron默认采用的是开源的OpenvSwitch作为其虚拟机交换机,同时也支持LinuxBridge4.虚拟路由器(Virtualrouter)一个Virtualrouter提供不同网段的IP包路由功能,由NeutronL3agent负责管理常用到的对象和模型5.Namespace主要是为了网络隔离,为不同的租户提供专门的服务。6.dhcp可以看到进程信息。其中bind-interfaces指dnsmasq进程监听的端口,进程可以通过该端口接受和发送dhcp报文。7.TAP/TUN是Linux内核实现的一对虚拟网络设备,TAP工作在二层,TUN工作在三层,Linux内核通过TAP/TUN设备向绑定该设备的用户空间程序发送数据,反之,用户空间程序也可以像操作硬件网络设备那样,通过TAP/TUN设备发送数据。8.VETH/patchport送到一端请求发送的数据总是从另一端以请求接收的形式出现。创建并配置正确后,向其一端输入数据,VETH会改变数据的方向并将其送入内核网络子系统,完成数据的注入,而在另一端则能读到此数据。9.fixedip/floatingip:虚拟机网卡在虚拟网络上的IP。floatingip:虚拟网络对应的外部网络上的IP。10.其他常用概念:-qvo:vethpairopenvswitchside-qvb:vethpairbridgeside-qbr:bridge-qr:l3agentmanagedport,routerside-qg:l3agentmanagedport,gatewayside常用到的对象和模型-OpenStackCloudnetwork,是OpenStack所管理的网络-Externalnetwork,是数据中心所管理的公司网-Internet,是由各大运营商管理的公共网络,使用公共IP-提供者网络(Providernetwork),管理员创建的和物理网络有直接映射关系的虚拟网络之间的通信-租户网络(Projectnetwork),普通租户创建的虚拟网络-管理网络,用于OpenStack各个组件之间的内部通信-数据网络,用于云部署中虚拟数据-部网络,公共网络,外部或者Internet可以访问的网络-API网络,暴露所有的OpenStackAPIsServicePluginDHCPagent(1)1.为虚拟机提供DHCP服务2.每个网络的DHCP运行在一个networknamespace中,namespace由qdhcp-DHCP-UUID命名3.dnsmasq是被Neutron用来提供DHCP和DNS服务的一个开源软件4.创建虚拟机的网络过程ServicePluginDHCPagent(2)4.1.nova-compute向NeutronServer发送一个请求虚拟机IP地址的请求4.2.NeutronServer为虚拟机创建MAC地址和IP地址,将此信息存储到数据库当中4.3.NeutronServer同时将这个信息异步发送给DHCPagent4.4.DHCPagent收到对应信息以后再发送给dnsmasq,后者将它保存起来4.5.nova创建虚拟机以后会初始化MAC地址4.6.当虚拟机启动的时候,默认的ip地址是0.0.0.0,会发送一个广播,dnsmasq会监听到虚拟机发送的报文,对应的将对应MAC地址的IP地址返回给虚拟机,这样虚拟机启动完成以后就会有IP地址ServicePluginL3agent(1)1.L3agent负责路由、浮动IP分配、地址转换和安全组管理2.通过iptables实现安全组、路由以及地址转换3.每个虚拟路由运行在一个networknamespace中,每个namespace由qroute-router-UUID命名ServicePluginL3Agent(2)1.租户通过horizon,nova命令或者自定义的脚本,发送与router或floatingip相关的操作。2.这些API请求发送到neutronserver,通过neutron提供的APIextension相对应。3.实现这些APIextension的操作,比如说create_router,则由具体的plugin和database来共同完成。4.plugin会通过rpc机制与计算网络节点上运行的l3agent来执行l3转发和NAT的功能。现网组件1)NeutronServer分包含守护进程neutron-server和各种插件neutron--plugin,安装在3台控制节点。2)插件代理(PluginAgent):虚拟网络上的数据包的处理则是由这些插件代理来完成的。名字为neutron--agent。在每个计算节点和网络节点上运行。3)DHCP代理(DHCPAgent):名字为neutron-dhcp-agent,为各个租户网络提供DHCP服务,部署在其中1台控制节点上,各个插件也是使用这一个代理。4)3层代理(L3Agent):名字为neutron-l3-agent,为客户机访问外部网络提供3层转发服务。也部署在其中1台控制节点上。现网虚拟网络逻辑服务操作基本指令dhcp服务:/etc/init.d/neutron-dhcp-agentstart/stop/restart.matadata服务:/etc/init.d/neutron-matadata-agentstart/stop/restart.neutron服务:/etc/init.d/neutron-serverstart/stop/restart.L3-agent:/etc/init.d/neutron-l3-agentstart/stop/restart.Openswitch:/etc/init.d/neutron-openvswitch-agentstart/stop/restart.常用维护指令crmstatus各个集群服务状态查看。这里主要是指控制节点的集群,可查看状态。neutronagent-list查看neutron的代理状态。可以查看各个neutronagent是否alive.ipnetnslist查看namespace,例如l3-agent,dhcp等运行状态。如:ipnetnsexecqdhcp-IDipadd查看接口配置ipnetnsexecqrouter-IDiptables–tnat–S查看NAT状态。cat/var/lib/neutron/dhcp/netID/host查看dhcp记录。neutronnet-list查看设备上所有net详情。ovs-vsctlshow查看ovs端口连接ipnetnsexecnet0iproute查看namespace的路由neutronfloatingip-list列出floatingip.日志控制节点neutron日志:neutron-server:/var/log/neutron/server.logneutron-openvswich-agent:/var/log/neutron/openvswitch-agent.logneutron-dhcp-agent:/var/log/neutron/dhcp-agent.logneutron-l3-agent:/var/log/neutron/l3-agent.logneutron-metadata-agent:/var/log/neutron/metadata-agent.log计算节点neutron日志:neutron-openvswich-agent:/var/log/neutron/openvswitch-ag
本文标题:neutron基础概念介绍
链接地址:https://www.777doc.com/doc-6919948 .html