Wiki Ubuntu-it

Indice
Partecipa
FAQ
Wiki Blog
------------------
Ubuntu-it.org
Forum
Chiedi
Chat
Cerca
Planet
  • Pagina non alterabile
  • Informazioni
  • Allegati
  • Differenze per "Virtualizzazione/Kvm/GestioneDiretta"
Differenze tra le versioni 3 e 34 (in 31 versioni)
Versione 3 del 26/03/2010 18.30.46
Dimensione: 5007
Autore: FabioMarconi
Commento: Iniziata traduzione
Versione 34 del 17/07/2012 12.14.14
Dimensione: 6108
Commento: commento help.ubuntu-it.org/current/ubuntu/serverguide/it/firewall.html
Le cancellazioni sono segnalate in questo modo. Le aggiunte sono segnalate in questo modo.
Linea 1: Linea 1:
#title Using KVM Directly ## page was renamed from Emulatori/Kvm/GestioneDiretta
## page was renamed from FabioMarconi/Prove11
## page updated 13-06-2011
#format wiki
#language it
<<Indice(depth=2)>>
<<Informazioni(forum="http://forum.ubuntu-it.org/viewtopic.php?t=371617")>>
<<BR>>

= Introduzione =

La documentazione trattata fino ad ora è focalizzata all'uso di '''KVM''' attraverso '''libvirt''', in questa pagina verrà spiegata la gestione diretta di '''KVM''', un metodo non raccomandabile, ma in alcuni casi, utile.
Linea 5: Linea 16:
Siccome il resto di questa documentazione è focalizzato sull'uso di KVM attraverso libvirt, ricordiamo che è possibile anche la gestione diretta di KVMW. Non è un metodo raccomandabile, ma in alcuni casi può tornare utile. '''KVM''' è molto simile a '''qemu''' e rende possibile l'esecuzione di macchine da riga di comando.
Linea 7: Linea 18:
KVM è molto simile a qemu e rende possibile l'esecuzione di macchine da riga di comando. La sintassi di base è:
{{{
La sintassi di base è:{{{
Linea 11: Linea 21:
 * -m = memoria (in MB)
 * -hda = primo disco rigido
  * Si possono usare vari tipi di file immagine inclusi .img, .cow
  * È possibile avviare un disco rigido. '''Prestare attenzione nell'uso di questa opzione se non si vuole avviare la partizione di root del host'''
   * Sintassi -hda /dev/sda
   * Questo richiama il menu di grub dal MBR quando viene lanciato KVM.
 * -cdrom può essere sia un'immagine iso che un lettore CD/DVD.
 * -boot [a|c|d|n] avvio da floppy (a), disco rigido (c), CD-ROM (d), oppure rete (n)
 * -smp = numbero delle CPU
 * -alt-grab change Ctrl-Alt mouse grab combination for Ctrl-Alt-Shift (very practical if you often use some control key combinations like Ctrl-Alt-Del or Windows-E)
