Linux e le reti – 1
Tiziano Ragazzi
Classificazione delle reti in base alle
dimensioni
 PAN – Personal Area Network: reti private formate da pochi
dispositivi che comunicano tra loro con tecnologie a corto
raggio;
 LAN - Local Area Network o reti locali: tipicamente sono reti
private per l'interconnessione di computer ed altri apparati
appartenenti ad un unico ente o azienda;
 MAN - Metropolitan Area Network o reti metropolitane:
possono essere reti private o pubbliche e fornire servizi di
vario tipo in ambito urbano, dall'interconnessione di
computer, alla telefonia, alla TV via cavo;
 WAN - Wide Area Network o reti geografiche: in passato
erano le reti dei grandi gestori tipicamente pubblici che
fornivano servizi e connettività a livello nazionale; oggi, dopo
la deregulation, possono anche appartenere a privati ed
offrire connettività a livello mondiale.
Classificazione delle reti in base alle
dimensioni
 La differenza tra questi tre tipi di reti in termini
di distanza coperta è rappresentata nella tabella
seguente (puramente indicativa):
Area coperta
Distanza
Tipo di rete
Stanza
10 m
PAN o LAN
Edificio
100 m
LAN
Campus
1 km
LAN
Città
10 km
MAN
Area metropolitana
100 km
MAN
Stato, continente,
pianeta, …
>= 1000 km
WAN
Un esempio
L’importanza di un sistema “aperto”
 Cioè qualunque calcolatore dev’essere in
grado di comunicare con qualunque altro
indipendentemente dalla sua architettura e
dal suo costruttore. Un sistema aperto ha
infatti alcuni importanti vantaggi:
 favorire la diffusione delle reti di calcolatori
tramite l'interconnessione delle reti
esistenti;
 rendere possibile agli utenti e ai costruttori
di reti approvvigionarsi da qualunque
produttore, favorendo la concorrenza.
Per realizzare reti di calcolatori che
siano sistemi aperti è necessario:
 Delineare un modello di riferimento per la
comunicazione fra calcolatori che sia base
comune di questi sistemi;
 giungere alla definizione di standard
universalmente accettati che specifichino in
modo preciso le funzioni che sono
necessarie per realizzare la comunicazione.
Il perché dei “modelli”
 La comunicazione fra calcolatori di tipo
diverso è in generale un problema
abbastanza complesso. Per semplificare la
progettazione dal punto di vista tecnico di
una rete di calcolatori risulta quindi
conveniente suddividere il problema
complessivo in una serie di sottoproblemi
ben confinati, chiarendo poi come essi
debbano interagire.
Modello ISO-OSI
I 7 strati del modello ISO-OSI







strato fisico; ha come compito principale effettuare il
trasferimento fisico delle cifre binarie tra i due sistemi in
comunicazione;
strato di collegamento (data link); la sua funzione fondamentale è
quella di rivelare e recuperare gli errori trasmissivi che potrebbero
essersi verificati durante il trasferimento fisico;
strato di rete (network); rende invisibile allo strato superiore il
modo in cui sono utilizzate le risorse di rete per la fase di
instradamento;
strato di trasporto (transport); fornisce le risorse per il
trasferimento trasparente di informazioni;
strato di sessione (session); assicura la possibilità di instaurare un
colloquio tra due sistemi;
strato di presentazione (presentation); è interessato alla sintassi e
alla semantica delle informazioni da trasferire;
strato di applicazione (application); ha lo scopo di fornire ai
processi residenti nei due sistemi in comunicazione i mezzi per
accedere all'ambiente OSI.
Modello TCP/IP
Due livelli di pari grado posti su due
calcolatori differenti comunicano tra
loro tramite un protocollo, mentre
due livelli adiacenti della stessa
macchina comunicano tra loro
tramite interfaccia. L'obiettivo di un
livello è quello di fornire servizi al
livello superiore nascondendo a
questo il modo in cui i servizi sono
realizzati.
Application
(http, telnet, snmp,
smtp, nfs, ftp, smb)
Transport
(TCP, UDP)
Network
(IPv4/IPv6)
Data link
Physical layer
Comunicazione HTTP
Application
Layer
Transport
Layer
Network
Layer
Data Link
Layer
Physical
Layer
HTTP
Request
Application
Layer
TCP HTTP
Request
Transport
Layer
IP
TCP HTTP
Ethernet IP
Request
TCP HTTP
Request
Network
Layer
Data Link
Layer
Physical
Layer
HTTP
Request
TCP HTTP
Request
IP
TCP HTTP
Ethernet IP
Request
TCP HTTP
Request
Confronto tra i modelli
OSI Model
7 Application
6 Presentation
5 Session
TCP/IP Model
Application
Telnet
4
Transport
Transport
Layer
3
Network
Network
2
Data link
Data link
1
TCP/IP Protocol Suite
FTP
Physical
DNS
TCP
RIP
SNMP
UDP
IGMP ICMP
IP
ARP
Ethernet
Physical
SMTP
Token
Ring
Frame
Relay
ATM
Transport Layer
 Definisce 2 protocolli standard di trasporto: TCP e
