版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程OpenStack云计算平台
搭建与管理项目10网络服务(Neutron)安装第19讲安装Neutron组件学习目标【知识目标】(1)了解Neutron的功能。(2)了解Neutron的组件架构。(3)了解Neutron的基本工作流程。(4)了解Neutron的FLAT、VLAN、XVLAN、GRE网络类型。【技能目标】(1)能够安装与配置Neutron组件。(2)能够初始化Neutron用户与服务。(3)能够用命令检测Neutron服务。引例描述
在安装完Nova以后,小王有了新的疑问,OpenStack云计算平台有了Nova计算组件就可以生产出一台又一台的云主机了,但这些云主机毕竟是虚拟出来的,并且只能存在于网络上,用户也必须通过网络才能使用它,那它们如何联网呢?项目陈述
OpenStack云计算平台提供的云主机只能存在于网络中,因此网络是云主机工作的必要环境。小王通过调研了解到Neutron是OpenStack云计算平台的核心组件之一,负责为云计算平台提供虚拟网络功能,并且支持多种虚拟网络的拓扑结构。
本项目将在控制节点和计算节点为OpenStack云计算平台安装Neutron组件。
在早期的OpenStack中,网络是由Nova的“nova-network”模块实现的。之后随着网络功能日趋复杂,一个叫作Quantum的新项目被创建来替代“nova-network”模块,它就是Neutron的前身。其后,由于发现Quantum这一名称已经被注册,因此项目被改名为Neutron。Neutron在OpenStack的H版本中首次出现。Neutron的基本概念
Neutron是OpenStack云计算平台的核心组件之一,负责虚拟网络设备的创建和管理。这些虚拟的网络设备包括网桥、网络、端口等。Neutron的基本概念——虚拟网络设备网络设备功能简介网桥(Bridge)
网桥类似于交换机,用于连接不同的网络设备。Neutron把网桥分为内部网桥(bridge-internal,br-int)和外部网桥(bridge-external,ex-int)两类。内部网桥即实现内部网络功能的网桥。外部网桥即负责跟外部网络通信的网桥网络(Network)一个隔离的二层网段,类似于一个虚拟局域网(VirtualLocalAreaNetwork,VLAN)。网络之间是隔离的,不同网络中的IP地址可以重复。子网和端口都挂接在某个网络上子网(Subnet)子网是一个IPv4或者IPv6地址段。子网中的云主机的IP地址从该地址段中进行分配。子网必须关联一个网络。网络与子网是一对多关系,一个子网只能属于某个网络;一个网络可以有多个子网端口(Port)端口可以看作虚拟交换机上的一个端口。端口上定义了硬件物理地址(MAC地址)和IP地址,当云主机的虚拟网卡(VirtualInterface,VIF)绑定到某个端口时,端口就会将MAC地址和IP地址分配给虚拟网卡。子网与端口是一对多关系,一个端口必须属于某个子网;一个子网可以有多个端口Neutron的组件架构——Neutron的模块构成Neutron由对外提供服务的Neutron服务模块“neutron-server”、任意数量的插件“neutron-plugin”和与插件相对应的代理“neutron-agent”组成。模块功能介绍neutron-serverNeutron的服务模块,对外提供OpenStack网络API,接收请求,并调用插件处理请求neutron-pluginNeutron的插件对应某个具体功能,各个厂商可以开发自己的插件放入Neutron中。插件做的事情主要有两件:在数据库中创建资源和发送请求给具体的“neutron-agent”neutron-agentNeutron的代理可以理解为插件在物理设备上的对应代理,插件要实现具体功能必须要通过代理。代理接收到“neutron-plugin”通知的业务操作和参数,然后在网络提供者(如一块真实的网卡)上实现各种网络功能,如创建网络、子网、网桥等。当设备发生问题时,“neutron-agent”会将情况通知给“neutron-plugin”Neutron的组件架构——Neutron的网络分层模型开放系统互连(OpenSystemInterconnection,OSI)参考模型定义了著名的七层网络模型,Neutron在其第二层到第七层都提供了插件来支持各种不同的网络设备和网络服务。这些插件按照其功能分为两类:核心插件(Core-plugin)和服务插件(Service-pluging)。(1)核心插件Neutron中的核心插件即为二层模块(ModularLayer2,ML2),它负责管理OSI第二层的网络连接。ML2中主要包括网络、子网、端口这3类核心资源。在Neutron服务中必须包括核心插件,因此在Neutron配置文件中必须配置ML2,否则无法启动Neutron服务。(2)服务插件服务插件是除核心插件以外其他的插件的统称,主要实现OSI模型的第三层到第七层的网络服务。与核心插件不同的是,服务插件通常不会影响Neutron服务运行,因此在Neutron的配置文件中可以不用配置此类插件的信息。第1步,“neutron-server”服务模块收到要创建虚拟网络的请求,然后将该请求通过消息队列通知给对应的“neutron-plugin”插件,假设网络提供者为开放虚拟交换机(OpenvSwitch,OVS),那么这里的插件对应的就是OVS的插件。第2步,当OVS插件收到请求后,将需要创建的虚拟网络的信息(名称、ID等)保存到数据库中并通过消息队列通知运行在各个节点上的“neutron-agent”代理。第3步,“neutron-agent”代理收到消息后会在节点上创建对应设备,例如VLAN设备。Neutron的基本工作流程
1.Flat网络模式扁平(Flat)网络模式在OSI模型第二层上用虚拟网桥建立了云主机网卡与物理网卡之间的联系,所有虚拟机的网卡IP地址和物理机的网卡IP地址同处一个网段中。Neutron支持的网络模式在Flat网络模式中,由于云主机和物理机属于同一个网段,因此云主机和物理机可以直接通信。其缺点是所有的云主机都在同一个网络内,没有进行网络隔离,容易产生广播风暴。而且每台虚拟机都要用到宝贵的局域网IP地址资源,这就注定Flat网络模式的网络中能容纳的云主机数量不会太多。
2.VLAN网络模式VLAN是一种将局域网(LocalAreaNetwork,LAN)设备从逻辑上划分成更小的局域网。VLAN网络模块是指将若干云主机按逻辑划分属于不同的VLAN,此时只有同一个VLAN中的虚拟机可以相互访问。Neutron支持的网络模式共享同一个物理网络的多个VLAN是相互隔离的,不同的VLAN默认不能相互访问,因此可以有效避免Flat网络模式中的广播风暴问题。如图物理网络“ens32.101”“ens34.102”中的“101”“102”被称为“VLANID”,用于标注不同的网络。“VLANID”的有效值为0~4095,其中0和4095一般被保留不用,所以最多能标识4094个网络,故VLAN网络模式无法满足公有云超大规模用户的需求,只在私有云中应用较多。3.VXLAN与GRE网络模式虚拟扩展局域网(VirtualExtensibleLocalAreaNetwork,VXLAN)和通用路由封装(GenericRoutingEncapsulation,GRE)这两种延展网络(OverlayNetwork)。所谓延展网络,是指在其他网络上扩建而来的网络。Neutron支持的网络模式都是建立在隧道技术上的网络模型,只是VXLAN构建的隧道是“VXLANTunnel”,而GRE构建的隧道是“GRETunnel”。与VLAN相比,VXLAN与GRE支持更多的网段。VXLAN与GRE可以支持的网段数超过1600万,因此它们更适合用于公有云。项目实施在控制节点安装与配置Neutron——安装Neutron软件包[root@controller~]#yum-yinstallopenstack-neutronopenstack-neutron-ml2openstack-neutron-linuxbridgeebtables
这里一共安装了4个软件包,它们分别如下。“openstack-neutron”:“neutron-server”模块的包。“openstack-neutron-ml2”:ML2插件的包。“openstack-neutron-linuxbridge”:网桥和网络提供者相关的软件包。“ebtables”:是一个以太网桥防火墙。在控制节点安装与配置Neutron——创建Neutron的数据库并授权第1步,用下面的方法进入MariaDB数据库服务器。[root@controller~]#mysql-uroot-p000000第2步,新建“neutron”数据库。MariaDB[(none)]>CREATEDATABASEneutron;第3步,给用户授权使用新建数据库。GRANTALLPRIVILEGESONneutron.*TO'neutron'@'localhost'IDENTIFIEDBY'000000';GRANTALLPRIVILEGESONneutron.*TO'neutron'@'%'IDENTIFIEDBY'000000';上面的SQL语句把“neutron”数据库中的所有表(库名.*)的所有权限(ALLPRIVILEGES)赋予从本地主机('localhost')及任意远程主机('%')上登录的名为“neutron”的用户,验证密码为“000000”。安装与配置Neutron——创建Neutron的数据库并授权检查授权情况[root@controller~]#mysql-uneutron-p000000[root@controller~]#mysql-uneutron-p000000-hcontroller都要能进入数据库,并且用“showdatabases;”都能看到neutron数据库。在控制节点安装与配置Neutron——修改Neutron配置文件(1)将配置文件去掉注释和空行第1步,备份配置文件。[root@controller~]#
cp/etc/neutron/neutron.conf/etc/neutron/neutron.bak第2步,去掉所有注释和空行,生成新的配置文件。[root@controller~]#grep-Ev'^$|#'/etc/neutron/neutron.bak>/etc/neutron/neutron.conf这里的正则表达式“^$|#”的具体含义为:匹配空行(“^$”,其中“^”是一行的开头,“$”是一行的结尾),或者(符号“|”表示或者)匹配第一个字符为“#”的行。结合反向匹配参数“-v”,最终匹配的是所有不为空和不以注释符号“#”开头的行。在控制节点安装与配置Neutron——修改Neutron配置文件(2)编辑新的配置文件第1步,打开配置文件进行编辑。#vi/etc/neutron/neutron.confproject_domain_name=Defaultuser_domain_name=Defaultproject_name=projectusername=neutronpassword=000000第2步,修改[database]部分,实现与数据库连接。[database]connection=mysql+pymysql://neutron:000000@controller/neutron第3步,修改“[DEFAULT]”与“[keystone_authtoken]”部分,实现与Keystone交互。[DEFAULT]auth_strategy=keystone[keystone_authtoken]auth_url=http://controller:5000memcached_servers=controller:11211auth_type=password在控制节点安装与配置Neutron——修改Neutron配置文件第4步,修改“[DEFAULT]”部分,实现与消息队列交互及核心插件等。[DEFAULT]core_plugin=ml2service_plugins=transport_url=rabbit://rabbitmq:000000@controllerauth_strategy=keystonenotify_nova_on_port_status_changes=truenotify_nova_on_port_data_changes=true第5步,修改“[oslo_concurrency]”,配置锁路径。[oslo_concurrency]lock_path=/var/lib/neutron/tmp在控制节点安装与配置Neutron——修改Neutron配置文件第6步,增加“[nova]”部分,实现与Nova交互。[nova]auth_url=http://controller:5000auth_type=passwordproject_domain_name=Defaultuser_domain_name=Defaultproject_name=projectusername=novapassword=000000region_name=RegionOne在控制节点安装与配置Neutron——修改ML2插件配置文件(1)将配置文件去掉注释和空行第1步,备份配置文件。[root@controller~]#
cp/etc/neutron/plugins/ml2/ml2_conf.ini/etc/neutron/plugins/ml2/ml2_conf.bak第2步,去掉所有注释和空行,生成新的配置文件。[root@controller~]#grep-Ev'^$|#'/etc/neutron/plugins/ml2/ml2_conf.bak>/etc/neutron/plugins/ml2/ml2_conf.ini这里的正则表达式“^$|#”的具体含义为:匹配空行(“^$”,其中“^”是一行的开头,“$”是一行的结尾),或者(符号“|”表示或者)匹配第一个字符为“#”的行。结合反向匹配参数“-v”,最终匹配的是所有不为空和不以注释符号“#”开头的行。在控制节点安装与配置Neutron——修改ML2插件配置文件(2)编辑新的配置文件打开配置文件进行编辑。#vi/etc/neutron/plugins/ml2/ml2_conf.ini[securitygroup]enable_ipset=true[ml2]type_drivers=flattenant_network_types=mechanism_drivers=linuxbridgeextension_drivers=port_security[ml2_type_flat]flat_networks=provider在控制节点安装与配置Neutron——修改ML2插件配置文件启用ML2插件。只有在“/etc/neutron/”下的插件才能生效,因此将“ml2_conf.ini”映射为“/etc/neutron/”下的“plugin.ini”文件,使ML2插件启用。[root@controller~]#ln-s/etc/neutron/plugins/ml2/ml2_conf.ini/etc/neutron/plugin.ini在控制节点安装与配置Neutron——修改网桥代理配置文件(1)将配置文件去掉注释和空行第1步,备份配置文件。[root@controller~]#
cp/etc/neutron/plugins/ml2/linuxbridge_agent.ini/etc/neutron/plugins/ml2/linuxbridge_agent.bak第2步,去掉所有注释和空行,生成新的配置文件。[root@controller~]#grep-Ev'^$|#'/etc/neutron/plugins/ml2/linuxbridge_agent.bak>/etc/neutron/plugins/ml2/linuxbridge_agent.ini这里的正则表达式“^$|#”的具体含义为:匹配空行(“^$”,其中“^”是一行的开头,“$”是一行的结尾),或者(符号“|”表示或者)匹配第一个字符为“#”的行。结合反向匹配参数“-v”,最终匹配的是所有不为空和不以注释符号“#”开头的行。在控制节点安装与配置Neutron——修改网桥代理配置文件(2)编辑新的配置文件打开配置文件进行编辑。#vi/etc/neutron/plugins/ml2/linuxbridge_agent.ini[securitygroup]enable_security_group=truefirewall_driver=neutron.agent.linux.iptables_firewall.IptablesFirewallDriver[linux_bridge]physical_interface_mappings=provider:ens34[vxlan]enable_vxlan=falseprovider”是ML2插件中的“flat_networks”的值,对应的是外网网卡。在控制节点安装与配置Neutron——修改DHCP代理配置文件(1)将配置文件去掉注释和空行第1步,备份配置文件。[root@controller~]#
cp/etc/neutron/dhcp_agent.ini/etc/neutron/dhcp_agent.bak第2步,去掉所有注释和空行,生成新的配置文件。[root@controller~]#grep-Ev'^$|#'/etc/neutron/dhcp_agent.bak>/etc/neutron/dhcp_agent.ini这里的正则表达式“^$|#”的具体含义为:匹配空行(“^$”,其中“^”是一行的开头,“$”是一行的结尾),或者(符号“|”表示或者)匹配第一个字符为“#”的行。结合反向匹配参数“-v”,最终匹配的是所有不为空和不以注释符号“#”开头的行。在控制节点安装与配置Neutron——修改DHCP代理配置文件(2)编辑新的配置文件打开配置文件进行编辑。#vi/etc/neutron/dhcp_agent.ini[DEFAULT]interface_driver=linuxbridgedhcp_driver=neutron.agent.linux.dhcp.Dnsmasqenable_isolated_metadata=true在控制节点安装与配置Neutron——修改元数据代理配置文件云主机运行在计算节点上,在其运行过程中需要和控制节点的“nova-api”模块交互,让Nova为云主机提供元数据。这个交互需要通过Neutron的“neutron-metadata-agent”进行。“neutron-metadata-agent”和“nova-api”一样运行在控制节点上,云主机先将元数据请求发送给“neutron-metadata-agent”,“neutron-metadata-agent”再将请求转发给“nova-api”。[root@controller~]#vi/etc/neutron/metadata_agent.ini[DEFAULT]nova_metadata_host=controllermetadata_proxy_shared_secret=METADATA_SECRET在控制节点安装与配置Neutron——修改Nova配置文件Nova处于整个云计算平台系统的核心位置,需要和各个组件交互,因此Nova配置文件中需要指明如何与Neutron进行交互。[root@controller~]#vi/etc/nova/nova.conf[neutron]auth_url=http://controller:5000auth_type=passwordproject_domain_name=defaultuser_domain_name=defaultregion_name=RegionOneproject_name=projectusername=neutronpassword=000000service_metadata_proxy=truemetadata_proxy_shared_secret=METADATA_SECRET在控制节点安装与配置Neutron——初始化Neutron的数据库同步数据库的目的是将安装文件中的数据库的表信息填充到数据库中[root@controller~]#suneutron-s/bin/sh-c"neutron-db-manage--config-file/etc/neutron/neutron.conf--config-file/etc/neutron/plugins/ml2/ml2_conf.iniupgradeheads"Neutron组件初始化——创建Neutron用户并分配角色第1步,导入环境变量模拟登录。[root@controller~]#.admin-login第2步,在OpenStack云计算平台中创建用户“neutron”。#openstackusercreate--domaindefault--password000000neutron第3步,给用户“neutron”分配“admin”角色#openstackroleadd--projectproject--userneutronadminNeutron组件初始化——创建Neutron服务及端点(1)创建服务创建名“neutron”、类型“network”的服务。[root@controller~]#openstackservicecreate--nameneutronnetwork(2)创建计算服务端点OpenStack组件的服务端点有3种,分别对应Admin用户(admin)、内部组件(internal)、公众用户(public)服务的地址。第1步,创建公众用户访问的服务端点。#openstackendpointcreate--regionRegionOneneutronpublichttp://controller:9696第2步,创建内部组件访问的服务端点。#openstackendpointcreate--regionRegionOneneutroninternalhttp://controller:9696第3步,创建Admin用户访问端点。[root@controller~]#openstackendpointcreate--regionRegionOneneutronadminhttp://controller:9696Neutron组件初始化——启动Neutron服务由于修改了Nova的配置文件,因此启动Neutron服务前,还需要重启Nova服务。第1步,重启Nova服务。[root@controller~]#systemctlrestartopenstack-nova-api第2步,启动Neutron服务。首先,设置Neutron服务组件、网桥代理、DHCP代理、元数据代理开机启用。[root@controller~]#systemctlenableneutron-serverneutron-linuxbridge-agentneutron-dhcp-agentneutron-metadata-agent然后,立即启用Neutron服务组件、网桥代理、DHCP代理、元数据代理。[root@controller~]#systemctlstartneutron-serverneutron-linuxbridge-agentneutron-dhcp-agentneutron-metadata-agent
检测控制节点的Neutron服务1.查看端口占用情况由于Neutron服务会占用9696端口,通过查看这个端口是否启用,可以判断Neutron服务是否已经运行。[root@controller~]#netstat-tnlup|grep9696tcp00:9696:*LISTEN2339/server.log2.检测服务端点[root@controller~]#curlhttp://controller:9696{"versions":[{"status":"CURRENT","id":"v2.0","links":[{"href":"http://controller:9696/v2.0/","rel":"self"}]}]}在计算点安装与配置Neutron——安装Neutron软件包在计算节点需要安装“openstack-neutron-linuxbridge”软件包,它包括网桥和网络提供者的相关软件。按照以下方法进行安装。[root@compute~]#yum-yinstallopenstack-neutron-linuxbridge在计算点安装与配置Neutron——修改Neutron配置文件(1)将配置文件去掉注释和空行第1步,备份配置文件。[root@compute~]#
cp/etc/neutron/neutron.conf/etc/neutron/neutron.bak第2步,去掉所有注释和空行,生成新的配置文件。[root@compute~]#grep-Ev'^$|#'/etc/neutron/neutron.bak>/etc/neutron/neutron.conf这里的正则表达式“^$|#”的具体含义为:匹配空行(“^$”,其中“^”是一行的开头,“$”是一行的结尾),或者(符号“|”表示或者)匹配第一个字符为“#”的行。结合反向匹配参数“-v”,最终匹配的是所有不为空和不以注释符号“#”开头的行。在计算点安装与配置Neutron——修改Neutron配置文件(2)编辑新的配置文件第1步,打开配置文件进行编辑。#vi/etc/neutron/neutron.conf第2步,修改“[keystone_authtoken]”部分,实现与Keystone交互。[keystone_authtoken]auth_url=http://controller:5000memcached_servers=controller:11211auth_type=passwordproject_domain_name=defaultuser_domain_name=defaultproject_name=projectusername=neutronpassword=000000第3步,修改[DEFAULT]和[oslo_concurrency]配置消息队列和锁路径。[DEFAULT]transport_url=rabbit://rabbitmq:000000@controller:5672auth_strategy=keystone[oslo_concurrency]lock_path=/var/lib/neutron/tmp在计算点安装与配置Neutron——修改网桥代理配置文件[root@compute~]#vi/etc/neutron/plugins/ml2/linuxbridge_agent.ini[DEFAULT][linux_bridge]physical_interface_mappings=provider:ens34
对应外网网卡[vxlan]enable_vxlan=false[securitygroup]enable_security_group=truefirewall_driver=neutron.agent.linux.iptables_firewall.IptablesFirewallDriver在计算点安装与配置Neutron——修改Nova配置文件[root@compute~]#vi/etc/nova/nova.conf[DEFAULT]vif_plugging_is_fatal=falsevif_plugging_timeout=0[neutron]auth_url=http://controller:5000auth_type=passwordproject_domain_name=defaultuser_domain_name=defaultregion_name=RegionOneproject_name=projectusername=neutronpassword=000000启动计算节点Neutron服务第1步,重启计算节点的Nova服务。[root@compute~]#systemctlrestartopenstack-nova-compute
第2步,启动计算节点的Neutron网桥代理服务。首先,设置Neutron网桥代理开机启动。[root@compute~]#systemctlenableneutron-linuxbridge-agent然后,立即启动Neutron网桥代理。[root@compute~]#systemctlstartneutron-linuxbridge-agent
验证Neutron服务查看网络代理服务列表第1步,导入环境变量模拟登录。[root@controller~]#.admin-login
第2步,查看网络代理服务列表。[root@controller~]#openstacknetworkagentlist+---------------------------
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国基建行业发展规划与未来前景预测报告
- DB50-T 1201-2021 区域界线标识标志设置规范
- 2025-2030中国四元锂电池正极材料(NCMA)行业发展态势与投资规划研究报告
- 老年人消化不良共识总结2026
- 护理操作规范指南
- 国家安全管理标准培训
- 七年级数学教师教学工作总结10篇
- 古代中国民间故事集成
- 中医学专业职业规划-1
- 销售五年成长蓝图
- 2026年黑龙江省《保密知识竞赛必刷100题》考试题库附参考答案详解(精练)
- 西南名校联盟2026届3+3+3高三4月联考数学试卷+答案
- 成都环境投资集团有限公司下属成都市兴蓉环境股份有限公司2026年春季校园招聘(47人)笔试历年参考题库附带答案详解
- GB 20055-2006开放式炼胶机炼塑机安全要求
- 物探-地震勘探理论基础
- 蒋丁新版饭店管理第七章-饭店营销管理
- 火力发电厂生产技术管理导则
- 英语四六级考前15天提高听力成绩必备技巧
- RG-S8600E云架构网络核心交换机产品介绍(V1.3)
- 【PPT】量子计算研究进展
- GJB9001B-2009《质量管理体系要求》
评论
0/150
提交评论