1 Indirizzamento, Routing e Forwarding per reti IP Andrea Detti rev. 012 Schema di indirizzamento Un indirizzo IP (IP Address) identifica un host se u...
– 1 sottorete divisa in due ulteriori sottoreti con 32 host ciascuna (Host_id: 5 bit) (subnet mask 255.255.255.224)
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 primo indirizzo successivo al blocco di indirizzi della rete precedente – Es., per B Æ primo indirizzo dopo il blocco 165.214.32.(01000000), quindi subnet_id di B = (01)
•
di
A
=
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 Multiregional Europe Others North America Central/South America Pacific Rim Others Others
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
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 indirizzi multi-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 superrete/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
Forwarding
Ogni 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… 11000000 00100000 10001000 00000000 = 192.32.136.0 (IP address della riga) 11111111 11111111 11111000 00000000 255.255.248.0 (mask della riga) ===================================== logical_AND 11000000 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_AND 11000000 00100000 10001 = 192.32.136 (prefix 2)
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”
Longest Prefix Matching
Instradamento
Tabella di instradamento
• indirizzo 198.15.7.3 • indirizzo 198.15.7.4
Prefix
Porta d’uscita
198.15.0.0/16
1
• Porta (interfaccia) 1: matching prefisso 16
198.15.7.0/24
7
• porta 7: matching prefisso 24
198.15.7.3/32
4
198.15.7.3
• porta 4: matching prefisso 32
198.15.7.4 • porta 1: matching prefisso 16 • porta 7: matching prefisso 24 • porta 4: no matching
198.15.7.3 ⇒ porta 4
198.15.7.4 ⇒ porta 7
Es. Routing Table 30.0.0.6
20.0.0.1 10.0.0.5
R1
Rete 10.0.0 10.0.0.6
Rete 20.0.0
Rete 30.0.0
20.0.0.6
30.0.0.7 50.0.0.10
R4
Rete 50.0.0
60.0.0.7
Routing Table di R2 Router_Id 20.0.0.1 Instradamento diretto Instradamento diretto 30.0.0.6 Instradamento diretto Instradamento diretto