UDP
 TCP è un affidabile protocollo per il trasferimento
di dati
 Orientato alla connessione
 Prevede il recupero degli errori e il controllo del
flusso
 UDP implementa un protocollo non affidabile
 Privilegia la velocità di connessione
Transport Layer





TCP e UDP introducono il concetto di porta e di socket
Specificando un numero di porta assieme ai dati TCP/UDP, possiamo
ottenere il multiplexing
Multiplexing consente che numerose connessioni di rete possano aver
luogo su uno stesso indirizzo IP
Il numero della porta, assieme agli indirizzi sorgente e destinazione
dei dati, costituiscono il socket. Ad esempio una connessione http
sull’ip 192.168.100.1 ha il seguente socket 192.168.100.1:80
Porte comuni e servizi associati:







FTP
Ssh
telnet
SMTP
http
POP3
https
21 and 20
22
23
25
80
110
443
Network Layer
 Il compito del network layer è la trasmissione di pacchetti tra
due host arbitrari, che in generale non sono direttamente
connessi (ovvero non hanno un collegamento diretto tra di loro)
 I principali protocollo appartenente a questo strato sono l’IP (o
IPv4) e la sua evoluzione IPv6
 L’IP garantisce l’inoltro del pacchetto (ovvero ricevere un
pacchetto su una porta, immagazzinarlo e ritrasmetterlo su
un'altra), la frammentazione (se un pacchetto ricevuto ha una
dimensione eccessiva per la rete su cui deve essere trasmesso,
il livello di rete lo divide in frammenti e si occupa di
riassemblare i frammenti ricevuti al momento della consegna) e
l’instradamento o routing (ovvero determinare il percorso per la
trasmissione dei dati attraverso la rete)
Il pacchetto IP
Un datagramma IP è costituito al più da 64 kB di cui i primi da 20 a
60 byte costituiscono l’intestazione. Particolarmente importanti
sono i campi “Identificativo” che permette di riassemblare un
datagramma frammentato, “TTL (Time To Live)” necessario per
evitarne la persistenza indefinita sulla rete nel caso in cui non si
riesca a recapitarlo al destinatario, “Protocollo” indica il protocollo
di trasporto associato.
Struttura dell’indirizzo IPv4
E’ un numero composto da 32 bit
IP binario:
11000000.10101000.11011100.00000001
IP decimale:
192 .
168
.
220 .
NOTA : con 8 bit si può al massimo
rappresentare in decimale il numero 255
1
Struttura dell’indirizzo IP
 Il Net-ID identifica la rete, mentre l'Host-ID identifica
l'host all'interno della rete.
L'indirizzo con i bit relativi alla parte di host posti a zero
risulta essere l'indirizzo della rete in cui si trova l'host, mentre
quello con i bit di host posti tutti a uno indica l'indirizzo
broadcast di quella rete, cioè quello usato per inviare pacchetti
a tutti gli host della rete.

