SlideShare a Scribd company logo
1 of 55
Download to read offline
NETWORKING CON
USER MODE LINUX



                  1
Configurazione della rete




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




                                                 3
Scopo dell'esperienza (2)
• Tre nodi
   – node1
   – node2
   – node3
• Due sottoreti
   – 192.168.1.0, legata a switch1
   – 192.168.2.0, legata a switch2
   – Per entrambe netmask=255.255.255.0
• Obiettivo: far comunicare i nodi attraverso le due
  sottoreti


                                                       4
Presentazione dei componenti della rete (1)
• switch1
   – connesso alla socket unix /tmp/uml1.ctl
• switch2
   – connesso alla socket unix /tmp/uml2.ctl
• node1
   – 1 scheda di rete eth0
   – indirizzo 192.168.1.1
   – legata alla sottorete 192.168.1.0
   – si collega allo switch switch1
• node3
   – analogo a node 1 ma sulla sottorete 192.168.2.0

                                                       5
Presentazione dei componenti della rete (2)
• node2
   – scheda di rete eth0
      su sottorete 192.168.1.0
      indirizzo 192.168.1.254
      fa da gateway per quella sottorete
      si collega a switch1

  – scheda di rete eth1
      eth1 su sottorete 192.168.2.0
      indirizzo 192.168.2.254
      fa da gateway per quella sottorete
      si collega a switch2




                                              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 debian5b.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
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               8
Secondo passo: lanciare i sistemi virtuali (1)
• node1
   $ ./linux 
   ubd0=node1.cow,debian5b.ext2 
   eth0=daemon,,unix,/tmp/uml1.ctl
                                     interfaccia di
                                     rete: eth0 su
• node3                              switch1
   $ ./linux                        (/tmp/uml1.ctl)
   ubd0=node3.cow,debian5b.ext2 
   eth0=daemon,,unix,/tmp/uml2.ctl    interfaccia di
                                      rete: eth0 su
                                      switch2
                                      (/tmp/uml2.ctl)
                                                        9
Secondo passo: lanciare i sistemi virtuali (2)
• node2
   $ ./linux 
   ubd0=node2.cow,debian5b.ext2 
                                              2 interfacce
   eth0=daemon,,unix,/tmp/uml1.ctl           di rete
   eth1=daemon,,unix,/tmp/uml2.ctl            • eth0 su
                                                switch1
                                              • eth1 su
                                                switch2

• Ogni volta che si lancia un nodo dovrebbe apparire
  un'indicazione nelle schermate dove girano gli
  switch

                                                        10
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

                                                        11
Terzo 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




                                                             12
Terzo 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.1.1            node1
   192.168.2.1            node3
   192.168.1.254          node2
   192.168.2.254          node2


                                                            13
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



                                                            14
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
                                                                         15
Esempio
# File di configurazione per node1
# The loopback network interface
auto lo
iface lo inet loopback
# Interface eth0
auto eth0
# iface eth0 inet dhcp
iface eth0 inet static
     address 192.168.1.1
     netmask 255.255.255.0
     broadcast 192.168.1.255
     network 192.168.1.0
     gateway 192.168.1.254
                                     16
Quinto passo: mettere tutto insieme (1)
• 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 node 1 riusciamo a fare ping su
     node 2 e viceversa
   – Stessa cosa tra node 3 e node 2

                                                        17
Quinto passo: mettere tutto insieme (2)
• Perché node 1 e 3 non comunicano?
• Serve che node 2 diventi un vero router e passi il
  traffico tra le sue due interfacce (eth0 e eth1)

       # echo “1” >/proc/sys/net/ipv4/ip_forward

• Ora dovremmo essere in grado di far comunicare
  anche node1 e node3 attraverso node2




                                                       18
Configurare le interfacce “da uomini veri”
• Comandi ifconfig e route
• ifconfig <interface> <address> netmask <mask> up
   – Configura l'interfaccia di rete specificata con:
       indirizzo IP
       netmask

   – ifconfig consente di fare anche molte altre cose,
     verificare la manpage per vedere le altre opzioni
   – Ad ogni reboot il comando va di nuovo lanciato
• route add default gw <gwaddr>
   – Inserisce l'indirizzo del gateway di default (come
     comando gateway in /etc/network/intefaces)

                                                          19
Configurare le interfacce “al volo”
• Nel nostro caso i comandi da lanciare sono:
• Su node1
  – ifconfig eth0 192.168.1.1 netmask 255.255.255.0 up
  – route add default gw 192.168.1.254
• Su node2
  – ifconfig eth0 192.168.1.254 netmask 255.255.255.0 up
  – ifconfig eth1 192.168.2.254 netmask 255.255.255.0 up
• Su node3
  – ifconfig eth0 192.168.1.2 netmask 255.255.255.0 up
  – route add default gw 192.168.2.254


                                                           20
Salvare il lavoro fatto
• Alla fine di una sessione di lavoro può far comodo
  salvare le proprie immagini UML
• Il meccanismo Copy on Write è molto pignolo sulla
  consistenza file cow/file ext2
  – L'età dei file deve corrispondere
  – In caso contrario UML si rifiuterà all'avvio successivo di
    montare I dischi
• Bisogna preservare le date di accesso
  – Opzione -p (preserve) del comando copy
  – Opzione --atime-preserve del comando tar
• Esempio:
  – $ tar -cSzvf mie_immagini.tgz *.cow *.ext2 
    --atime-preserve
                                                                 21
Testing della rete:
protocolli di supporto




                         22
Campo Time-To-Live del datagramma IP
• Poiché le tabelle di instradamento dei router non sono
  sempre “corrette”, è possibile che un pacchetto entri in cicli
  da cui non riesca ad uscire

• Per evitare congestioni dovute a situazioni di questo tipo, si
  fissa un limite al tempo entro cui un pacchetto può restare
  sulla rete. Nei pacchetti IP il campo Time-To-Live misura il
  tempo di vita rimanente al pacchetto.

• Ciascun router deve decrementare il TTL di almeno una unità
  (RFC 1812). Nella pratica, i pacchetti raramente rimangono in
  un router per più di un secondo ed i router semplicemente
  decrementano di uno il TTL prima di instradare un pacchetto



                                                                   23
Campo Time-To-Live del datagramma IP (2)
• Quindi, indipendentemente dal nome, il TTL conta il numero
  di hop che il pacchetto può fare prima di giungere a
  destinazione o di essere scartato.

• I router controllano se il TTL è uguale a zero dopo il
  decremento, subito prima dell’inoltro. Se il destinatario del
  pacchetto è il router stesso questo non viene mai scartato
  (RFC 1812).




                                                                  24
Protocolli di supporto
  protocolli che                            protocolli di supporto
  offrono servizi                  portano dati “di controllo” e non
                                   offrono direttamente servizi
 portano “dati utente”
 le loro pdu vengono               la loro posizione nella pila è
 imbustate” in accordo             indipendente da come vengono
 alla pila iso-osi                 imbustate le pdu
esempi:                               esempi:
 4        tcp                                                               4
 3         IP
                               viaggia in pdu di   ICMP   IP   protocolli
                               livello 3 (ip)
                                                               di routing   3
 2                et                               ARP/RARP
         er     n
 1   eth                                                                    2
                               viaggiano in pdu
                               di livello 2                                 1
                                                                                25
Testing della rete:
 protocollo ICMP




                      26
Internet Control Message Protocol (ICMP)
• Definito da IETF rfc792 (Settembre 1981)
• Scopi
   – Notifica situazioni di errore o anomalie
     (congestione e controllo di flusso dei datagram)
   – Supporta “debugging” interattivo della rete
     ( determinare cammini circolari o eccessivamente lunghi,
      stimare il tempo di trasmissione da mittente a destinatario)
• ICMP è funzionale ad IP e viaggia in pacchetti IP
• ICMP porta informazioni di controllo e di notifica di errori.
  Non porta dati. I pacchetti ICMP viaggiano all’interno dei
  pacchetti IP.
• Le funzionalità fornite da ICMP sono accessorie al livello 3,
  quindi ICMP è considerato un protocollo di livello 3. ICMP è
  sempre presente a fianco di IP.
                                                                     27
ICMP Message Types

•   Echo Request
•   Echo Response
•   Destination Unreachable
•   Time Exceeded
•   Redirect (route change)
•   altri ...




                                   28
Relazione tra ICMP e IP

                                     icmp hdr    icmp data


                       ip header     ip data


    frame header       frame data                                      trailer


