Transcript
Page 1: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 1

Strato rete in Internet

Gruppo Reti [email protected]

http://www.tlc-netwroks.polito.it/

Page 2: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 2

OSI

Application

Presentation

Session

Transport

Network

Data Link

PhysicalNon Specificati

IP

TCP e/o UDP

RPC

XDR

NFS

Internet Protocol Suite

ARP | RARP

ICMP Protocollidi routing

TelnetFTP

SMTPSNMP

Internet protocol suite

Page 3: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 3

IP: Internet Protocol

• Livello rete dell’architettura TCP/IP

• Offre un servizio – non connesso– inaffidabile– best-effort– senza garanzie di qualità di servizio

Page 4: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 4

Il protocollo IP

• È un protocollo di strato rete (strato 3)• Si occupa quindi dell’indirizzamento e

instradamento dei pacchetti (detti datagram)• La consegna dei pacchetti IP è:

– connectionless• ogni pacchetto trattato in modo indipendente

– inaffidabile (unreliable)• perdita, duplicazioni, ritardi

– non distingue tra diversi tipi di traffico (no priorità, tratta tutti in modo best-effort)

Page 5: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 5

Protocollo IP

• Consegna inaffidabile– In caso di guasti (es. un router fuori servizio,

collegamento non disponibile)• scarta il datagram • cerca di inviare un messaggio di errore al mittente

• Consegna connectionless– Non conserva informazioni di stato sui datagram in

corso di trasmissione– Ogni datagram instradato in modo indipendente – Due pacchetti con stessa sorgente e destinazione

possono seguire percorsi diversi

Page 6: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 6

00 4 8 16 19 24 31

Version HLEN Service Type Total Length

Identification Flags Fragment Offset

Time To Live Protocol Header Checksum

Source IP Address

Destination IP Address

Options PAD

Intestazione pacchetto IP

Page 7: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 7

Intestazione pacchetto IP: i campi

• VER: versione del protocollo IP• HLEN: lunghezza dell’header in parole da 32 bit

(se opzioni assenti, vale 5)• Type of service (TOS): tipo di servizio richiede il

datagram (minimize delay, maximize throughput, maximize reliability, minimize cost ). Ignorato dai router.

• Total Length: lunghezza del datagram in byte (incluso header). Dimensione massima 65535 byte

Page 8: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 8

Frammentazione• Ogni rete ha massima dimensione ammessa

– MTU (Maximum Transfer Unit) Ethernet 1.5 kB

• Quando devo attraversare rete con MTU più piccola del datagram si deve frammentare

• Frammenti – diventano datagram indipendenti, con intestazione

quasi uguale a quella del datagram originario – ricostruiti solo alla destinazione, mai nei router

• Frammentazione trasparente a sorgente e destinazione

Page 9: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 9

Frammentazione

• La frammentazione è dannosa– aumento overhead di intestazione, duplicato su

ogni frammento– perdita di un frammento comporta la perdita al

ricvevitore di tutto il datagram; aumenta la probabilità di errore

– ricevitore deve attivare timer di attesa arrivo frammenti e riassemblare

• I router IP però non si devono occupare di riassemblare frammenti

Page 10: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 10

Intestazione pacchetto IP: i campi

• Identification, Flags, Fragment offset: controllano operazioni di frammentazione

• Identification: permette di riconoscere a quale datagram il frammento appartiene (frammenti dello stesso datagram hanno stesso valore deciso da chi genera datagram)

• Fragment offset: specifica offset dati contenuti nel frammento, in multipli di 8 byte

• Flags (2 bit): don’t fragment e more fragments (identifico ultimo frammento)

Page 11: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 11

Intestazione pacchetto IP: i campi

• TTL (time to live): – tempo di vita (in hop) di un datagram– Ogni router decrementa di 1 il valore di TTL– Se TTL=0 scarta datagram ed invio messaggio di errore

• Protocol: formato dei dati specificando un protocollo di livello superiore

• Header Checksum (16 bit): controllo di errore sulla sola intestazione, non sui dati utente. Somma in complemento a 1 allineando header a 16 bit.

Page 12: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 12

Intestazione pacchetto IP

• Source e Destination Address (32 bit): indirizzo sorgente e destinazione degli host

• Formato opzioni: option code (option number, option class, flag di copia nei frammenti) + lunghezza opzione + dati

• Opzioni– record route: registro percorso del datagram– source route (loose and strict): sorgente specifica

percorso del datagram– timestamp: permette di registrare tempo di elaborazione

del datagram

Page 13: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 13

Il protocollo ICMP

• ICMP (Internet Control Message Protocol ) è solitamente considerato parte del livello IP

• Comunica messaggi di errore o di controllo. Può trasportare richieste di informazioni e risposte alle richieste.

• I messaggi ICMP sono trasmessi all’interno di datagram IP

Page 14: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 14

Formato del messaggio ICMP

0 7 15 31

type code checksum

data

Page 15: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 15

Esempi di messaggi ICMPmessaggio type code

echo reply 0 0 query

echo request 8 0 query

network unreachable 3 0 errore

host unreachable 3 1 errore

port unreachable 3 3 errore

destn net unknown 3 6 errore

destn host unknown 3 7 errore

redirect 5 1 controllo

time exceeded (TTL) 11 0 errore

time exceeded (fragment reass)11 1 errore

Page 16: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 16

Il comando ping

• Se un host non risponde al ping, non è raggiungibile.

• Spesso usato per rilevare guasti in rete

• E’ disponibile su macchine Unix e su PC

• Informazioni visualizzate da ping:– numero di sequenza – TTL– round-trip-time (tempo impiegato a percorrere la

tratta sorgente-destinatario-sorgente)

Page 17: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 17

Applicazione: il comando ping

• Il nome è ispirato al rumore del sonar

• Esegue un test di raggiungibilità dell’interfaccia di rete di un host remoto

• Invia un messaggio ICMP echo request ad un host, aspettandosi un echo reply

• Di default, l’ ICMP viene inviato ogni secondo allo stesso host; è possibile tuttavia modificare la frequenza di invio

Page 18: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 18

Il comando traceroute

• traceroute permette di seguire il percorso dei datagram IP hop-per-hop fino a destinazione

• Funzionamento:– host invia datagram IP vuoti, con TTL crescenti e