La separazione tra il blocco Net-ID e Host-ID avviene per mezzo della
Subnet Mask.
La SM è un numero binario di 32 bits, ovvero 4 byte separati da un
punto. Ad esempio
11111111.11111111.00000000.00000000
255
.
255
.
0
.
0
Notare che il blocco degli “zeri” segue il blocco degli ”uno” senza
mescolanza tra essi.
Esempio








Esempio di calcolo dell’indirizzo di rete, di broadcast e n° di hosts
possibili
IP 132.125.18.36
SM 255.255.0.0
Indirizzo di rete: si fa l’AND logico tra la rappresentazione binaria di
IP e SM, otteniamo 132.125.0.0
Tutti gli host appartenenti alla stessa rete logica devono avere lo
stesso indirizzo di rete
Indirizzo di broadcast: si fa l’OR logico con il complemento della SM
(molto più semplicemente si pongono a 1 tutti i bit della sezione HostID). Otteniamo 132.125.255.255
Calcolo del n° di hosts possibili: si contano gli n zeri della SM (in questo
caso n=16); si fa 2n-2.
Nel nostro caso possiamo disporre di 216-2=65534 hosts nella nostra
rete.
Gli indirizzi IP disponibili andranno da quello immediatamente
successivo all’indirizzo di rete, cioè 132.125.0.1, a quello precedente
all’indirizzo di broadcast, cioè 132.125.255.254.
Esercizio: IP 194.116.10.19 SM 255.255.255.248 trovare i parametri
di cui sopra
Attenzione
 Due computer,anche se connessi fisicamente alla
stessa rete, possono comunicare direttamente solo
se hanno lo stesso indirizzo di rete ed hanno
interfacce di rete dello stesso tipo
Classi di indirizzi IP – Schema classico
A
0 network id
Host ID
B
10
C
110
D
1110
Multicast Address
E
11110
Unused at present
network id
Host ID
network id
8
16
Host ID
24
32
Classi di indirizzi IP – Schema classico
Suddivisione degli indirizzi
Indirizzi IP
Pubblici
Sono unici al mondo in
Internet e sono segnati
da enti internazionali
GARR / IANA
Privati
Sono indirizzi autorizzati
per le reti private;
vengono eliminati in
Internet
Indirizzi privati e per uso speciale
Classe
Subnet
mask
Indirizzo di
partenza
Indirizzo finale
Funzione
C
B
A
A
255.255.255.0
192.168.0.0
192.168.255.255
IP privati
255.255.0.0
172.16.0.0
172.31.255.255
IP privati
255.0.0.0
10.0.0.0
10.255.255.255
IP privati
255.0.0.0
0.0.0.0
0.0.0.255
Indirizzi
zero
A
255.0.0.0
127.0.0.0
127.255.255.255
Localhost
loopback
B
C
255.255.0.0
169.254.0.0
169.254.255.255
Zeroconf
255.255.255.0
198.18.0.0
198.19.255.255
Benchmark
Subnetting
 La rigidità dello schema NetID-HostID
proponeva classi A e B troppo grosse o
classi C troppo piccole. Se un’azienda doveva
indirizzare 2000 hosts, necessitava di una
classe B (65534 hosts), con uno spreco di
oltre di 63000 indirizzi.
 Vi è stata quindi una grande richiesta di
classi A e B (in gran parte già assegnate) e
una relativamente bassa richiesta di classi
C.
Subnetting
 Soluzione: dato un indirizzo di rete di
qualsiasi classe, la lunghezza del prefisso
(NetID) può essere estesa arbitrariamente,
non deve più essere necessariamente un
multiplo di 8 bit.
 Si ricava un campo SubnetID sfruttando
una parte arbitrariamente lunga dell’HostID
Net Id
Net Id
Host Id
Subnet Id
Host Id
Terminologia
 NetID: porzione dell’indirizzo la cui lunghezza è determinata dalla