regola 1: nessun messaggio ICMP viene generato a seguito ad eventuali errori
           rilevati su messaggi ICMP
regola 2: se il pacchetto viene frammentato solo il primo frammento può generare
           messaggi di errore ICMP
regola 3: i broadcast e multicast non generano ICMP




                                                                                   29
Messaggi di informazione

• ECHO_REQUEST e REPLY (richiesta di echo e relativa
  risposta)
  – controllo di raggiungibilità di un host
• TIMESTAMP e TIMESTAMP_REPLY
  come ECHO più informazioni su orario invio
  – misura di velocità del collegamento
  – sincronizzazione (approssimativa) dell’ora di sistema
• REDIRECT Un router intermedio si accorge che il percorso
  che il datgram sta seguendo non è ottimale: gli dice di
  cambiare percorso, ma nel frattempo inoltra il datagram
  originale verso la sua destinazione




                                                             30
Messaggi di errore
Questi messaggi di errore seguono un pacchetto scartato:

• TIME_ EXCEEDED (tempo scaduto)
   – il pacchetto ha TTL=0
• DESTINATION_UNREACHABLE
   – un gateway vede la rete destinazione a distanza infinita (net unreachable)
   – l'host non risponde ad una chiamata ARP (host unreachable)
   – l'host destinazione non conosce il protocollo nel pacchetto (protocol
     unreachable)
   – il pacchetto non può essere frammentato (fragmentation needed and DF
     set)




                                                                                  31
Messaggi di errore (2)

• PARAMETER_PROBLEM (problema con i parametri).
  – Il gateway non riesce ad interpretare il pacchetto ricevuto a causa di un valore
    errato, possibile errore software



• SOURCE_QUENCH obsoleto (rallentamento, soffocamento
  della sorgente)
  – congestione di un gateway intermedio
  – host destinazione lento nell’acquisizione




          Far riferimento alla RFC 792 per ulteriori approfondimenti in
          particolare alle sezioni “description” per ciasun messaggio.



                                                                                       32
ping
• Invia una successione di pacchetti ICMP ECHO_REQUEST e
  attende la relativa risposta ECHO_REPLY
• Misura il tempo che intercorre tra l’invio e la ricezione di ogni
  pacchetto e riporta semplici statistiche
• Il comando ping fa parte della dotazione standard di tutte le
  macchine sia Unix che Windows anche se con sintassi
  leggermente diverse.
• L’indirizzo localhost viene risolto in un indirizzo IP normale
  che dall’output è 127.0.0.1
• Ulteriori informazioni: manuale in linea di ping (sui sistemi
  Unix: man ping)




                                                                      33
ping
Esempio di ping con pacchetti persi

<utente@pascal ~> ping wilma.cs.brown.edu
 PING wilma.cs.brown.edu: (128.148.19.15): 56 data bytes
64 bytes from 128.148.19.15: icmp_seq=1 ttl=239 time=1736 ms
64 bytes from 128.148.19.15: icmp_seq=2 ttl=239 time=1507 ms
64 bytes from 128.148.19.15: icmp_seq=6 ttl=239 time=1209 ms
64 bytes from 128.148.19.15: icmp_seq=8 ttl=239 time=762 ms
64 bytes from 128.148.19.15: icmp_seq=9 ttl=239 time=1235 ms
64 bytes from 128.148.19.15: icmp_seq=11 ttl=239 time=1566 ms
64 bytes from 128.148.19.15: icmp_seq=13 ttl=239 time=586 ms
64 bytes from 128.148.19.15: icmp_seq=14 ttl=239 time=352 ms
64 bytes from 128.148.19.15: icmp_seq=22 ttl=239 time=910 ms
^C
----wilma.cs.brown.edu PING Statistics----
29 packets transmitted, 9 packets received, 68% packet loss
round-trip min/avg/max = 352/1095/1736 ms
• <utente@pascal ~>
                                                                34
traceroute

• Il comando traceroute permette di capire per quali router
  passano i pacchetti IP quando sono diretti ad una data
  destinazione.
• traceroute è compreso nella dotazione standard di tutte i
  sistemi Unix.
• Nei sistemi Windows il comando ha il nome tracert e
  sintassi leggermente differente.
• traceroute trova utilizzo anche nell’ambito
  dell’amministrazione della rete per isolare guasti o
  incoerenze nelle tabelle di routing.
• Dal punto di vista didattico la sua utilità è di mostrare il
  percorso dei pacchetti svelando un po’ della topologia
  nascosta di Internet.




                                                                 35
traceroute
<utente@pascal ~>traceroute wilma.cs.brown.edu
traceroute to wilma.cs.brown.edu (128.148.19.15), 30 hops max, 40 byte packets
1 gw1.fis.uniroma3.it (193.204.160.1) 3 ms 3 ms 2 ms
2 141.108.132.1 (141.108.132.1) 832 ms 967 ms 402 ms
3 mp4rm1.roma1.infn.it (141.108.127.6) 267 ms 106 ms 417 ms
4 atm-garrten-rm.infn.it (192.135.31.5) 100 ms 939 ms 839 ms
5 cnafint-ten34.infn.it (192.135.34.21) 1100 ms * 1056 ms
6 mix-serial3-4.Washington.mci.net (204.189.152.161) 618 ms * *
7 * core1-fddi-0.Washington.mci.net (204.70.2.1) 1249 ms *
8 ***
9 wtn-bbn-nap.Washington.mci.net (206.157.77.218) 766 ms * *
10 * * chicago1-br1.bbnplanet.net (4.0.1.5) 857 ms
11 * * *
12 * boston1-br1.bbnplanet.net (4.0.2.245) 846 ms *
13 boston1-br2.bbnplanet.net (4.0.2.250) 680 ms * *
14 * * boston1-mr4.bbnplanet.net (4.0.44.19) 648 ms
15 providence-cr1.bbnplanet.net (4.0.45.106) 416 ms providence-cr1.bbnplanet.net
(4.0.45.102) 1298 ms *
16 brown.bbnplanet.net (131.192.32.2) 1444 ms 615 ms 802 ms
17 * * *
18 * ftp.cs.brown.edu (128.148.19.15) 834 ms 435 ms
<utente@pascal ~>
                                                                                   36
Esempio: traceroute
• Si ipotizzi di inviare un pacchetto, ad esempio un
  ECHO_REQUEST con TTL=n “basso”. Se il destinatario è troppo
  lontano l’ultimo router risponderà con un TIME_EXCEEDED, se il
  destinatario risponde con ECHO_REPLY allora è raggiungibile con
  n hop
• In realtà alcuni traceroute non utilizzano gli ECHO_REQUEST se
  non gli viene chiesto esplicitamente ma altri protocolli (UDP).
  Inoltre manda 3 pacchetti per ogni valore di n. Se non si osserva
  un TIME_EXCEEDED entro un tempo prestabilito traceroute
  visualizza un asterisco “*”
• Il manuale in linea di traceroute è estremamente interessante e
  mostra anche esempi di strani comportamenti da parte dei router




                                                                      37
ttl=1
          Esempio: traceroute (2)

             router1

            time exceeded (mitt: router1)


             router1


  ttl=2
                       ttl=1



             router1                             router2


                                            time exceeded (mitt: router2)



             router1                            router2

                                                                            38
Esempio: traceroute (2)

        ttl=3                                            ttl=1
                                  ttl=2



                        router1                   router2




                       router1                    router2




Il messaggio di risposta dipende dal messaggio inviato




                                                                 39
Strumenti di analisi della rete




                                  40
Comando ifconfig
• Ifconfig è il comando principe per l'interazione con le
  interfacce di rete
• Esso consente di:
   – controllare i dati di un'interfaccia di rete
   – modificare lo stato di un'interfaccia
• In questa parte ci si concentra sull'uso di ifconfig per
  leggere lo stato di un'interfaccia di rete




                                                             41
Uso di ifconfig: un esempio pratico

# ifconfig eth0
eth0 Link encap:Ethernet HWaddr 00:10:5A:9D:88:AF
      inet addr:192.168.1.3 Bcast:192.168.1.255 Mask:255.255.255.0
      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
      RX packets:92 errors:0 dropped:0 overruns:0 frame:0
      TX packets:52 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:1000
      RX bytes:14162 (13.8 KiB) TX bytes:6744 (6.5 KiB)
      Interrupt:9 Base address:0xfc00




                                                                     42
Analisi di un'interfaccia ethernet

