Indirizzamento , Routing e Forwarding per reti IP a lunghezza variabile Le sotto-reti di una rete...

22
Indirizzamento , Routing e Forwarding per reti IP Andrea Detti rev. 01

Transcript of Indirizzamento , Routing e Forwarding per reti IP a lunghezza variabile Le sotto-reti di una rete...

Indirizzamento , Routing e Forwarding per reti IP

Andrea Dettirev. 01

Schema di indirizzamento

Un indirizzo IP (IP Address) identifica un host• se un host è connesso a più di una rete (multi-homed) avrà un

indirizzo IP per ogni rete

Un indirizzo IP è unico in tutta la rete• ha una lunghezza di 32 bits

In origine (1981) era formato da due parti– Net_Id: identificativo di sotto-rete– Host_Id: identificativo di host all’interno della sotto-rete

IP_Address = Net_Id . Host_Id

La divisione tra Net_Id e Host_Id non è fissa

Schema di indirizzamento

Classi di indirizzi IP

Classe Bitiniziali Net_Id Host_Id “Reti”

disponibili

A

B

C

D

E

0

10

110

1110

11110

7 bit

14 bit

21 bit

24 bit

16 bit

8 bitIndirizzo multicast: 28 bit

Indirizzi possibili: 268.435.456Riservata per usi futuri: 27 bitIndirizzi possibili: 134.217.728

“Host”disponibili

128 16.777.216

16384 65.536

2.097.152 256

Schema di indirizzamento

Classi di indirizzi IP

80 16 24 31

Classe A 0 Host_IdNet_Id

Classe B 1 0 Host_IdNet_id

Classe C 1 1 0 Host_IdNet_Id

Classe D 1 1 1 01 1 1 0 Multicast Address

Classe E 1 1 1 1 0 Reserved

Schema di indirizzamento

Notazione numerica, “dotted” e “mnemonica”:

Un opportuno servizio di rete (DNS) provvede atradurre un indirizzo numerico in mnemonico eviceversa

10100000 01010000 00000010 00010000

160. 80. 2. 16

www.uniroma2.it

Notazione Numerica

Notazione Dotted

Notazione Mnemonica

Schema di indirizzamento

Alcune Convenzioni speciali:

Net_Id Tutti “0”Rete locale

Net_Id Tutti “1”Broadcast sulla rete locale

Schema di indirizzamento

La struttura di indirizzamento a due livelli gerarchici era sufficiente nella fase iniziale di Internet

Nel 1984 è stato aggiunto un terzo livello gerarchico

• il livello di Sottorete (Subnet)

Si utilizzano alcuni bit dell’Host_Id per codificare il Subnet_Id

Network_Id Subnet_Id Host_Id

Schema di indirizzamento

Il campo Subnet.Id è identificato da una maschera denominata“Subnet Mask”

• Non serve nel caso di indirizzamento convenzionale

Una Subnet Mask è una parola di 32 bit in cui• i bit uguali a “1” identificano i bit del Net_Id e del Subnet_Id• i bit uguali a “0” identificano i bit dell’Host_Id

Il Subnet_Id ha significato solo nel router a cui sono connesse lesottoreti

1 Host_Id8 16 24 310

Net_id0Classe B80 16 24 31

SubnetMask

Classe B con subneting 1 Host_IdSubNet_id0 Net_Id

01 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1

Subnetting Statico

Tutte le sottoreti di una rete hanno lastessa maschera

Esempio• Router con un

indirizzo di classe B– 172.16.0.0

• 3 Sottoreti– numero massimo

254 host

Subnet Mask11111111 11111111 11111111 00000000

Router172.16.0.0

Subnet 1176.16.1.0

Subnet 3176.16.3.0

Subnet 2176.16.2.0

176.16.1.2

176.16.1.3

176.16.1.4

176.16.1.5

176.16.3.2

176.16.3.3

176.16.3.4

176.16.3.5

176.16.2.4176.16.2.2

176.16.2.3 176.16.2.5

Subnetting a lunghezza variabile

Le sotto-reti di una rete usano maschere diverse• Consente di gestire reti di dimensione diversa

Esempio:• Rete con un indirizzo di classe C

– 165.214.32.0• 5 Sottoreti

– Subnet A, Subnet B, Subnet C: 50 host– Subnet D, Subnet E: 30 host

• Subnetting– 4 sottoreti con 64 host ciascuna (Host_id: 6 bit)

