SlideShare a Scribd company logo
NETWORKING CON
USER MODE LINUX
E uml_mconsole


                  1
Configurazione della rete




                            2
Scopo dell'esperienza (1)
Creare 4 sistemi in rete come nella figura




                                             3
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
                                                       4
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è...
                                               5
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               6
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

                                                          7
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

                                                        8
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




                                                             9
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
   ...




                                                            10
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



                                                            11
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
                                                                         12
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                                                 13
Sfruttiamo la uml_mconsole




                             14
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!)                  15
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
                                                          16
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?



                                                         17
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 rete
    ifconfig eht1 192.168.22.5 netmask 255.255.255.248 up




                                                            18
Gestione device – Esempio (3)




                                19
Gestione device – Esempio (4)
Considerando la nuova rete, è possibile ottimizzare il
routing dei pacchetti?
  – No, perchè...
  – Si, configurando...




                                                         20
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




                                                          21
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?




                                                         22
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




                                                    23
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)



                                                          24
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?                                       25
Esercizio
Per chi è stato veloce e ha già finito.




                                          26

More Related Content

PDF
From Scratch To Network - User mode linux
PDF
Introduzione User Mode Linux
PDF
Linux Kernel, driver e compilazione
PDF
A short introduction about UML UserModeLinux and UML-Handler tool --- speech ...
PDF
Richiami su Linux - Webmin - Reti di calcolatori
PDF
Sistemi Operativi: Meccanismi - Lezione 03
PDF
Compilazione Kernel
PDF
Sistemi Operativi: Struttura - Lezione 04
From Scratch To Network - User mode linux
Introduzione User Mode Linux
Linux Kernel, driver e compilazione
A short introduction about UML UserModeLinux and UML-Handler tool --- speech ...
Richiami su Linux - Webmin - Reti di calcolatori
Sistemi Operativi: Meccanismi - Lezione 03
Compilazione Kernel
Sistemi Operativi: Struttura - Lezione 04

What's hot (20)

PDF
Sistemi Operativi: CPU Scheduler - Lezione 09
PPT
Scheduling In Linux
PPTX
J huery
ODP
Linux Capabilities - ita - v2.1.5 - compatta
PDF
Moduli del kernel - Boot del sistema
PDF
Giochiamo ai COW-boy : zfs & btrfs
PDF
PostgreSQL : Tuning
PDF
Gestione dischi - File system - LVM
PDF
PDF
MontelLUG - Conferenze 2007 - Introduzione a RSync
PDF
Lug Roma3 Corso Linux Base
PDF
Sistemi Operativi: Struttura avanzata - Lezione 05
PDF
Amministrazione base dei sistemi Linux
PDF
Sistemi Operativi: Componenti - Lezione 02
PPT
Il dual boot scolastico perfetto (2012)
PDF
Oracle Application Server 10g
PDF
Cell Programming 1
PDF
Cosa è Gnu/Linux - Breve storia - Concetti fondamentali
PDF
Packet Sniffing
Sistemi Operativi: CPU Scheduler - Lezione 09
Scheduling In Linux
J huery
Linux Capabilities - ita - v2.1.5 - compatta
Moduli del kernel - Boot del sistema
Giochiamo ai COW-boy : zfs & btrfs
PostgreSQL : Tuning
Gestione dischi - File system - LVM
MontelLUG - Conferenze 2007 - Introduzione a RSync
Lug Roma3 Corso Linux Base
Sistemi Operativi: Struttura avanzata - Lezione 05
Amministrazione base dei sistemi Linux
Sistemi Operativi: Componenti - Lezione 02
Il dual boot scolastico perfetto (2012)
Oracle Application Server 10g
Cell Programming 1
Cosa è Gnu/Linux - Breve storia - Concetti fondamentali
Packet Sniffing
Ad

Viewers also liked (6)

PPT
Posta Elettronica E Www
PDF
PDF
6 - Architetture Software - Model transformation
PDF
4 (uml basic)
PDF
PDF
9 - Architetture Software - SOA Cloud
Posta Elettronica E Www
6 - Architetture Software - Model transformation
4 (uml basic)
9 - Architetture Software - SOA Cloud
Ad

