+ All Categories
Home > Technology > Introduzione Alla Uml Mconsole

Introduzione Alla Uml Mconsole

Date post: 10-Jul-2015
Category:
Upload: majong-devjfu
View: 460 times
Download: 2 times
Share this document with a friend
26
1 NETWORKING CON USER MODE LINUX E uml_mconsole
Transcript
Page 1: Introduzione Alla Uml Mconsole

1

NETWORKING CONUSER MODE LINUXE uml_mconsole

Page 2: Introduzione Alla Uml Mconsole

2

Configurazione della rete

Page 3: Introduzione Alla Uml Mconsole

3

Scopo dell'esperienza (1)

Creare 4 sistemi in rete come nella figura

Page 4: Introduzione Alla Uml Mconsole

4

Scopo dell'esperienza (2)

• Quattro nodi

– Node11-3

– Node11-5

– NodeX

– Node22-1

• Due sottoreti

– 192.168.11.0, legata a switch1

– 192.168.22.0, legata a switch2

– Netmask1=255.255.255.240

– netmask2=255.255.255.248

• Obiettivo: far comunicare i nodi attraverso le due sottoreti

Page 5: Introduzione Alla Uml Mconsole

5

Presentazione dei componenti della rete

• switch1

– connesso alla socket unix /tmp/uml1.ctl

• switch2

– connesso alla socket unix /tmp/uml2.ctl

• Node11-3

...

• Node11-5

analogo a node11-3 ma...

• Node22-1

analogo a Node11-3 ma...

• NodeX

diverso dai precedenti perchè...

Page 6: Introduzione Alla Uml Mconsole

6

Due parole su come si scompatta un archivio

• tar (TApe aRchive)

• Opzioni

– -v (verbose operation)

– comando -x scompatta -t mostra contenuto

– algoritmo di compressione -Z compress (archivi .tar.Z) -z gzip (archivi .tar.gz) -j bzip2 (archivi .tar.bz2)

– -f file

• Esempio: tar -xzvf archivio.tar.gz

Page 7: Introduzione Alla Uml Mconsole

7

Primo passo: preparare i sistemi UML

• Assicurarsi di avere le immagini dei filesystem nella opportuna directory

– NOTA: MAI lavorare in $HOME, SEMPRE in /tmp

– usiamo l'immagine debian5c.ext2 (sperando che stavolta funzioni, altrimenti installato.ext2)

• Fare partire il supporto per la rete (i due switch virtuali)

– switch1

$ ./uml_switch -unix /tmp/uml1.ctl

– switch2

$ ./uml_switch -unix /tmp/uml2.ctl

Page 8: Introduzione Alla Uml Mconsole

8

Errori comuni

• Mettere lo spazio tra i sottoparametri del kernel

– NO: ubd0=file.cow, file.ext2

– SI: ubd0=file.cow,file.ext2

• Sbagliare a scrivere i nomi dei parametri

– NO: udb

– SI: ubd

– NO: demon o damon

– SI: daemon

• Terminare in modo sporco i processi UML

– MAI chiudere le finestre di UML, dare il comando shutdown dalla linea di comando del sistema UML

Page 9: Introduzione Alla Uml Mconsole

9

Secondo passo: configurare i nodi (1)

• Si fa il login su ciascuno dei nodi e si lavora da linea di comando sui nodi virtuali

• Login:

– Username: root

– Password nulla (basta battere invio, se non funziona provare con “root”)

• Dare un nome ai nodi:

– Editare il file /etc/hostname in modo che contenga il nome del nodo

Page 10: Introduzione Alla Uml Mconsole

10

Secondo passo: configurare i nodi (2)

• Inserire le giuste informazioni di rete per risolvere i nomi

– Si agisce sul file /etc/hosts

– Alla fine ogni nodo dovrebbe avere un file fatto in questo modo:

127.0.0.1 localhost

192.168.11.3 Node11-3

...

Page 11: Introduzione Alla Uml Mconsole

11

Quarto passo: configurare le interfacce di rete (1)

• Si usa il file /etc/network/interfaces

• Il file contiene diverse direttive

– Direttiva auto: quali interfacce vanno inizializzate all'avvio della macchina auto lo auto eth0 auto eth1 (per node2)

– Direttiva iface: una per ogni interfaccia iface <nome> inet <modalità> <nome> vale lo, eth0, eth1 inet indica che sono interfacce TCP/IP

Page 12: Introduzione Alla Uml Mconsole

12

Quarto passo: configurare le interfacce di rete (2)

• Direttiva iface nel file /etc/network/interfaces

– <modalità> vale dhcp = inizializzazione dell'interfaccia in modo automatico col

protocollo dhcp loopback = interfaccia locale (127.0.0.1) static = seguono parametri per configurare l'interfaccia

– Configurazione statica di un'interfaccia address = indirizzo IP dell'interfaccia (192.168.X.Y) netmask = 255.255.255.0 network = indirizzo della rete (192.168.X.0) broadcast = indirizzo di broadcast (192.168.X.255) gateway = solo per node1 e node3, l'indirizzo dell'interfaccia

di node2 che si affaccia sulla sottorete

Page 13: Introduzione Alla Uml Mconsole

13

Quinto passo: mettere tutto insieme

• Possiamo riavviare tutti e tre i sistemi

$ reboot

• In alternativa possiamo forzare il riavvio delle interfacce di rete con i comandi

– ifdown <interfaccia>, ifup <interfaccia> oppure