(subnet mask 255.255.255.192)– 1 sottorete divisa in due ulteriori sottoreti con 32 host ciascuna

(Host_id: 5 bit) (subnet mask 255.255.255.224)

A

Router165.214.32.0

C

B

ED

0001

10

11

110 111

64 host

32 host32 host

64 host

64 host

Strategia di assegnazione degli indirizzi per subnetting dinamico

Si ordinano le sottoreti da gestire dalla più grande alla più piccola

• Es. A,B,C,D,E

Per ogni sottorete a partire dalla prima• si determina il numero di bit della subnet_id

– Es., per B n.bit parte host_id post-subnetting=int_sup[log2(50+2)]=6 n. bit subnet_id = 2

• La subnet_id si pone uguale al valore che assumono i bit del primoindirizzo successivo al blocco di indirizzi della rete precedente

– Es., per B primo indirizzo dopo il blocco di A = 165.214.32.(01000000), quindi subnet_id di B = (01)

• Il blocco di indirizzi assegnato alla rete va da net_id+subnet_id+(0..0) a net_id+subnet_id+(1..1)

– Es., per B da 165.214.32.(01000000) a 165.214.32.(01111111), ovvero da 165.214.32.64 a 165.214.32.127

Classless Inter Domain Routing

Nel 1996 erano stati assegnati• 100 % degli indirizzi di classe A• 61.95 % degli indirizzi di classe B• 36.44 % degli indirizzi di classe C

CIDR è stato ideato nel 1992 per• affrontare l’esaurimento dello spazio di indirizzamento di IP (raddoppio degli

host ogni anno)• diminuire la complessità delle tabelle di instradamento nei router• velocizzare le operazioni di instradamento nei router

Il CIDR tende ad eliminare le classi di indirizzo sostituendo ad esse il concetto di “prefisso”

• Il prefisso identifica la rete locale (come la Net_id) ed ha un significato gerarchicamente geografico

– Maggiore è il numero di bit del prefisso che si analizzano, più focalizzata è la localizzazione geografica della rete di destinazione

Classless Inter Domain Routing

CIDR è basato sulla tecnica Supernetting• la metà superiore della classe A (da 64 a 127) è stata riservata• gli indirizzi di classe B sono assegnati solo se la rete ha

– almeno 32 sotto-reti– oltre 4096 host complessivi

• gli indirizzi della metà inferiore della classe C sono assegnati a blocchi contigui in relazione alla localizzazione geografica delle sottoreti

• gli indirizzi della metà superiore della classe C (da 208.0.0 a 223.255.255) non sono assegnati

Conseguenze della tecnica Supernetting• indirizzi contigui hanno un prefisso uguale• un blocco di indirizzi in una routing table corrisponde ad un unico prefisso

Classless Inter Domain Routing

Pianificazione geografica degli indirizzi di classe C

Tutte le reti appartenenti ad una regione geografica sono identificate dagli stessi 7 bit di prefisso

• Esempio: Europa– da 194 = 11000010 0 a 195 = 11000011 1

Multiregional 192.0.0 193.255.255Europe 194.0.0 195.255.255Others 196.0.0 197.255.255North America 198.0.0 199.255.255Central/South America 200.0.0 201.255.255Pacific Rim 202.0.0 203.255.255Others 204.0.0 205.255.255Others 206.0.0 207.255.255

Classless Inter Domain Routing

Esempio:• Service Provider (SP) in Nord America possiede 2048 reti/blocchi di classe C

– da 198.24.0.0 (11000110.00011000.00000000.0)– a 198.31.255.0 (11000110.00011111.11111111.0)

• Internet SP (ISP) richiede al SP 16 reti/blocchi di classe C– da 198.24.16.0 (11000110.00011000.00010000.0)– a 198.24.31.0 (11000110.00011000.00011111.0)

CIDR mask per il North America = 198.0.0.0/8 (Router backbone)

CIDR mask per l’ SP = 198.24.0.0/13 (Router Intermedio 1)

CIDR mask per l’ ISP = 198.24.16.0/20 (Router Intermedio 2)

Strategia di assegnazione degli indirizzimulti-rete/multi-sottorete (bozza)

Problema : è data una topologia di rete composta da tante reti/sottoreti si assegnino gli indirizzi in modo da : 1) limitare il numero di indirizzi richiesti; 2) limitare le righe delle tabelle di routing

1 e 2 possono essere richieste contrastanti: compromesso

