Linux e le reti – 1

39
Linux e le reti – 1 Linux e le reti – 1 Tiziano Ragazzi

description

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; - PowerPoint PPT Presentation

Transcript of Linux e le reti – 1

Page 1: Linux e le reti – 1

Linux e le reti – 1Linux e le reti – 1

Tiziano Ragazzi

Page 2: Linux e le reti – 1

Classificazione delle reti in base alle Classificazione delle reti in base alle dimensionidimensioni

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.

Page 3: Linux e le reti – 1

Classificazione delle reti in base alle Classificazione delle reti in base alle dimensionidimensioni 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

Page 4: Linux e le reti – 1

Un esempioUn esempio

Page 5: Linux e le reti – 1

L’importanza di un sistema L’importanza di un sistema “aperto”“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.

Page 6: Linux e le reti – 1

Per realizzare reti di calcolatori che Per realizzare reti di calcolatori che siano sistemi aperti è necessario: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.

Page 7: Linux e le reti – 1

Il perché dei “modelli”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.

Page 8: Linux e le reti – 1

Modello ISO-OSIModello ISO-OSI

Page 9: Linux e le reti – 1

I 7 strati del modello ISO-OSII 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.

Page 10: Linux e le reti – 1

Modello TCP/IPModello 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)

Data link

Physical layer

Network(IPv4/IPv6)

Page 11: Linux e le reti – 1

Comunicazione HTTPComunicazione HTTP

Application Layer

TransportLayer

NetworkLayer

Data LinkLayer

PhysicalLayer

HTTP Request

HTTP TCP

HTTP TCP IP

HTTP TCP IPEthernet

Request

Request

Request

ApplicationLayer

TransportLayer

NetworkLayer

Data LinkLayer

PhysicalLayer

HTTP Request

HTTP TCP

HTTP TCP IP

HTTP TCP IPEthernet

Request

Request

Request

Page 12: Linux e le reti – 1

Confronto tra i modelliConfronto tra i modelliOSI Model TCP/IP Model TCP/IP Protocol Suite

7

6

5

4

3

21

ApplicationApplication

TransportLayer

TransportLayer

ApplicationApplication

PresentationPresentation

SessionSession

TransportTransport

NetworkNetwork

Data linkData link

PhysicalPhysical

TelnetTelnet FTPFTP SMTPSMTP DNSDNS RIPRIP SNMPSNMP

TCPTCP UDPUDP

IPIPARPICMPIGMP

EthernetEthernet TokenRing

TokenRing

FrameRelay

FrameRelay ATMATM

NetworkNetwork

Data linkData link

PhysicalPhysical

Page 13: Linux e le reti – 1

Transport LayerTransport 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

Page 14: Linux e le reti – 1

Transport LayerTransport 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 21 and 20 Ssh 22 telnet 23 SMTP 25 http 80 POP3 110 https 443

Page 15: Linux e le reti – 1

Network LayerNetwork 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)

Page 16: Linux e le reti – 1

Il pacchetto IPIl 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.

Page 17: Linux e le reti – 1

Struttura dell’indirizzo IPv4Struttura dell’indirizzo IPv4

192 . 168 . 220 . 1IP decimale:

11000000.10101000.11011100.00000001IP binario:

NOTA NOTA : con 8 bit si può al massimo : con 8 bit si può al massimo rappresentare in decimale il numero 255rappresentare in decimale il numero 255

E’ un numero composto da 32 bitE’ un numero composto da 32 bit

Page 18: Linux e le reti – 1

Struttura dell’indirizzo IPStruttura 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.

Page 19: Linux e le reti – 1

EsempioEsempio 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 Host-ID). 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

Page 20: Linux e le reti – 1

AttenzioneAttenzione

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

Page 21: Linux e le reti – 1

Classi di indirizzi IP – Schema Classi di indirizzi IP – Schema classicoclassico

1110 Multicast Address

11110 Unused at present

0 network id

Host ID

10 network id Host ID

110 network id Host ID

A

B

C

D

E

8 16 3224

Page 22: Linux e le reti – 1

Classi di indirizzi IP – Schema Classi di indirizzi IP – Schema classicoclassico