Linea 22: Linea 22:
There are a number of additional options and additional help is available with : dove:
Linea 24: Linea 24:
{{{  * '''-m''': è la memoria (in MB)
 * '''-hda''': è il primo disco rigido. È possibile usare vari tipi di file immagine inclusi `.img`, `.cow`. Per avviare un disco rigido è necessario prestare attenzione nell'uso di questa opzione, se non si vuole avviare la partizione di root del host. La sintassi corretta è '''-hda /dev/sda'''. Questa richiama il menu di grub dal MBR quando viene lanciato '''KVM'''.
 * '''-cdrom''' può essere sia un'immagine ISO che un lettore CD/DVD.
 * '''-boot a, c, d''' o '''n''':
  * '''a''': avvio da floppy,
  * '''c''': avvio da disco rigido,
  * '''d''': avvio da CD-ROM,
  * '''n''': avvio da da rete.
 * '''-smp''': è il numero delle CPU.
 * '''-alt-grab''' cambia la combinazione per il grab del puntatore da '''Ctrl-Alt''' a '''Ctrl-Alt-Shift''' (molto pratico se si usano spesso combinazioni di tasti come '''Ctrl-Alt-Del''' o '''Windows-E''').

Per ulteriori opzioni digitare:{{{
Linea 28: Linea 39:
== Dispositivi di connessione bridged ==
Linea 29: Linea 41:
== Bridged Networking == Prima di avviare '''KVM''' usando sistemi di connessione bridged come utente, sono necessarie alcune configurazioni.
Linea 31: Linea 43:
In order to run KVM using bridged networking as a user we need to perform some configuration.  0. Creare il bridge sulla scheda, come descritto nella [[Virtualizzazione/Kvm/Networking#bridge-sull-host|relativa pagina]].
Linea 33: Linea 45:
1. First bridge your network card as above [[KVM/Networking#Creating a network bridge on the host]]  0. [[AmministrazioneSistema/InstallareProgrammi|Installare]] il pacchetto: [[apt://uml-utilities | uml-utilities]]
Linea 35: Linea 47:
2. Install uml-utilities

 {{{
 sudo apt-get install uml-utilities
 }}}

3. Set permissions on your tun device. Using any editor, edit ''/etc/udev/rules.d/40-permissions.rules'', add this line at the bottom of the file :

 {{{
 0. Aprire con un [[Ufficio/EditorDiTesto|editor di testo]] il file `/etc/udev/rules.d/40-permissions.rules` e aggiugere alla fine del file la seguente riga:{{{
Linea 46: Linea 50:
 per impostare i permessi al dispositivo '''tun'''.
Linea 47: Linea 52:
4. Reboot (to bring up your bridge and tun device).  0. Salvare e chiudere il file appena modificato.
Linea 49: Linea 54:
5. Edit ''/etc/kvm/kvm-ifup'' adding sudo in front of the ifconfig and brctl commands  0. Riavviare la macchina per rendere visibili i dispositivi '''bridged''' e '''tun'''.
Linea 51: Linea 56:
 {{{  0. Aprire con un [[Ufficio/EditorDiTesto|editor di testo]] il file `/etc/kvm/kvm-ifup` e aggiungere «sudo» davanti ai comandi «ip» e «brctl»:{{{
Linea 55: Linea 60:
 '''sudo''' /sbin/ifconfig $1 0.0.0.0 up  '''sudo''' /sbin/ip link set dev "$1" up 
Linea 59: Linea 64:
 0. Salvare e chiudere il file appena modificato.
Linea 60: Linea 66:
6. We need a wrapper script for launching kvm. I put this script in ~/bin and call it '''kvm-bridge'''. If ~/bin is on your path you can call the command directly with '''kvm-bridge'''. This script was modified from a number of sources  0. Per lanciare '''KVM''' è necessario uno script wrapper. È possibile inserirlo in `~/bin` e chiamarlo '''kvm-bridge''' e richiamarlo direttamene con il comando '''kvm-bridge'''.{{{
 #!/usr/bin/env bash.
 # script per gestire l'allocazione dell'interfaccia tap.
 # per kernels >= 2.6.18.
Linea 62: Linea 71:
 {{{
 #!/usr/bin/env bash
 # script to manage tap interface allocation
 # for linux kernels >= 2.6.18
 # modificato da bodhi.zazen con l'ausilio di:
 # http://calamari.reverse-dns.net:980/cgi-bin/moin.cgi/FrequentlyAskedQuestions#head-2511814cb92c14dbe1480089c04f83c281117a86.
 # http://ubuntuforums.org/showthread.php?t=528046.
 # http://howtoforge.com/virtualization-with-kvm-on-ubuntu-9.10.
Linea 67: Linea 76:
 # modified by bodhi.zazen from :
 # http://calamari.reverse-dns.net:980/cgi-bin/moin.cgi/FrequentlyAskedQuestions#head-2511814cb92c14dbe1480089c04f83c281117a86
 # http://ubuntuforums.org/showthread.php?t=528046
 # http://www.howtoforge.com/using-kvm-on-ubuntu-gutsy-gibbon

 # set up a tap interface for qemu
 # USERID - uid qemu is being run under.
 # impostazione di una interfaccia tap per qemu.
 # USERID - uid sotto il quale è in esecuzione qemu.
Linea 76: Linea 80:
 # generate a random mac address for the qemu nic
 # shell script borrowed from user pheldens @ qemu forum
 # generare un indirizzo macchina casuale peril nic di qemu .
 # shell script preso in prestito dall'utente pheldens @ qemu forum.
Linea 82: Linea 86:
 # specify which NIC to use - see qemu.org for others
 # model=r8169
 # Set model based on this how-to
 # http://www.howtoforge.com/using-kvm-on-ubuntu-gutsy-gibbon
 # specificare quale NIC usare - vedere qemu.org per altri NIC.
 # model=r8169.
 # impostare il modello di scheda di rete.
 # http://howtoforge.com/virtualization-with-kvm-on-ubuntu-9.10.
Linea 90: Linea 94:
 # start kvm with our parameters
 # echo "Bringing up interface $iface with mac address $ranmac"
 # nohup added to allow kvm to run independent of the terminal
 # avviare kvm con questi parametri.
 # echo "rendere visibile l'interfaccia $iface con indirizzo macchina $ranmac".
 # nohup aggiunto per consentire a kvm di essere indipendente dal terminale.
Linea 95: Linea 99:
 # kvm has stopped - no longer using tap interface  # kvm è stato fermato - non usare più l'interfaccia tap.
Linea 99: Linea 103:
7. Set the executable bit on the new script you just created:  0. Rendere eseguibile lo script appena creato digitando in un terminale:{{{
 chmod 0755 ~/bin/kvm-bridge
}}}
Linea 101: Linea 107:
 0. Modificare '''sudoers''' per consentire ai membri del gruppo '''KVM''' di eseguire lo script '''wrapper kvm-bridge''' e creare una intefaccia di rete bridged senza l'esecuzione di '''KVM''' come superutente:{{{
 visudo
}}}

 Aggiungere le seguenti righe alla fine del file:
Linea 102: Linea 113:
 chmod 0755 ~/bin/kvm-bridge
 }}}
 # Autorizzare i membri del gruppo KVM a configurare una interfaccia di rete bridged virtuale.
 %kvm ALL=(ALL) NOPASSWD: /sbin/ip, /usr/sbin/brctl, /usr/sbin/tunctl
}}}
Linea 105: Linea 117:
8. Modify sudoers to allow members of the kvm group to run the wrapper kvm-bridge and create a bridged network interface without running KVM as root.

 {{{
 visudo
 }}}

Add these line at the end of the file :
 {{{
 # Allow members of the kvm group to configure a bridged virtual network interface
 %kvm ALL=(ALL) NOPASSWD: /sbin/ifconfig, /usr/sbin/brctl, /usr/sbin/tunctl
 }}}

9. Now start kvm from the command line. '''You do not need to declare a network interface'''

 {{{
 0. Avviare '''KVM''' da riga di comando. Non è necessario dichiarare una interfaccia network.{{{
Linea 121: Linea 119:
 }}} }}}
Linea 126: Linea 124:
Add these rules to iptables :

{{{
# allow incoming packets for kvm guest
Aggiungere le seguenti regole ad iptables:{{{
# autorizza i pacchetti in ingresso per l'ospite kvm.
Linea 131: Linea 127:
# allow outgoing packets from kvm # autorizza i pacchetti in uscita da kvm.
Linea 135: Linea 131:
Change "$IPADDR_FROM_GUEST_OS" to the actual ip address of the kvm guest (I advise you configure your guests to have a static IP address). Sostituire «$IPADDR_FROM_GUEST_OS» con l'attuale indirizzo ip dell'ospite di '''kvm'''. (Si raccomanda di configurare gli ospiti all'uso di un indirizzo IP statico).
Linea 137: Linea 133:
If you use ufw, add these rules to ''/etc/ufw/before.rules'' Se si usa '''ufw''', aggiungere queste regole al file `/etc/ufw/before.rules`.
##vedere anche [[http://help.ubuntu-it.org/current/ubuntu/serverguide/it/firewall.html|Ubuntu Sicurezza Firewall]].
Linea 139: Linea 136:
 * See [[https://help.ubuntu.com/8.04/serverguide/C/firewall.html | Ubuntu Server Guide Firewall]] = Ulteriori risorse =
Linea 141: Linea 138:
 * [[https://help.ubuntu.com/community/KVM/Directly|Documento originale]]
Linea 143: Linea 140:
----
CategoryHomepage CategoryInTraduzione
CategoryVirtualizzazione

Problemi in questa pagina? Segnalali in questa discussione


Introduzione

La documentazione trattata fino ad ora è focalizzata all'uso di KVM attraverso libvirt, in questa pagina verrà spiegata la gestione diretta di KVM, un metodo non raccomandabile, ma in alcuni casi, utile.

Gestione diretta di KVM

KVM è molto simile a qemu e rende possibile l'esecuzione di macchine da riga di comando.

La sintassi di base è:

kvm -m 512 -hda disk.img -cdrom ubuntu.iso -boot d -smp 2

dove:

  • -m: è la memoria (in MB)

  • -hda: è il primo disco rigido. È possibile usare vari tipi di file immagine inclusi .img, .cow. Per avviare un disco rigido è necessario prestare attenzione nell'uso di questa opzione, se non si vuole avviare la partizione di root del host. La sintassi corretta è -hda /dev/sda. Questa richiama il menu di grub dal MBR quando viene lanciato KVM.

  • -cdrom può essere sia un'immagine ISO che un lettore CD/DVD.

  • -boot a, c, d o n:

    • a: avvio da floppy,

    • c: avvio da disco rigido,

    • d: avvio da CD-ROM,

    • n: avvio da da rete.

  • -smp: è il numero delle CPU.

  • -alt-grab cambia la combinazione per il grab del puntatore da Ctrl-Alt a Ctrl-Alt-Shift (molto pratico se si usano spesso combinazioni di tasti come Ctrl-Alt-Del o Windows-E).

Per ulteriori opzioni digitare:

kvm --help

Dispositivi di connessione bridged

Prima di avviare KVM usando sistemi di connessione bridged come utente, sono necessarie alcune configurazioni.

  1. Creare il bridge sulla scheda, come descritto nella relativa pagina.

  2. Installare il pacchetto: uml-utilities

  3. Aprire con un editor di testo il file /etc/udev/rules.d/40-permissions.rules e aggiugere alla fine del file la seguente riga:

     KERNEL=="tun", GROUP="kvm", MODE="0660"

    per impostare i permessi al dispositivo tun.

  4. Salvare e chiudere il file appena modificato.
  5. Riavviare la macchina per rendere visibili i dispositivi bridged e tun.

  6. Aprire con un editor di testo il file /etc/kvm/kvm-ifup e aggiungere «sudo» davanti ai comandi «ip» e «brctl»:

     #!/bin/sh
    
     switch=$(ip route ls | awk '/^default / { for(i=0;i<NF;i++) { if ($(i) == "dev") print $(i+1) }}')
     '''sudo''' /sbin/ip link set dev "$1" up 
     '''sudo''' /usr/sbin/brctl addif ${switch} $1
     exit 0
  7. Salvare e chiudere il file appena modificato.
  8. Per lanciare KVM è necessario uno script wrapper. È possibile inserirlo in ~/bin e chiamarlo kvm-bridge e richiamarlo direttamene con il comando kvm-bridge.

     #!/usr/bin/env bash.
     # script per gestire l'allocazione dell'interfaccia tap.
     # per kernels >= 2.6.18.
    
     # modificato da bodhi.zazen con l'ausilio di:
     # http://calamari.reverse-dns.net:980/cgi-bin/moin.cgi/FrequentlyAskedQuestions#head-2511814cb92c14dbe1480089c04f83c281117a86.
     # http://ubuntuforums.org/showthread.php?t=528046.
     # http://howtoforge.com/virtualization-with-kvm-on-ubuntu-9.10.
    
     # impostazione di una interfaccia tap per qemu.
     # USERID - uid sotto il quale è in esecuzione qemu.
     USERID=`whoami`
    
     # generare un indirizzo macchina casuale peril nic di qemu .
     # shell script preso in prestito dall'utente pheldens @ qemu forum.
    
     ranmac=$(echo -n DE:AD:BE:EF ; for i in `seq 1 2` ; \
     do echo -n `echo ":$RANDOM$RANDOM" | cut -n -c -3` ;done)
    
     # specificare quale NIC usare - vedere qemu.org per altri NIC.
     # model=r8169.
     # impostare il modello di scheda di rete.
     # http://howtoforge.com/virtualization-with-kvm-on-ubuntu-9.10.
    
     model=rtl8139
     iface=`sudo tunctl -b -u $USERID`
    
     # avviare kvm con questi parametri.
     # echo "rendere visibile l'interfaccia $iface con indirizzo macchina $ranmac".
     # nohup aggiunto per consentire a kvm di essere indipendente dal terminale.
     nohup kvm -net nic,vlan=0,macaddr=$ranmac -net tap,vlan=0,ifname=$iface $@
    
     # kvm è stato fermato - non usare più l'interfaccia tap.
     sudo tunctl -d $iface &> /dev/null
  9. Rendere eseguibile lo script appena creato digitando in un terminale:

     chmod 0755 ~/bin/kvm-bridge
  10. Modificare sudoers per consentire ai membri del gruppo KVM di eseguire lo script wrapper kvm-bridge e creare una intefaccia di rete bridged senza l'esecuzione di KVM come superutente:

     visudo
    Aggiungere le seguenti righe alla fine del file:
     # Autorizzare i membri del gruppo KVM a configurare una interfaccia di rete bridged virtuale.
     %kvm ALL=(ALL) NOPASSWD: /sbin/ip, /usr/sbin/brctl, /usr/sbin/tunctl
  11. Avviare KVM da riga di comando. Non è necessario dichiarare una interfaccia network.

     kvm-bridge -m 512 -hda disk.img -cdrom ubuntu.iso -boot -d -smp 2

iptables

Aggiungere le seguenti regole ad iptables:

# autorizza i pacchetti in ingresso per l'ospite kvm.
IPTABLES -A FORWARD -d $IPADDR_FROM_GUEST_OS -j ACCEPT
# autorizza i pacchetti in uscita da kvm.
IPTABLES -A FORWARD -s $IPADDR_FROM_GUEST_OS -j ACCEPT

Sostituire «$IPADDR_FROM_GUEST_OS» con l'attuale indirizzo ip dell'ospite di kvm. (Si raccomanda di configurare gli ospiti all'uso di un indirizzo IP statico).

Se si usa ufw, aggiungere queste regole al file /etc/ufw/before.rules.

Ulteriori risorse


CategoryVirtualizzazione