destinati alla porta 33434 dell’host remoto– I router intermedi ritornano ICMP “time exceeded”– La destinazione ritorna ICMP “port unreachable”– Se non torna messaggio ICMP in risposta entro un

timeout di 3 sec., si segnala errore

Page 19: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 19

Indirizzi IP

Andrea Bianco [email protected]

http://www.tlc.polito.it/

Page 20: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 20

Indirizzamento IP: obiettivi e risultati

• Obiettivo originale: rendere efficienti le operazioni di routing (router lenti - anni ‘80) con indirizzi facilmente “classificabili”– Spreco dello spazio di indirizzamento

(esaurimento degli indirizzi - anni ‘90)

• Nuovo obiettivo: razionalizzare l’assegnazione degli indirizzi e la loro aggregazione nelle routing tables– Riduzione delle dimensioni delle routing tables e

riutilizzo di indirizzi già assegnati

Page 21: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 21

Indirizzi IP: Principi

• Ogni host (interfaccia) è individuato da un indirizzo a 32 bit, assegnatogli univocamente

• Un indirizzo è caratterizzato da informazioni sulla rete (netid) e sull’host (hostid)

• L’instradamento si basa sul netid– indirizzo non individua la macchina ma la rete

se sposto host di rete devo cambiare indirizzo

• Ogni router ha almeno due indirizzi IP

• Gli host solitamente uno solo

Page 22: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 22

Multi-Homed Hosts

• Poiché l’indirizzo ha informazioni su rete e host, se ho più di una interfaccia di rete, devo avere due indirizzi

• Più che un host, un indirizzo individua una connessione ad una rete!

H

Interfaccia #1

Interfaccia #2

Page 23: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 23

1 2 3 4 8 16 24 32

Classe A

Classe B

netid=7 bit

netid=14 bit

hostid=24 bit

hostid=16 bit

Indirizza oltre 1 milioni di reti, ciascuna delle quali può contenere però ‘solo’ 256 hosts

Classe C netid= 21 bit hostid=8 bit

Indirizza 127 reti, ciascuna delle quali può contenere oltre 16 milioni di hosts

Indirizza 16384 reti, ciascuna delle quali può contenere 65536 hosts

Classi di indirizzi

Indirizzi multicast

Classe D

0

1 0

11 0

1 11 0

Page 24: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 24

Classe A Classe B Classe C Classe D Classe E

0...127 128...191 192...223 224...239 240...255

Rappresentazione decimale

• L’indirizzo Internet viene comunemente rappresentato nella forma:

xxx.xxx.xxx.xxx

con xxx numero decimale tra 0 e 255

• Il primo numero permette di riconoscere la classe dell’indirizzo:

Page 25: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 25

indirizzo di rete (netid)

Classi di indirizzi IP

• A: 105.20.38.165

• B: 130.192.2.158

• C: 193.24.54.110

Page 26: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 26

Indirizzi di rete e Broadcast

• Indirizzo con hostid di tutti 0, individua la rete• Indirizzo con hostid di tutti 1, rappresenta

l’indirizzo broadcast della rete stessa (trasmetto in broadcast su quella rete)

• netid di tutti 1 indica questa rete. Trasmetto senza conoscere IP della rete (boot)

• Se il netid e` tutti 0, indirizzo all’host sulla rete cui sei collegato

• Indirizzi riservati (127.0.0.0 loopback, 192.168.2.0 reti private)

Page 27: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 27

Problemi delle classi

• Nessuno usa classe A

• Pochi usano (male) classe B

• Classe C identifica reti piccole; indirizzi poco richiesti

• Fare crescere una rete oltre i limiti di dimensione della classe richiede la modifica degli indirizzi di tutti gli host

Page 28: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 28

L’introduzione delle maschere

• È necessario superare la divisione rigida in netid e hostid

• Scompare il concetto di classe

• Uso maschera per definire quanti bit dei 32 di indirizzo individuano la rete, ovvero per indicare l’estensione del campo netid

• Inizialmente si utilizzano le maschere per suddividere indirizzi di classe B

Page 29: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 29

La subnet mask

• La subnet mask (o netmask) è un valore di 32 bit contenente:– bit messi a 1 per identificare la parte di rete – bit messi a 0 per identificare la parte di host

• Per esigenze di instradamento, un host deve conoscere la parte di rete del proprio indirizzo IP (netid+subnetid): utilizza la subnet mask

• La subnet mask viene introdotta in fase di configurazione di un host

Page 30: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 30

130.192.2.7 10000100 11000000 00000010 00000111

255.255.255.0 11111111 11111111 11111111 00000000

AND

130.192.2.0 10000100 11000000 00000010 00000000

La subnet mask

• Esempio: indirizzo host 130.192.2.7

Page 31: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 31

Maschere per supernetting

• In una seconda fase si utilizzano le maschere per accorpare indirizzi di classe C

• Si assegnano blocchi contigui di indirizzi di classe C

• Si usano sempre maschere (supernetting) per identificare netid

• Si parla di CIDR: Classless Interdomain Routing (1992)

Page 32: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 32

202.170.168.0 11001010 10101010 10101000 00000000

202.170.175.255 11001010 10101010 10101111 11111111

111111111 11111111 11111000 00000000

Supernetting

• Esempio: assegno 2048 indirizzi contigui, a partire da indirizzo 202.170.168.0

• Per rappresentare tale intervallo di valori, utilizzo AND tra indirizzo inferiore e la maschera

Page 33: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 33

Instradamento in reti IP

Andrea [email protected]

http://www.tlc.polito.it/~bianco

Page 34: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 34

Consegna diretta e indiretta

• Se due host sono connessi direttamente alla stessa sottorete (intesa come collegamento fisico) si ha consegna diretta

• Se due host non sono connessi alla stessa sottorete, la consegna è mediata da uno o più router: si ha consegna indiretta

Page 35: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 35

Consegna diretta

• Per decidere se effettuare una consegna diretta, l’host mittente controlla la porzione di rete dell’indirizzo IP destinatario

• Se tale porzione coincide con il proprio indirizzo di rete, si ha consegna diretta

• In ogni comunicazione tra host, si ha almeno una consegna diretta

• Il trasferimento avviene mappando l’indirizzo IP in un indirizzo MAC della LAN cui l’host è collegato

Page 36: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 36

Risoluzione di indirizzi: • Problema che si presenta per ogni trasmissione di

datagram IP (host-host, host-router, router-router, router-host)

• Da indirizzo IP ad indirizzo MAC (fisico)– Direct mapping: mediante tabella statica– Dynamic bynding: protocollo ARP: Address Resolution

Protocol

• ARP e` utilizzato su reti broadcast (LAN)• Dato l’indirizzo IP dell’host con cui si vuole

