Neutron ist eine der wichtigsten Komponenten in OpenStack. Es ermöglicht uns, Schnittstellengeräte zu erstellen oder an Netzwerke anzuschließen. Befolgen Sie diese Anleitung, um Neutron (Networking) in Ihrer Umgebung zu konfigurieren. Neutron verwaltet alle netzwerkbezogenen Dinge, die wir für die virtuelle Netzwerkinfrastruktur benötigen, es stellt die Netzwerke, Subnetze und Router-Objektabstraktionen bereit.
Wir müssen eine der folgenden Netzwerkoptionen auswählen, um mit der Konfiguration von OpenStack fortzufahren.
Vernetzungsoption 1:Anbieternetzwerke
Vernetzungsoption 2:Self-Service-Netzwerke
Um mehr darüber zu erfahren, klicken Sie hier.
Hier werden wir Self-Service-Netzwerke verwenden.
Installieren und konfigurieren Sie den Controller-Knoten:
Bevor wir den Neutron-Dienst konfigurieren, müssen wir eine Datenbank, einen Dienst und einen API-Endpunkt erstellen. Melden Sie sich dazu als Root beim MySQL-Server an.
# mysql -u root -p
Erstellen Sie die Neutronendatenbank.
CREATE DATABASE neutron;
Gewähren Sie der Neutronendatenbank eine ordnungsgemäße Berechtigung.
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY 'password';
Ersetzen Sie „Passwort “ mit einem passenden Passwort. Beenden Sie MySQL.
Laden Sie Ihre Admin-Anmeldeinformationen aus dem Umgebungsskript.
# source admin-openrc.sh
Erstellen Sie den Neutron-Benutzer zum Erstellen von Service-Anmeldeinformationen.
# openstack user create --password-prompt neutron User Password: Repeat User Password: +-----------+----------------------------------+ | Field | Value | +-----------+----------------------------------+ | domain_id | default | | enabled | True | | id | 91c75b24ce324309891f6a4ea8b33887 | | name | neutron | +-----------+----------------------------------+
Fügen Sie dem Neutron-Benutzer die Administratorrolle hinzu.
# openstack role add --project service --user neutron admin
Erstellen Sie die Neutronendienstentität.
# openstack service create --name neutron --description "OpenStack Neutron" network +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | OpenStack Neutron | | enabled | True | | id | 1834077666c54c93821c95a03fa853a1 | | name | neutron | | type | network | +-------------+----------------------------------+
Erstellen Sie den API-Endpunkt des Neutronendienstes.
# openstack endpoint create --region RegionOne network public http://controller:9696 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | c145840a76004e6d9e4bdccfb3603e84 | | interface | public | | region | RegionOne | | region_id | RegionOne | | service_id | 1834077666c54c93821c95a03fa853a1 | | service_name | neutron | | service_type | network | | url | http://controller:9696 | +--------------+----------------------------------+ # openstack endpoint create --region RegionOne network internal http://controller:9696 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | d2305c57e55341fcbfbc1bd91c4d6378 | | interface | internal | | region | RegionOne | | region_id | RegionOne | | service_id | 1834077666c54c93821c95a03fa853a1 | | service_name | neutron | | service_type | network | | url | http://controller:9696 | +--------------+----------------------------------+ # openstack endpoint create --region RegionOne network admin http://controller:9696 +--------------+----------------------------------+ | Field | Value | +--------------+----------------------------------+ | enabled | True | | id | 2dadc6ded42a4db3bf217d1abad22f15 | | interface | admin | | region | RegionOne | | region_id | RegionOne | | service_id | 1834077666c54c93821c95a03fa853a1 | | service_name | neutron | | service_type | network | | url | http://controller:9696 | +--------------+----------------------------------+
Installieren und konfigurieren Sie Netzwerkkomponenten auf dem Controller-Knoten:
# apt-get install neutron-server neutron-plugin-ml2 neutron-plugin-linuxbridge-agent neutron-l3-agent neutron-dhcp-agent neutron-metadata-agent python-neutronclient conntrack
Bearbeiten Sie die /etc/neutron/neutron.conf.
# nano /etc/neutron/neutron.conf
Ändern Sie die folgenden Einstellungen und stellen Sie sicher, dass Sie Einträge in den richtigen Abschnitten platzieren.
[DEFAULT] ... core_plugin = ml2 service_plugins = router allow_overlapping_ips = True rpc_backend = rabbit auth_strategy = keystone notify_nova_on_port_status_changes = True notify_nova_on_port_data_changes = True nova_url = http://controller:8774/v2 verbose = True ## Replace "controller" with hostname of openstack controller [oslo_messaging_rabbit] ... rabbit_host = controller rabbit_userid = openstack rabbit_password = password ## Replace "password" with the password you chose for the openstack account in RabbitMQ ## Replace "controller" with hostname of openstack controller [database] ... connection = mysql+pymysql://neutron:password@controller/neutron ## Replace "password" with the password you chose for neutron database ## Commentout any other MySQL connections [keystone_authtoken] ... auth_uri = http://controller:5000 auth_url = http://controller:35357 auth_plugin = password project_domain_id = default user_domain_id = default project_name = service username = neutron password = password ## Replace "password" with the password you chose for neutron user in the identity service. ## Commentout other authentication details. [nova] ... auth_url = http://controller:35357 auth_plugin = password project_domain_id = default user_domain_id = default region_name = RegionOne project_name = service username = nova password = password ## Replace "password" with the password you chose for nova user in the identity service.
Modular Layer 2 (ML2)-Plugin konfigurieren:
Bearbeiten Sie die Datei /etc/neutron/plugins/ml2/ml2_conf.ini
# nano /etc/neutron/plugins/ml2/ml2_conf.ini
Ändern Sie die folgenden Strophen.
[ml2] ... type_drivers = flat,vlan,vxlan tenant_network_types = vxlan mechanism_drivers = linuxbridge,l2population extension_drivers = port_security [ml2_type_flat] ... flat_networks = public [ml2_type_vxlan] ... vni_ranges = 1:1000 [securitygroup] ... enable_ipset = True
Konfigurieren Sie den Linux-Bridge-Agent:
Um den Linux-Bridge-Agent zu konfigurieren, bearbeiten Sie /etc/neutron/plugins/ml2/linuxbridge_agent.ini auf dem Controller-Knoten.
# nano /etc/neutron/plugins/ml2/linuxbridge_agent.ini
Nehmen Sie die Änderungen an der Datei wie unten beschrieben vor.
[linux_bridge] physical_interface_mappings = public:eth1 ## Replace "eth1" with the name of the physical public facing network interface. [vxlan] enable_vxlan = True local_ip = 192.168.12.21 l2_population = True ## Replace "192.168.12.21" with the management ip-address of the controller. [agent] ... prevent_arp_spoofing = True [securitygroup] ... enable_security_group = True firewall_driver = neutron.agent.linux.iptables_firewall.IptablesFirewallDriver
Konfigurieren Sie den Layer-3-Agenten:
Bearbeiten Sie die Datei /etc/neutron/l3_agent.ini
# nano /etc/neutron/l3_agent.ini
Ändern Sie die Datei wie folgt.
[DEFAULT] ... interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver external_network_bridge = verbose = True
Konfigurieren Sie den DHCP-Agenten:
Bearbeiten Sie die Datei /etc/neutron/dhcp_agent.ini.
# nano /etc/neutron/dhcp_agent.ini
Nehmen Sie relevante Änderungen an der Datei wie unten vor.
[DEFAULT] ... interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq enable_isolated_metadata = True verbose = True dnsmasq_config_file = /etc/neutron/dnsmasq-neutron.conf
Erstellen Sie nun die Datei /etc/neutron/dnsmasq-neutron.conf, um die DHCP-MTU-Option (26) zu aktivieren, und konfigurieren Sie sie auf 1450 Bytes:
# nano /etc/neutron/dnsmasq-neutron.conf
Untere Linie darauf setzen.
dhcp-option-force=26,1450
Konfigurieren Sie den Metadaten-Agent:
Bearbeiten Sie die Datei /etc/neutron/metadata_agent.ini auf dem Controller-Knoten.
# nano /etc/neutron/metadata_agent.ini
Nehmen Sie entsprechende Änderungen vor.
[DEFAULT] ... auth_uri = http://controller:5000 auth_url = http://controller:35357 auth_region = RegionOne auth_plugin = password project_domain_id = default user_domain_id = default project_name = service username = neutron password = password ## Replace "password" with the password you chose for the neutron user in the Identity service. ## Commentout other authentication details. nova_metadata_ip = controller metadata_proxy_shared_secret = METADATA_SECRET ## Replace METADATA_SECRET with a suitable secret for the metadata proxy. generate using # openssl rand -hex 10 verbose = True
Füllen Sie die Datenbank, um die Installation abzuschließen.
# 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
Starten Sie den Compute-API-Dienst neu.
# service nova-api restart
Starten Sie die Netzwerkdienste neu.
# service neutron-server restart # service neutron-plugin-linuxbridge-agent restart # service neutron-dhcp-agent restart # service neutron-metadata-agent restart # service neutron-l3-agent restart
Standardmäßig erstellen die Ubuntu-Pakete eine SQLite-Datenbank. Sie können die SQLite-Datenbankdatei entfernen.
# rm -f /var/lib/neutron/neutron.sqlite
Überprüfen Sie es, indem Sie geladene Erweiterungen auflisten.
# neutron ext-list +-----------------------+-----------------------------------------------+ | alias | name | +-----------------------+-----------------------------------------------+ | dns-integration | DNS Integration | | ext-gw-mode | Neutron L3 Configurable external gateway mode | | binding | Port Binding | | agent | agent | | subnet_allocation | Subnet Allocation | | l3_agent_scheduler | L3 Agent Scheduler | | external-net | Neutron external network | | flavors | Neutron Service Flavors | | net-mtu | Network MTU | | quotas | Quota management support | | l3-ha | HA Router extension | | provider | Provider Network | | multi-provider | Multi Provider Network | | extraroute | Neutron Extra Route | | router | Neutron L3 Router | | extra_dhcp_opt | Neutron Extra DHCP opts | | security-group | security-group | | dhcp_agent_scheduler | DHCP Agent Scheduler | | rbac-policies | RBAC Policies | | port-security | Port Security | | allowed-address-pairs | Allowed Address Pairs | | dvr | Distributed Virtual Router | +-----------------------+-----------------------------------------------+
Das ist alles!. Es ist an der Zeit, den Rechenknoten zu installieren und zu konfigurieren, damit er mit der Neutron-Komponente funktioniert.