# ifconfig eth0 #voglio tutte le informazioni sulla interfaccia di rete eth0
# se non sono root dovrò inserire il percorso completo /sbin/ifconfig
eth0 Link encap:Ethernet HWaddr 00:10:5A:9D:88:AF
# eth0 e' un'interfaccia di tipo ethernet
# il suo indirizzo MAC è 00:10:5A:9D:88:AF
      inet addr:192.168.1.3 Bcast:192.168.1.255 Mask:255.255.255.0
# l'interfaccia è configurata con un indirizzo IP, ovvero 192.168.1.3
# l'indirizzo IP usato per i broadcast è 192.168.1.255
# la netmask vale 255.255.255.0
      UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
# i flag dell'interfaccia sono
# UP: l'interfaccia è configurata
# BROADCAST: si usa un canale broadcast
# RUNNING: l'interfaccia è attiva
                                                                               43
Analisi di un'interfaccia ethernet (2)
       UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
# MULTICAST: l'interfaccia può essere usata per il multicast
# MTU: dimensione massima di un frame trasmissibile con questa interfaccia
# Metric: parametro usato per calcolare la lunghezza dei cammini che
  attraversano questa interfaccia (parametro usato nei calcoli per il routing)
       RX packets:92 errors:0 dropped:0 overruns:0 frame:0
       TX packets:52 errors:0 dropped:0 overruns:0 carrier:0
# dati sul traffico dell'interfaccia: quanti pacchetti abbiamo spedito e ricevuto e
       collisions:0 txqueuelen:1000
# dati sul numero di collisioni avute sull'interfaccia (questo parametro fornisce
  una stima della congestione della rete)
       RX bytes:14162 (13.8 KiB) TX bytes:6744 (6.5 KiB)
# dati trasmessi e ricevuti
       Interrupt:9 Base address:0xfc00
# dati del dispositivo fisico (interrupt e indirizzo di I/O)                     44
Altro esempio: un'interfaccia point-to-point
• Interfacia ppp (point to point protocol)
• Al posto del dispositivo fisico abbiamo un software che
  gestisce il prtocollo per le comunicazioni via modem.

# ifconfig ppp0
ppp0 Link encap:Point-to-Point Protocol
     inet addr:151.30.166.243 P-t-P:151.6.143.246 Mask:255.255.255.255
     UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
     RX packets:8 errors:0 dropped:0 overruns:0 frame:0
     TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
     collisions:0 txqueuelen:3


     Quali sono le differenze con il caso precedente?

                                                                         45
Altro esempio: un'interfaccia point-to-point
# ifconfig ppp0
ppp0 Link encap:Point-to-Point Protocol
      inet addr:151.30.166.243 P-t-P:151.6.143.246 Mask:255.255.255.255
      UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1
      RX packets:8 errors:0 dropped:0 overruns:0 frame:0
      TX packets:7 errors:0 dropped:0 overruns:0 carrier:0
      collisions:0 txqueuelen:3
# l'interfaccia usa il protocollo PPP (Point-to-Point Protocol)
# L'altro punto della connessione ha indirizzo IP 151.6.143.246
# Il canale e' di tipo point to point invece che broadcast
# non c'e' bisogno del protocollo ARP per risolvere gli indirizzi fisici (NOARP)
  perche' non ci sono indirizzi MAC associati alla scheda


          ESERCIZIO: Guardiamo le interfacce eth0 e lo

                                                                                   46
Testing della rete:
 protocollo ARP




                      47
Protocollo ARP
• Le reti utilizzano gli indirizzi IP come elemento
  identificativo della sorgente dei dati
• Tuttavia a livello più basso le schede di rete
  ragionano in termini di indirizzi MAC
• Serve un sistema per stabilire una corrispondenza
  tra IP e MAC address
• Uso di protocolli appositi (ARP=Address Resolution
  Protocol) per interrogare le schede di rete remote al
  fine di conoscere l'indirizzo MAC corrispondente ad
  un dato indirizzo IP
• Uso di una cache per conservare le risoluzione ARP
  fatte di recente

                                                          48
Analisi della tabella ARP
• comando ARP consente di visualizzare il contenuto della
  cache ARP
• La cache ARP ci fornisce un'immagine dei nodi con cui la
  macchina ha interagito

riccardo@chrysophylax:~$ sudo arp         # altrimenti /usr/sbin/arp
Address                  HWtype Hwaddress                   Flags Mask   Iface
ns1.ing.unimo.it         ether   00:01:03:11:6B:63          C            eth0
info-gw.ing.unimo.it     ether   00:0A:57:05:A0:00          C            eth0
riccardo@chrysophylax:~$ ping brandy.ing.unimo.it
[...]
riccardo@chrysophylax:~$ sudo arp
Address                  HWtype Hwaddress                   Flags Mask   Iface
brandy.ing.unimo.it      ether   00:11:11:5A:EB:41          C            eth0
ns1.ing.unimo.it         ether   00:01:03:11:6B:63          C            eth0
info-gw.ing.unimo.it     ether   00:0A:57:05:A0:00          C            eth0
                                                                                 49
Analisi della tabella di routing
• Contiene le informazioni su come un pacchetto deve
  essere instradato in base alla sua destinazione.
• Struttura dati chiave usata a livello di rete
• Comando principale per conoscere il contenuto della
  tabella di routing:
• Comando route




                                                        50
Esempio di uso del comando route
$ /sbin/route
Kernel IP routing table
Destination     Gateway         Genmask      Flags Metric Ref   Use Iface
192.168.84.0    *               255.255.255.0 U   0   0         0   vmnet8
192.168.99.0    *               255.255.255.0 U   0   0         0   vmnet1
155.185.48.0    *               255.255.255.0 U   0   0         0   eth0
default         info-gw.ing.uni 0.0.0.0      UG 0     0         0   eth0
• 4 entries nella tabella
• Una entry per raggiungere ogni sottorete sui è connessa
  un'interfaccia di rete (prime 3 entry)
• Una entry per raggiungere “tutto il resto della rete”, ovvero il
  default gateway


                                                                             51
Analisi delle connessioni attive e delle porte
• Utilizzo dello strumento netstat
• Netstat consente di capire
   – Quali connessioni TCP sono attive
   – Quali porte sono usate da server che attendono
     connessioni
   – ...
• Noi vedremo solo alcune delle opzioni di netstat. Per
  uno studio più approfondito si rimanda alla man page del
  comando




                                                             52
Comando netstat
netstat [-tuelapn]
• -t mostra connessioni TCP
• -u mostra connessioni UDP
• NOTA: se non si mette ne -t ne -u netstat mostra tutte le
  socket, anche quelle di tipo unix (non IP)
• -e mostra informzioni aggiuntive
• -l mostra le socket in stato “listen”
• -a mostra le socket in qualsiasi stato esse siano
• NOTA: se non si mette ne -l ne -a vengono mostrate solo
  le socket relative a connessioni aperte
• -p mostra il programma associato a quelle socket
• -n mostra informazioni numeriche invece che simboliche
  per i numeri di porta
                                                              53
Esempio nell'uso del comando netstat
$ netstat -t
Active Internet connections (w/o servers)
Proto     Recv-Q Send-Q Local Address         Foreign Address State
tcp      0        0        localhost:38960    localhost:ipp     ESTABLISHED
tcp      1        0        localhost:42807    localhost:ipp     CLOSE_WAIT
tcp      0        0        localhost:ipp      localhost:38960   ESTABLISHED


$ netstat -ltu
Active Internet connections (only servers)
Proto     Recv-Q Send-Q Local Address         Foreign Address State
tcp          0    0        *:time             *:*               LISTEN
tcp          0    0        localhost:905      *:*               LISTEN
tcp       0       0        *:discard          *:*               LISTEN
tcp       0       0        localhost:mysql    *:*               LISTEN
udp      0        0        *:xdmcp            *:*
udp      0        0        localhost:sunrpc   *:*
                                                                              54
Intrpretazione dell'output
• Caso 1
 Proto Recv-Q Send-Q Local Address             Foreign Address State
 tcp     0    0      localhost:ipp             localhost:38960 ESTABLISHED

  – cosa significa la coppia localhost:ipp in local address?
  – cosa sinifica la coppia localhost:38960 in foreign address?
  – Cosa e' lo stato ESTABLISEHED?
• Caso 2
 tcp         0       0       *:time                   *:*           LISTEN
 tcp         0       0       localhost:mysql          *:*           LISTEN

  – Cosa sono gli * negli indirizzi IP
  – Cosa cambia se metto localhost al posto di *?