comunicare, permette di ricavarne l’indirizzo MAC (es: Ethernet)

Page 37: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 37

ARP

• Viene costruito dall’host che vuole risolvere l’indirizzo un pacchetto broadcast (request) che contiene – l’indirizzo IP del destinatario, – indirizzo IP ed Ehternet di chi origina la richiesta

• L’host che riconosce nel campo richiesta il proprio indirizzo IP invia un pacchetto di risposta (reply) direttamente al sender

Page 38: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 38

ARP

• Sia chi origina il pacchetto sia chi lo riceve (e risponde) aggiungono una informazione nella propria tabella ARP

• Le successive comunicazioni tra i due elaboratori possono avvenire senza ulteriori richieste di ARP

• Le entry nella tabella di ARP scadono dopo un tempo prefissato

Page 39: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 39

i.j.h.k ?

08-00-2b-15-47-2c LAN address di C

1

2

ARP

a.b.c.d e.f.g.h i.j.h.k l.m.n.o p.q.r.s

A B C D E

Page 40: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 40

Tabelle di ARP

Corrispondenze tra indirizzi IP e indirizzi LAN

IP addr LAN addr age

130.192.2.58 08-00-2b-15-47-2e 10

130.192.2.64 08-00-2b-21-56-64 12

. . . . . . . . . .

Page 41: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 41

Tabelle di ARP

• Ogni volta che un elaboratore deve comunicare con un altro sulla stessa LAN conoscendone l’indirizzo IP, viene ricercato l’indirizzo nella tabella di ARP

• Se non si trova un match viene emessa una richiesta di ARP, altrimenti la comunicazione può avvenire usando direttamente l’indirizzo MAC

Page 42: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 42

Formato del pacchetto ARP0 8 16 31

HLEN PLEN Operation

Time To Live

ProtocolTarget IP Address

Sender HW Address

Target IP Address

Target HW Address

Sender HW Address Sender IP Address

Sender IP Address Target HW Address

Hardware Type Protocol Type

Page 43: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 43

ARP: formato pacchetto

• Operation: tipo di operazione – arp request, arp reply, rarp request, rarp reply

• Hardware type: tipo di MAC (Ethernet = 1)

• Protocol type: protocollo che usa ARP (IP=0800H)

• HLEN e PLEN permettono di utilizzare ARP con rete arbitraria (indirizzi di dimensione variabile)

Page 44: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 44

Consegna indiretta

• Il mittente identifica quale router incaricare della consegna del datagram IP tra quelli raggiungibili con consegna diretta

• Il router incaricato sceglie il router successivo, da lui raggiungibile direttamente, sul percorso verso la destinazione

• Il datagram passa da router a router fino a quello che lo consegna direttamente a destinazione

Page 45: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 45

Le Routing Tables

• Ogni host ed ogni router coinvolto nella consegna IP ha tabelle di instradamento (RT, Routing Table)

• Ovviamente, le tabelle non possono avere informazioni su ogni possibile destinazione

• Principio: nascondo l’informazione

• I router remoti instradano usando solo la porzione di rete dell’indirizzo IP

Page 46: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 46

Il Next-hop Routing

• Una tabella di routing contiene almeno due informazioni: – D indirizzo destinazione R = next-hop

• D è normalmente un indirizzo di rete• R è detto next-hop, e corrisponde ad un host o

un router raggiungibile direttamente • Se è possibile mettere in relazione l’indirizzo di

destinazione del pacchetto in transito con un indirizzo D delle RT, il pacchetto viene inviato al relativo R

Page 47: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 47

rete20.0.0.0

rete30.0.0.0

rete50.0.0.0

rete90.0.0.0

A

X

B20.0.0.99

30.0.0.99

50.0.0.1330.0.0.13

50.0.0.254

90.0.0.25420.0.0.030.0.0.050.0.0.090.0.0.0

direttodiretto30.0.0.1330.0.0.13

INDIR. RETE NEXTDESTINAZ. HOP

Tabella del router A

Next-hop Routing - esempio

Page 48: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 48

Instradamenti Default e Specifici

• Se il next-hop è unico (es: piccola sottorete con unico router), le tabelle di instradamento degli host possono contenere solo una default route per l’esterno

• L’instradamento può essere specificato per host (host specific route) e non per sottorete per ragioni di:– testing– maggior sicurezza

Page 49: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 49

Gestione delle Routing Tables

• Le tabelle di Routing sono fondamentali per il funzionamento corretto di Internet

• Problemi da affrontare:– come inizializzare le RT?– quali informazioni devono contenere?– come aggiornarle?– consistenza tra RT e assenza di loop

Page 50: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 50

Inizializzazione delle RT

• Dipende dal sistema operativo:– lettura da un file di configurazione,

eventualmente scritto dall’operatore– esecuzione di “comandi di scoperta” da inviare

sulla rete– scambio di informazioni con altri host sulla rete

locale

Page 51: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 51

La propagazione delle Routing Tables

• Le RT possono cambiare a causa di:– interventi sulle topologie – guasti– sovraccarichi

• L’informazione sui cambiamenti deve essere propagata tra router mediante le procedure previste dall’algoritmo di instradamento utilizzato

Page 52: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 52

Algoritmo di instradamento IP

• Estraggo dal pacchetto la parte netid dell’indirizzo IP di destinazione (facile con classi)

• Se sono collegato direttamente alla destinazione, uso consegna diretta (ARP)

• altrimenti, cerco host specific route• altrimenti, cerco next-hop memorizzato per

quella rete• altrimenti, cerco default route• altrimenti, dichiaro errore di routing

Page 53: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 53

Conseguenze dell’introduzione delle subbnet mask

• Gli host ed il router locale (solo quello!) deve utilizzare AND tra indirizzo IP e maschera per individuare il netid correttamente

• Devo memorizzare nella routing table dell router locale anche le netmask

• Per gli altri ruoter non sono richieste modifiche. Posso usare routing standard

Page 54: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 54

Conseguenze dell’introduzione del CIDR