Similar to Introduzione Alla Uml Mconsole (20)

PDF
Traffic Shaping Su Linux
PPT
Elementidi informatica
PDF
Network configuration - IPTables firewall
PDF
PIT2012: Workshop@UniNA - Compilazione del Kernel Linux
PDF
Sistemi Operativi: Thread - Lezione 08
PDF
MITM Attack with Patching Binaries on the Fly by Adding Shellcodes
PDF
A short introduction about traffic shaping and K-Shaper tool --- speech at Ha...
PPTX
Linux Device Drivers
PDF
Infrastructure as Data
PDF
Sistemi di Build Alternativi
PDF
Open Source Parallel Computing ltcsp
PDF
Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)
PDF
Multithreading, multiprocessing e Asincronia
PDF
Chi ha paura della command-line? - WordCamp Roma 2018
PDF
TOR - The Onion Router
PDF
Virtualizzazione con Gnu/Linux e Xen
ODP
Progetto Netkit
PPTX
Sistemi operativi
PDF
Nagios in alta affidabilità con strumenti open source
PDF
Cross compiler per uso domestico
Traffic Shaping Su Linux
Elementidi informatica
Network configuration - IPTables firewall
PIT2012: Workshop@UniNA - Compilazione del Kernel Linux
Sistemi Operativi: Thread - Lezione 08
MITM Attack with Patching Binaries on the Fly by Adding Shellcodes
A short introduction about traffic shaping and K-Shaper tool --- speech at Ha...
Linux Device Drivers
Infrastructure as Data
Sistemi di Build Alternativi
Open Source Parallel Computing ltcsp
Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)
Multithreading, multiprocessing e Asincronia
Chi ha paura della command-line? - WordCamp Roma 2018
TOR - The Onion Router
Virtualizzazione con Gnu/Linux e Xen
Progetto Netkit
Sistemi operativi
Nagios in alta affidabilità con strumenti open source
Cross compiler per uso domestico

More from Majong DevJfu (20)

PDF
8 - Architetture Software - Architecture centric processes
PDF
7 - Architetture Software - Software product line
PDF
5 - Architetture Software - Metamodelling and the Model Driven Architecture
PDF
4 - Architetture Software - Architecture Portfolio
PDF
3 - Architetture Software - Architectural styles
PDF
2 - Architetture Software - Software architecture
PDF
1 - Architetture Software - Software as a product
PDF
10 - Architetture Software - More architectural styles
POT
Tmd template-sand
PPT
26 standards
PPT
25 architectural adaptation
PPT
24 dssa and_product_lines
PPT
23 intro to_dsse
PPT
22 deployment and_mobility
PPT
21 security and_trust
8 - Architetture Software - Architecture centric processes
7 - Architetture Software - Software product line
5 - Architetture Software - Metamodelling and the Model Driven Architecture
4 - Architetture Software - Architecture Portfolio
3 - Architetture Software - Architectural styles
2 - Architetture Software - Software architecture
1 - Architetture Software - Software as a product
10 - Architetture Software - More architectural styles
Tmd template-sand
26 standards
25 architectural adaptation
24 dssa and_product_lines
23 intro to_dsse
22 deployment and_mobility
21 security and_trust

Introduzione Alla Uml Mconsole

  • 1. NETWORKING CON USER MODE LINUX E uml_mconsole 1
  • 3. Scopo dell'esperienza (1) Creare 4 sistemi in rete come nella figura 3
  • 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 4
  • 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è... 5
  • 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 6
  • 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 7
  • 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 8
  • 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 9
  • 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 ... 10
  • 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 11
  • 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 12
  • 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 13
  • 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!) 15
  • 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 16
  • 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? 17
  • 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 rete ifconfig eht1 192.168.22.5 netmask 255.255.255.248 up 18
  • 19. Gestione device – Esempio (3) 19
  • 20. Gestione device – Esempio (4) Considerando la nuova rete, è possibile ottimizzare il routing dei pacchetti? – No, perchè... – Si, configurando... 20
  • 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 21
  • 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? 22
  • 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 23
  • 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) 24
  • 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? 25
  • 26. Esercizio Per chi è stato veloce e ha già finito. 26