Xen

From Servizi RSI
Jump to: navigation, search


Xen è un monitor di macchine virtuali Open Source rilasciato sotto licenza GPL per piattaforma x86, x86_64, IA64, ARM ed altre architetture.

Bridged networking (shared physical device)

La creazione di una macchina virtuale Xen anche se si utilizza virt-manager avviene con la scheda di rete in NAT. Se volete utilizzare una macchina virtuale in ambiente di produzione (od anche solo come test) avete spesso bisogno di rendere tale macchina raggiungibile dall'esterno. Per fare questo occorre seguire alcuni "semplici" passi:

Disabilitare gli script di rete di Xen

Occorre editare il file /etc/xen/xend-config.sxp cambiando la linea:

(network-script network-bridge)

in

(network-script /bin/true)

Disabilitare il NetworkManager

Se il vostro NetworkManager non supporta il bridging dovete disabilitarlo:

 # chkconfig NetworkManager off
 # chkconfig network on
 # service NetworkManager stop
 # service network start

Creare/Modificare gli script di init della rete

Se avete la vostra scheda di rete identificata da eth0 avrete sicuramente il file di configurazione dell'interfaccia già definito:

 DEVICE=eth0
 BOOTPROTO=none
 BROADCAST=150.146.70.255
 HWADDR=00:30:48:59:7B:D4
 IPADDR=150.146.70.29
 NETMASK=255.255.255.0
 NETWORK=150.146.70.0
 ONBOOT=yes
 GATEWAY=150.146.70.1
 TYPE=Ethernet
 BRIDGE=br0

La riga da aggiungere è BRIDGE=br0

Partendo da questo potete creare lo script di init per la vostra nuova interfaccia br0 in Bridge:

 DEVICE=br0
 BOOTPROTO=none
 BROADCAST=150.146.70.255
 HWADDR=00:30:48:59:7B:D4
 IPADDR=150.146.70.29
 NETMASK=255.255.255.0
 NETWORK=150.146.70.0
 ONBOOT=yes
 GATEWAY=150.146.70.1
 TYPE=Bridge

Attenti a scrivere bene il tipo, deve essere "Bridge" perché è case-sensitive. Poi dovete ri-avviare la rete con:

 # service network restart

Alla fine del file /etc/sysctl.conf dovete aggiungere:

net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0

Lanciate il comando:

 # sysctl -p /etc/sysctl.conf

Non dovrebbe essere necessario modificare iptables perchè dovrebbero essere già presenti le regole necessarie.

Ri-avviare il demone di libvirt:

 # service libvirtd reload

Ora potete verificare la presenza del del nuovo device condiviso:

  
  # brctl show
  bridge name     bridge id               STP enabled     interfaces
  br0             8000.003048597bd4       no              vif22.0
							  eth0
  virbr0          8000.000000000000       yes
  xenbr0          8000.feffffffffff       no              peth0
							  vif0.0
Lavori in corso!
LAVORI IN CORSO! - WORK IN PROGRESS!
stefano.colagreco si sta occupando di questo testo; non apportare modifiche se l'ultima modifica è recente.