• Caso 3
 udp         0       0       *:xdmcp                  *:*

  – Perchè manca lo stato?
                                                                             55

More Related Content

What's hot

Sistemi Operativi: Struttura avanzata - Lezione 05
Sistemi Operativi: Struttura avanzata - Lezione 05Sistemi Operativi: Struttura avanzata - Lezione 05
Sistemi Operativi: Struttura avanzata - Lezione 05Majong DevJfu
 
Linux Kernel, driver e compilazione
Linux Kernel, driver e compilazioneLinux Kernel, driver e compilazione
Linux Kernel, driver e compilazioneFulvio Corno
 
Moduli del kernel - Boot del sistema
 Moduli del kernel - Boot del sistema Moduli del kernel - Boot del sistema
Moduli del kernel - Boot del sistemaFulvio Corno
 
Lug Roma3 Corso Linux Base
Lug Roma3   Corso Linux BaseLug Roma3   Corso Linux Base
Lug Roma3 Corso Linux Basefosk
 
Sistemi Operativi: CPU Scheduler - Lezione 09
Sistemi Operativi: CPU Scheduler - Lezione 09Sistemi Operativi: CPU Scheduler - Lezione 09
Sistemi Operativi: CPU Scheduler - Lezione 09Majong DevJfu
 
A short introduction about UML UserModeLinux and UML-Handler tool --- speech ...
A short introduction about UML UserModeLinux and UML-Handler tool --- speech ...A short introduction about UML UserModeLinux and UML-Handler tool --- speech ...
A short introduction about UML UserModeLinux and UML-Handler tool --- speech ...Massimiliano Leone
 
Lug Roma3 Corso Linux Avanzato
Lug Roma3   Corso Linux AvanzatoLug Roma3   Corso Linux Avanzato
Lug Roma3 Corso Linux Avanzatofosk
 
Cosa è Gnu/Linux - Breve storia - Concetti fondamentali
 Cosa è Gnu/Linux - Breve storia - Concetti fondamentali Cosa è Gnu/Linux - Breve storia - Concetti fondamentali
Cosa è Gnu/Linux - Breve storia - Concetti fondamentaliFulvio Corno
 
Sistemi Operativi: Componenti - Lezione 02
Sistemi Operativi: Componenti - Lezione 02Sistemi Operativi: Componenti - Lezione 02
Sistemi Operativi: Componenti - Lezione 02Majong DevJfu
 
PostgreSQL: Prima configurazione
PostgreSQL: Prima configurazionePostgreSQL: Prima configurazione
PostgreSQL: Prima configurazioneEnrico Pirozzi
 
Installare i server via rete con Cobbler
Installare i server via rete con CobblerInstallare i server via rete con Cobbler
Installare i server via rete con CobblerBabel
 
Gestione dischi - File system - LVM
 Gestione dischi - File system - LVM Gestione dischi - File system - LVM
Gestione dischi - File system - LVMFulvio Corno
 
Linux Day 2010: Virtualizzare con OpenVZ
Linux Day 2010: Virtualizzare con OpenVZLinux Day 2010: Virtualizzare con OpenVZ
Linux Day 2010: Virtualizzare con OpenVZAlessio Pennasilico
 
Installazione di koha_su_debian_v2_0_20_12_2014
Installazione di koha_su_debian_v2_0_20_12_2014Installazione di koha_su_debian_v2_0_20_12_2014
Installazione di koha_su_debian_v2_0_20_12_2014Joaquim Hangalo
 

What's hot (20)

Sistemi Operativi: Struttura avanzata - Lezione 05
Sistemi Operativi: Struttura avanzata - Lezione 05Sistemi Operativi: Struttura avanzata - Lezione 05
Sistemi Operativi: Struttura avanzata - Lezione 05
 
Linux Kernel, driver e compilazione
Linux Kernel, driver e compilazioneLinux Kernel, driver e compilazione
Linux Kernel, driver e compilazione
 
LTSP
LTSPLTSP
LTSP
 
Moduli del kernel - Boot del sistema
 Moduli del kernel - Boot del sistema Moduli del kernel - Boot del sistema
Moduli del kernel - Boot del sistema
 
Lug Roma3 Corso Linux Base
Lug Roma3   Corso Linux BaseLug Roma3   Corso Linux Base
Lug Roma3 Corso Linux Base
 
Sistemi Operativi: CPU Scheduler - Lezione 09
Sistemi Operativi: CPU Scheduler - Lezione 09Sistemi Operativi: CPU Scheduler - Lezione 09
Sistemi Operativi: CPU Scheduler - Lezione 09
 
J huery
J hueryJ huery
J huery
 
A short introduction about UML UserModeLinux and UML-Handler tool --- speech ...
A short introduction about UML UserModeLinux and UML-Handler tool --- speech ...A short introduction about UML UserModeLinux and UML-Handler tool --- speech ...
A short introduction about UML UserModeLinux and UML-Handler tool --- speech ...
 
Lug Roma3 Corso Linux Avanzato
Lug Roma3   Corso Linux AvanzatoLug Roma3   Corso Linux Avanzato
Lug Roma3 Corso Linux Avanzato
 
Cosa è Gnu/Linux - Breve storia - Concetti fondamentali
 Cosa è Gnu/Linux - Breve storia - Concetti fondamentali Cosa è Gnu/Linux - Breve storia - Concetti fondamentali
Cosa è Gnu/Linux - Breve storia - Concetti fondamentali
 
Openmoko
OpenmokoOpenmoko
Openmoko
 
Sistemi Operativi: Componenti - Lezione 02
Sistemi Operativi: Componenti - Lezione 02Sistemi Operativi: Componenti - Lezione 02
Sistemi Operativi: Componenti - Lezione 02
 
PostgreSQL : Tuning
PostgreSQL : TuningPostgreSQL : Tuning
PostgreSQL : Tuning
 
PostgreSQL: Prima configurazione
PostgreSQL: Prima configurazionePostgreSQL: Prima configurazione
PostgreSQL: Prima configurazione
 
Installare i server via rete con Cobbler
Installare i server via rete con CobblerInstallare i server via rete con Cobbler
Installare i server via rete con Cobbler
 
Progetto Netkit
Progetto NetkitProgetto Netkit
Progetto Netkit
 
Lezione tre
Lezione treLezione tre
Lezione tre
 
Gestione dischi - File system - LVM
 Gestione dischi - File system - LVM Gestione dischi - File system - LVM
Gestione dischi - File system - LVM
 
Linux Day 2010: Virtualizzare con OpenVZ
Linux Day 2010: Virtualizzare con OpenVZLinux Day 2010: Virtualizzare con OpenVZ
Linux Day 2010: Virtualizzare con OpenVZ
 
Installazione di koha_su_debian_v2_0_20_12_2014
Installazione di koha_su_debian_v2_0_20_12_2014Installazione di koha_su_debian_v2_0_20_12_2014
Installazione di koha_su_debian_v2_0_20_12_2014
 

Viewers also liked

Network and internet
Network and internetNetwork and internet
Network and internetmagaita89
 
Lezione 3 internet
Lezione 3 internetLezione 3 internet
Lezione 3 internetdpgiuseppe69
 
Discipline scientifiche e tic avanzato
Discipline  scientifiche e tic  avanzatoDiscipline  scientifiche e tic  avanzato
Discipline scientifiche e tic avanzatoVoglio 10
 
Posta Elettronica E Www
Posta Elettronica E WwwPosta Elettronica E Www
Posta Elettronica E Wwwbity1988
 
fisica22-3-2012
fisica22-3-2012fisica22-3-2012
fisica22-3-2012Voglio 10
 
Internet e Posta Elettronica
Internet e Posta ElettronicaInternet e Posta Elettronica
Internet e Posta Elettronicarcorra68
 
Reti, internet e strumenti
Reti, internet e strumentiReti, internet e strumenti
Reti, internet e strumentiGiovanni Mennea
 
Reti Informatiche
Reti InformaticheReti Informatiche
Reti Informatichebity1988
 
Reti e internet
Reti e internetReti e internet
Reti e internetyrcorr
 

Viewers also liked (14)

Network and internet
Network and internetNetwork and internet
Network and internet
 
Lezione 3 internet
Lezione 3 internetLezione 3 internet
Lezione 3 internet
 
Discipline scientifiche e tic avanzato
Discipline  scientifiche e tic  avanzatoDiscipline  scientifiche e tic  avanzato
Discipline scientifiche e tic avanzato
 
