Newsgroup: it.comp.os.linux.iniziare
Titolo: Qemu: primi passi networking

Obiettivo:
- trasferire files da host a guest
- guest: slackware-12.0
- host: slackware-11.0
Non so assolutamente o quasi nulla di networking.
Penso che ci siano anche altri modi per protare a termine l'operazione
sopra, ma mi sembraun'occasione per imparare anche qualcosa di nuovo su
un argomento che ignoro praticamente in toto.
Tempo addietro avevo provato l'installazione di una DSL sotto Qemu, e
inspiegabilmente il sistema guest (DSL) era in grado di navigare
tranquillamente senza che io (ignorante) riuscissi a darmi una
spiegazione logica.
Da quanto ho capito qemu automaticamente crea una rete visibile solo dal
guest-os in grado di usar l'host come sponda per andare in rete...mi
pare si parli di gateway o qualcosa del genere.
Non avendo mai avuto a che fare con reti, routers, LAN o altre
diavolerie del genere, mi trovo spiazzato.
Ora mi piacerebbe in poco tempo (quindi senza dover scandire troppo
google) riuscire a copiare il file:
/mnt/hd/slack12/usr/src/linux-2.6.24.3.bz2
nel sistema guest che è nel caso slackware-12.0
Il mio problema è che non saprei neppure come fare a scambiare i files
tra dua macchine reali della stessa rete...quindi se poteste darmi un
aiuto molto pratico e soprattutto semplice ve ne sarei grato.
Anticipo che dal guest, attraverso "ifconfig -a", sono in grado di
vedere un'interfaccia "eth0", ma non so se centri qualcosa con quello
che sto chiedendo...
Spero che possiate darmi una mano, eventualmente anche con un link, ma
preferirei una breve e sintetica spiegazione.....la pappa pronta insomma
;-D

 un argomento che ignoro praticamente in toto.
ma si vedono tra di loro?
se no devi:
installare e configurare vde e l'interfaccia tap
http://www.slackware.com/~alien/slackbuilds/vde/build/Using_VDE_with_QEMU_HOWTO.txt
poi usare la macchina che gira su qemu esattamanete come se fosse una
macchina remota, quindi :
nfs
ssh
samba 
o quel che ti pare

ah, a prescindere dalla rete, installa il modulo kqemu, altrimenti va
veramente lento

 veramente lento
Sì, l'ho installato, ma non ho notato poi un grosso incremento di
performance:
ad esempio avevo provato a configurare la connessione
ad internet dial up via cellulare + cavo usb direttamente sul sistema
guest. Ho usato le opzioni -usb e -usbdevice=host:vendor:product per far
riconoscere al guest il cellulare.
Bene, nonostante kqemu caricato ecc ecc, all'avvio della connessione:
"pppd call gprs"....il sistema diventa lentissimo.
Comunque questo non c'entra con l'operazione che vorrei fare ora, almeno
penso.
Comunque grazie del consiglio.

 o quel che ti pare
È questo che ignoro....  :-(
mai usato nfs, nè samba nè altro...
Speravo fosse una cosa semplice semplice, ma mi pare invece che ci sia
un po' di documentazione da consultare....pazienza.
Grazie comunque per gli spunti, cercherò d'approfondire  ;-) 

 Č questo che ignoro....  :-(
ah beh, questi te li studi :)

 ah beh, questi te li studi :)
Visto che mi mancano proprio i fondamenti, diciamo che potrei partire da
"appunti di informatica libera" anche se ho l'impressione che la
faccenda vada per le lunghe.... ;-)
Quindi se non chiedo troppo, sapresti mica indicarmi un documento
stringato e semplice che spieghi come mettere due pc in rete sotto linux
entrambi e come far passare files tra i due?
Penso che NFS (per sentito nominare) sia ciò di cui ho bisogno, ma è
solo un'impressione, nulla di fondato.

 Grazie comunque per gli spunti, cercherò d'approfondire  ;-)
-- 
Ciao.
Alessandro 
"Ubuntu" - an African word, meaning "Slackware is too hard for me".

 di fondato.