Regola qualitativa :• Si assegnano blocchi contigui di indirizzi fra reti/sottoreti

topologicamente “vicine” fra loro in modo da compattare il numero di righe delle tabelle di instradamento dei router (concetto di supernetting)

– Da “lonano” l’insieme delle “vicine” fra loro è visto come una unica super-rete/super-sottorete (es. 2048 blocchi in classe C – super-rete)

• Fra le reti “vicine” (es. i 2048 blocchi di classe C) si assegnano i prefissi/subnet_id come nel caso di subnetting dinamico

In breve …

Indirizzamento all’interno di una net_id• senza subnetting• con subnetting statico• con subnetting dinamico

Indirizzamento di una net_id• Classfull• CIDR (classless)

Routing vs Forwarding

Le funzioni di instradamento (Routing) hanno lo scopo di definire i cammini di rete utilizzati per raggiungere determinate destinazioni. Il loro risultato finale è la costruzione ed il mantenimento di tabelle di instradamento (routing)

Il Forwarding (attraversamento) rappresenta l’operazione fatta da un router per determinare a quale interfaccia inoltrare il pacchetto entrante. Si basa sulle tabelle di instradamento (routing)

Routing Table

È composta da “righe”

Elementi di una riga • IP address• Subnet Mask• Next Hop• Interface • Metric• …

Può esistere una riga rappresentante del “router di default”• Si trova sui piccoli host, che possono anche non avere una RT propria, e

che inviano al router di default tutti i datagrammi non diretti alla rete cui sono collegati

• da router o host con una tabella di discrete dimensioni ma che tuttavia non copre tutte le possibili destinazioni

ForwardingOgni riga può essere vista come un “if {…} then {interface_x-next_hop} ” se l’if è verificato, allora il pacchetto entrante deve essere trasmesso sull’interfaccia d’uscita interface_x verso la prossima interfaccia remota con indirizzo IP next_hop

La condizione dell’if è una operazione attuata come segue…

Se prefix1==prefix2 la condizione è verificata

Può accadere che più righe verifichino la condizione. In tal caso si adopta la regola del “longest prefix matching”. Nel caso in cui anche quest’ultima non sia in grado di discriminare una unica soluzione di forwarding allora si passa alla metrica minore e quindi al caso

Se non si trova una soluzione di forwarding, il datagramma è “undeliverable”• il datagramma è scartato• viene inviato un messaggio ICMP del tipo “host unreachable”

11000000 00100000 10001000 00000000 = 192.32.136.0 (IP address della riga)11111111 11111111 11111000 00000000 255.255.248.0 (mask della riga)

===================================== logical_AND11000000 00100000 10001 = 192.32.136 (prefix 1)

11000000 00100000 10001111 00000010 = 192.32.143.2 (Indirizzo di destinazione)11111111 11111111 11111000 00000000 255.255.248.0 (mask della riga)

===================================== logical_AND11000000 00100000 10001 = 192.32.136 (prefix 2)

Longest Prefix Matching

Instradamento• indirizzo 198.15.7.3• indirizzo 198.15.7.4

198.15.7.3• Porta (interfaccia) 1: matching

prefisso 16• porta 7: matching prefisso 24• porta 4: matching prefisso 32

198.15.7.4• porta 1: matching prefisso 16• porta 7: matching prefisso 24• porta 4: no matching

Tabella di instradamento

198.15.7.3 ⇒ porta 4

198.15.7.4 ⇒ porta 7

Prefix

198.15.0.0/16

198.15.7.0/24

198.15.7.3/32

Porta d’uscita

1

7

4

Es. Routing Table

20.0.0.1

20.0.0.6

30.0.0.6

60.0.0.7

30.0.0.7 Rete40.0.0

10.0.0.5

Rete10.0.0

Rete20.0.0

Rete30.0.0

Rete50.0.0

Rete60.0.0

R1

R2

R3

R4 R510.0.0.6 40.0.0.9

40.0.0.7

60.0.0.5

50.0.0.10

50.0.0.12

10.0.020.0.030.0.040.0.0

20.0.0.1Instradamento direttoInstradamento diretto

30.0.0.6

Net_Id Router_IdRouting Table di R2

50.0.0 Instradamento diretto60.0.0 Instradamento diretto

10.0.020.0.030.0.040.0.0

30.0.0.730.0.0.7

Instradamento direttoInstradamento diretto

Net_Id Router_IdRouting Table di R3

50.0.0 30.0.0.760.0.0 40.0.0.9