Page 23: Linux e le reti – 1

Suddivisione degli indirizziSuddivisione degli indirizzi

Indirizzi IPIndirizzi IP

PubbliciPubblici PrivatiPrivati

Sono unici al mondo inSono unici al mondo in

Internet e sono segnati Internet e sono segnati

da enti internazionalida enti internazionali

GARR / IANAGARR / IANA

Sono indirizzi autorizzatiSono indirizzi autorizzati

per le reti private;per le reti private;

vengono vengono eliminatieliminati in in InternetInternet

Page 24: Linux e le reti – 1

Indirizzi privati e per uso specialeIndirizzi privati e per uso speciale

Classe Subnet mask

Indirizzo di partenza

Indirizzo finale Funzione

C 255.255.255.0 192.168.0.0 192.168.255.255 IP privati

B 255.255.0.0 172.16.0.0 172.31.255.255 IP privati

A 255.0.0.0 10.0.0.0 10.255.255.255 IP privati

A 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 255.255.0.0 169.254.0.0 169.254.255.255 Zeroconf

C 255.255.255.0 198.18.0.0 198.19.255.255 Benchmark

Page 25: Linux e le reti – 1

SubnettingSubnetting

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.

Page 26: Linux e le reti – 1

SubnettingSubnetting 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 Host Id

Host IdNet Id Subnet Id

Page 27: Linux e le reti – 1

TerminologiaTerminologia

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)

Page 28: Linux e le reti – 1

EsempioEsempioDato 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.0quante subnet: 25-2=30 (la prima e l’ultima non sono utilizzabili)Indirizzo di subnet range di indirizzi137.204.8.0 [137.204.8.1-137.204.15.254] ……………… …………………………

137.204.240.0 [137.204.240.1-137.204.247.254]

Page 29: Linux e le reti – 1

Indirizzamento senza classi –CIDRIndirizzamento senza classi –CIDRClassless Inter-Domain RoutingClassless 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

Page 30: Linux e le reti – 1

Indirizzamento senza classi –CIDRIndirizzamento senza classi –CIDRClassless Inter-Domain Routing 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

Page 31: Linux e le reti – 1

Notazione CIDR -esempioNotazione 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/1711111111.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)

Page 32: Linux e le reti – 1

Network ManagerNetwork 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

Page 33: Linux e le reti – 1

Network ManagerNetwork Manager

I file di configurazione del Network Manager risiedono in /etc/NetworkManagerin particolare i file di configurazione delle singole interfacce di rete sono posizionati in /etc/NetworkManger/system-connections(non configurare manualmente)

Talvolta può essere necessario disabilitare il Network Manager per procedere a una configurazione manuale delle interfacceservice network-manager stop e per riattivarloservice network-manager start

Page 34: Linux e le reti – 1

Denominazione classica delle Denominazione classica delle interfaccedi reteinterfaccedi 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 EthernetI 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

Page 35: Linux e le reti – 1

IfconfigIfconfig 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 downdisabilita eth0

Page 36: Linux e le reti – 1

Rendere le modifiche Rendere le modifiche permanentipermanenti

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 interfaceauto loiface lo inet loopback

# The primary network interfaceauto eth0iface eth0 inet staticaddress 172.16.1.36netmask 255.255.255.0network 172.16.1.0broadcast 172.16.1.255gateway 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

Page 37: Linux e le reti – 1

Rendere le modifiche Rendere le modifiche permanentipermanenti auto lo

iface lo inet loopback

auto eth0iface eth0 inet staticaddress 192.168.1.36netmask 255.255.255.0network 192.168.1.0broadcast 192.168.1.255gateway 192.168.1.1

auto eth1iface 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)

Page 38: Linux e le reti – 1

Rotte staticheRotte 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

Page 39: Linux e le reti – 1

RouteRoute

Il comando linux route consente di definireAlcuni esempi: route Visualizza la tabella di routing

route add default gw 192.168.12.1Aggiunge l'host 192.168.12.1 come gateway di default

route del defaultCancella il default gateway

route add -net 192.168.101.0 netmask 255.255.255.0 gw 192.168.101.102Aggiunge 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