Questa è la terza parte della configurazione del neutrone (Networking) su Ubuntu 14.04, puoi leggere l'articolo precedente su Configure Neutron n. 1 e Configure Neutron n. 2, in cui abbiamo installato e configurato componenti di rete su controller e nodo di calcolo.
Qui creeremo una rete iniziale, che deve essere creata prima di avviare un'istanza/i VM.
Il diagramma precedente utilizza intervalli di indirizzi IP di esempio. Devi adattarli al tuo ambiente particolare.
Poiché utilizziamo Reti self-service , dobbiamo creare reti virtuali pubbliche e private.
Creazione di una rete di fornitori pubblici:
L'istanza utilizza una rete virtuale di un provider pubblico che si connette all'infrastruttura di rete fisica tramite bridging/commutazione. Questa rete include un server DHCP che fornisce risorse di rete (indirizzo IP, sottorete, gateway e altro) alle istanze.
Carica le credenziali sul nodo controller.
# sorgente admin-openrc.sh
creare la rete.
# neutron net-create public --shared --provider:physical_network public --provider:network_type flatCreata una nuova rete:+--------------------- ------+---------------------------------------+| Campo | Valore |+----------------------------------------+----- -------------------+| admin_state_up | Vero || id | 25109c9a-0d9c-498f-8a8a-9004219ee85a || mtu | 0 || nome | pubblico || port_security_enabled | Vero || provider:tipo_rete | appartamento || fornitore:rete_fisica | pubblico || provider:segmentazione_id | || router:esterno | Falso || condivisa | Vero || stato | ATTIVO || sottoreti | || tenant_id | fe858f6a43f84c26b994f0be74c928e6 |+-----------------------------------------+-------------------- -------------------+
Crea una sottorete sulla rete pubblica.
Ad esempio, utilizzando 192.168.0.0/24 con intervallo di indirizzi IP mobili da 192.168.0.200 a 192.168.0.250 con il gateway fisico 192.168.0.1 con 8.8.4.4 come server DNS primario. Questo gateway dovrebbe essere associato alla rete fisica
# neutron subnet-create public 192.168.0.0/24 --name public --allocation-pool start=192.168.0.200,end=192.168.0.250 --dns-nameserver 8.8.4.4 --gateway 192.168.0.1Created a nuova sottorete:+-------------------+-------------------------- ---------------------------+| Campo | Valore |+---------------------------------+-------------------------- --------------------------+| allocazione_pools | {"inizio":"192.168.0.200", "fine":"192.168.0.250"} || cidr | 192.168.0.0/24 || dns_nameserver | 8.8.4.4 || enable_dhcp | Vero || gateway_ip | 192.168.0.1 || percorsi_host | || id | 3cee40a7-e241-4f9e-8033-cdc03fc58d76 || ip_version | 4 || ipv6_address_mode | || ipv6_ra_mode | || nome | pubblico || id_rete | 25109c9a-0d9c-498f-8a8a-9004219ee85a || subnetpool_id | || tenant_id | fe858f6a43f84c26b994f0be74c928e6 |+--------------------------------+------------- --------------------------+
Creazione di una rete di progetti privati:
Crea una rete virtuale di progetto privato per connettere l'infrastruttura di rete fisica tramite layer-3 (routing) e NAT. Questa rete di progetto privata include un server DHCP che fornisce indirizzi IP alle istanze. Un'istanza su questa rete può avere un accesso a Internet. Tuttavia, l'accesso a un'istanza su questa rete da Internet richiede un indirizzo IP mobile.
Crea la rete privata (privata).
# neutron net-create privateCreato una nuova rete:+---------------------------+-------- ------------------------------+| Campo | Valore |+----------------------------------------+----- -------------------+| admin_state_up | Vero || id | 1b03eacd-e737-473b-8c0d-a16052f6505b || mtu | 0 || nome | privato || port_security_enabled | Vero || provider:tipo_rete | vxlan || fornitore:rete_fisica | || provider:segmentazione_id | 65 || router:esterno | Falso || condivisa | Falso || stato | ATTIVO || sottoreti | || tenant_id | fe858f6a43f84c26b994f0be74c928e6 |+-----------------------------------------+-------------------- -------------------+
Creare una sottorete sulla rete interna. Ad esempio, utilizzando la rete 192.168.100.0/24 con il gateway virtuale 192.168.0.1 con 8.84.4. come server DNS primario. Un server DHCP assegna a ciascuna istanza un indirizzo IP da 192.168.100.2 a 192.168.100.254
# neutron subnet-create private 192.168.100.0/24 --name private --dns-nameserver 8.8.4.4 --gateway 192.168.100.1 Creata una nuova sottorete:+------------ -------+----------------------------- ------------+| Campo | Valore |+-------------------+--------------------------- ----------------------------+| allocazione_pools | {"inizio":"192.168.100.2", "fine":"192.168.100.254"} || cidr | 192.168.100.0/24 || dns_nameserver | 8.8.4.4 || enable_dhcp | Vero || gateway_ip | 192.168.100.1 || percorsi_host | || id | 5b986d39-7f60-4c14-ad68-9aa797fc2487 || ip_version | 4 || ipv6_address_mode | || ipv6_ra_mode | || nome | privato || id_rete | 1b03eacd-e737-473b-8c0d-a16052f6505b || subnetpool_id | || tenant_id | fe858f6a43f84c26b994f0be74c928e6 |+--------------------------------+------------- ----------------------------+
Crea il router virtuale.
Le reti di progetto private si connettono a reti di provider pubblici tramite un router virtuale, questo fa passare il traffico di rete tra due o più reti virtuali (da o verso privato/pubblico). Nel nostro caso, dobbiamo creare un router e collegarci reti private e pubbliche.
# neutron router-create routerCreato un nuovo router:+-----------------------+------------ ---------------------------+| Campo | Valore |+-----------------------+----------------------- ---------------+| admin_state_up | Vero || informazioni_gateway_esterno | || id | e217d03c-ad34-4d64-bce8-0190e0eef6ca || nome | router || percorsi | || stato | ATTIVO || tenant_id | b558b39292b247b7a346678b80ed71e0 |+-------------------------------------+----------------------- ---------------+
Aggiungi il router:opzione esterna alla rete del provider pubblico.
# neutron net-update public --router:externalUpdated network:public
Collega il router alla sottorete privata.
# neutron router-interface-add router privateAdded interface 74748304-cbfb-4c53-bc6e-d12271bbcdd1 al router router.
Collega il router alla rete pubblica impostandolo come gateway.
# neutron router-gateway-set router publicSet gateway per router router
Verifica:
Elenca gli spazi dei nomi di rete, l'output dovrebbe avere un qrouter e due qdhcp spazi dei nomi.
# ip netnsqrouter-e217d03c-ad34-4d64-bce8-0190e0eef6caqdhcp-1b03eacd-e737-473b-8c0d-a16052f6505bqdhcp-25109c9a-0d9c-498f-8a8a-9004219ee85aÈ possibile verificare la connettività eseguendo il ping di 192.168.0.200 dalla rete fisica esterna. Ciò è dovuto al fatto che abbiamo utilizzato la sottorete 192.168.0.0/24, intervalli di IP mobili da 192.168.0.200 a 250, il gateway del router tenant dovrebbe occupare l'indirizzo IP più basso nell'intervallo di indirizzi IP mobili, ovvero 192.168.0.200
C:\>ping 192.168.0.200Ping 192.168.0.200 con 32 byte di dati:Rispondi da 192.168.0.200:byte=32 tempo=1ms TTL=64Rispondi da 192.168.0.200:byte=32 tempo=2ms TTL=64Rispondi da 192.168.0.200:byte=32 tempo=1ms TTL=64Risposta da 192.168.0.200:byte=32 tempo=1ms TTL=64Statistiche ping per 192.168.0.200: Pacchetti:Inviati =4, Ricevuti =4, Persi =0 (0% perdita), Tempi approssimativi di andata e ritorno in millisecondi: Minimo =1 ms, Massimo =2 ms, Medio =1 msQuesto è tutto!!!, hai creato con successo le reti iniziali per avviare un'istanza.
Riferimento:Guida di OpenStack.