Neutron est l'un des composants importants d'OpenStack, il nous permet de créer ou d'attacher un périphérique d'interface aux réseaux, suivez ce guide pour configurer Neutron (Réseau) dans votre environnement. Neutron gère tous les éléments liés au réseau dont nous avons besoin pour l'infrastructure de réseau virtuel, il fournit les réseaux, les sous-réseaux et les abstractions d'objets de routeur.
Nous devons choisir l'une des options de réseau suivantes pour poursuivre la configuration d'OpenStack.
Option 1 de mise en réseau :réseaux de fournisseurs
Option 2 de mise en réseau :réseaux en libre-service
Pour en savoir plus, cliquez ici.
Ici, nous allons utiliser les réseaux en libre-service.
Installer et configurer le nœud du contrôleur :
Avant de configurer le service Neutron, nous devons créer une base de données, un service et un point de terminaison API. Pour ce faire, connectez-vous en tant que root au serveur MySQL.
# mysql -u root -p
Créez la base de données de neutrons.
CREATE DATABASE neutron;
Accordez une autorisation appropriée à la base de données de neutrons.
GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'localhost' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON neutron.* TO 'neutron'@'%' IDENTIFIED BY 'password';
Remplacez "mot de passe ” avec un mot de passe approprié. Quittez MySQL.
Chargez vos informations d'identification d'administrateur à partir du script d'environnement.
# source admin-openrc.sh
Créez l'utilisateur neutron pour la création d'informations d'identification de service.
# openstack user create --password-prompt neutron User Password: Repeat User Password: +-----------+----------------------------------+ | Field | Value | +-----------+----------------------------------+ | domain_id | default | | enabled | True | | id | 91c75b24ce324309891f6a4ea8b33887 | | name | neutron | +-----------+----------------------------------+
Ajoutez le rôle d'administrateur à l'utilisateur neutron.
# openstack role add --project service --user neutron admin
Créez l'entité de service neutronique.
# openstack service create --name neutron --description "OpenStack Neutron" network +-------------+----------------------------------+ | Field | Value | +-------------+----------------------------------+ | description | OpenStack Neutron | | enabled | True | | id | 1834077666c54c93821c95a03fa853a1 | | name | neutron | | type | network | +-------------+----------------------------------+
Créez le point de terminaison de l'API du service neutron.
# 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 | +--------------+----------------------------------+
Installez et configurez les composants réseau sur le nœud du contrôleur :
# apt-get install neutron-server neutron-plugin-ml2 neutron-plugin-linuxbridge-agent neutron-l3-agent neutron-dhcp-agent neutron-metadata-agent python-neutronclient conntrack
Modifiez le fichier /etc/neutron/neutron.conf.
# nano /etc/neutron/neutron.conf
Modifiez les paramètres ci-dessous et assurez-vous de placer une entrée dans les sections appropriées.
[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.
Configurer le plug-in de couche 2 modulaire (ML2) :
Editez le fichier /etc/neutron/plugins/ml2/ml2_conf.ini
# nano /etc/neutron/plugins/ml2/ml2_conf.ini
Modifiez les strophes suivantes.
[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
Configurez l'agent de pont Linux :
Pour configurer l'agent de pont Linux, modifiez /etc/neutron/plugins/ml2/linuxbridge_agent.ini sur le nœud du contrôleur.
# nano /etc/neutron/plugins/ml2/linuxbridge_agent.ini
Effectuez les modifications sur le fichier comme ci-dessous.
[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
Configurez l'agent de couche 3 :
Editez le fichier /etc/neutron/l3_agent.ini
# nano /etc/neutron/l3_agent.ini
Modifiez le fichier comme ci-dessous.
[DEFAULT] ... interface_driver = neutron.agent.linux.interface.BridgeInterfaceDriver external_network_bridge = verbose = True
Configurer l'agent DHCP :
Modifiez le fichier /etc/neutron/dhcp_agent.ini.
# nano /etc/neutron/dhcp_agent.ini
Apportez les modifications pertinentes au fichier comme ci-dessous.
[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
Créez maintenant le fichier /etc/neutron/dnsmasq-neutron.conf pour activer l'option DHCP MTU (26) et configurez-le sur 1450 octets :
# nano /etc/neutron/dnsmasq-neutron.conf
Placez la ligne ci-dessous dessus.
dhcp-option-force=26,1450
Configurer l'agent de métadonnées :
Modifiez le fichier /etc/neutron/metadata_agent.ini sur le nœud du contrôleur.
# nano /etc/neutron/metadata_agent.ini
Apportez les modifications en conséquence.
[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
Pour terminer l'installation, remplissez la base de données.
# 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
Redémarrez le service d'API Compute.
# service nova-api restart
Redémarrez les services de mise en réseau.
# 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
Par défaut, les packages Ubuntu créent une base de données SQLite. vous pouvez supprimer le fichier de base de données SQLite.
# rm -f /var/lib/neutron/neutron.sqlite
Vérifiez-le en répertoriant les extensions chargées.
# 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 | +-----------------------+-----------------------------------------------+
C'est tout!. Il est temps d'installer et de configurer le nœud de calcul pour qu'il fonctionne avec le composant Neutron.