Posta Elettronica E Www
Posta Elettronica E WwwPosta Elettronica E Www
Posta Elettronica E Www
 
fisica22-3-2012
fisica22-3-2012fisica22-3-2012
fisica22-3-2012
 
Tic e didattica senza frontiere corso avanzato
Tic e didattica senza frontiere corso avanzatoTic e didattica senza frontiere corso avanzato
Tic e didattica senza frontiere corso avanzato
 
Reti Informatiche
Reti InformaticheReti Informatiche
Reti Informatiche
 
Internet e Posta Elettronica
Internet e Posta ElettronicaInternet e Posta Elettronica
Internet e Posta Elettronica
 
Reti, internet e strumenti
Reti, internet e strumentiReti, internet e strumenti
Reti, internet e strumenti
 
Tecnologie di rete
Tecnologie di reteTecnologie di rete
Tecnologie di rete
 
Tic e insegnamento
Tic e insegnamentoTic e insegnamento
Tic e insegnamento
 
Reti informatiche
Reti informaticheReti informatiche
Reti informatiche
 
Reti Informatiche
Reti InformaticheReti Informatiche
Reti Informatiche
 
Reti e internet
Reti e internetReti e internet
Reti e internet
 

Similar to From Scratch To Network - User mode linux

Traffic Shaping Su Linux
Traffic Shaping Su LinuxTraffic Shaping Su Linux
Traffic Shaping Su LinuxMajong DevJfu
 
A short introduction about traffic shaping and K-Shaper tool --- speech at Ha...
A short introduction about traffic shaping and K-Shaper tool --- speech at Ha...A short introduction about traffic shaping and K-Shaper tool --- speech at Ha...
A short introduction about traffic shaping and K-Shaper tool --- speech at Ha...Massimiliano Leone
 
TOR - The Onion Router
TOR - The Onion Router TOR - The Onion Router
TOR - The Onion Router Marcello Viti
 
Nagios in alta affidabilità con strumenti open source
Nagios in alta affidabilità con strumenti open sourceNagios in alta affidabilità con strumenti open source
Nagios in alta affidabilità con strumenti open sourceBabel
 
Open Source Parallel Computing ltcsp
Open Source Parallel Computing ltcspOpen Source Parallel Computing ltcsp
Open Source Parallel Computing ltcspLaura Camellini
 
Elementidi informatica
Elementidi informaticaElementidi informatica
Elementidi informaticagiu89
 
Pf e netfilter, analisi dei firewall open source
Pf e netfilter, analisi dei firewall open sourcePf e netfilter, analisi dei firewall open source
Pf e netfilter, analisi dei firewall open sourceGiovanni Bechis
 
Sistemi Operativi: Thread - Lezione 08
Sistemi Operativi: Thread - Lezione 08Sistemi Operativi: Thread - Lezione 08
Sistemi Operativi: Thread - Lezione 08Majong DevJfu
 
Virtualizzazione con Gnu/Linux e Xen
Virtualizzazione con Gnu/Linux e XenVirtualizzazione con Gnu/Linux e Xen
Virtualizzazione con Gnu/Linux e XenClaudio Cardinali
 
Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)
Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)
Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)Gabriele Guizzardi
 
Informatica- rete internet
Informatica- rete internet Informatica- rete internet
Informatica- rete internet Moira Catone
 
Clink
ClinkClink
Clinkh4f
 
MITM Attack with Patching Binaries on the Fly by Adding Shellcodes
MITM Attack with Patching Binaries on the Fly by Adding ShellcodesMITM Attack with Patching Binaries on the Fly by Adding Shellcodes
MITM Attack with Patching Binaries on the Fly by Adding ShellcodesGianluca Gabrielli
 
PIT2012: Workshop@UniNA - Compilazione del Kernel Linux
PIT2012: Workshop@UniNA - Compilazione del Kernel LinuxPIT2012: Workshop@UniNA - Compilazione del Kernel Linux
PIT2012: Workshop@UniNA - Compilazione del Kernel LinuxMarco Ferrigno
 
Cross compiler per uso domestico
Cross compiler per uso domesticoCross compiler per uso domestico
Cross compiler per uso domesticoBabel
 
Wan data link protocols
Wan data link protocolsWan data link protocols
Wan data link protocolss_Morpheus
 
RiminiLUG. Mini Corso su Linux p2: Networking & Terminal
RiminiLUG. Mini Corso su Linux p2: Networking & TerminalRiminiLUG. Mini Corso su Linux p2: Networking & Terminal
RiminiLUG. Mini Corso su Linux p2: Networking & TerminalAlessandro Carichini
 
Soluzioni per la difesa da attacchi DoS nelle reti SDN
Soluzioni per la difesa da attacchi DoS nelle reti SDNSoluzioni per la difesa da attacchi DoS nelle reti SDN
Soluzioni per la difesa da attacchi DoS nelle reti SDNMatteo D'Amore
 

Similar to From Scratch To Network - User mode linux (20)

Traffic Shaping Su Linux
Traffic Shaping Su LinuxTraffic Shaping Su Linux
Traffic Shaping Su Linux
 
A short introduction about traffic shaping and K-Shaper tool --- speech at Ha...
A short introduction about traffic shaping and K-Shaper tool --- speech at Ha...A short introduction about traffic shaping and K-Shaper tool --- speech at Ha...
A short introduction about traffic shaping and K-Shaper tool --- speech at Ha...
 
Cell Programming 1
Cell Programming 1Cell Programming 1
Cell Programming 1
 
TOR - The Onion Router
TOR - The Onion Router TOR - The Onion Router
TOR - The Onion Router
 
Nagios in alta affidabilità con strumenti open source
Nagios in alta affidabilità con strumenti open sourceNagios in alta affidabilità con strumenti open source
Nagios in alta affidabilità con strumenti open source
 
TCP IP
TCP IPTCP IP
TCP IP
 
Open Source Parallel Computing ltcsp
Open Source Parallel Computing ltcspOpen Source Parallel Computing ltcsp
Open Source Parallel Computing ltcsp
 
Elementidi informatica
Elementidi informaticaElementidi informatica
Elementidi informatica
 
Pf e netfilter, analisi dei firewall open source
Pf e netfilter, analisi dei firewall open sourcePf e netfilter, analisi dei firewall open source
Pf e netfilter, analisi dei firewall open source
 
Sistemi Operativi: Thread - Lezione 08
Sistemi Operativi: Thread - Lezione 08Sistemi Operativi: Thread - Lezione 08
Sistemi Operativi: Thread - Lezione 08
 
Virtualizzazione con Gnu/Linux e Xen
Virtualizzazione con Gnu/Linux e XenVirtualizzazione con Gnu/Linux e Xen
Virtualizzazione con Gnu/Linux e Xen
 
Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)
Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)
Raspberry pi per tutti (workshop presso Warehouse Coworking Pesaro)
 
Informatica- rete internet
Informatica- rete internet Informatica- rete internet
Informatica- rete internet
 
Clink
ClinkClink
Clink
 
MITM Attack with Patching Binaries on the Fly by Adding Shellcodes
MITM Attack with Patching Binaries on the Fly by Adding ShellcodesMITM Attack with Patching Binaries on the Fly by Adding Shellcodes
MITM Attack with Patching Binaries on the Fly by Adding Shellcodes
 
PIT2012: Workshop@UniNA - Compilazione del Kernel Linux
PIT2012: Workshop@UniNA - Compilazione del Kernel LinuxPIT2012: Workshop@UniNA - Compilazione del Kernel Linux
PIT2012: Workshop@UniNA - Compilazione del Kernel Linux
 
Cross compiler per uso domestico
Cross compiler per uso domesticoCross compiler per uso domestico
Cross compiler per uso domestico
 
Wan data link protocols
Wan data link protocolsWan data link protocols
Wan data link protocols
 
RiminiLUG. Mini Corso su Linux p2: Networking & Terminal
RiminiLUG. Mini Corso su Linux p2: Networking & TerminalRiminiLUG. Mini Corso su Linux p2: Networking & Terminal
RiminiLUG. Mini Corso su Linux p2: Networking & Terminal
 
Soluzioni per la difesa da attacchi DoS nelle reti SDN
Soluzioni per la difesa da attacchi DoS nelle reti SDNSoluzioni per la difesa da attacchi DoS nelle reti SDN
Soluzioni per la difesa da attacchi DoS nelle reti SDN
 

More from Majong DevJfu

