4 --------------------------------------------------
5 Appunti e note sparse per corsi di reti su Linux
6 --------------------------------------------------
15 Generato con: http://docutils.sourceforge.net/rst.html
20 Appunti ed esempi sull'utilizzo di alcuni comandi comuni.
25 Vediamo come leggere l'output del comando *ls*::
29 drwxr-xr-x 2 andrea staff 4096 2008-09-16 22:05 cartella
30 | | | | | | | Nome file
31 | | | | | | Data di creazione e ora
32 | | | | | inodes (non e' la dimensione del file)
41 Acronimo per: User - Groups Others
44 === ========== =====================================
46 ====================================================
48 ----------------------------------------------------
49 r readable Il file e' leggibile
50 w writable Il file e' scrivibile e modificabile
51 x excecute Il file e' eseguibile
52 === ========== =====================================
55 ~~~~~~~~~~~~~~~~~~~~~~~
57 Il primo carattere indica la natura o il tipo del *file*::
59 -rw-r--r-- 1 andrea andrea 26 2008-09-16 22:03 dns.conf
60 lrw-r--r-- 1 andrea andrea 0 2008-09-16 22:07 link_dns
61 drwxr-xr-x 1 andrea andrea 77352 2008-09-16 21:47 cartella
72 Manipolare i permessi dei file
73 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
76 Cambia i parametri *rwx* dell'oggetto
79 Cambia il proprietario
84 Per la sintassi e le opzioni vedere le pagine ``man`` dei singoli comandi.
88 =======================
90 Breve lista delle opzioni del comando ``tar`` (archiviazione dei files)
92 -c nome_arch creare un archivio con nome ``nome_arch``
93 -t visualizzare il contenuto di un archivio
94 -x estrarre da un archivio
96 -z compresso con gunzip
97 -j compresso con bzip2
99 Esempi: creare un archivio
100 ------------------------------
102 tar -cf nome_archivio.tar cartella_da_archiviare
103 crea un archivio nome_archivio.tar dalla cartella cartella_da_archiviare
106 tar -zcf nome_rchivio.tar.gz cartella_da_archiviare
107 crea un archivio compresso con gunzip nome_rchivio.tar.gz dalla cartella cartella_da_archiviare
110 tar -jcf nome_archivio.tb2 cartella_da_archiviare
111 crea un archivio compresso con bzip2 nome_rchivio.tar.gz dalla cartella cartella_da_archiviare
113 Esempi: visualizzare il contenuto di un archivio
114 --------------------------------------------------
116 tar -tf nome_archivio.tar
117 Per visualizzare e basta il contenuto di un archivio
120 Esempi: esplodere un archivio
121 -------------------------------
123 tar -xf nome_archivio.tb2
126 tar -zxf nome_archivio.tb2
127 Esplode un archivio compresso con gunzip
129 tar -jxf nome_archivio.tb2
130 Esplode un archivio compresso con bzip2
133 Navigazione nei filesystems virtuali: proc e sys
134 =================================================
136 Per meglio comprendere la natura dei filesystems virtuali **proc** e **sys** possiamo provare a muoverci al loro interno, vedere alcuni degli esempi piu' interessanti e provare anche a intervenire su di essi.
138 .. DANGER:: Non sparate dei valori a *caso* su oggetti come ventole di raffreddamento: potreste cuocere le CPU e provocare danni irreparabili (quindi niente echo > ...)
147 56 cat /sys/devices/system/cpu/cpu0/cpuidle/state0
148 57 cat /sys/devices/system/cpu/cpu0/cpuidle/state0/usage
149 58 cat /sys/devices/system/cpu/cpu0/cpuidle/state0/power
150 59 cat /sys/devices/system/cpu/cpu0/crash_notes
151 60 cat /sys/devices/system/cpu/cpu0/topology/core_id
152 61 cat /sys/devices/system/clocksource/clocksource0/available_clocksource
153 62 cat /sys/devices/system/clocksource/clocksource0/current_clocksource
155 64 cat /sys/class/thermal/cooling_device
156 65 cat /sys/class/thermal/cooling_device0/cur_state
157 66 cat /sys/class/thermal/cooling_device0/cur_state
158 67 echo "1" > /sys/class/thermal/cooling_device0/cur_state
159 68 cat /sys/class/thermal/cooling_device0/cur_state
160 69 echo "0" > /sys/class/thermal/cooling_device0/cur_state
161 70 echo "0" > /sys/class/thermal/cooling_device1/cur_state
162 71 echo "1" > /sys/class/thermal/cooling_device1/cur_state
163 72 cat /sys/class/thermal/cooling_device1/cur_state
164 73 echo "0" > /sys/class/thermal/cooling_device1/cur_state
165 74 echo "0" > /sys/class/thermal/cooling_device1/max_state
166 75 cat /sys/class/thermal/cooling_device1/max_state
167 76 echo "7" > /sys/class/thermal/cooling_device1/max_state
168 77 echo "7" > /sys/class/thermal/cooling_device1/cur_state
169 78 echo "7" > /sys/class/thermal/cooling_device0/
170 79 echo "7" > /sys/class/thermal/cooling_device0/max_state
171 80 cat /sys/class/thermal/cooling_device0/max_state
172 81 echo "7" > /sys/class/thermal/cooling_device0/cur_state
173 82 cat /sys/class/thermal/cooling_device0/cur_state
174 83 echo "0" > /sys/class/thermal/cooling_device0/cur_state
175 84 echo "0" > /sys/class/thermal/cooling_device1/cur_state
176 85* cat /sys/class/thermal/cooling_device1/
177 86 cat /sys/class/thermal/cooling_device1/cur_state
178 87 cat /sys/class/thermal/cooling_device0/cur_state
179 88 cat /sys/class/hwmon/hwmon0/fan1_pwm
180 89 cat /sys/class/net/eth0/address
181 90 cat /sys/class/net/eth0/broadcast
182 91 cat /sys/class/net/eth0/features
183 92 cat /sys/class/net/eth0/flags
184 93 cat /sys/class/net/eth0/mtu
185 94 cat /sys/class/net/eth0/statistics/rx_errors
186 95 cat /sys/class/net/eth0/statistics/rx_bytes
188 97 history > proc_nav
193 Il modello OSI: 7 livelli.
194 Il modello TCP/IP: 4 livelli.
196 Link ai livelli dell'OSI:
197 - http://it.wikipedia.org/wiki/Open_Systems_Interconnection
198 - http://upload.wikimedia.org/wikipedia/commons/5/56/Rm-osi_parallel.png
200 Comparazione livelli OSI / TCP/IP::
203 ------------- ------------
204 Applicazione Applicazione
207 ------------- ------------
209 ------------- ------------
211 ------------- ------------
214 ------------- ------------
216 Il modello TCP/IP e' quindi una semplificazione del modello OSI.
218 Per una descrizione dei vari livelli del TCP/IP vedere:
219 - http://www.tutorialpc.it/tcp1.asp
220 - http://www.docmirror.net/it/linux/howto/misc/NET-3-HOWTO/
221 - http://it.wikipedia.org/wiki/TCP/IP
226 Il livello "Network" e' quello che si occupa di far funzionare l'hardware di rete. E' quindi dipendente dalla macchina su cui viene implementato lo stack TCP/IP.
232 Alias: secondo livello...
234 il livello internet si occupa di indirizzamenti, di suddivisione in frammenti, e instradamenti in TCP/IP.
235 I protocolli che lavorano a questo livello,che è internet, interagiscono con i livelli immediatamente superiore ed inferiore.
237 I protocolli che lavorano a questo livello sono:
246 - http://www.tutorialpc.it/tcp1.asp
247 - http://www.docmirror.net/it/linux/howto/misc/NET-3-HOWTO/
248 - http://it.wikipedia.org/wiki/TCP/IP
251 ------------------------
253 Documentazione su IP:
255 - http://www.freesoft.org/CIE/Course/Section3/7.htm
257 - Consigliato: Manuale del TCP/IP dell'Apogeo.
258 - http://www.disi.unige.it/person/BelleG/Reti99/Appunti/Appunti1/Cap6c/Cap6c.html
259 Tutorial in italiano relativamente semplice
265 Analizziamo gli indirizzi IP e le sotto reti
267 Consideriamo gli indirizzi IP della classe C::
269 212.22.136.0 (0 mi permette di identificare la rete)
271 andrea 212.22.136.177 11010100.00010110.10001000. 10110001
272 giulio 212.22.136.178 11010100.00010110.10001000. 10110010
273 papo 212.22.136.166 11010100.00010110.10001000. 10100110
277 Be'... Che la parte relativa alla rete ovviamente non cambia::
279 11010100.00010110.10001000. che corrisponde a 212.22.136.
282 Questa e' la sotto rete ::
290 Come calcola il computer le sotto reti per il routing dei pacchetti?
292 Facendo la MESSA in AND dell'host0/rete host1/rete
294 Proviamo con andrea e papo::
296 andrea IP 11010100.00010110.10001000. 10110001
297 andrea rete 11111111.11111111.11111111. 00000000
298 risultato andrea: 11010100.00010110.10001000
300 papo IP 11010100.00010110.10001000. 10100110
301 papo rete 11111111.11111111.11111111. 00000000
302 risultato papo 11010100.00010110.10001000
304 Confrontiamoli: 11010100.00010110.10001000
305 11010100.00010110.10001000
307 Sono uguali -> stessa rete
313 link a cavi coassiali / thin :
315 - http://www.dia.uniroma3.it/~necci/coax_s.htm
317 - Link ai vari tipi di cavi ethernet UTP twisted pairs
318 http://www.lineaedp.it/01NET/HP/0,1254,1_ART_78376,00.html?lw=10001
322 Riferimenti per cavi / ethernet ecc.:
323 ------------------------------------------
325 - http://it.wikipedia.org/wiki/IEEE_802.3
326 - http://it.wikipedia.org/wiki/Fast_Ethernet
327 - http://it.wikipedia.org/wiki/Fast_Ethernet
328 - http://it.wikipedia.org/wiki/10Base5
336 - http://it.wikipedia.org/wiki/Wifi
337 - http://it.wikipedia.org/wiki/IEEE_802.11
340 http://en.wikipedia.org/wiki/IEEE_802.11#802.11b
346 - http://it.wikipedia.org/wiki/WiMAX
351 - http://it.wikipedia.org/wiki/Hyperlan
354 Breve sommario dei comandi relativi al networking
355 ====================================================
360 Configurare un device di rete:
362 # ifconfig eth0 192.168.0.1
363 # ifconfig eth0 down # abbatte una scheda di rete
364 # ifconfig eth0:1 192.168.0.1 # abilita una scheda di rete virtuale
365 # ifconfig eth0:1 192.168.1.1 # abilita una scheda di rete VIRTUALE
370 Test della connessione tra due hosts (ICMP)::
372 ping 192.168.0.254 # ping all'infinito un indirizzo IP, per fermarlo: CTR + c
373 ping -c 2 192.168.0.254 # manda solo due pacchetti poi si interrompe
378 Modifica delle tabelle di instradamento / routing::
380 # route -n #visualizza la tabella di routing attuale
381 # route add default gw 192.168.0.254 #aggiunge un gateway di default
382 # route add -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.254
383 # aggiunge la rotta per una rete
384 # route add -host 192.168.1.2 gw 192.168.0.254
385 # aggiunge la rotta per un singolo host
386 # route del ... # elimina una rotta precedentemente attivata
387 es: # route del -net 192.168.1.0 netmask 255.255.255.0 gw 192.168.0.254
392 Ricerca dei passaggi (hops) attraverso i quali comunicano due hosts::
394 traceroute 192.168.0.254 # visualizza gli hops frapposti tra noi e un IP
400 Risoluzione di nomi di dominio / IP::
402 $ host bender.piffa.net # risolve l'indirizzo IP di bender.piffa.net
403 $ host 212.22.136.248 # risoluzione inversa di un indirizzo IP
408 Per poter utilizzare le funzionalita' di routing del kernel di Linux
409 e' necessario abilitare l'ip-forwarding dello stesso kernel
412 Si puo' verificare se l'instradamento (IP forwarding) e' abilitato
413 leggendo in /proc il valore di::
415 $ cat /proc/sys/net/ipv4/ip_forward
417 Si puo' scrivere un valore diverso con echo e il re-indirizzamento dell'output::
419 # echo "1" > /proc/sys/net/ipv4/ip_forward
422 Vedi pag: 295 del manuale cartaceo
427 - http://openmaniak.com/tcpdump.php
429 Analizzatore di traffico a riga di comando::
432 $ tcpdump -q # Output semplificato, usare -v -vv per maggior dettaglio
433 $ tcpdump udp # Per catturare il traffico UDP
434 $ tcpdump port http # Per catturare il traffico sulla porta 80 (http)
435 $ tcpdump src 192.168.1.100 and dst 192.168.1.2 and port ftp
436 # Per catturare il traffico FTP tra src (sorgente) e dst (destinazione)
438 $ tcpdump -A # Per visualizzare il contenuto dei pacchetti intercettati
444 Breve lista dei comandi per una sessione FTP
445 (non usate FTP, usate SFTP...)::
447 ftp nome_host # stabilire la connessione
448 # poi chiedera' la password dell'utente
449 # se avete sbagliato utente: user
451 help # Lista dei comandi disponibili
452 help [nome_comando] # cosa fa quel comando
453 put # per caricare un file
454 get # per scaricare un file
455 ls # lo sapete cosa fa...
456 cd # fa il cambio directory
457 lcd # cambio directory in LOCALE
458 mput/mget # per lavorare su file multipli
459 prompt # per uscire dalla modalita' interattiva
460 # (non vi chiede conferma di ogni singola operazione
461 # sul singolo file...)
462 binary # entra in modalita' trasferimento binario
463 ascii # entra in modalita' trasferimento ascii
464 bye # per chiudere la sessione
468 sftp funziona _circa_ con gli stessi comandi.
473 Mancano (non inseriti in questo file ma presenti come frammenti di testo semplice):
477 - bsd gestione pacchetti