Questa è la seconda parte della configurazione di neutron (Networking) su Ubuntu 14.04, puoi leggere l'articolo precedente su Configure Neutron n. 1, in cui abbiamo installato e configurato i componenti di rete sul nodo Controller.
Qui, in questo tutorial installeremo e configureremo Network Node.
Prerequisito:
Assicurati di aver abilitato il repository OpenStack Kilo su Compute Node o segui i passaggi seguenti per abilitarlo.
Installa il portachiavi e il repository dell'archivio Ubuntu Cloud.
# apt-get install ubuntu-cloud-keyring # echo "deb http://ubuntu-cloud.archive.canonical.com/ubuntu" "trusty-updates/kilo main" > /etc/apt/sources.list.d/cloudarchive-kilo.list
Aggiorna il tuo sistema.
# apt-get update
Configura i parametri del kernel sul nodo di rete, modifica il file /etc/sysctl.conf.
# nano /etc/sysctl.conf
Aggiungi i seguenti parametri nel file.
net.ipv4.ip_forward=1 net.ipv4.conf.all.rp_filter=0 net.ipv4.conf.default.rp_filter=0
Applica le modifiche.
# sysctl -p
Installa e configura i componenti di rete:
Installa i seguenti pacchetti sul nodo di rete.
# apt-get install neutron-plugin-ml2 neutron-plugin-openvswitch-agent neutron-l3-agent neutron-dhcp-agent neutron-metadata-agent
Modifica /etc/neutron/neutron.conf.
# nano /etc/neutron/neutron.conf
Modifica le impostazioni seguenti e assicurati di inserire le voci nelle sezioni appropriate. Nel caso della sezione database, commentare eventuali opzioni di connessione poiché il nodo di rete non accede direttamente al database
[DEFAULT] ... rpc_backend = rabbit core_plugin = ml2 service_plugins = router allow_overlapping_ips = True auth_strategy = keystone verbose = True [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 [database] ... #connection = sqlite:////var/lib/neutron/neutron.sqlite ##Comment out the above line. [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
Configura plug-in Modular Layer 2 (ML2):
Modifica il file /etc/neutron/plugins/ml2/ml2_conf.ini.
# nano /etc/neutron/plugins/ml2/ml2_conf.ini
Modifica le sezioni seguenti.
[ml2] ... type_drivers = flat,vlan,gre,vxlan tenant_network_types = gre mechanism_drivers = openvswitch [ml2_type_flat] ... flat_networks = external [ml2_type_gre] ... tunnel_id_ranges = 1:1000 [securitygroup] ... enable_security_group = True enable_ipset = True firewall_driver = neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver [ovs] local_ip = 192.168.11.22 ## Tunnel network interface on your Network Node. bridge_mappings = external:br-ex [agent] tunnel_types = gre
Nota:le stanze [ovs] e [agent] devono essere aggiunte in fondo al file.
Configura l'agente Layer-3 (L3):
Fornisce servizi di routing per reti virtuali, modifica il file /etc/neutron/l3_agent.ini.
# nano /etc/neutron/l3_agent.ini
Modifica la sezione [DEFAULT].
[DEFAULT] ... interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver external_network_bridge = router_delete_namespaces = True verbose = True
Configura l'agente DHCP:
Modifica il file /etc/neutron/dhcp_agent.ini.
# nano /etc/neutron/dhcp_agent.ini
Modifica le seguenti strofe.
[DEFAULT] ... interface_driver = neutron.agent.linux.interface.OVSInterfaceDriver dhcp_driver = neutron.agent.linux.dhcp.Dnsmasq dhcp_delete_namespaces = True verbose = True
Configura l'agente di metadati:
Modifica il file /etc/neutron/metadata_agent.ini
# nano /etc/neutron/metadata_agent.ini
Modifica le seguenti sezioni, potresti dover commentare le voci esistenti.
[DEFAULT] ... verbose = True 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 neutron user in the identity service. nova_metadata_ip = controller metadata_proxy_shared_secret = 26f008fb8c504b393df3 ## Replace "26f008fb8c504b393df3" with a suitable secret for the metadata proxy
Sul nodo Controller , modifica il file /etc/nova/nova.conf.
# nano /etc/nova/nova.conf
Modifica le sezioni [neutroni].
[neutron] ... service_metadata_proxy = True metadata_proxy_shared_secret = 26f008fb8c504b393df3 ## Replace "26f008fb8c504b393df3" with the secret you chose for the metadata proxy.
Riavvia il servizio API di calcolo sul nodo controller.
# service nova-api restart
Configura il servizio Open vSwitch (OVS):
Riavvia il servizio OVS su Network Node.
# service openvswitch-switch restart
Aggiungi il bridge esterno.
# ovs-vsctl add-br br-ex
Aggiungi una porta al bridge esterno che si connette all'interfaccia di rete esterna fisica, nel mio caso eth2 è il nome dell'interfaccia.
# ovs-vsctl add-port br-ex eth2
Riavvia i servizi di rete.
# service neutron-plugin-openvswitch-agent restart # service neutron-l3-agent restart # service neutron-dhcp-agent restart # service neutron-metadata-agent restart
Verifica operazione:
Carica le credenziali di amministratore sul nodo controller.
# source admin-openrc.sh
Elenca gli agenti.
# neutron agent-list +--------------------------------------+--------------------+---------+-------+----------------+---------------------------+ | id | agent_type | host | alive | admin_state_up | binary | +--------------------------------------+--------------------+---------+-------+----------------+---------------------------+ | 23da3f95-b81b-4426-9d7a-d5cbfc5241c0 | Metadata agent | network | :-) | True | neutron-metadata-agent | | 4217b0c0-fbd4-47d9-bc22-5187f09d958a | DHCP agent | network | :-) | True | neutron-dhcp-agent | | b4cf95cd-2eba-4c69-baa6-ae8832384e40 | Open vSwitch agent | network | :-) | True | neutron-openvswitch-agent | | d9e174be-e719-4f05-ad05-bc444eb97df5 | L3 agent | network | :-) | True | neutron-l3-agent | +--------------------------------------+--------------------+---------+-------+----------------+---------------------------+
Questo è tutto!!!, hai configurato correttamente il nodo di rete.