nfs ti fa montare dischi remoti come se fossero device esterni
chi deve montare il disco deve avere l'nfs client, chi mette a
disposizione il disco (che puo' esserre un disco come una sola dir) fa
girare il server
sul server si danno i permessi ai client tramite /etc/exports 
(man 5 exports)
sul client si monta a mano (root) o tramite una entri in fstab come un
normale disco, specificando il filesystem di tipo nfs
es:
serv:/home/gianni/progetti /home/pippo/progetti nfs
noauto,users,rw      0       0
monta la dir /home/gianni/progetti  di serv sul client
e su serv c'è bisogno di :
/home/gianni/progetti  client(rw,no_root_squash,sync)
In entrambi i casi le opzioni le metti te come piu' ti aggradano
ciao

 nfs ti fa montare dischi remoti come se fossero device esterni
Penso che sia la soluzione giusta per fare quello che dicevi.
Una domanda forse banale:
prima mi hai chiesto se i due sistemi si vedono (guest e host intendo).
Come si dovrebbe fare per verificarlo?
Più in generale se ho due pc collegati non so con un cavo di rete come
gli si dice al primo guarda che hai attaccato il secondo
sull'interfaccia tot?

 sull'interfaccia tot?
idem

> sull'interfaccia tot?
Perché serve dirglielo??
Allora fino ad oggi mi sono dimenticato di dire alle mie macchine che 
c'é un mondo intorno pieno di loro "fratelle"[¹]
[¹] Il sesso dei computer NON è ancora stato definito!!
-- 
#include <std.disclaimer.h>
Signature automatica inserita a mano.
In God we trust, all others we monitor.(NSA)
Punteggiatura: Nel caso mancasse nel messaggio, aggiungete!!

 Perché serve dirglielo??
Per capire se si vedono?
Ma, lasciamo perdere...ho chiesto qui sperando che fosse una cosa molto
semplice. In realtà avrei bsogno di indicazioni molto più..."da zero" o
"passo passo" che dirsivoglia.
Ovviamente per quelle informazioni dovevo partire da una lettura
preliminare al networking sotto linux. Penso che sia più fruttuoso.
Chiaramente detto ciò senza nulla togliere ai vostri interventi comunque
graditi.  ;-)
A presto pingui!  :-D

 Il fatto � che non ho neanche idea di che indirizzo indicargli.
Contattami!
Il mio indirizzo di E-Mela é valido!!


 A presto pingui!  :-D
Odio dirlo, ma una "passata" alla "Bibbia" [¹][²] ci starebbe bene!
[¹] Appunti di informatica libera  (Cos'altro se no? )
[²] Anche per il numero di pagine che ha messo insieme nel tempo! ;-)


 "pppd call gprs"....il sistema diventa lentissimo.
Cosa che c'entra poco con avere un processore emulato più veloce.
In più basta leggere la documentazione:
]zac[
3.9.2 Using host USB devices on a Linux host
 WARNING: this is an experimental feature. QEMU will slow down when using
it. USB devices requiring real time streaming (i.e. USB Video Cameras) are
not supported yet.
]zac[
In sintesi non è il caso di usare l'usb con qemu.


Grazie mille, per la precisazione...tutto normale insomma, avevo il
dubbio che kqemu non funzionasse bene sul mio sistema, magari per colpa
della mia compilazione/installazione.
In effetti per quanto riguarda altri aspetti l'emulazione è più che
accettabile.
Per la connessione in rete poi si può utilizzare il sistema host per
fare da ponte e avere il guest praticamente connesso ad internet...
In realtà ero ricorso all'utilizzo dell'usb per connettermi ad internet
direttamente da guest solo per assicurarmi che il sistema operativo
riuscisse a connettersi. Infatti si trattava di una slackware 11.0
installata in modo minimale e prima di masterizzare avevo voluto fare
una prova per assicurarmi che non mancasse qualche pacchetto
indispensabile per connettermi ad interenet (con un sistema minimale
del genere mi era indispensabile andare in rete e aggiungere
pacchetti...)
Grazie ancora.   :-)

 Grazie ancora.   :-)
De nadia ( :) ).
Sei hai un processore recente che supporta il modulo ' kvm ' del kernel
conviene utilizzare il qemu di kvm, qemu-kvm che è emula un processore
molto più veloce e supporta bene windows vista e senza rallentamenti
insopportabili (naturalmente bisogna avere almeno un 1GB di ram sull'host e
dedicarne almeno 512 al guest).
Per avere un full-network (locale e internet) ti conviene utilizzare vde
switch, sulle istruzioni di qemu ci sono dei chiari riferimenti e cercando
il wiki c'è molta informazione.

 il wiki c'è molta informazione.
Mi informerò meglio. 


Riprendo questo post e la discussione.
Ho provato seguendo le dritte sul sito di ~alien.
Ho leggiucchiato un po' di doc sulle reti sulla configurazione ecc, va
bè.
Ora vorrei limitarmi al semplice ping tra host e guest. Lasciamo perdere
nfs per ora.
con vde + qemu + tun/tap ho messo in rete la slack12 guest con la
slack11 host. Ma c'è quel tap0 che mi confonde le idee sul lato host.
Procedimento seguito e annotato in un file di testo per ricordarmelo:
1- insallare vde
2- modprobe tun
3- vde_switch -t tap0 -d
   crea lo switch e lo fa girare come demone