• Introdotto (1992) per ridurre le RT e ovviare all’imminente esaurimento della classe B

• Ad un sito che richiede più indirizzi IP questi sono allocati in modo “contiguo”, condividendo i bit più significativi

• Il risultato è l’occupazione di una sola “riga” (per tutti gli indirizzi richiesti) nelle RT, che sono consultate con il criterio del longest match

Page 55: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 55

Conseguenze dell’introduzione del CIDR

• CIDR ha il vantaggio di permettere una aggregazione degli indirizzi su base topologica e geografica...

• ...ma lo svantaggio di complicare la funzione di lookup perchè:– è necessario fare confronti con prefissi a lunghezza

variabile (necessario memorizzare nelle RT, oltre all’indirizzo di rete, anche la relativa netmask)

– bisogna scorrere tutta la tabella per individuare il prefisso con il longest match

Page 56: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 56

CIDR: operazioni di un router

• Un router riceve un pacchetto con indirizzo destinazione x.y.z.w

• Esegue AND bit a bit, per ogni riga delle R.T. tra: – l’indirizzo di destinazione nella routing table e la netmask– l’indirizzo ricevuto x.y.z.w e la stessa netmask

• Confronto i risultati degli AND: se sono uguali, ho un matching

• Instrado secondo la riga delle R.T. che ha avuto ilmaggior numero di bit di matching

Page 57: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 57

130.192.68.0

130.192.71.0

130.192.120.0

S R R1

R2

R3

01000111

01110000

130.192.71.801000100

Esempio CIDR

Page 58: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 58

130.192.68.0

130.192.71.0

130.192.120.0

S R R1

R2

R3

01000111

01110000130.192.68.0 255.255.192.0 R1

R.T.

130.192.71.801000100

Esempio CIDR

11000000

Page 59: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 59

130.192.68.0

130.192.71.0

130.192.120.0

S R R1

R2

R3

01000111

01110000

R.T.

130.192.71.8

01000100

Esempio CIDR

130.192.68.0 255.255.192.0 R1 (18)

Page 60: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 60

130.192.120.0

S R R1

R3

01000111

01110000

R.T.

130.192.71.8

130.192.68.0

130.192.71.0R2

01000100

Esempio CIDR

130.192.120.0 255.255.240.0 R3130.192.68.0 255.255.192.0 R2

11110000

Page 61: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 61

130.192.120.0

S R R1

R3

01000111

01110000

R.T.

130.192.71.8

130.192.68.0

130.192.71.0R2

01000100

Esempio CIDR

130.192.120.0 255.255.240.0 R3 130.192.68.0 255.255.192.0 R2 (18)

Page 62: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 62

130.192.120.0

S R R1

R3

01000111

01110000

R.T.

130.192.71.8

130.192.68.0

130.192.71.0R2

01000100

Esempio CIDR

130.192.71.0 255.255.255.0 D130.192.68.0 255.255.255.0 D

Page 63: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 63

130.192.120.0

S R R1

R3

R.T.

130.192.68.0

130.192.71.0R2

01000100

130.192.71.8

Esempio CIDR

130.192.71.0 255.255.255.0 D (24)130.192.68.0 255.255.255.0 D

Page 64: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 64

Come si ottengono indirizzi IP?

• Indirizzi di host in sottorete (host_id):– liberi, configurati da amministratore di rete

• Wintel: control-panel->network->configuration->tcp/ip->properties

• UNIX: /etc/rc.config

• DHCP: Dynamic Host Configuration Protocol: ottengo dinamicamente indirizzi:– host inviano in broadcasts msg “DHCP discover”– DHCP server risponde con “DHCP offer” msg– host richiede indirizzo IP: “DHCP request” msg– DHCP server invia indirizzo: “DHCP ack” msg

Page 65: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 65

ISP's block 11001000 00010111 00010000 00000000 200.23.16.0/20

Organization 0 11001000 00010111 00010000 00000000 200.23.16.0/23

Organization 1 11001000 00010111 00010010 00000000 200.23.18.0/23

Organization 2 11001000 00010111 00010100 00000000 200.23.20.0/23 ... ….. …. ….

Organization 7 11001000 00010111 00011110 00000000 200.23.30.0/23

Come si ottengono indirizzi IP?

• Indirizzi di rete (net_id):– si chiede una parzioni di indirizzi IP ad un ISP

Page 66: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 66

Come si ottengono indirizzi IP?

• Come ottiene indirizzi IP un ISP?

• ICANN: Internet Corporation for Assigned – nomi e numeri

• alloca indirizzi• gestisce DNS• assegna nomi di dominio, risolve liti

Page 67: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 67

223.1.1.1

223.1.1.2

223.1.1.3

223.1.1.4 223.1.2.9

223.1.2.2

223.1.2.1

223.1.3.2223.1.3.1

223.1.3.27

A

BE

miscfields

sourceIP addr

destIP addr data

• datagram NON si modifica da sorgente a destinazione

• interessano solo campi indirizzo

Dest. Net. next router Nhops

223.1.1 1223.1.2 223.1.1.4 2223.1.3 223.1.1.4 2

tabella di routing in A

Da sorgente a destinazione: esempio

• Datagram IP:

Page 68: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 68

223.1.1.1

223.1.1.2

223.1.1.3

223.1.1.4 223.1.2.9

223.1.2.2

223.1.2.1

223.1.3.2223.1.3.1

223.1.3.27

A

BE

Dest. Net. next router Nhops

223.1.1 1223.1.2 223.1.1.4 2223.1.3 223.1.1.4 2

miscfields 223.1.1.1223.1.1.3 data

Da sorgente a destinazione: esempio

• In A, noto indirizzo IP di B: – guardo net_id di B– trovo che B appartiene alla

stessa sotto rete di A – invio datagram direttamente

a B usando indirizzo MAC– B e A sono collegati

direttamente

Page 69: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 69

223.1.1.1

223.1.1.2

223.1.1.3

223.1.1.4 223.1.2.9

223.1.2.2

223.1.2.1

223.1.3.2223.1.3.1

223.1.3.27

A

BE

Dest. Net. next router Nhops

223.1.1 1223.1.2 223.1.1.4 2223.1.3 223.1.1.4 2

miscfields 223.1.1.1223.1.2.3 data

Da sorgente a destinazione: esempio

• In A, noto IP di E:– confronto net_id

– E su rete diversa• A, E non sono collegati

