Livello Network di Internet Francesco Dalla Libera agenda

Transcript

Livello Network di Internet Francesco Dalla Libera agenda
Livello Network di Internet
Francesco Dalla Libera
agenda
• parte prima
– IP addressing & subnetting
• parte seconda
– protocollo IP
• parte terza
– routing & forwarding
• parte quarta
– il futuro: IP vers 6
FDL - 2002
2
1
A cosa serve
• a implementare una trasmissione “end-to-end” (dalla
macchina mittente alla macchina destinataria) su una
qualunque rete
• offre il servizio di trasmissione end-to-end al transport
layer
• è spesso al confine tra l’utente e il sistema
• livello datalink: muove informazioni solo da un capo
all’altro di un singolo canale di comunicazione wire-like
FDL - 2002
– macchine adiacenti
3
attività principali
• conoscere la topologia della rete
• scegliere il cammino appropriato
(routing)
• evitare linee sovraccariche (congestione)
• gestire le problematiche tra reti fisiche
diverse (internetworking)
FDL - 2002
4
2
Internet
• Internet differisce dalle altre reti principalmente per il fatto che è
realizzata con il concorso di tanti soggetti privati (Internet Service
Provider - ISP) che forniscono l’interconnessione ai loro clienti (a
volte altri ISP, a volte utenti finali) e stipulano accordi per
l’interconnessione paritetica tra loro (peering) in modo tale che tutti i
nodi connessi a tutti i fornitori possano comunicare.
• Pur essendo realizzata da diversi fornitori indipendenti, Internet
rimane unita grazie all'uso di:
– un unico spazio di nomi (DNS)
– un unico spazio di indirizzi (IP)
– un unico insieme di standard (TCP/IP, FTP, SMTP, HTTP, ecc)
• Internet è quindi una infrastruttura di rete che interconnette, con una
medesima tecnologia, reti fisiche diverse: la tecnologia unificante è
costituita dai protocolli standard della suite TCP/IP.
FDL - 2002
5
Internet
• una macchina è su Internet se:
1) è dotata dello stack TCP/IP
2) è dotata di un indirizzo IP
3) può inviare messaggi a qualsiasi altra
macchina della rete Internet
1) + 2) Î intranet
FDL - 2002
6
3
Internet
• collezione di sotto-reti (Autonomous System) tra
loro interconnesse
• non esiste una struttura reale
–
–
–
–
Backbone ad alta velocità
Reti regionali (Usa)
Reti nazionali
Sottoreti di specifiche organizzazioni
• collante comune
– protocollo IP (Internet Protocol)
– progettato per trasportare al meglio (best effort)
datagram dalla macchina sorgente alla macchina
destinazione
FDL - 2002
7
la comunicazione in Internet
• il livello di Trasporto della macchina sorgente,
riceve un flusso di dati da un processo mittente e li
spezza in datagram (di dimensione massima 64KB,
ma di solito da 1500B ca, perché?)
• ogni datagram è trasmesso in maniera indipendente
sulla rete (magari viene frammentato ...)
• quando tutti i frammenti giungono a destinazione,
vengono riassemblati nel datagram originale
• il datagram è consegnato al livello Trasporto che lo
inserisce nel flusso di input del processo ricevente.
FDL - 2002
8
4
caratteristiche di IP
•
•
•
•
•
•
Connectionless service
Addressing
Data forwarding
Fragmentation and reassembly
Supports variable size datagrams
Best-effort delivery:
– delay, out-of-order, corruption, and loss possible
– higher layers should handle these.
• Provides only “Send” and “Delivery” services
• Error and control messages generated by Internet Control
Message Protocol (ICMP)
FDL - 2002
9
cosa IP non fornisce
• End-to-end data reliability
& flow control
– done by TCP or application
layer protocols
• Sequencing of packets
– like TCP
• Error detection in payload
– TCP, UDP or other
transport layers
• Error reporting
– ICMP
FDL - 2002
• Setting up route tables
– RIP, OSPF, BGP etc
• Connection setup
– it is connectionless
• Address/Name resolution
– ARP, RARP, DNS
• Configuration
– BOOTP, DHCP
• Multicast
– IGMP, MBONE
10
5
Parte Prima
indirizzi e subnet
Indirizzamento in Internet
• Gli indirizzi si chiamano indirizzi IP (32 bit)
• Un indirizzo per ciascuna interfaccia di un host
– non indica l’indirizzo di una macchina in rete, ma di
una connessione alla rete
– se un host “si sposta” da una rete ad un’altra, il suo
indirizzo IP cambia
• Gerarchia a due livelli
– network number
– host number
FDL - 2002
12
6
Partizionamento: un problema difficile
• Quanti bit assegnare a un indirizzo di host e quanti
a un indirizzo di network ?
• Dipende dal relativo numero di host e di network
(ovviamente!)
• Nessuno poteva prevedere lo sviluppo di Internet
• Internet usa tre tipi (classi) di partizionamento:
– class A: 8 bits network, 24 bits host
– class B: 16 bits ciascuno
– class C: 24 bits network, 8 bits host
FDL - 2002
13
Addressing
• Per distinguere tra classi si usano i primi bit:
–
–
–
–
first bit 0 => class A
first bits 10 => class B
first bits 110 => class C
first bits 1110 => class D
(1 - 127)
(128-191)
(192-223)
(224-239)
[127 reti con 16M host]
[16K reti con 64K host]
[2M reti con 256 host]
multicast
• Indirizzi riservati
– 127.x.x.x loopback
– host_id = 0
=> indirizzo della rete
– host_id = tutti “1” => indirizzo di broadcast per la rete (all hosts)
• Denotazioni
– net-id.0
– 0.host-id
FDL - 2002
=> this_network (157.138.0.0)
=> this_host
(0.0.12.200)
14
7
indirizzi riservati per intranet private
• una rete di classe A
– 10.0.0.0
• 16 reti di classe B
– 172.16.0.0 – 172.31.0.0
• 256 reti di classe C
– 192.168.0.0 – 192.168.255.0
FDL - 2002
15
Problemi
• Gli indirizzi IP sono scarsi
– indirizzi di classe B dati anche quando non necessario
– controllo decentralizzato => impossibile “recuperare”
indirizzi
• Decentralizzazione
– permette la scalabilità a scapito della robustezza
– non può garantire nulla sul servizio: l’esistenza di un
collegamento, la banda, ...
– Il fallimento di uno dei componenti può causare gravi
danni
•
e non c’è modo di controllare chi si aggiunge alla rete!
– Difficile mantenere la sicurezza
FDL - 2002
16
8
Problemi (cont.)
• Decentralizzazione (cont.)
– non c’è una soluzione uniforme per addebitare
il costo dei servizi
•
a volte non si può neanche identificare con sicurezza
gli utenti!
– Non ci sono “guide del telefono”
•
difficile trovare l’indirizzo di email di un utente
– il routing non è ottimale
•
anche perchè dipende da decisioni amministrative
FDL - 2002
17
Subnets (sottoreti)
• Tutti gli host di una stessa rete devono avere lo stesso net-id
– se la rete cresce: LAN con indirizzo di classe C; col tempo il numero
di PC supera le 254 unità, c’è bisogno di un altro indirizzo di classe C
– gestione complessa: ottenere nuovi indirizzi dal NIC autorizzato
– esplosione tabelle di routing
• Soluzione
– consentire ad una rete di essere suddivisa in parti diverse per uso
interno, ma di comportarsi come una singola rete per l’esterno
– ad esempio: partizionare un indirizzo di classe B, allocando gli
indirizzi contenuti a diverse reti fisiche
– sottoreti: si riducono le tabelle di routing creando una gerarchia a tre
livelli ( net , subnet , host )
FDL - 2002
18
9
Subnet mask
• Configurare tutti i nodi di una medesima subnet
con una medesima maschera (subnet mask)
– 255.255.255.0 ( => 24 “1” e 8 “0”)
– Mask AND ind_Classe_B => Subnet_Address
• subnet mask predefinite
– classe A:
– classe B:
– classe C:
255.0.0.0
255.255.0.0
255.255.255.0
– 150.215.17.9 AND 255.255.0.0 = 150.215.0.0
FDL - 2002
19
Subnet mask: convenzioni
• Mask con bit “1” consecutivi
• Indirizzi subnet utili
– non tutti “0” né tutti “1” (vedi in precedenza)
• mask di n bit: al più 2n-2 indirizzi utili
• Esempio: 150.215.17.9 AND 255.255.240.0 = 150.215.16.0
10010110.11010111.00010001.00001001
11111111.11111111.11110000.00000000
150.215.017.9
255.255.240.0
(IP)
(Mask)
4 bit “1” = 24-2 = 14 subnet al più; ciascuna con 4094 nodi
10010110.11010111.00010000.00000000
FDL - 2002
150.215.16.0
(subnet)
20
10
Esempio: rete di Ca’ Foscari
• Indirizzo di classe B
– 157.138.0.0
• Subnetting:
– 255.255.255.0
• 254 sotto-reti fisiche distinte
• ciascuna con al più 254 host distinti
• Si può scrivere anche così:
– 157.138.0.0/24
• Esempi:
– 157.138.15.0
– 157.138.20.0
– 157.138.22.0
sotto-rete del Dip. di Matematica Applicata
sotto-reti di Mestre - Informatica
FDL - 2002
21
considerazioni
• non è necessario che tutti gli “1” di una maschera siano
contigui
– ma si preferisce usare solo maschere contigue
• è possibile mettere più subnet sulla stessa rete fisica
– gli host che appartengono a questa stessa rete fisica sono forzati a
comunicare attraverso un router
• utile per scopi amministrativi e di controllo
• diverse parti di Internet vedono il mondo in modo diverso
– i router “esterni” all’organizzazione vedono una singola rete
– i router “interni” devono essere in grado di instradare i pacchetti
alla subnet corretta
FDL - 2002
22
11
considerazioni - 2
• le subnets contribuiscono a risolvere i
problemi di scalabilità
– si migliora l’efficienza dell’assegnazione degli
indirizzi IP
– si aiuta ad aggregare informazioni
• un insieme complesso di reti fisiche può essere visto
come una singola rete
• viene così ridotta l’informazione che i roiuter
devono mantenere per inviare pacchetti verso quelle
reti
FDL - 2002
23
Evoluzione
• Problemi di scalabilità
– Esaurimento dello spazio di indirizzi di classe B
• classe C è troppo piccola, classe B è troppo grande per molte
organizzazioni
– Crescita delle tabelle di routing
• ben al di là delle attuali capacità di sofware, hardware e
amministratori.
– Esaurimento finale dello spazio di indirizzamento IP a
32 bit.
FDL - 2002
24
12
Evoluzione: CIDR
• Assegna reti contigue di classe C per supplire alla mancanza di
reti di classe B
– se una organizzazione ha bisogno di 2000 indirizzi, le si assegnano 8
reti di classe C contigue
• Limita l’esplosione delle tabelle di routing per mezzo dell’uso
di opportune maschere nei router per permettere di riconoscere
in un colpo solo un insieme di sottoreti C contigue
• si generalizza il concetto di variable length subnet masks
• eliminazione delle classi A, B, C
– 38.245.76.0 e mask = 255.255.255.0 (scritto anche 38.245.76.0 / 24 )
– net-id: 24 bit ; host-id: 8 bit
FDL - 2002
25
esempi di network masks
Short Full
Maximum #Machines
/8
/255.0.0.0
16,777,215
/16
/255.255.0.0
65,535
/17
/255.255.128.0
32,767
/18
/255.255.192.0
16,383
/19
/255.255.224.0
8,191
/20
/255.255.240.0
4,095
/21
/255.255.248.0
2,047
/22
/255.255.252.0
1,023
/23
/255.255.254.0
511
/24
/255.255.255.0
255
/25
/255.255.255.128
127
/26
/255.255.255.192
63
/27
/255.255.255.224
31
/28
/255.255.255.240
15
/29
/255.255.255.248
7
FDL - 2002
/30
/255.255.255.252
3
Commenti
classe A
classe B
classe C
26
13
Mapping IP <--> Indirizzo_fisico_datalink
• HostA come fa a inviare un pacchetto a HostB di
cui conosce solo IPB?
• Se il link è point-to-point non c’è mai problema
• Su una LAN
– il pacchetto sta all’interno della LAN?
•
In questo caso qual è l’indirizzo a livello di datalink ?
– Altrimenti, a quale router mandare il pacchetto?
• Qual è l’indirizzo del router a livello di datalink?
FDL - 2002
27
arp techniques
• 1. Direct mapping: Make the physical
addresses equal to the host ID part.
– Mapping is easy.
– Only possible if admin has power to choose
both IP and physical address.
– Ethernet addresses come preassigned (so do
part of IP addresses!).
– Ethernet addresses are 48 bits vs IP addresses
which are 32-bits.
FDL - 2002
28
14
arp – cont.
• 2: Table Lookup:
Searching or indexing to get MAC addresses
– Similar to lookup in /etc/hosts for names
– Problem: change Ethernet card => change table
IP Address
197.15.3.1
197.15.3.2
197.15.3.3
MAC Address
0A:4B:00:00:07:08
0B:4B:00:00:07:00
0A:5B:00:01:01:03
FDL - 2002
29
arp - cont
• 3. Dynamic Binding: ARP
– The host broadcasts a request:
• “What is the MAC address of 127.123.115.08?”
– The host whose IP address is 127.123.115.08 replies back:
• “The MAC address for 127.123.115.08 is 8A-5F-3C-23-45-5616”
• All three methods are allowed in TCP/IP networks.
FDL - 2002
30
15
ARP (Address Resolution Protocol) - RFC 826
• Tutti gli host di una LAN hanno lo stesso indirizzo di subnet
– in questo modo è facile sapere se un host è sulla stessa LAN
• Si usa il protocollo ARP per determinare il datalink address
(Ph)
–
–
–
–
A: richiesta broadcast (IP?)
B: l’host con l’indirizzo IP richiesto risponde con Ph
tutti: l’informazione viene mantenuta in cache
raffinamenti
• A invia in broadcast la sua coppia (IP,Ph)
• tutti la memorizzano
• al boot ogni macchina invia in broadcast la sua coppia (IP,Ph)
• Per scoprire i router
–
–
–
–
il router è noto “ a priori”
i router fanno sapere chi sono e quali servizi offrono
un host sceglie il router
se i router non si fanno vivi un host può esplicitamente richiedere a
FDL - 2002
31
tutti i router di qualificarsi
esempio di uso
The figure shows the use
of arp when a computer
tries to contact a remote
computer (sysa ) on the
same LAN using "ping“.
It is assumed that no
previous IP datagrams
have been received from
this computer, and
therefore arp must first be
used to identify the
MAC address of the
remote computer.
FDL - 2002
32
16
esempio – cont.
• The arp request message ("who is X.X.X.X tell Y.Y.Y.Y", where
X.X.X.X and Y.Y.Y.Y are IP addresses) is sent using the Ethernet
broadcast address, and an Ethernet protocol type of value 0x806.
– Since it is broadcast, it is received by all systems in the same collision
domain (LAN). This is ensures that is the target of the query is connected
to the network, it will receive a copy of the query. Only this system
responds. The other systems discard the packet silently.
• The target system forms an arp response ("X.X.X.X is
hh:hh:hh:hh:hh:hh", where hh:hh:hh:hh:hh:hh is the Ethernet source
address of the computer with the IP address of X.X.X.X). This packet
is unicast to the address of the computer sending the query (in this case
Y.Y.Y.Y).
– Since the original request also included the hardware address (Ethernet
source address) of the requesting computer, this is already known, and
doesn't require another arp message to find this out.
FDL - 2002
33
arp – formato del pacchetto
FDL - 2002
34
17
formato
• HardwareType: specifica il tipo di rete fisica
(Ethernet,...)
• ProtocolType: specifica il protocollo di livello
superiore (IP,...)
• HLen, Plen: lunghezza dell’indirizzo fisico e di
quello di livello superiore
• Operation: request o reply
• indirizzo fisico di mittente e destinatario
• indirizzo di livello superiore di mittente e destinatario
FDL - 2002
35
RARP - reverse arp
• H/w address -> IP address
• Used by diskless systems
– RARP server responds.
– Once IP address is obtained, use “tftp” to get a boot
image. Extra transaction!
• RARP design complex:
– RARP request broadcast, not unicast!
– RARP server is a user process and maintains table for
multiple hosts (/etc/ethers). Contrast: no ARP server
FDL - 2002
36
18
RARP – cont.
• RARP cannot use IP
• Multiple RARP servers needed for
reliability
• BOOTP, DHCP replaces RARP
FDL - 2002
37
19