maschera della classe a cui l’indirizzo appartiene.
Es. 192.135.23.5/255.255.255.252, NetID = 192.135.23.0
 SubnetID: porzione di lunghezza variabile dell’indirizzo che segue il
NetID e la cui lunghezza è definita dalla differenza fra il prefisso
e la lunghezza del NetID. Es. 192.135.23.0/255.255.255.252, la
lunghezza del SubNetID è di 6 bit
 Indirizzo di Sottorete: l’indirizzo ottenuto dalla concatenazione
(NetID:SubnetID) ponendo nella rimanente parte HostID una
sequenza di 0 e accompagnato dal prefisso
 Indirizzo di rete: sinonimo di Sottorete. Se il subnetting non è
utilizzato allora SubnetID è nullo, e quindi l’indirizzo di rete
corrisponde al NetID
 Indirizzo dell’host: la concatenazione (NetID:SubnetID:HostID)
Esempio
Dato un indirizzo di CLASSE B applichiamo il subnetting
per ottenere reti da circa 2000 host l’una:
indirizzo senza subnetting: 137.204.0.0 maschera
standard: 255.255.0.0 ==>65534 indirizzi ,
[137.204.0.1 , 137.204.255.254]
211 = 2048, quindi useremo 11 bit per l’HostID e 21
complessivi per il NetID-SubnetID==> SM
255.255.248.0
quante subnet: 25-2=30 (la prima e l’ultima non sono
utilizzabili)
Indirizzo di subnet
range di indirizzi
137.204.8.0
[137.204.8.1-137.204.15.254]
………………
…………………………
137.204.240.0
[137.204.240.1-137.204.247.254]
Indirizzamento senza classi –CIDR
Classless Inter-Domain Routing
 Problema: una rete di classe C corrisponde a 256 indirizzi IP
 Molte organizzazioni hanno bisogno di piu’ indirizzi
 Soluzione: assegnare ad una stessa organizzazione blocchi
contigui di indirizzi in classe C
 Esempio: l’organizzazione X riceve i tre blocchi contigui
220.123.16.x, 220.123.17.x e 220.123.18.x
 768 indirizzi disponibili
 Richiederebbe numerosi instradamenti diversi per raggiunger
una rete
Indirizzamento senza classi –CIDR
Classless Inter-Domain Routing
 Come rappresentare il blocco di indirizzi assegnati?
 Informazioni necessarie: indirizzo + basso del
blocco e Numero di Blocchi
 In pratica:
 CIDR non prevede che gli indirizzi di rete debbano
necessariamente essere di classe C
 CIDR usa le seguenti informazioni:
 Valore a 32 bit dell’indirizzo piu’ basso del
blocco
 Maschera a 32 che funziona come una maschera
di sottorete standard
Notazione CIDR -esempio
 Prefisso della rete + No. bit per il prefisso
 Esempio: per un blocco di indirizzi da 220.16.128.0
a 220.16.255.255:
220.16.128.0/17
11111111.11111111.10000000.00000000
In questa situazione abbiamo
215-2=32766 ip disponibili (il 220.16.128.0 è il
network address, il 220.16.255.255 è il broadcast
address)
Network Manager
 In ambiente grafico
 Network Manager
E’ il tool di configurazione
predefinito nelle principali
distribuzioni che usano il desktop
manager Gnome.
 Per configurare le interfacce di rete
(cablate e/o wireless) è sufficiente
cliccare col tasto destro sull’icona in
alto a destra
e scegliere Modifica
Connessioni
 Attraverso il Network Manager è
possibile anche configurare
connessioni VPN, connessioni
Internet Mobile 3G, modem ADSL
Network Manager
 I file di configurazione del Network
Manager risiedono in
/etc/NetworkManager
in particolare i file di configurazione delle
singole interfacce di rete sono posizionati in
/etc/NetworkManger/systemconnections
(non configurare manualmente)
 Talvolta può essere necessario disabilitare il