4- ifconfig tap0 <ip.switch> netmask <mask>
   dà al dispositivo virtuale switch l'ip.
   tale ip sarà il gateway che il guest dovrà
   utilizzare per andare in internet.
5- # echo "1" > /proc/sys/net/ipv4/ip_forward
   # iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
   # iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE
Gestiscono il forward della connessione guest-->host-->internet
Probabilmente serve solo la seconda (ppp0).
-------guest e sua configurazione-----------
6- lancio il guest con:
 
   vdeqemu ... ... ... 
7- ifconfig eth0 <ip.eth0guest> netmask <mask>
   attribuisce alla scheda eth virtuale del guest un indirizzo
   di rete che deve essere appartenente alla sottorete del tap0.
8- route add default gw <ip.switch>
   crea un nuovo instradamento di default indirizzato verso
   l'indirizzo ip dello switch (tap0), collegando così il guest
   e l'host. Grazie a questo comando tra l'altro (e grazie ai
   comandi del punto 5 si riesce a navigare)
Una domada.
In tutto questo quadro l'host in pratica coincide con l'interfaccia
tap0?
ovvero:
sto lavorando su guest e voglio pingare l'host, che indirizzo dovrò
pingare? Quello del tap0?
Ancora, trattandosi di una rete virtuale ha senso dare un indirizzo alla
scheda di rete eth0 (reale) dell'host avendo solo un pc non collegato
fisicamente ad una LAN?
Al punto 5 del mio elenco di comandi: posso evitare di dare regole ad
iptables per eth0 visto che mi collego in dialup con ppp0?
Vi ringrazio in anticipo per le risposte.

 Vi ringrazio in anticipo per le risposte.
Nessuno può darmi un chiarimento...?
Il grosso della documentazione penso di averlo fatto, ma mi servirebbe
solo qualche dritta sulla situazione virtualizzata.
Le domande sono nel post precedente su cui vorrei rivolgeste la vostra
attenzione per rispondere.
Grazie nuovamente e scusate l'insistenza.

 Vi ringrazio in anticipo per le risposte.
