NAT networks in Ovirt
Thu 20 November 2014Questo blog è prima di tutto un luogo dove pubblicare i miei appunti, in modo che servano a me e, all'occorrenza a chiunque si possa trovare nella mia stessa situazione.
Scrivo in italiano perché, nel 90% dei casi, quello di cui tratto è sicuramente già stato scritto da qualcuno, e probabilmente in maniera più chiara della mia :P.
Quindi, Di seguito la rodata procedura per attivare un network virtuale su oVirt 3.5.
Grazie al nuovo Hook per oVirt che gestisce il NAT lato Gui, è decisamente molto più semplice creare una rete Nattata su oVirt; per schematizzare, questi sono i passaggi:
- installazione dell'Hook;
- creazione di una rete NAT virtuale sull'host [tutti gli host del cluster] via libvirt;
- aggiunta della periferica virtuale (Vnic) appena creata ad una o più delle VM.
- Enjoy :)
Qui ricapitolo le specifiche della mia infrastruttura:
Host = Centos 7
Engine = Centos 6 [attualmente non supportato Centos 7 come Engine] Self Hosted
Ovirt = 3.5 Version
vdsm-hook-extnet = 4.16.7-1.gitdb83943.el7.noarch
Installazione dell'Hook
Se come me, avete installato il repository di oVirt 3.5,
Su tutti gli host del cluster, installate semplicemente l'hook:
yum install -y vdsm-hook-extnet
Sull'engine, abilitate l'hook:
engine-config -s CustomDeviceProperties='{type=interface;prop={extnet=^[a-zA-Z0-9_ ---]+$}}'
Non ricordo se sia necessario un reboot dell'host, ma non credo..
Creazione di una rete Nat, per ogni Host Ora è necessario creare una rete NAT direttamente via Virsh, perché oVirt non supporta ancora questo tipo di rete:
Per prima cosa, è necessario, se ancora non ce l'abbiamo, un utente autorizzato ad accedere all'hypervisor:
saslpasswd2 -a libvirt root
digitate la password per due volte, ed abilitate l'accesso a libvirt via SASL [richiesto da ovirt]. Creare una rete Nat classica con ovirt, usate un xml per utilizzare il comando net-define; il mio è molto semplice:
<network>
<name>cluster_nat</name>
<forward mode='nat'>
<nat>
<port start='1024' end='65535'/>
</nat>
</forward>
<bridge name='virbr1' stp='on' delay='0' />
<ip address='172.16.31.1' netmask='255.255.255.0'>
</ip>
</network>
L'importante è che vi ricordiate il nome che avete dato al network, e di non creare una virtual interface già esistente [virbr1].
NB
Aggiungete il dhcp se non ne avete già uno nella rete Nat che andate a creare, altrimenti dovrete restartare il network e le VM che ci girano dentro se volete aggiungere il DHCP alla configurazione!
Loggatevi in virsh, nel vostro Hypervisor, create la rete, settatela in auto-start e lanciatela (su tutti i nodi del cluster):
virsh
connect qemu:///system
net-define _nome_del_file_xml_
net-autostart _cluster_nat _
net-start _cluster_nat_
Questi passaggi vanno fatti su tutti gli host del cluster che intendete fornire di un NAT.
Assicuratevi che la nuova rete sia un & running e che tra le periferiche sia listata la nuova interfaccia.
NB
Se utilizzate iptables (che viene autogestito dall'engine quando create nuovi virtual network) dovrete creare le regole a mano, perché VDSM non è in grado di gestire questa rete.
aggiunta del profilo vNIC tramite GUI
Non resta che collegarsi alla console di amministrazione di oVirt e creare un profilo ad-hoc per gestire questa rete; l'hook installato aggiunge una _custom property _che permette la gestione del NAT.
Loggatevi e create un nuovo profile in uno dei vostri networks:
Nel profilo, aggiungete la proprietà extnet, e come valore, inserite il nome che avete dato al network via virsh:
Perfect! ora potete aggiungere il nic alle vostre VM:
Et voilà, il NAT network è servito!
Stay Tuned