openstack pike版本安装笔记5(Networking service: neutron组件)

	Networking service:
		neutron组件:
			Neutron Server(网络服务器节点):可部署在CON节点上(控制节点)
				创建用户(neutron)
					openstack user create --domain default --password-prompt neutron
				将用户neutron关联至租户(项目service)和role上:
					openstack role add --project service --user neutron admin
				创建neutron服务实体:
					openstack service create --name neutron --description "OpenStack Networking" network
				创建neutron服务 API 端点(endpoint):
					openstack endpoint create --region RegionOne network public http://con.colinshi.top:9696
					openstack endpoint create --region RegionOne network internal http://con.colinshi.top:9696
					openstack endpoint create --region RegionOne network admin http://con.colinshi.top:9696
				安装neutron服务包:
					yum install openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables
				从以下开始neutron分为两种网络模型:
					公共网络和私有网络
					公共网络配置:
						采用尽可能简单的架构进行部署,只支持实例连接到公有网络(外部网络)。没有私有网络(个人网络),路由器以及浮动IP地址。只有admin或者其他特权用户才可以管理公有网络
						编辑配置文件/etc/neutron/neutron.conf:
							[DEFAULT]
							core_plugin = ml2
							service_plugins =
							transport_url = rabbit://rabbit:rabbit@con.colinshi.top
							auth_strategy = keystone
							notify_nova_on_port_status_changes = true
							notify_nova_on_port_data_changes = true
							
							[keystone_authtoken]
							auth_uri = http://con.colinshi.top:5000
							auth_url = http://con.colinshi.top:35357
							memcached_servers = con.colinshi.top:11211
							auth_type = password
							project_domain_name = default
							user_domain_name = default
							project_name = service
							username = neutron
							password = neutron
							
							[nova]
							auth_url = http://cont.colinshi.top:35357
							auth_type = password
							project_domain_name = default
							user_domain_name = default
							region_name = RegionOne
							project_name = service
							username = nova
							password = nova
							
							[database]
							connection = mysql+pymysql://root:123456@con.colinshi.top/neutron
							
							[oslo_concurrency]
							lock_path = /var/lib/neutron/tmp
							
						编辑Modular Layer 2 (ML2) 插件配置文件/etc/neutron/plugins/ml2/ml2_conf.ini:
							[ml2]
							type_drivers = flat,vlan  #启用flat和VLAN网络
							tenant_network_types =    #禁用私有网络
							mechanism_drivers = linuxbridge #启用Linuxbridge机制
							extension_drivers = port_security #启用端口安全扩展驱动
							
							[ml2_type_flat] 
							flat_networks = provider #配置公共虚拟网络为flat网络
							
							[securitygroup]
							enable_ipset = True   #启用ipset增加安全组规则的高效性

						Linuxbridge代理配置文件/etc/neutron/plugins/ml2/linuxbridge_agent.ini:	 
							[linux_bridge]
							physical_interface_mappings = provider:ens38 #将公共虚拟网络和公共物理网络接口对应起来
							
							[vxlan]
							enable_vxlan = False #禁止VXLAN覆盖网络

							[securitygroup] #启用安全组并配置 Linuxbridge iptables firewall driver
							enable_security_group = True
							firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
						
						编辑DHCP代理配置文件/etc/neutron/dhcp_agent.ini:
						[DEFAULT]
							interface_driver = linuxbridge
							dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
							enable_isolated_metadata = True
					私有网络配置(在公有网络基础上配置):
						公共网络的基础上多了layer-3服务,支持实例连接到私有网络。其他没有特权的用户(租户)可以管理自己的私有网络,包含连接公网和私网的路由器。另外,浮动IP地址可以让实例使用私有网络连接到外部网络,例如互联网
						编辑配置文件/etc/neutron/neutron.conf:
							[DEFAULT]#路由服务和重叠的IP地址
							service_plugins = router 
							allow_overlapping_ips = True

						编辑Modular Layer 2 (ML2) 插件配置文件/etc/neutron/plugins/ml2/ml2_conf.ini:
							[ml2]
							type_drivers = flat,vlan,vxlan #启用flat、VLAN和VxLAN网络
							tenant_network_types =  vxlan  #私有网络为VxLAN
							mechanism_drivers = linuxbridge,l2population #启用Linuxbridge和layer-2机制
							
							[ml2_type_vxlan]#私有网络配置VXLAN网络识别的网络范围
							vni_ranges = 1:1000

						Linuxbridge代理配置文件/etc/neutron/plugins/ml2/linuxbridge_agent.ini:
							[vxlan]#启用VXLAN覆盖网络,配置覆盖网络的物理网络接口的IP地址,启用layer-2 population
							enable_vxlan = True
							local_ip = 10.0.0.51
							l2_population = true
						
						编辑layer-3代理配置文件/etc/neutron/l3_agent.ini:
							[DEFAULT]
							interface_driver = linuxbridge
				配置元数据代理:
					编辑配置文件/etc/neutron/metadata_agent.ini:
						[DEFAULT]
						nova_metadata_ip = con.colinshi.top  #元数据主机地址,控制节点
						metadata_proxy_shared_secret = metadata  #元数据共享密码,自己设置一个
				为计算节点配置网络服务(是在控制节点上配置)
					编辑配置文件/etc/nova/nova.conf:启用元数据代理并设置密码
						[neutron]
							url = http://con.colinshi.top:9696
							auth_url = http://con.colinshi.top:35357
							auth_type = password
							project_domain_name = default
							user_domain_name = default
							region_name = RegionOne
							project_name = service
							username = neutron
							password = neutron

							service_metadata_proxy = True
							metadata_proxy_shared_secret = metadata
				创建软连接:
					ln -s /etc/neutron/plugins/ml2/ml2_conf.ini /etc/neutron/plugin.ini
				同步数据库:
					su -s /bin/sh -c "neutron-db-manage --config-file /etc/neutron/neutron.conf --config-file /etc/neutron/plugins/ml2/ml2_conf.ini upgrade head" neutron
				重启NOVA-API服务:
					systemctl restart openstack-nova-api.service
				启动Networking Server(公共网络)并设置其随系统启动:
					systemctl enable neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service
					systemctl start neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service
				启用layer-3服务(私有网络)并设置其随系统自启动:
					systemctl enable neutron-l3-agent.service
					systemctl start neutron-l3-agent.service

			Computer Node(计算节点):部署在计算节点上
				安装neutron服务包:
					yum install openstack-neutron-linuxbridge ebtables ipset
					编辑配置文件/etc/neutron/neutron.conf:
						[DEFAULT]
						transport_url = rabbit://rabbit:rabbit@con.colinshi.top
						auth_strategy = keystone
							
						[keystone_authtoken]
						auth_uri = http://con.colinshi.top:5000
						auth_url = http://con.colinshi.top:35357
						memcached_servers = con.colinshi.top:11211
						auth_type = password
						project_domain_name = default
						user_domain_name = default
						project_name = service
						username = neutron
						password = neutron
						
						[oslo_concurrency]
						lock_path = /var/lib/neutron/tmp

					这里依然分为两种网络模型(可以直接拷贝控制节点的文件):
						公共网络配置:
							编辑Linuxbridge代理配置文件/etc/neutron/plugins/ml2/linuxbridge_agent.ini:
								[linux_bridge]
								physical_interface_mappings = provider:ens38 #将公共虚拟网络和公共物理网络接口对应起来
								
								[vxlan]
								enable_vxlan = False #禁止VXLAN覆盖网络

								[securitygroup] #启用安全组并配置 Linuxbridge iptables firewall driver
								enable_security_group = True
								firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
						
						私有网络配置(在公有网络基础上配置和修改):
							Linuxbridge代理配置文件/etc/neutron/plugins/ml2/linuxbridge_agent.ini:
								[vxlan]#启用VXLAN覆盖网络,配置覆盖网络的物理网络接口的IP地址,启用layer-2 population
								enable_vxlan = True
								local_ip = 10.0.0.51
								l2_population = true
		私有网络的验证:
			openstack network agent list
			+--------------------------------------+--------------------+------------------------+-------------------+-------+-------+---------------------------+
			| ID                                   | Agent Type         | Host                   | Availability Zone | Alive | State | Binary                    |
			+--------------------------------------+--------------------+------------------------+-------------------+-------+-------+---------------------------+
			| 6300fe62-d569-41b2-a75e-0071db0c9e5a | Linux bridge agent | computer1.colinshi.top | None              | :-)   | UP    | neutron-linuxbridge-agent |
			| 6a149e01-4a13-4c6d-8991-f679ded09c4a | Linux bridge agent | con.colinshi.top       | None              | :-)   | UP    | neutron-linuxbridge-agent |
			| be06cf87-4e22-43c8-b482-389787c72a47 | Metadata agent     | con.colinshi.top       | None              | :-)   | UP    | neutron-metadata-agent    |
			| cb69b3e1-9ab7-4a22-b881-623db51d16ce | L3 agent           | con.colinshi.top       | nova              | :-)   | UP    | neutron-l3-agent          |
			| ffa8489c-022a-426b-a236-2accaeb5a7be | DHCP agent         | con.colinshi.top       | nova              | :-)   | UP    | neutron-dhcp-agent        |
			+--------------------------------------+--------------------+------------------------+-------------------+-------+-------+---------------------------+

  这个组件同上一个nova一样重要,他是Openstack整个架构中的重中之重。我这边之后所有的部署均使用的是私有网络模型。

posted @ 2018-09-07 13:33  colinshi  阅读(212)  评论(0编辑  收藏  举报