mmm ... antipatica .. come è antipatico il sollecito ... se veramente volevi
essere grato non avresti dovuto scrive niente o scrive grazie in ogni caso.

 pinghi il tap è il sistema guest che si attiva per rispondere al ping),
]zac[
.... SISTEMA HOST!!! ....

 essere grato non avresti dovuto scrive niente o scrive grazie in ogni caso.
Probabilmente hai ragione, grazie per la risposta....se ti va di
continuare la conversazione, il tuo intervento è gradito  ;-)

 mmmm...in effetti penso di non essermi spiegato bene io.
]zac[
Ho iniziato rispondendo a tutti i punti, ma diventava una cosa chilometrica,
ripetitiva, confusa e poco utile.
Sei molto fuori strada, non ne saltiamo fuori cosi, ci vuole un po' di
filosofia zen .. ti ordino di abbandonare ogni convinzione reale e di
seguirmi ciecamente nel mondo qemu - vde virtuale, SOLO DOPO CHE AVRAI
CREDUTO e VERIFICATO POTRAI FARE OBIEZIONI.
Rete virtuale qemu - vde switch:
- vde switch è attestato internamente all'host, è attestato
sul '''localhost''' dell'host.
Non è ASSOLUTAMENTE paragonabile ad uno switch reale che è attestato
esternamente su un device di rete (ethX).
- I guest comunicano FAR DI LORO utilizzando SOLO il file/device socket che
è stato aperto da vdeqemu, e i guest sono attestati su una rete o sotto
rete diversa da quella dell'host (la rete dei guest fa parte di quella che
è rappresentata dall'ip del tapX).
Non è assolutamente paragonabile ad una rete reale, in cui i guest
comunicano tra di loro attraverso uno switch/hub e sono attestati sulla
stessa rete dell'host.
- vde switch (e quindi anche tutto il gruppo dei guest) comunica con l'host
attraverso il device di rete tapX, i pacchetti sono ruotati '''all'local
host''' dell'host attraverso la regola di ruote del tapX.
Quindi per vde switch (e quindi anche tutto il gruppo dei guest) l'host è,
ed raggiungibile solo attraverso l'ip assegnato al tapX.
In sintesi e grossolanamente se un guest comunica con l'ip del tapX comunica
con l'host, un guest comunica sempre e solo '''col'local host''' dell'host.
Può sembrare strano ma i pacchetti con l'ip del tapX viaggiano sempre e solo
attraverso il '''local host''' dell'host, ma in fondo in una rete reale
succede la stessa cosa anche per i pacchetti, per esempio, di un ping
eseguito localmente sull'ip del server.
- La rete virtuale non necessita e non utilizza per le proprie necessità in
nessuna maniera di una scheda di rete reale, di un ip assegnato, e di tutte
quelle cose che necessitano su un host nel caso di una rete reale o di una
rete virtuale realizzata con un bridge software.
- La regola nat di iptables (il forward) è utilizzata solo per far
comunicare vde switch (e quindi anche tutto il gruppo dei guest) con un
altra rete.
La regola nat è necessaria per qualsiasi rete esterna al quella relativa
all'ip del tapX, che sia internet, che sia la rete locale dell'host.
RIBADISCO che vde switch (e quindi anche tutto il gruppo dei guest) è
attestato sul '''local host''' dell'host e precisamente sulla rete
(sull'altra rete) a cui si riferisce l'ip del tapX.
Quindi per la rete virtuale qualsiasi rete (altra rete) a cui sia connesso
l'host è una rete esterna.
Per favore assimila i punti base o almeno credici ciecamente, partire da
qualsiasi altra posizione può solo portare nel più completo ... nulla.

 eseguito localmente sull'ip del server.
Tirando le somme quindi facciamo un esempio. Anzi riferiamoci a questa
discussione, nella quale all'inizio mi si chiedeva se i due sistemi si
vedono (host e guest).
Come fare a verificarlo? ----> semplice, con un ping.
Ma da chi a chi?
Lascio a te/voi la risposta a questa domanda, ma prima sempre per chiarire
l'esempio mettiamoci qualche numero.
sul sistema host  configuriamo tap0:
ifconfig tap0 192.168.255.1 netmask 255.255.255.0
mentre sul sistema guest:
ifconfig eth0 192.168.255.2 netmask 255.255.255.0
Host e guest si vedono?
Come si verifica?

 Come si verifica?
Due possibilità:
1) Quando dal guest pinghi l'indirizzo ip del tapX pinghi l'host, o meglio
pinghi il '''local host''' dell'host, vuol dire che si vedono.
2) Quando dall'host pinghi il guest ... indovina? vuol dire che host e guest
si vedono.
Quindi per ogni servizio del host che vuoi utilizzare dal guest non devi far
altro che inserire l'indirizzo ip del tapX.
Ahi! i misteri del ruote ... ah i misteri dell'local host ... ahi! ... le
dita nell'occhio no!

 niente.
]zac[
... ritiro questa parte .. troppa fretta ... ti riferivi al guest ...
... ritiro il commento ironico.

 altro che inserire l'indirizzo ip del tapX.
Bene, le conferme che cercavo sono infine giunte.  ;-)
Chiedo scusa per la cocciutagine. Ma a causa dell'ignoranza in materia
di reti e della "particolarità" aggiunta dalla virtualizzazione avevo
bisogno di una conferma chiara, anche magari in termini non proprio
precisissimi ma terra-terra, nonostante forse sarebbe potuta sembrare
banale e scontata ai più.
Spero che la discussione possa servire anche ad altri.
Grazie ancora e a presto!  :-)

 Grazie ancora e a presto!  :-)
eh! ....
P.S. Un'ultima pignolata, in fondo il tapX con tutto quello che gli è
collegato, è esattamente simile a una ethX con un ip assegnato, anche li
ethX (e ip dell'eth0) e l'host si possono considerare la stessa cosa, e
anche li c'è di mezzo una regola di ruote che ruota i
pacchetti '''all'local host'''.

 pacchetti '''all'local host'''.
Bene.  :-)

 dell'ironia quando si parla di argomenti che il nostro interlocutore
]zac[
.... .... ...
... ... ....
..... commentare e commentare in questo modo delle scuse ricevute è un  modo
piuttosto scortese di rifiutarle (non a parole ma nei fatti).
Ti faccio notare che le scuse non sono per avere fatto le battute ironiche, 
ma per averle fatte su cose che non c'entravano niente e quindi inutili.
Ti ringrazio di avermi fatto in parte pentire di averTI fatto delle scuse.

 Ti ringrazio di avermi fatto in parte pentire di averTI fatto delle scuse.
Pensala un po' come ti pare.
Direi che la discussione potrebbe fermarsi anche qui...mi pare inutile
proseguire (inutile perchè palesemente OT).
Saluti  :-)