9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA CloudMajong DevJfu
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processesMajong DevJfu
 
7 - Architetture Software - Software product line
7 - Architetture Software - Software product line7 - Architetture Software - Software product line
7 - Architetture Software - Software product lineMajong DevJfu
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformationMajong DevJfu
 
5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven ArchitectureMajong DevJfu
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture PortfolioMajong DevJfu
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural stylesMajong DevJfu
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architectureMajong DevJfu
 
1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a productMajong DevJfu
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural stylesMajong DevJfu
 

More from Majong DevJfu (20)

9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud9 - Architetture Software - SOA Cloud
9 - Architetture Software - SOA Cloud
 
8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes8 - Architetture Software - Architecture centric processes
8 - Architetture Software - Architecture centric processes
 
7 - Architetture Software - Software product line
7 - Architetture Software - Software product line7 - Architetture Software - Software product line
7 - Architetture Software - Software product line
 
6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation6 - Architetture Software - Model transformation
6 - Architetture Software - Model transformation
 
5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture5 - Architetture Software - Metamodelling and the Model Driven Architecture
5 - Architetture Software - Metamodelling and the Model Driven Architecture
 
4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio4 - Architetture Software - Architecture Portfolio
4 - Architetture Software - Architecture Portfolio
 
3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles3 - Architetture Software - Architectural styles
3 - Architetture Software - Architectural styles
 
2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture2 - Architetture Software - Software architecture
2 - Architetture Software - Software architecture
 
1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product1 - Architetture Software - Software as a product
1 - Architetture Software - Software as a product
 
10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles10 - Architetture Software - More architectural styles
10 - Architetture Software - More architectural styles
 
Uml3
Uml3Uml3
Uml3
 
Uml2
Uml2Uml2
Uml2
 
6
66
6
 
5
55
5
 
4 (uml basic)
4 (uml basic)4 (uml basic)
4 (uml basic)
 
3
33
3
 
2
22
2
 
1
11
1
 
Tmd template-sand
Tmd template-sandTmd template-sand
Tmd template-sand
 
26 standards
26 standards26 standards
26 standards
 

