Rete Virtuale · 2 min read · Feb 10, 2026

La Configurazione Perfetta di Xen 3.0.3 Per Debian Sarge - Pagina 5

4.5 Creare Una Rete Locale Virtuale Dalle Macchine Virtuali (Opzionale)

(Quale capitolo è opzionale. Ciò che è descritto qui funziona solo se hai installato Xen dai sorgenti.)

In questo capitolo voglio creare una rete virtuale con le mie macchine virtuali, cioè una rete che è diversa dalla rete di dom0.

Puoi trovare un disegno di ciò che voglio fare qui: http://wiki.xensource.com/xenwiki/XenNetworkingUsecase#head-7f23d0f2248cb0c70458f9339b4405e2b1bfc271

Ho fatto lo stesso con Xen 2.0.7 qui: https://www.howtoforge.com/perfect_xen_setup_debian_ubuntu_p6. Tuttavia, il modo per raggiungere questo obiettivo con Xen 3 è cambiato completamente. Xen 3 configura automaticamente tutte le regole del firewall, i gateway, ecc. automaticamente. Inoltre, non abbiamo più bisogno di alcuna interfaccia di rete fittizia per la nostra rete virtuale. È importante sapere che Xen 3 assegna gateway dalla rete 10.x.x.x alle nostre macchine virtuali, quindi è una buona idea assegnare anche indirizzi IP dalla rete 10.x.x.x alle nostre macchine virtuali. Se dai loro indirizzi IP dalla rete 192.168.3.x (come abbiamo fatto con Xen 2.0.7 su https://www.howtoforge.com/perfect_xen_setup_debian_ubuntu_p6), allora le tue macchine virtuali non avranno accesso a Internet.

Quindi daremo a vm01 l’indirizzo IP 10.0.0.1 e a vm02 l’indirizzo IP 10.0.0.2.

Prima modifichiamo /etc/xen/xend-config.sxp e disabilitiamo il bridging e abilitiamo il NAT (traduzione degli indirizzi di rete) invece:

vi /etc/xen/xend-config.sxp

| [...] #(network-script network-bridge) #(vif-script vif-bridge) (network-script network-nat) (vif-script vif-nat) [...] |

Poi cambiamo i file di configurazione di vm01 e vm02:

/etc/xen/vm01-config.sxp:

vi /etc/xen/vm01-config.sxp

| name="vm01" kernel="/boot/vmlinuz-2.6-xenU" root="/dev/hda1" memory=32 disk=['file:/vserver/images/vm01.img,hda1,w','file:/vserver/images/vm01-swap.img,hda2,w'] vif=[ 'ip=10.0.0.1' ] dhcp="off" hostname="vm01.example.com" ip="10.0.0.1" netmask="255.0.0.0" gateway="10.0.0.254" extra="3" |

/etc/xen/vm02-config.sxp:

vi /etc/xen/vm02-config.sxp

| name="vm02" kernel="/boot/vmlinuz-2.6-xenU" root="/dev/hda1" memory=32 disk=['file:/vserver/images/vm02.img,hda1,w','file:/vserver/images/vm02-swap.img,hda2,w'] vif=[ 'ip=10.0.0.2' ] dhcp="off" ip="10.0.0.2" netmask="255.0.0.0" gateway="10.0.0.254" hostname="vm02.example.com" extra="3" |

Dopo spegniamo vm01 e vm02:

xm shutdown vm01  
xm shutdown vm02

Aspetta qualche secondo e controlla con xm list che vm01 e vm02 siano stati spenti. Poi riavvia il sistema:

shutdown -r now

Se vm01 e vm02 non si avviano automaticamente all’avvio, avviali ora:

xm create /etc/xen/vm01-config.sxp  
xm create /etc/xen/vm02-config.sxp

Ora dovresti essere in grado di pingare vm02 da vm01 e viceversa, e dovresti anche essere in grado di pingare dom0 e gli host su Internet!

Ora supponiamo di avere un server web sulla porta 80 in vm01 e un server di posta sulla porta 25 in vm02. Poiché si trovano nella loro rete (10.x.x.x), non possiamo accedervi dall’esterno a meno che non inoltriamo queste porte alla vm appropriata. Possiamo creare le necessarie regole di port forwarding su dom0 con l’aiuto di iptables:

iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 80 -j DNAT --to 10.0.0.1:80  
iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 25 -j DNAT --to 10.0.0.2:25

Se ci connettiamo a dom0 ora sulla porta 80, siamo inoltrati a vm01. Lo stesso vale per la porta 25 e vm02.

Naturalmente, le regole di inoltro vengono perse quando riavviamo dom0. Pertanto, mettiamo le regole in /etc/network/if-up.d/iptables, che viene eseguito automaticamente quando il sistema si avvia:

vi /etc/network/if-up.d/iptables

| #!/bin/sh ### Port Forwarding ### iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 80 -j DNAT --to 10.0.0.1:80 iptables -A PREROUTING -t nat -p tcp -i eth0 --dport 25 -j DNAT --to 10.0.0.2:25 |

Ora dobbiamo rendere eseguibile quel script:

chmod 755 /etc/network/if-up.d/iptables

Ogni volta che hai bisogno di ulteriori regole di port forwarding, eseguili nella shell di dom0 e poi aggiungili a /etc/network/if-up.d/iptables in modo che siano disponibili anche dopo un riavvio.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.