– /etc/init.d/networking restart

• In entrambi i casi abbiamo comunicazione entro una sottorete

– Facendo login da Node11-3 riusciamo a fare ping su Node11-5 e viceversa

– Ogni nodo deve essere in grado di pingare NodeX

– Dopo una “particolare operazione” tutti i nodi pingano tra loro

Page 14: Introduzione Alla Uml Mconsole

14

Sfruttiamo la uml_mconsole

Page 15: Introduzione Alla Uml Mconsole

15

uml_mconsole

La uml_mconsole è un prezioso strumento che ci permette di intervenire dall'esterno sui nodi senza la necessità di fermarli.

La sintazzi tipica è:

uml_mconsole umid request

se abbiamo più richieste per la stessa macchina

uml_mconsole umid

• IMPORTANTE: se vogliamo usare la uml_mconsole quando lanciamo le macchine dobbiamo passare l'pzione umid=xyz (xyz=nome del nodo!)

Page 16: Introduzione Alla Uml Mconsole

16

uml_mconsole – comandi principali

I comandi principali sono:

• quit -> ci fa uscire dalla console

• help -> ci mostra I comandi disponibili

• halt -> spegne la macchina

• reboot -> riavvia la macchina

• cad -> manda il segnale cad gestito da /etc/inittab

• config dev=config -> aggiunge il dispositivo dev alla macchina

• remove dev -> rimuove il dispositivo dev

• sysrq lettter -> esegue l'azione associata a letter

• stop -> mette in pausa la macchina

• go -> fa ripartire una macchina fermata in precedenza

Page 17: Introduzione Alla Uml Mconsole

17

Gestione device – Esempio (1)

Facciamo riferimento all'esercizio precedente e ipotizziamo di voler collegare il nodo11-5 anche alla sottorete 192.168.22.0

Cosa bisogna fare?

• Basta modificare il file /et/network/interfaces?

• Basta prendere un altro cavo e attaccarlo allo switch2?

• Occorre inevitabilmente spegnere la macchina e farla ripartire con un nuovo comando?

• Altre ipotesi?

Page 18: Introduzione Alla Uml Mconsole

18

Gestione device – Esempio (2)

Usiamo la uml_mconsole

1) Ci connettiamo

uml_mconsole Node11-5

2) Aggiungiamo un'interfaccia

config eth1=daemon,,unix,/tmp/uml2.ctl

3) Usciamo dalla uml_mconsole

quit

4) Configuriamo l'interfaccia all'interno della reteifconfig eht1 192.168.22.5 netmask 255.255.255.248 up

Page 19: Introduzione Alla Uml Mconsole

19

Gestione device – Esempio (3)

Page 20: Introduzione Alla Uml Mconsole

20

Gestione device – Esempio (4)

Considerando la nuova rete, è possibile ottimizzare il routing dei pacchetti?

– No, perchè...

– Si, configurando...

Page 21: Introduzione Alla Uml Mconsole

21

uml_mconsole – segnali

La possibilità di inviare segnali alle macchine è molto utile. Vediamo i segnali più utili:• cad → equivalente a Ctrl+Alt+Del• b →reboot, UML cleanup• i →uccide tutti i task mandando un SIGKILL• e → terminiamo tutti i task mandando un SIGTERM• m → mostra l'utilizzo della memoria• p → Esegue il dump dei registri e dello stack• s → sincronizza i dati “dirty” sull'unità di storage

Page 22: Introduzione Alla Uml Mconsole

22

Utilizzo dei segnali - Esempio

Supponiamo di voler effettuare una copia di backup di una macchina senza volerla spegnere e riaccendere.

Cosa bisogna fare?

• Fare il dump della memoria della macchina host e ricostruire lo stato della memoria della macchina virtuale

• È sufficiente copiare il file .cow senza particolari accorgimenti

• Altro?

Page 23: Introduzione Alla Uml Mconsole

23

Utilizzo dei segnali - Esempio

La procedura da seguire per un corretto backup è:

• $uml_mconsole Node11-5 stop

OK

• $uml_mconsole Node11-5 sysrq s

SysRq: Emergency Sync

• $cp Node11-5.cow Node11-5-backup.cow

• $uml_mconsole Node11-5 stop

OK

Page 24: Introduzione Alla Uml Mconsole

24

hostfs

Dall'interno delle macchine virtuali è possibile accedere a risorse esterne in due differenti modalità:

• Tramite la rete

• Accedendo direttamente al file system dell'host

Nel primo caso è necessario avere permessi speciali per poter configurare risorse di rete sulla macchina host.

Nel secondo caso abbiamo la possibilità di accedere all'intero file system della macchina host (con qualche limitazione)

Page 25: Introduzione Alla Uml Mconsole

25

hostfs – Come Funziona

Il comando da utilizzare all'interno della macchina virtuale è estremamente semplice:

UML$ mount none /mnt -t hostfs [-o /tmp]

Analizziamo il comando nel dettaglio:

• mount → comando per montare file system (fs)

• none → dispositivo su cui si trova il fs

• /mnt → directory in cui montare il fs

• -t hostfs → tipo di fs

• -o /tmp → directory dell'host file system che si vuole montare (assieme alle sottodirectory)

Esercizio: montate la cartella /tmp dell'host e provate ad aprire un file con vim sia dal lato UML che da lato host. Cosa succede?

Page 26: Introduzione Alla Uml Mconsole

26

Esercizio

Per chi è stato veloce e ha già finito.


Recommended