From Scratch To Network - User mode linux

  • 3. Scopo dell'esperienza (1) • Creare tre sistemi in rete come nella figura 3
  • 4. Scopo dell'esperienza (2) • Tre nodi – node1 – node2 – node3 • Due sottoreti – 192.168.1.0, legata a switch1 – 192.168.2.0, legata a switch2 – Per entrambe netmask=255.255.255.0 • Obiettivo: far comunicare i nodi attraverso le due sottoreti 4
  • 5. Presentazione dei componenti della rete (1) • switch1 – connesso alla socket unix /tmp/uml1.ctl • switch2 – connesso alla socket unix /tmp/uml2.ctl • node1 – 1 scheda di rete eth0 – indirizzo 192.168.1.1 – legata alla sottorete 192.168.1.0 – si collega allo switch switch1 • node3 – analogo a node 1 ma sulla sottorete 192.168.2.0 5
  • 6. Presentazione dei componenti della rete (2) • node2 – scheda di rete eth0  su sottorete 192.168.1.0  indirizzo 192.168.1.254  fa da gateway per quella sottorete  si collega a switch1 – scheda di rete eth1  eth1 su sottorete 192.168.2.0  indirizzo 192.168.2.254  fa da gateway per quella sottorete  si collega a switch2 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 debian5b.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. 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 8
  • 9. Secondo passo: lanciare i sistemi virtuali (1) • node1 $ ./linux ubd0=node1.cow,debian5b.ext2 eth0=daemon,,unix,/tmp/uml1.ctl interfaccia di rete: eth0 su • node3 switch1 $ ./linux (/tmp/uml1.ctl) ubd0=node3.cow,debian5b.ext2 eth0=daemon,,unix,/tmp/uml2.ctl interfaccia di rete: eth0 su switch2 (/tmp/uml2.ctl) 9
  • 10. Secondo passo: lanciare i sistemi virtuali (2) • node2 $ ./linux ubd0=node2.cow,debian5b.ext2 2 interfacce eth0=daemon,,unix,/tmp/uml1.ctl di rete eth1=daemon,,unix,/tmp/uml2.ctl • eth0 su switch1 • eth1 su switch2 • Ogni volta che si lancia un nodo dovrebbe apparire un'indicazione nelle schermate dove girano gli switch 10
  • 11. 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 11
  • 12. Terzo 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 12
  • 13. Terzo 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.1.1 node1 192.168.2.1 node3 192.168.1.254 node2 192.168.2.254 node2 13
  • 14. 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 14
  • 15. 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 15
  • 16. Esempio # File di configurazione per node1 # The loopback network interface auto lo iface lo inet loopback # Interface eth0 auto eth0 # iface eth0 inet dhcp iface eth0 inet static address 192.168.1.1 netmask 255.255.255.0 broadcast 192.168.1.255 network 192.168.1.0 gateway 192.168.1.254 16
  • 17. Quinto passo: mettere tutto insieme (1) • 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 node 1 riusciamo a fare ping su node 2 e viceversa – Stessa cosa tra node 3 e node 2 17
  • 18. Quinto passo: mettere tutto insieme (2) • Perché node 1 e 3 non comunicano? • Serve che node 2 diventi un vero router e passi il traffico tra le sue due interfacce (eth0 e eth1) # echo “1” >/proc/sys/net/ipv4/ip_forward • Ora dovremmo essere in grado di far comunicare anche node1 e node3 attraverso node2 18
  • 19. Configurare le interfacce “da uomini veri” • Comandi ifconfig e route • ifconfig <interface> <address> netmask <mask> up – Configura l'interfaccia di rete specificata con:  indirizzo IP  netmask – ifconfig consente di fare anche molte altre cose, verificare la manpage per vedere le altre opzioni – Ad ogni reboot il comando va di nuovo lanciato • route add default gw <gwaddr> – Inserisce l'indirizzo del gateway di default (come comando gateway in /etc/network/intefaces) 19
  • 20. Configurare le interfacce “al volo” • Nel nostro caso i comandi da lanciare sono: • Su node1 – ifconfig eth0 192.168.1.1 netmask 255.255.255.0 up – route add default gw 192.168.1.254 • Su node2 – ifconfig eth0 192.168.1.254 netmask 255.255.255.0 up – ifconfig eth1 192.168.2.254 netmask 255.255.255.0 up • Su node3 – ifconfig eth0 192.168.1.2 netmask 255.255.255.0 up – route add default gw 192.168.2.254 20
  • 21. Salvare il lavoro fatto • Alla fine di una sessione di lavoro può far comodo salvare le proprie immagini UML • Il meccanismo Copy on Write è molto pignolo sulla consistenza file cow/file ext2 – L'età dei file deve corrispondere – In caso contrario UML si rifiuterà all'avvio successivo di montare I dischi • Bisogna preservare le date di accesso – Opzione -p (preserve) del comando copy – Opzione --atime-preserve del comando tar • Esempio: – $ tar -cSzvf mie_immagini.tgz *.cow *.ext2 --atime-preserve 21
  • 23. Campo Time-To-Live del datagramma IP • Poiché le tabelle di instradamento dei router non sono sempre “corrette”, è possibile che un pacchetto entri in cicli da cui non riesca ad uscire • Per evitare congestioni dovute a situazioni di questo tipo, si fissa un limite al tempo entro cui un pacchetto può restare sulla rete. Nei pacchetti IP il campo Time-To-Live misura il tempo di vita rimanente al pacchetto. • Ciascun router deve decrementare il TTL di almeno una unità (RFC 1812). Nella pratica, i pacchetti raramente rimangono in un router per più di un secondo ed i router semplicemente decrementano di uno il TTL prima di instradare un pacchetto 23
  • 24. Campo Time-To-Live del datagramma IP (2) • Quindi, indipendentemente dal nome, il TTL conta il numero di hop che il pacchetto può fare prima di giungere a destinazione o di essere scartato. • I router controllano se il TTL è uguale a zero dopo il decremento, subito prima dell’inoltro. Se il destinatario del pacchetto è il router stesso questo non viene mai scartato (RFC 1812). 24
  • 25. Protocolli di supporto protocolli che  protocolli di supporto offrono servizi portano dati “di controllo” e non offrono direttamente servizi portano “dati utente” le loro pdu vengono la loro posizione nella pila è imbustate” in accordo indipendente da come vengono alla pila iso-osi imbustate le pdu esempi: esempi: 4 tcp 4 3 IP viaggia in pdu di ICMP IP protocolli livello 3 (ip) di routing 3 2 et ARP/RARP er n 1 eth 2 viaggiano in pdu di livello 2 1 25
  • 26. Testing della rete: protocollo ICMP 26
  • 27. Internet Control Message Protocol (ICMP) • Definito da IETF rfc792 (Settembre 1981) • Scopi – Notifica situazioni di errore o anomalie (congestione e controllo di flusso dei datagram) – Supporta “debugging” interattivo della rete ( determinare cammini circolari o eccessivamente lunghi, stimare il tempo di trasmissione da mittente a destinatario) • ICMP è funzionale ad IP e viaggia in pacchetti IP • ICMP porta informazioni di controllo e di notifica di errori. Non porta dati. I pacchetti ICMP viaggiano all’interno dei pacchetti IP. • Le funzionalità fornite da ICMP sono accessorie al livello 3, quindi ICMP è considerato un protocollo di livello 3. ICMP è sempre presente a fianco di IP. 27
  • 28. ICMP Message Types • Echo Request • Echo Response • Destination Unreachable • Time Exceeded • Redirect (route change) • altri ... 28
  • 29. Relazione tra ICMP e IP icmp hdr icmp data ip header ip data frame header frame data trailer regola 1: nessun messaggio ICMP viene generato a seguito ad eventuali errori rilevati su messaggi ICMP regola 2: se il pacchetto viene frammentato solo il primo frammento può generare messaggi di errore ICMP regola 3: i broadcast e multicast non generano ICMP 29
  • 30. Messaggi di informazione • ECHO_REQUEST e REPLY (richiesta di echo e relativa risposta) – controllo di raggiungibilità di un host • TIMESTAMP e TIMESTAMP_REPLY come ECHO più informazioni su orario invio – misura di velocità del collegamento – sincronizzazione (approssimativa) dell’ora di sistema • REDIRECT Un router intermedio si accorge che il percorso che il datgram sta seguendo non è ottimale: gli dice di cambiare percorso, ma nel frattempo inoltra il datagram originale verso la sua destinazione 30
  • 31. Messaggi di errore Questi messaggi di errore seguono un pacchetto scartato: • TIME_ EXCEEDED (tempo scaduto) – il pacchetto ha TTL=0 • DESTINATION_UNREACHABLE – un gateway vede la rete destinazione a distanza infinita (net unreachable) – l'host non risponde ad una chiamata ARP (host unreachable) – l'host destinazione non conosce il protocollo nel pacchetto (protocol unreachable) – il pacchetto non può essere frammentato (fragmentation needed and DF set) 31
  • 32. Messaggi di errore (2) • PARAMETER_PROBLEM (problema con i parametri). – Il gateway non riesce ad interpretare il pacchetto ricevuto a causa di un valore errato, possibile errore software • SOURCE_QUENCH obsoleto (rallentamento, soffocamento della sorgente) – congestione di un gateway intermedio – host destinazione lento nell’acquisizione Far riferimento alla RFC 792 per ulteriori approfondimenti in particolare alle sezioni “description” per ciasun messaggio. 32
  • 33. ping • Invia una successione di pacchetti ICMP ECHO_REQUEST e attende la relativa risposta ECHO_REPLY • Misura il tempo che intercorre tra l’invio e la ricezione di ogni pacchetto e riporta semplici statistiche • Il comando ping fa parte della dotazione standard di tutte le macchine sia Unix che Windows anche se con sintassi leggermente diverse. • L’indirizzo localhost viene risolto in un indirizzo IP normale che dall’output è 127.0.0.1 • Ulteriori informazioni: manuale in linea di ping (sui sistemi Unix: man ping) 33
  • 34. ping Esempio di ping con pacchetti persi <utente@pascal ~> ping wilma.cs.brown.edu PING wilma.cs.brown.edu: (128.148.19.15): 56 data bytes 64 bytes from 128.148.19.15: icmp_seq=1 ttl=239 time=1736 ms 64 bytes from 128.148.19.15: icmp_seq=2 ttl=239 time=1507 ms 64 bytes from 128.148.19.15: icmp_seq=6 ttl=239 time=1209 ms 64 bytes from 128.148.19.15: icmp_seq=8 ttl=239 time=762 ms 64 bytes from 128.148.19.15: icmp_seq=9 ttl=239 time=1235 ms 64 bytes from 128.148.19.15: icmp_seq=11 ttl=239 time=1566 ms 64 bytes from 128.148.19.15: icmp_seq=13 ttl=239 time=586 ms 64 bytes from 128.148.19.15: icmp_seq=14 ttl=239 time=352 ms 64 bytes from 128.148.19.15: icmp_seq=22 ttl=239 time=910 ms ^C ----wilma.cs.brown.edu PING Statistics---- 29 packets transmitted, 9 packets received, 68% packet loss round-trip min/avg/max = 352/1095/1736 ms • <utente@pascal ~> 34
  • 35. traceroute • Il comando traceroute permette di capire per quali router passano i pacchetti IP quando sono diretti ad una data destinazione. • traceroute è compreso nella dotazione standard di tutte i sistemi Unix. • Nei sistemi Windows il comando ha il nome tracert e sintassi leggermente differente. • traceroute trova utilizzo anche nell’ambito dell’amministrazione della rete per isolare guasti o incoerenze nelle tabelle di routing. • Dal punto di vista didattico la sua utilità è di mostrare il percorso dei pacchetti svelando un po’ della topologia nascosta di Internet. 35
  • 36. traceroute <utente@pascal ~>traceroute wilma.cs.brown.edu traceroute to wilma.cs.brown.edu (128.148.19.15), 30 hops max, 40 byte packets 1 gw1.fis.uniroma3.it (193.204.160.1) 3 ms 3 ms 2 ms 2 141.108.132.1 (141.108.132.1) 832 ms 967 ms 402 ms 3 mp4rm1.roma1.infn.it (141.108.127.6) 267 ms 106 ms 417 ms 4 atm-garrten-rm.infn.it (192.135.31.5) 100 ms 939 ms 839 ms 5 cnafint-ten34.infn.it (192.135.34.21) 1100 ms * 1056 ms 6 mix-serial3-4.Washington.mci.net (204.189.152.161) 618 ms * * 7 * core1-fddi-0.Washington.mci.net (204.70.2.1) 1249 ms * 8 *** 9 wtn-bbn-nap.Washington.mci.net (206.157.77.218) 766 ms * * 10 * * chicago1-br1.bbnplanet.net (4.0.1.5) 857 ms 11 * * * 12 * boston1-br1.bbnplanet.net (4.0.2.245) 846 ms * 13 boston1-br2.bbnplanet.net (4.0.2.250) 680 ms * * 14 * * boston1-mr4.bbnplanet.net (4.0.44.19) 648 ms 15 providence-cr1.bbnplanet.net (4.0.45.106) 416 ms providence-cr1.bbnplanet.net (4.0.45.102) 1298 ms * 16 brown.bbnplanet.net (131.192.32.2) 1444 ms 615 ms 802 ms 17 * * * 18 * ftp.cs.brown.edu (128.148.19.15) 834 ms 435 ms <utente@pascal ~> 36
  • 37. Esempio: traceroute • Si ipotizzi di inviare un pacchetto, ad esempio un ECHO_REQUEST con TTL=n “basso”. Se il destinatario è troppo lontano l’ultimo router risponderà con un TIME_EXCEEDED, se il destinatario risponde con ECHO_REPLY allora è raggiungibile con n hop • In realtà alcuni traceroute non utilizzano gli ECHO_REQUEST se non gli viene chiesto esplicitamente ma altri protocolli (UDP). Inoltre manda 3 pacchetti per ogni valore di n. Se non si osserva un TIME_EXCEEDED entro un tempo prestabilito traceroute visualizza un asterisco “*” • Il manuale in linea di traceroute è estremamente interessante e mostra anche esempi di strani comportamenti da parte dei router 37
  • 38. ttl=1 Esempio: traceroute (2) router1 time exceeded (mitt: router1) router1 ttl=2 ttl=1 router1 router2 time exceeded (mitt: router2) router1 router2 38
  • 39. Esempio: traceroute (2) ttl=3 ttl=1 ttl=2 router1 router2 router1 router2 Il messaggio di risposta dipende dal messaggio inviato 39
  • 40. Strumenti di analisi della rete 40
  • 41. Comando ifconfig • Ifconfig è il comando principe per l'interazione con le interfacce di rete • Esso consente di: – controllare i dati di un'interfaccia di rete – modificare lo stato di un'interfaccia • In questa parte ci si concentra sull'uso di ifconfig per leggere lo stato di un'interfaccia di rete 41
  • 42. Uso di ifconfig: un esempio pratico # ifconfig eth0 eth0 Link encap:Ethernet HWaddr 00:10:5A:9D:88:AF inet addr:192.168.1.3 Bcast:192.168.1.255 Mask:255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:92 errors:0 dropped:0 overruns:0 frame:0 TX packets:52 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:14162 (13.8 KiB) TX bytes:6744 (6.5 KiB) Interrupt:9 Base address:0xfc00 42
  • 43. Analisi di un'interfaccia ethernet # ifconfig eth0 #voglio tutte le informazioni sulla interfaccia di rete eth0 # se non sono root dovrò inserire il percorso completo /sbin/ifconfig eth0 Link encap:Ethernet HWaddr 00:10:5A:9D:88:AF # eth0 e' un'interfaccia di tipo ethernet # il suo indirizzo MAC è 00:10:5A:9D:88:AF inet addr:192.168.1.3 Bcast:192.168.1.255 Mask:255.255.255.0 # l'interfaccia è configurata con un indirizzo IP, ovvero 192.168.1.3 # l'indirizzo IP usato per i broadcast è 192.168.1.255 # la netmask vale 255.255.255.0 UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 # i flag dell'interfaccia sono # UP: l'interfaccia è configurata # BROADCAST: si usa un canale broadcast # RUNNING: l'interfaccia è attiva 43
  • 44. Analisi di un'interfaccia ethernet (2) UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 # MULTICAST: l'interfaccia può essere usata per il multicast # MTU: dimensione massima di un frame trasmissibile con questa interfaccia # Metric: parametro usato per calcolare la lunghezza dei cammini che attraversano questa interfaccia (parametro usato nei calcoli per il routing) RX packets:92 errors:0 dropped:0 overruns:0 frame:0 TX packets:52 errors:0 dropped:0 overruns:0 carrier:0 # dati sul traffico dell'interfaccia: quanti pacchetti abbiamo spedito e ricevuto e collisions:0 txqueuelen:1000 # dati sul numero di collisioni avute sull'interfaccia (questo parametro fornisce una stima della congestione della rete) RX bytes:14162 (13.8 KiB) TX bytes:6744 (6.5 KiB) # dati trasmessi e ricevuti Interrupt:9 Base address:0xfc00 # dati del dispositivo fisico (interrupt e indirizzo di I/O) 44
  • 45. Altro esempio: un'interfaccia point-to-point • Interfacia ppp (point to point protocol) • Al posto del dispositivo fisico abbiamo un software che gestisce il prtocollo per le comunicazioni via modem. # ifconfig ppp0 ppp0 Link encap:Point-to-Point Protocol inet addr:151.30.166.243 P-t-P:151.6.143.246 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:8 errors:0 dropped:0 overruns:0 frame:0 TX packets:7 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 Quali sono le differenze con il caso precedente? 45
  • 46. Altro esempio: un'interfaccia point-to-point # ifconfig ppp0 ppp0 Link encap:Point-to-Point Protocol inet addr:151.30.166.243 P-t-P:151.6.143.246 Mask:255.255.255.255 UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1 RX packets:8 errors:0 dropped:0 overruns:0 frame:0 TX packets:7 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:3 # l'interfaccia usa il protocollo PPP (Point-to-Point Protocol) # L'altro punto della connessione ha indirizzo IP 151.6.143.246 # Il canale e' di tipo point to point invece che broadcast # non c'e' bisogno del protocollo ARP per risolvere gli indirizzi fisici (NOARP) perche' non ci sono indirizzi MAC associati alla scheda ESERCIZIO: Guardiamo le interfacce eth0 e lo 46
  • 47. Testing della rete: protocollo ARP 47
  • 48. Protocollo ARP • Le reti utilizzano gli indirizzi IP come elemento identificativo della sorgente dei dati • Tuttavia a livello più basso le schede di rete ragionano in termini di indirizzi MAC • Serve un sistema per stabilire una corrispondenza tra IP e MAC address • Uso di protocolli appositi (ARP=Address Resolution Protocol) per interrogare le schede di rete remote al fine di conoscere l'indirizzo MAC corrispondente ad un dato indirizzo IP • Uso di una cache per conservare le risoluzione ARP fatte di recente 48
  • 49. Analisi della tabella ARP • comando ARP consente di visualizzare il contenuto della cache ARP • La cache ARP ci fornisce un'immagine dei nodi con cui la macchina ha interagito riccardo@chrysophylax:~$ sudo arp # altrimenti /usr/sbin/arp Address HWtype Hwaddress Flags Mask Iface ns1.ing.unimo.it ether 00:01:03:11:6B:63 C eth0 info-gw.ing.unimo.it ether 00:0A:57:05:A0:00 C eth0 riccardo@chrysophylax:~$ ping brandy.ing.unimo.it [...] riccardo@chrysophylax:~$ sudo arp Address HWtype Hwaddress Flags Mask Iface brandy.ing.unimo.it ether 00:11:11:5A:EB:41 C eth0 ns1.ing.unimo.it ether 00:01:03:11:6B:63 C eth0 info-gw.ing.unimo.it ether 00:0A:57:05:A0:00 C eth0 49
  • 50. Analisi della tabella di routing • Contiene le informazioni su come un pacchetto deve essere instradato in base alla sua destinazione. • Struttura dati chiave usata a livello di rete • Comando principale per conoscere il contenuto della tabella di routing: • Comando route 50
  • 51. Esempio di uso del comando route $ /sbin/route Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface 192.168.84.0 * 255.255.255.0 U 0 0 0 vmnet8 192.168.99.0 * 255.255.255.0 U 0 0 0 vmnet1 155.185.48.0 * 255.255.255.0 U 0 0 0 eth0 default info-gw.ing.uni 0.0.0.0 UG 0 0 0 eth0 • 4 entries nella tabella • Una entry per raggiungere ogni sottorete sui è connessa un'interfaccia di rete (prime 3 entry) • Una entry per raggiungere “tutto il resto della rete”, ovvero il default gateway 51
  • 52. Analisi delle connessioni attive e delle porte • Utilizzo dello strumento netstat • Netstat consente di capire – Quali connessioni TCP sono attive – Quali porte sono usate da server che attendono connessioni – ... • Noi vedremo solo alcune delle opzioni di netstat. Per uno studio più approfondito si rimanda alla man page del comando 52
  • 53. Comando netstat netstat [-tuelapn] • -t mostra connessioni TCP • -u mostra connessioni UDP • NOTA: se non si mette ne -t ne -u netstat mostra tutte le socket, anche quelle di tipo unix (non IP) • -e mostra informzioni aggiuntive • -l mostra le socket in stato “listen” • -a mostra le socket in qualsiasi stato esse siano • NOTA: se non si mette ne -l ne -a vengono mostrate solo le socket relative a connessioni aperte • -p mostra il programma associato a quelle socket • -n mostra informazioni numeriche invece che simboliche per i numeri di porta 53
  • 54. Esempio nell'uso del comando netstat $ netstat -t Active Internet connections (w/o servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost:38960 localhost:ipp ESTABLISHED tcp 1 0 localhost:42807 localhost:ipp CLOSE_WAIT tcp 0 0 localhost:ipp localhost:38960 ESTABLISHED $ netstat -ltu Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 *:time *:* LISTEN tcp 0 0 localhost:905 *:* LISTEN tcp 0 0 *:discard *:* LISTEN tcp 0 0 localhost:mysql *:* LISTEN udp 0 0 *:xdmcp *:* udp 0 0 localhost:sunrpc *:* 54
  • 55. Intrpretazione dell'output • Caso 1 Proto Recv-Q Send-Q Local Address Foreign Address State tcp 0 0 localhost:ipp localhost:38960 ESTABLISHED – cosa significa la coppia localhost:ipp in local address? – cosa sinifica la coppia localhost:38960 in foreign address? – Cosa e' lo stato ESTABLISEHED? • Caso 2 tcp 0 0 *:time *:* LISTEN tcp 0 0 localhost:mysql *:* LISTEN – Cosa sono gli * negli indirizzi IP – Cosa cambia se metto localhost al posto di *? • Caso 3 udp 0 0 *:xdmcp *:* – Perchè manca lo stato? 55