Network Manager per procedere a una
configurazione manuale delle interfacce
service network-manager stop
e per riattivarlo
service network-manager start
Denominazione classica delle
interfaccedi rete
 lo – Interfaccia di loopback; è una interfaccia virtuale
essenziale per il funzionamento del sistema. Ha ip in classe
127.0.0.0/8 solitamente 127.0.0.1
 ethx (eth0, eth1, ..) – Interfacce fisiche Ethernet
I nomi del tipo eth0:0 eth0:1 indicano + indirizzi ip associati
alla stessa interfaccia (alias ip)
 pppx (ppp0, ppp1…) – Interfacce fisiche Point-to-Point usate
ad esempio per i modem analogici
 tunx (tun0, tun1,..) – Interfacce virtuali usate da openvpn
 wlanx (wlan0,..) – Interfacce wireless. Talvolta tali interfacce
di rete vengono denominate come quelle ethernet (eth0,..)
ATTENZIONE: LE PRECEDENTI DENOMINAZIONI SONO
PURAMENTE INDICATIVE E POSSONO ESSERE DIVERSE
A SECONDA DELLA DISTRO UTILIZZATA
Ifconfig
 La linea di comando rimane uno strumento elegante
ed efficiente soprattutto quando si accede da
remoto. Per la configurazione delle interfacce di
rete linux ha ifconfig
 ifconfig -a
mostra la configurazione IP di tutte le interfacce
 ifconfig eth0 192.168.0.1 netmask
255.255.255.128 broadcast 192.168.0.127 up
assegna l'indirizzo IP 192.168.0.1 e attiva
l'interfaccia, creando una mask 192.168.0.0/25.
 ifconfig eth0:1 192.168.0.1 up
assegna l'indirizzo IP 192.168.0.1 alla eth0:1 e attiva
l'interfaccia. Eseguendo questo comando di fatto
assegniamo un'altro indirizzo IP alla interfaccia.
 ifconfig eth0 down
disabilita eth0
Rendere le modifiche permanenti


I comandi ifconfig dati da consolle, non sono permanenti (al riavvio la
configurazione è persa)
Per renderli permanenti si configura il file
/etc/network/interfaces, ad esempio
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
auto eth0
iface eth0 inet static
address 172.16.1.36
netmask 255.255.255.0
network 172.16.1.0
broadcast 172.16.1.255
gateway 172.16.1.1
up route add -net 10.8.0.0 netmask 255.255.255.0 gw 172.16.1.36

Ricaricare la configurazione col comando
/etc/init.d/networking restart
Rendere le modifiche permanenti

auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.1.36
netmask 255.255.255.0
network 192.168.1.0
broadcast 192.168.1.255
gateway 192.168.1.1
auto eth1
iface eth1 inet dhcp

In questo caso abbiamo l’interfaccia eth1 posta in una lan nella quale
è presente un server dhcp (cioè un server che configura
automaticamente le interfacce dei pc sulla stessa rete)
Rotte statiche
 Nell’intestazione di ogni
pacchetto ip c’è l’indirizzo ip del
destinatario del pacchetto. Se il
pacchetto è destinato a una
diversa rete/sottorete (diverso
net_id) del mittente, il pacchetto
è inviato a una macchina
prestabilita detto default
gateway. In talune circostanze
può essere necessario ridefinire il
default gateway o definire un
nuovo gateway per destinatari
diversi
Route

Il comando linux route consente di definire
Alcuni esempi:
route
Visualizza la tabella di routing
route add default gw 192.168.12.1
Aggiunge l'host 192.168.12.1 come gateway di default
route del default
Cancella il default gateway
route add -net 192.168.101.0 netmask 255.255.255.0 gw
192.168.101.102
Aggiunge la route 192.168.101.0 alla routing table indicando la maschera di
rete 255.255.255.0 e il gateway 192.168.101.102
Scarica

Indirizzo di rete