direttamente

• tabella di routing: next hop 223.1.1.4

• invio datagram al router 223.1.1.4 usando indirizzo MAC del router

Page 70: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 70

223.1.1.1

223.1.1.2

223.1.1.3

223.1.1.4 223.1.2.9

223.1.2.2

223.1.2.1

223.1.3.2223.1.3.1

223.1.3.27

A

BE

miscfields 223.1.1.1223.1.2.3 data

network router Nhops interface

223.1.1 - 1 223.1.1.4 223.1.2 - 1 223.1.2.9223.1.3 - 1 223.1.3.27

Dest. next

Da sorgente a destinazione: esempio

• Arrivo a 223.1.1.4, destinato a 223.1.2.2

• confronto net_id di E e verifico che sono sulla stessa rete con interfaccia 223.1.2.9 – router ed E attaccati

direttamente

• invio datagram a 223.1.2.2 con indirizzo MAC di E

Page 71: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 71

Instradamento

Gruppo Reti TLC [email protected]

http://www.tlc.polito.it/

Page 72: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 72

A

ED

CB

F

2

2

13

1

1

2

53

5

Instradamento

• Obiettivo dei protocolli di instradamento:– determinare un “buon” percorso (sequenza di router)

nella rete da sorgente a destinazione

• Grafo– router sono nodi– link fisici sono archi

• Costi su archi – ritardo, euro, livello di congestione

• “Buon” percorso:– tipicamente percorso a costo minimo

Page 73: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 73

Classificazione algoritmi di routing• Informazioni globale o decentralizzata?• Globale:

– tutti i router conoscono la topologia completa, compresi i costi dei canali

– scambio informazione tra tutti i router– algoritmi link state

• Decentralizzata:– i router conoscono i router cui sono fisicamente collegati ed i

costi dei canali cui sono collegati – scambio di informazione solo con i router adiacenti– algoritmi distance vector

Page 74: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 74

Algoritmo Link-State

• Algoritmo di Dijkstra: determina cammini ottimi• Tutti nodi conoscono topologia della rete e costi di tutti i

canali– si inviano informazioni in broadcast– tutti i nodi hanno stessa visione (completa) della rete

• Ogni nodo calcola i percorsi a minimo corso verso tutti gli altri nodi– si ottengono tabelle di routing per questo nodo

• Algortimo iterativo: dopo k iterazioni si ottengono i cammini a costo minimo per k destinazioni

Page 75: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 75

Algoritmo di Dijkstra

• Notazione:• c(i,j): costo del canale dal nodo i al nodo j. Infinito

se nodo non collegato direttamente al canale. • D(v): valore corrente del percorso migliore da

sorgente alla destinazione v• p(v): nodo che precede v nel percorso da

sorgente a destinazione v• N: insieme di nodi per cui il cammino ottimo e`

noto

Page 76: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 76

1 Initialization (nodo A): 2 N = {A} 3 per tutti i nodi v 4 if v adiacente ad A 5 then D(v) = c(A,v) 6 else D(v) = infty 7 8 repeat 9 trova w not in N tale per cui D(w) e` minimo10 aggiungi w ad N 11 aggiorna D(v) per tutti i v adiacenti a w e not in N: 12 D(v) = min( D(v), D(w) + c(w,v) ) 13 /* il nuovo costo verso v e` o il vecchi costo verso v o il cammino14 cammino a minimo costo verso w piu` costa da w a v*/ 15 until tutti i nodi in N

Algoritmo di Dijkstra

Page 77: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 77

Step012345

start NA

ADADE

ADEBADEBC

ADEBCF

D(B),p(B)2,A2,A2,A

D(C),p(C)5,A4,D3,E3,E

D(D),p(D)1,A

D(E),p(E)infinity

2,D

D(F),p(F)infinityinfinity

4,E4,E4,E

A

ED

CB

F

2

2

13

1

1

2

53

5

Dijkstra: esempio

Page 78: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 78

A

D

C

B1 1+e

e0

e

1 1

0 0

A

D

C

B2+e 0

001+e1

A

D

C

B0 2+e

1+e10 0

A

D

C

B2+e 0

e01+e1

Situazione inziale… ricalcolo percorsi … ricalcolo …ricalcolo

Algoritmo di Dijkstra: proprietà

• Complessità con n nodi

• Ogni iterazione: controllo tutti i nodi w not in N– n*(n+1)/2 confronti: O(n**2)

• Esistono implementazioni migliori: O(nlogn)

• Possibili oscillazioni:– Esempio: costo canali legato al carico trasportato

Page 79: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 79

Distance Vector

• Algoritmo iterativo:– continua fino a quando I nodi non scambiano piu`

informazioni

• Termina in modo autonomo:– nessun segnale esplicito di fine algoritmo

• Asincrono– scambio informazioni necessario solo se

cambiamento di stato

• Distribuito:– ogni nodo comunica solo con nodi adiacenti

Page 80: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 80

L’algoritmo Distance Vector

• Ogni router scambia periodicamente con i vicini diretti un vettore contenente: – le destinazioni (reti) che può raggiungere– la distanza dalle destinazioni misurata in hop

(num. router da attraversare compreso se stesso)

• Il router che riceve il vettore lo confronta con le proprie RT ed effettua modifiche:– aggiunge nuove reti– cambia instradamenti se nuovi sono più brevi

Page 81: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 81

Destinazione Distanza Route

Net 1 1 DirettaNet 2 1 DirettaNet 4 8 Router LNet 17 5 Router MNet 24 6 Router JNet 30 2 Router QNet 42 2 Router J

Destinazione Distanza

Net 1 2Net 4 3Net 17 6Net 21 4Net 24 5Net 30 10Net 42 3

Routing Tablesdel router K

DistanceVectorspedito dalrouter J

K JJ

L’algoritmo Distance Vector

Page 82: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 82

L’algoritmo Distance Vector

• Vantaggi– facile da implementare

• Problemi:– lento a convergere– propaga errori di routing– non molto scalabile (le dimensioni dei messaggi

scambiati dai router crescono al crescere della rete)

Page 83: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 83

D (Y,Z)X

distanza da X ad Y, via Z come next hop

c(X,Z) + min {D (Y,w)}Z

w

=

=

Distance Vector

• Struttura dati: tabella distanze

• Ogni nodo possiede la propria– Una riga per ogni possibile destinazione– Una colonna per ogni router adiacente

• Esempio: nel nodo X, per la destinazione Y attraverso nodo adiacente Z:

Page 84: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 84

A

E D

CB7

8

1

2

1

2

D ()

A

B

C

D

A

1

7

6

4

B

14

8

9

11

D

5

5

4

2

E

Costo verso destinazione attraverso nodo

dest

inaz

ione

D (C,D)E

c(E,D) + min {D (C,w)}D

w== 2+2 = 4

D (A,D)E

c(E,D) + min {D (A,w)}D

w== 2+3 = 5

D (A,B)E

c(E,B) + min {D (A,w)}B

w== 8+6 = 14

anello!

anello!

Tabella distanze: esempio

Page 85: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 85

D ()

A

B

C

D

A

1

7

6

4

B

14

8

9

11

D

5

5

4

2

E

Costo verso destinazione atttraverso nodo

dest

inaz

ione

A

B

C

D

A,1

D,5

D,4

D,4

Canale di uscita da usare, costo

dest

inaz

ione

Tabella distanze Tabella di Routing

Tabella di instradamento a partire da tabella distanze

Page 86: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 86

Instradamento Distance Vector

• Iterativo, asincrono: una iterazione (locale al nodo) causata da: – modifica costo canale a cui nodo collegato– messaggio ricevuto da nodo adiacente, che causa

modifica del cammino ottimo

• Distribuito:– ogni nodo avvisa i vicini solo quando il suo cammino

migliore verso una certa destinazione e` cambiato– i vicini avviseranno a loro volta nodi vicini se

