neutron是openstack的网络组件,是OpenStack的网络服务,Openstack在2010年正式发布它的第一个版本Austin的时候,nova-network做为它的核心组件被包含其中,由于商标侵权的缘由,Openstack在Havana版本上将Quantum(美国昆腾公司, 昆腾公司的硬盘驱动器业务于2000年4月2日被迈拓(Maxtor)公司收购,随后迈拓于2005年被希捷(Seagate)收购)改名为Neutron,如下是网络的简单介绍:mysql
网络:在显示的网络环境中咱们使用交换机将多个计算机链接起来从而造成了网络,而在neutron的环境里,网络的功能也是将多个不一样的云主机链接起来。linux
子网:是现实的网络环境下能够将一个网络划分红多个逻辑上的子网络,从而实现网络隔离,在neutron里面子网也是属于网络。sql
端口:计算机链接交换机经过网线连,而网线插在交换机的不一样端口,在neutron里面端口属于子网,即每一个云主机的子网都会对应到一个端口。数据库
路由器:用于链接不通的网络或者子网。vim
下面是插件图:api
网络类型:bash
提供者网络:虚拟机桥接到物理机,而且虚拟机必须和物理机在同一个网络范围内。服务器
自服务网络:能够本身建立网络,最终会经过虚拟路由器链接外网网络
# mysqlapp
> CREATE DATABASE neutron;
> GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY 'neutron123';
> flush privileges;
# mysql -uneutron -pneutron123 -h192.168.10.100
# openstack service create --name neutron --description "OpenStack Networking" network
+-------------+----------------------------------+
| Field | Value |
+-------------+----------------------------------+
| description | OpenStack Networking |
| enabled | True |
| id | 154c0450a2be4a8fa0d8819e5f045bc0 |
| name | neutron |
| type | network |
+-------------+----------------------------------+
# openstack endpoint create --region RegionOne network public http://192.168.10.100:9696
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | ba022a5dd78c469bb4f82bc655d84720 |
| interface | public |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 154c0450a2be4a8fa0d8819e5f045bc0 |
| service_name | neutron |
| service_type | network |
| url | http://192.168.10.100:9696 |
+--------------+----------------------------------+
# openstack endpoint create --region RegionOne network internal http://192.168.10.100:9696
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | b608eee2d21a4808953e5a9a9e761e92 |
| interface | internal |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 154c0450a2be4a8fa0d8819e5f045bc0 |
| service_name | neutron |
| service_type | network |
| url | http://192.168.10.100:9696 |
+--------------+----------------------------------+
# openstack endpoint create --region RegionOne network admin http://192.168.10.100:9696
+--------------+----------------------------------+
| Field | Value |
+--------------+----------------------------------+
| enabled | True |
| id | 00a1f952c49348e09f4ebfeb20233825 |
| interface | admin |
| region | RegionOne |
| region_id | RegionOne |
| service_id | 154c0450a2be4a8fa0d8819e5f045bc0 |
| service_name | neutron |
| service_type | network |
| url | http://192.168.10.100:9696 |
+--------------+----------------------------------+
# vim /etc/haproxy/haproxy.cfg
listen neutron
bind 192.168.10.100:9696
mode tcp
log global
balance source
server neutron-server 192.168.10.201:9696 check inter 5000 rise 3 fall 3
#重启haproxy
# systemctl restart haproxy
# yum install -y openstack-neutron openstack-neutron-ml2 openstack-neutron-linuxbridge ebtables
# vim /etc/neutron/neutron.conf
[DEFAULT]
766 connection = mysql+pymysql://neutron:neutron123@192.168.10.100/neutron
30 core_plugin = ml2
33 service_plugins =
570 transport_url = rabbit://openstack:123456@192.168.10.205
27 auth_strategy = keystone
99 notify_nova_on_port_status_changes = true
103 notify_nova_on_port_data_changes = true
846 [keystone_authtoken]
847 auth_uri = http://192.168.10.100:5000
848 auth_url = http://192.168.10.100:35357
849 memcached_servers = 192.168.10.100:11211
850 auth_type = password
851 project_domain_name = default
852 user_domain_name = default
853 project_name = service
854 username = neutron
855 password = neutron
1075 [nova]
1076 auth_url = http://192.168.10.100:35357
1077 auth_type = password
1078 project_domain_name = default
1079 user_domain_name = default
1080 region_name = RegionOne
1081 project_name = service
1082 username = nova
1083 password = nova
[oslo_concurrency]
1197 lock_path = /var/lib/neutron/tmp
# ML2插件使用Linuxbridge机制来为实例建立layer-2虚拟网络基础设施
# vim /etc/neutron/plugins/ml2/ml2_conf.ini
1:[DEFAULT]
113:[ml2]
122:type_drivers = flat,vlan
127:tenant_network_types =
131:mechanism_drivers = linuxbridge
136:extension_drivers = port_security
163:[ml2_type_flat]
172:flat_networks = internal
233:[securitygroup]
249:enable_ipset = true
# vim /etc/neutron/plugins/ml2/linuxbridge_agent.ini
1:[DEFAULT]
113:[agent]
144:[linux_bridge]
155:physical_interface_mappings = internal:band0
161:[securitygroup]
168:firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
173:enable_security_group = true
180:[vxlan]
188:enable_vxlan = false
# vim /etc/neutron/dhcp_agent.ini
16 interface_driver = linuxbridge
32 dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq
41 enable_isolated_metadata = true
# vim /etc/neutron/metadata_agent.ini
1:[DEFAULT]
22:nova_metadata_ip = 192.168.10.100
34:metadata_proxy_shared_secret = 20170912
185:[agent]
200:[cache]
# vim /etc/nova/nova.conf
6935 [neutron]
6936 url = http://192.168.10.100:9696
6937 auth_url = http://192.168.10.100:35357
6938 auth_type = password
6939 project_domain_name = default
6940 user_domain_name = default
6941 region_name = RegionOne
6942 project_name = service
6943 username = neutron
6944 password = neutron
6945 service_metadata_proxy = true
6946 metadata_proxy_shared_secret = 20170912
# ln -sv /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
# systemctl restart openstack-nova-api.service
# tail -n200 /var/log/nova/nova-api.log -f
# 负载服务器
# vim /etc/haproxy/haproxy.cfg
listen nova-api
bind 192.168.10.100:8775
mode tcp
log global
balance source
server nova-server1 192.168.10.201:8775 check inter 5000 rise 3 fall 3
# systemctl restart haproxy
# 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
# tail -f /var/log/neutron/*.log
#此步骤要求各服务器时间必须一致
# neutron agent-list
# vim neutron-restart.sh
#!/bin/bash
systemctl restart openstack-nova-api.service neutron-server.service neutron-linuxbridge-agent.service neutron-dhcp-agent.service neutron-metadata-agent.service
# chmod a+x neutron-restart.sh