necessario

Page 87: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 87

Instradamento Distance Vector

• Ogni nodo esegue un loop infinito

– aspetta • modifica costo canale locale oppure • messaggio da nodo adiacente

– ricalcola tabella distanze

– se percorso migliore verso qualche destinazione cambiato, avvisa i vicini

Page 88: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 88

1 Inizializzazione:

2 per tutti i nodi adiacenti v:

3 D (*,v) = infinito /* l’operatore * significa ”per ogni riga" */

4 D (v,v) = c(X,v)

5 per tutte le destinazioni, y

6 invia min D (y,w) verso ogni nodo adiacente /* w sono tutti i vicini di X*/

X

X

Xw

Ad ogni nodo X:

Algoritmo Distance Vector

Page 89: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 89

8 loop 9 wait (until I see a link cost change to neighbor V 10 or until I receive update from neighbor V) 11 12 if (c(X,V) changes by d) 13 /* change cost to all dest's via neighbor v by d */ 14 /* note: d could be positive or negative */ 15 for all destinations y: D (y,V) = D (y,V) + d 16 17 else if (update received from V wrt destination Y) 18 /* shortest path from V to some Y has changed */ 19 /* V has sent a new value for its min DV(Y,w) */ 20 /* call this received new value is "newval" */ 21 for the single destination y: D (Y,V) = c(X,V) + newval 22 23 if we have a new min D (Y,w)for any destination Y 24 send new value of min D (Y,w) to all neighbors 25 26 forever

w

XX

XX

X

w

w

Algoritmo Distance Vector

Page 90: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 90

X Z12

7

Y

D (Y,Z)X

c(X,Z) + min {D (Y,w)}w=

= 7+1 = 8

Z

D (Z,Y)X

c(X,Y) + min {D (Z,w)}w=

= 2+1 = 3

Y

Distance Vector: esempio

Page 91: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 91

X Z12

7

Y

Distance Vector: esempio

Page 92: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 92

X Z14

50

Y1

algoritmotermina“good

news travelsfast”

Algoritmo DV: modifica costo canale

• Nodo riconosce modifica costo canale

• Modifica tabella distanze (passo 15)

• Se modifica implica modifica del cammino migliore avvisa nodi adiacenti (passi 23,24)

Page 93: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 93

Modifica costo canale:• good news travels fast • bad news travels slow - problema del “count

to infinity”!X Z

14

50

Y60

algoritmoprosegue

Algoritmo DV: modifica costo canale

Page 94: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 94

Se Z instrada via Y per raggiungere X:• Z comunica ad Y sua distanza verso X e` infinito (Y non

instraderà verso X passando da Z)• non risolve il problema completamente X Z

14

50

Y60

algoritmotermina

Distance Vector: poisoned reverse

Page 95: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 95

Confronto tra algoritmi LS e DV• Complessità messaggi

– LS: con n nodi, E canali, ogni nodo invia O(nE) messaggi– DV: scambio messaggio solo tra nodi adicenti

• tempo di convergenza variabile

• Velocità di convergenza– LS: algoritmo di complessità O(n**2) richiede O(nE)

messaggi• puo` oscillare

– DV: tempo di convergenza variabile• errori di routing creano anelli

• problema del count-to-infinity

Page 96: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 96

Confronto tra algoritmi LS e DV

• Affidabilità: cosa succede se un router funziona non correttamente?

• LS: – i nodi possono annunciare costi dei canali scorretti– ogni nodo calcola la propria tabella

• DV:– i nodi possono annunciare costi dei cammini

scorretti– ogni tabella e` usata da tutti i nodi

• gli errori si propagano nella rete

Page 97: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 97

200.23.16.0/23

200.23.18.0/23

200.23.30.0/23

ISP B

Organizzazione 0

Organizzazione 7Internet

Organizzazione 1

ISP A “Inviami qualunque pacchettocon indirizzi che iniziano con199.31.0.0/16”

200.23.20.0/23Organizzazione 2

.

.

.

.

.

.

Indirizzamento gerarchico: aggregazione dei percorsi

• Indirizzamento gerarchico permette annunci (invio info) efficienti delle informazioni di instradamento

“Inviami qualunque pacchettocon indirizzi che iniziano per 200.23.16.0/20”

Page 98: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 98

“Inviami pacchetti con indirizzi che iniziano con200.23.16.0/20”

200.23.16.0/23

200.23.18.0/23

200.23.30.0/23

ISP B

Organizzazione 0

Organizzazione 7Internet

Organizzazione 1

ISP A “Inviami pacchetti con indirizzi che iniziano con199.31.0.0/16orppure 200.23.18.0/23”

200.23.20.0/23Organizzazione 2

.

.

.

.

.

.

Indirizzamento gerarchico: aggregazione dei percorsi

• Se ISP A ha un percorso piu` specifico verso Organizzazione 1

Page 99: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 99

Algoritmi di instradamento in reti IP

Gruppo Reti TLC [email protected]

http://www.tlc.polito.it/

Page 100: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 100

Routing gerarchico

• Per ora caso ideale– tutti router identici– rete “piatta”, non gerarchica

• Approccio non utilizzabile in pratica – scalabilità: con 50 milioni di destinazioni:

• tutte destinazioni in una tabella?• Scambio di info di routing occuperebbe troppo canali

– Autonomia amministrativa• internet = rete di reti• ogni amministratore di rete puo` volere controllare

instradamento sulla propria rete

Page 101: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 101

Routing gerarchico

• Router aggregati in regioni, dette Autonomous System (AS)– Insieme di router con struttura complessa (molte

sottoreti e router) ma unica identità amministrativa – Router nello stesso AS usano stesso protocollo di

instradamento – Protocolli di instradamento intra-AS (IGP: Interior

Gateway Protocol)• Router in AS diversi possono usare protocolli IGP

diversi (aggiornamento e validazione circoscritti)

Page 102: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 102

Routing gerarchico

• In ogni AS devono esistere router “gateway”• responsabili per instradare verso destinazioni esterne

all’AS• usano protocolli inter-AS (EGP: Exterior Gateway

Protocol) con altri router gateway• usano protocolli intra-AS con tutti altri router dell’AS

• Si parla quindi di routing interno (IGP) ed esterno (EGP)

Page 103: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 103

Routing Intra-AS and Inter-AS

Gateways:•eseguono instradamento inter-AS tra loro•eseguono instradamento intra-AS con altri router nel loro AS

inter-AS, intra-AS routing in

gateway A.c

network layer

link layer

physical layer

a

b

b

aaC

A

Bd

A.a

A.c

C.bB.a

cb

c

Page 104: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 104

Routing Intra-AS and Inter-AS

Host h2

a

b

b

aaC

A

Bd c

A.a

A.c

C.bB.a

cb

Hosth1

Intra-AS routingall’interno dell’AS A

Inter-AS routingtra AS A e B

Intra-AS routingall’iterno dell’AS B

Page 105: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 105

Definizione di un AS

• I “confini” tra AS devono essere ben definiti per non creare confusione tra gli algoritmi di routing

• A ciascun AS viene assegnato un numero di ID su 16 bit da una authority centrale (INTERNIC, APNIC, RIPE-NCC)

• Quando due router si scambiano informazioni di raggiungibilità, i messaggi contengono l’ID dell’AS a cui appartengono

Page 106: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 106

Traffico locale e in transito

• Definiamo “traffico locale” ad un AS il traffico IP che:– ha come sorgente un host dell’AS– ha come destinazione un host dell’AS

• In tutti gli altri casi, si tratta di “traffico in transito” sull’AS

Page 107: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 107

Autonomous Systems (AS)

• Gli AS sono origine/transito/destinazione del traffico inter-dominio

• Tre categorie di AS:– stub: connesso ad un unico AS, accetta solo

traffico locale – multihomed: connesso a piu’ AS, accetta solo

traffico locale– transit: connesso a piu’ AS, accetta anche

traffico in transito

Page 108: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 108

EGP: Exterior Gateway Protocol

• Storicamente, il primo protocollo usato dagli AS per diffondere informazioni di raggiungibilità

• I router che lo usano sono detti router esterni (exterior routers)

• Presuppone una rete con topologia ad albero (come la “vecchia” ARPAnet)

• EGP va in crisi con l’introduzione di dorsali e cammini multipli tra due host e per questo motivo è stato sostituito con BGP

Page 109: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 109

Funzioni di EGP

• Neighbor Acquisition: un router richiede ad un “vicino” di accordarsi per comunicare

• Neighbor reachability: un router controlla sempre se i suoi “vicini” sono raggiungibili

• Network reachability: i “vicini” si scambiano sempre informazioni di raggiungibilità

Page 110: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 110

EGP: Osservazioni e problemi

• Non propaga distanze tra reti, ma solo raggiungibilità

• Presuppone un core system, non funziona con l’attuale struttura a dorsali multiple

• Non supporta load sharing né cammini alternativi

• Non supporta il policy routing

• Va in crisi con router malfunzionanti (pubblicizzano route inconsistenti)

Page 111: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 111

Da EGP a BGP

• La crescita nella complessità della topologia Internet (backbone multiple) rende inutilizzabile EGP (anelli)

• alternative?– Protocolli link state (non realistico)– Path-vector

Page 112: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 112

BGP: Border Gateway Protocol

• E’ il più diffuso EGP in Internet

• BGP permette di specificare politiche di instradamento per scegliere il cammino migliore in presenza di scelte multiple

• Le politiche di instradamento sono espressione di considerazioni economiche e gestionali, e tengono conto di aspetti di sicurezza

Page 113: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 113

Path Vectors

• Ogni routing update trasporta un elenco di AS necessari per raggiungere una certa destinazione

• Se un AS compare due volte, riconosco anello• Vantaggi:

– non creo anelli– non sono obbligato ad usare la stessa metrica per ogni

router

• Svantaggi:– overhead (una entry per ogni AS che annucio nel path

vector)

Page 114: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 114

BGP: Border Gateway Protocol

• Protocollo di instradamento esterno (or inter-AS) basato su path vector

• Funzione principale: scambiare informazioni di raggiungibilità

• Ultimo RFC: 1771 (BGP-4), in corso di aggiornamento

Page 115: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 115

BGP: riassunto

• Due router che usano BGP aprono una connessione utilizzando TCP

• Inizialmente scambiano le tabelle di instradamento di BGP

• In caso di modifiche si inviano aggiornamenti incrementali

• Non sono necessari aggiornamenti periodici (sono inviati periodicamente solo messaggi di KEEPALIVE)

Page 116: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 116

AS 1AS 2

AS 3

AS 4

externalpeers

internalpeers

BGP peering

Page 117: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 117

BGP messages

• Dimensione variabile tra 19 e 4096 bytes

• L’intestazione contiene:– autenticazione– lunghezza messaggio– tipo messaggio

• OPEN (first msg)• UPDATE • NOTIFICATION (of error condition)• KEEPALIVE

Page 118: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 118

Path attributes (variable, as many as necessary)

Total Path Attribute Length (2 bytes)

Withdrawn routes (variable)

Unfeasible Routes length (2 bytes)

Network Layer Reachability Information (variable)

BGP Header UP

DA

TE

Messaggi di UPDATE

• Usato per:– annunciare una nuovo percorso ammissibile

verso un peer router

AND/OR– annullare percorsi inammissibili

Page 119: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 119

Messaggi di UPDATE

• Percorsi da annullare sono identificati mediante le destinazioni (come neti_d IP)

• I path attributes descrivone i nuovi percorsi (uno per ogni messaggio di UPDATE)

• Gli attributi di path si riferiscono alla destinazione specificata (utilizzando il netid dell’indirizzo IP) nel campo Network Layer Reachability Information

Page 120: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 120

Routing in un AS

• I router di un AS sono detti interni

• Problema: come fa un router interno a conoscere gli instradamenti dentro l’AS?– Aggionamenti manuali? Forse per AS di piccole

dimensioni... se cambia una rete, bisogna modificare le tabelle di routing su ogni host (richiede tempo e può dare errori)

– Aggiornamenti automatici

Page 121: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 121

Routing in un AS

• In un AS, i router interni si scambiano dati di raggiungibilità per le reti dell’AS

• Un protocollo per router interni si chiama, genericamente, IGP (Interior Gateway Protocol )

• A differenza di EGP, non esiste un unico standard per i protocolli interni

• Algoritmi di routing interno più diffusi:– RIP (implementazione di distance vector)– OSPF (implementazione di link state)

Page 122: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 122

Routing Information Protocol (RIP)

• Nato presso l’Univ. di Berkeley per servire la loro (piccola) rete locale, e distribuito nella suite UNIX 4BSD (routed)

• Adottato prima che ne fosse definito uno standard (il primo RFC è del 1988)

• Oggi ha vasta diffusione anche in AS di grandi dimensioni

Page 123: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 123

RIP: caratteristiche

• Usa una implementazione di distance vector

• Divide gli host in attivi (router) e passivi

• Gli host attivi pubblicizzano le loro route a tutti gli altri ogni n (di solito 30s) secondi, sotto forma di coppie (indirizzo, n. di hop)

• Metrica e` numero di hop

• Se un router rileva un instradamento a costo strettamente inferiore a quello che ha nelle RT, lo sostituisce (e imposta un timeout pari a 180s)

Page 124: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 124

R2 R3

R4 R5

R1

Net 1

Net 2

Net 3

Net 4 Net 5

RIP: un esempio di problemi

Page 125: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 125

RIP: un esempio di problemi

• R1 dichiara Net 1 a distanza 1• R2 ed R3 inseriscono una entry che dichiare Net

1 a distanza 2• R4 ed R5 inseriscono una entry che dichiare Net

1 a distanza 3• R1 perde connettività e dichiara distanza infinita

(16) su Net1• Se nel frattempo pero` R2 e/o R3 dichiarano

distanza 2 verso Net 1, R1 inserisce entry che dichiara Net 1 a distanza 3

Page 126: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 126

RIP: problemi

• Si converge lentamente crescendo le distanze di 1 ad ogni routing updates

• Data la lentezza di propagazione, si possono avere problemi di lenta convergenza o non consistenza delle RT (count to infinity)

• Non riconosce automaticamente eventuali loop (occorrono interventi esterni, o modifiche al protocollo)

• I problemi nascono dal numero limitato di informazioni scambiate tra i router (solo 2) e dalla mancanza di stretto coordinamento

Page 127: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 127

RIP: soluzioni

• Split horizon con poisoning reverse: non propagare informazioni di raggiungibilità dall’interfaccia con cui si raggiunge la destinazione– R2 non propaga distanza 2 e dopo un tempo breve tutti

dichiarano distanza 16

• Non basta!– R2 propaga su Net 3 distanza 2 verso Net 1 – R3 propaga su Net 3 distanza 3 verso Net 1– R2 accetta distanza 4 verso Net 1 – Nessuno usa distanza 16 propagata da R1

Page 128: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 128

RIP: altre soluzioni• Il router che vede rete disconnessa mantiene

questa informazione per un tempo molto superiore al periodo di peridodico aggiornamento– R1 mantiene distanza 16 anche se riceve informazione

da R2 di distanza 2

• Triggering updates: quando vedo rete non piu` connessa forzo update immediatamente– R1 immediatamente informa che Net 1 e` a distanza 16– Rischioso perche` posso creare broadcast ripetuti su

LAN

Page 129: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 129

L’algoritmo IGRP

• IGRP (Interior Gateway Routing Protocol) venne proposto da Cisco Systems Inc. a metà degli anni ‘80 per superare le limitazioni di RIP

• E’ un algoritmo distance vector con metriche più sofisticate: ritardo, banda, affidabilità, carico

• Permette il multipath routing

• Limite: è solo disponibile sui router Cisco

Page 130: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 130

L’algoritmo OSPF

• OSPF (Open Shortest Path First ) è una proposta di IETF dell’89 [RFC 1247]

• E’ un algoritmo link-state: ogni router verifica lo stato delle linee verso i router adiacenti e lo invia a tutti i router conosciuti

• Ogni router si costruisce una mappa completa della rete su cui calcole le route con algoritmi sofisticati (SPF o alg. di Dijkstra)

Page 131: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 131

RIP e OSPF

• RIP:– invia informazioni su

tutte le subnet solo ai router adiacenti

– i router cooperano direttamente per calcolare le tabelle di instradamento

• OSPF:– invia a tutti i router noti

informazioni solo sulle subnet a cui sono connessi

– i router cooperano per aggiornare la mappa della rete, ma poi ciascuno si calcola le RT in modo autonomo

Page 132: STRATO RETE IN INTERNET - 1 Strato rete in Internet Gruppo Reti TLC nome.cognome@polito.it

STRATO RETE IN INTERNET - 132

OSPF: caratteristiche• Discrimina i percorsi verso una stessa destinazione

secondo il campo TOS

• E’ più veloce a convergere di RIP, ed esegue il bilanciamento del carico sulle linee a costo uguale verso una stessa destinazione

• Ad ogni interfaccia del router può essere assegnato un costo adimensionale basato su throughput, RTT, affidabilità o altro

• Connessioni punto-punto tra router OSPF non necessitano di indirizzi IP per l’interfaccia (risparmio!)


Top Related