LA RISOLUZIONE DEGLI INDIRIZZI NELL’ARCHITETTURA TCP/IP Prof. Alfio Lombardo
Indirizzi nell’ architettura TCP/IP Indirizzo logico (livello applicativo) Indirizzo di porta locale (livello di trasporto) Indirizzo di host (livello di rete) Indirizzo hardware (livello di linea)
LA RISOLUZIONE DEGLI INDIRIZZI NELL’ARCHITETTURA TCP/IP del sistema chiamato Risoluzione dell’indirizzo di host del sistema chiamante
Risoluzione degli indirizzi del sistema chiamato Indirizzo logico (livello applicativo) Indirizzo di host (livello di rete) Indirizzo hardware (livello di linea) Indirizzo di porta locale (livello di trasporto)
Esempio di indirizzo logico: ftp.sun90.cdc.unict.it Esempio di indirizzo di host (IP): 192.5.48.7 Esempio di indirizzo hardware (Ethernet): 00 9A 87 44 B8 C2 Esempio di indirizzo di porta locale (TCP/UDP): 21
Indirizzamento IP A B C D E
Internet: quanti indirizzi? Indirizzi di tipo A: (0.0.0.0 - 127.255.255.255) 126 reti con 16 milioni di host ciascuna Indirizzi di tipo B: (128.0.0.0 - 191.255.255.255) 16382 reti con oltre 64000 hosts ciascuna. Indirizzi di tipo C: (192.0.0.0 - 223.255.255.255) 2 milioni di reti con più di 256 hosts
Esempio L’indirizzo IP: 10000000 00000011 00000010 00000011 Classe B rappresentato come 128.3.2.3 I network numbers vengono assegnati dal Network Information Center (NIC) per evitare conflitti.
Esempio R 128.10.2.8 128.10.2.26 host 192.5.48.1 192.5.48.6 TokenRing 192.5.48.0 Ethernet 128.10.0.0 128.10.2.3 Multi homed 192.5.48.7 128.10.2.70 192.5.48.3
Domain Name System (DNS) Indirizzo logico Indirizzo di host
Funzioni del DNS Il DNS espleta due funzioni concettualmente indipendenti: specifica della sintassi dei nomi logici e delle regole per delegare l'autorità sui nomi stessi (funzione astratta); implementazione di un sistema distribuito di database che mappa in modo efficiente i nomi logici negli indirizzi di rete (funzione concreta).
Domini DNS Domain name Meaning COM Organizzazioni commerciali EDU Istituzioni educative GOV Istituzioni governative MIL Gruppi militari NET Centri di supporto per la rete ORG Altre organizzazioni INT Organizzazioni interne USA IT Assegnazioni di tipo geografico ...
jp nl it us int com edu gov mil org net yale mit unict iit pclombardo Esercizio consigliato: DNS jp nl it us int com edu gov mil org net yale mit unict iit pclombardo 151.97.6.5 cs eng pcsmith
Procedura per la risoluzione dei nomi Pclombardo.iit.unict.it ?? Resolver Applicazione TCP/UDP IP Network interface Richiesta Al DNS Server Locale
Risoluzione dei nomi con modalità non ricorsiva
Caching Memoria cache Memoria cache Risposta authoritative Risposta unauthoritative Memoria cache Risposta authoritative Risposta authoritative
Address Resolution Protocol (ARP) Indirizzo di host Indirizzo hardware
Address Resolution Protocol B C D E1 151.97.6.1 E2 151.97.6.2 E3 151.97.6.3 E4 151.97.6.4 E1 E_broadcast 151.97.6.1 151.97.6.3 E1 E3 151.97.6.1 151.97.6.3
Forwarding diretto: esempio 192.168.10.35 192.168.10.10 Subnet 192.168.10.0 MAC 00082C785852 MAC 000060AD8744 MAC-D 000060AD8744 MAC-S 00082C785852 IP-D 192.168.10.35 IP-S 192.168.10.10 In figura viene proposto un esempio di forwarding diretto. La macchina sorgente deve inviare un pacchetto all’indirizzo IP 192.168.10.35. Dalla configurazione della propria interfaccia, la sorgente sa che è attestata su una rete con indirizzo 192.168.10.0. Da ciò deduce che la macchina corrispondente all’indirizzo di destinazione è attestata sulla propria sottorete ed è quindi direttamente raggiungibile. Effettua l’operazione di risoluzione dell’indirizzo IP di destinazione nell’indirizzo di livello 2 (MAC in questo caso) corrispondente. È possibile che l’associazione sia già presente in cache. A questo punto invia il pacchetto con gli indirizzi mostrati in figura. ARP procedure
Forwarding indiretto: esempio Proxi ARP Default Gateway 192.168.11.1 Default Gateway 192.168.10.1 Subnet 192.168.10.0 Subnet 192.168.11.0 .10 .1 .1 .90 MAC 00082C785852 MAC 00000C87654A MAC 00000CAB22A7 MAC 009A8744B8C2 In figura viene proposto un esempio di forwarding indiretto. La macchina sorgente è attestata sulla rete 192.168.10.0, mentre la macchina di destinazione è attestata sulla rete 192.168.11.0. Dall’analisi dell’indirizzo di destinazione e di quello della rete a cui è direttamente connessa, la sorgente si accorge che la destinazione è attestata su un’altra rete. Il pacchetto va inviato, quindi, al router di gateway; su ogni macchina va configurato l’indirizzo IP del gateway da usare. La sorgente deve risolvere l’indirizzo di livello 2 del gateway; questa operazione viene fatta con ARP, oppure è già stata fatta e l’associazione è presente nella memoria cache della macchina. Il pacchetto inviato sulla prima rete ha come indirizzi sorgente di livello 2 e 3 quelli della macchina che trasmette; come indirizzo di livello 2 di destinazione ha quello del router di gateway; come indirizzo di livello 3 di destinazione ha quello della macchina che è l’effettiva destinazione. Quest’ultimo indirizzo viene usato dal router, che quando riceve il pacchetto controlla nella propria tabella di instradamento dove lo deve inoltrare. Nella seconda rete il router deve risolvere l’indirizzo di livello 2 della macchina di destinazione. Il pacchetto nell’ultima rete avrà come indirizzi IP sorgente e destinazione quelli delle macchine che sono effettivamente sorgente e destinazione della connessione, come indirizzo di livello 2 di destinazione quello della macchina destinazione e come indirizzo di livello 2 di sorgente quello del router. La conclusione è che gli indirizzi di livello 3 non cambiano mai durante il tragitto di un datagram, mentre quelli di livello 2 individuano gli apparati interessati alla trasmissione del pacchetto all’interno di una particolare sottorete. ARP procedure MAC-D 00000C87654A MAC-S 00082C785852 IP-D 192.168.11.90 IP-S 192.168.10.10 MAC-D 009A8744B8C2 MAC-S 00000CAB22A7 IP-D 192.168.11.90 IP-S 192.168.10.10 ARP procedure
Forwarding indiretto: esempio Default Gateway 192.168.11.1 Default Gateway 192.168.10.1 Subnet 192.168.10.0 Subnet 192.168.11.0 .10 .1 .1 .90 MAC 00082C785852 MAC 00000C87654A MAC 00000CAB22A7 MAC 009A8744B8C2 In figura viene proposto un esempio di forwarding indiretto. La macchina sorgente è attestata sulla rete 192.168.10.0, mentre la macchina di destinazione è attestata sulla rete 192.168.11.0. Dall’analisi dell’indirizzo di destinazione e di quello della rete a cui è direttamente connessa, la sorgente si accorge che la destinazione è attestata su un’altra rete. Il pacchetto va inviato, quindi, al router di gateway; su ogni macchina va configurato l’indirizzo IP del gateway da usare. La sorgente deve risolvere l’indirizzo di livello 2 del gateway; questa operazione viene fatta con ARP, oppure è già stata fatta e l’associazione è presente nella memoria cache della macchina. Il pacchetto inviato sulla prima rete ha come indirizzi sorgente di livello 2 e 3 quelli della macchina che trasmette; come indirizzo di livello 2 di destinazione ha quello del router di gateway; come indirizzo di livello 3 di destinazione ha quello della macchina che è l’effettiva destinazione. Quest’ultimo indirizzo viene usato dal router, che quando riceve il pacchetto controlla nella propria tabella di instradamento dove lo deve inoltrare. Nella seconda rete il router deve risolvere l’indirizzo di livello 2 della macchina di destinazione. Il pacchetto nell’ultima rete avrà come indirizzi IP sorgente e destinazione quelli delle macchine che sono effettivamente sorgente e destinazione della connessione, come indirizzo di livello 2 di destinazione quello della macchina destinazione e come indirizzo di livello 2 di sorgente quello del router. La conclusione è che gli indirizzi di livello 3 non cambiano mai durante il tragitto di un datagram, mentre quelli di livello 2 individuano gli apparati interessati alla trasmissione del pacchetto all’interno di una particolare sottorete. MAC-D 00000C87654A MAC-S 00082C785852 IP-D 192.168.11.90 IP-S 192.168.10.10 MAC-D 009A8744B8C2 MAC-S 00000CAB22A7 IP-D 192.168.11.90 IP-S 192.168.10.10 ARP procedure
Address Resolution Protocol (Reverse Address Resolution Protocol)
ARP e trama data linK
Trame in arrivo Esercizio consigliato: ARP Entita’ IP Entita’ ARP Entita’ RARP Interfaccia (demux) Trame in arrivo Esercizio consigliato: ARP
Indirizzamento TCP Port number Appl. 1 Appl. 2 Appl. n Port number identificativo di un utente TCP (programmi applicativi e/o utenti che fanno uso di uno stesso host) è rappresentato da un intero • • • TCP IP Network Interface
Indirizzamento TCP L’assegnazione del numero di porta può essere statico sono identificativi staticamente associati ad applicazioni largamente utilizzate sono utilizzati identificativi inferiori a 256 dinamico sono identificativi assegnati direttamente dal sistema operativo al momento dell’apertura della connessione Numero 7 37 21 53 23 103 25 Applicazione Echo FTP (File Transfer Protocol) TELNET SMTP (Simple Mail Transport Protocol 119 Time Domain Name Server X400 Mail Service NNTP (USENET New Transfer Prot.)
Well Known Port Servizio Porta TCP UDP FTP 21 4 Telnet 23 4 SMTP 25 4 TFTP 69 4 DNS 53 4 4 HTTP 80 4 POP 109 4 SNMP 161 4 Si è detto in precedenza che un numero di port, con valore globale ed univoco, è il mezzo con cui un programma client indirizza un programma server; dunque, per richiedere un certo servizio, un applicativo client deve aprire una connessione con la macchina di destinazione, sulla porta server che individua quel particolare servizio. Ad esempio un client FTP, per connettersi ad un FTP server, deve conoscere e indicare l’indirizzo IP dell’elaboratore remoto e il numero della porta associata al servizio FTP. Le ports sono individuate da un numero naturale di 16 bit. Questo spazio di numerazione è diviso in due gruppi: da 0 a 1023 è lo spazio riservato per le porte privilegiate o well known ports, che servono per indirizzare un certo servizio; lo spazio da 1024 a 65535 è lasciato libero per le porte utenti, cioè quelle scelte dall’applicativo client come porta sorgente. Ulteriori dettagli sui protocolli di livello 4 di Internet saranno dati nel prosieguo del corso.
Host 1 Host 2 Host 1 Host 2 (a) (b) Process User User Process Server Time Server User Process Server User Process Server TSAP (a) (b)
Host 1 Host 2 Host 1 Host 2 (a) (b) Name Server Name Server User User Time Server Time Server User User TSAP (a) (b)
Risoluzione dell’indirizzo di host del sistema chiamante Necessaria per tutti quei sistemi che non conoscono il proprio IP address Assegnazione dinamica dell’indirizzo IP Diskless systems
Problems a diskless computer faces during system startup: The startup program (in ROM) does not contain IP address Indirizzo di host RARP, BOOTP, DHCP hardware Bootstap program The file server address The nearest IP router address
Reverse Address Resolution Protocol (Address Resolution Protocol)
RARP related problems RARP operates at a low level The RARP replay contains the IP address only BOOTP RARP cannot be used when address is dynamically assigned DHCP
RFC 951 : Bootstrap Protocol (BOOTP) A client/server based protocol allowing for bootstrapping BOOTP client BOOTP server 68 67 UDP UDP
BOOTP uses UDP BUT…... UDP uses IP!! BOOTP Server is implemented as an Application program A single BOOTP message specifies many items BUT…...
Using IP to determine IP address BOOTP Client uses Limited broadcast (255.255.255.255) BOOTP Server uses Limited broadcast too for its replay BOOTP client has to use a well known port number (68) to avoid different clients using the same OS assigned port number receive the server response
BOOTP Protocol Require UDP checksum Require Dont Fragment bit setting Uses timeout and retransmission Random delay Random timeout Double timeout after retrasmission
Bootstrap Procedure BOOTP Server provides client with information needed to obtain the memory image TFTP is used to obtain the memory image from the server
BOOTP Message OP=request, replay Htype=Hardware t. Hlen=HardAddr len. Hops= 0 Trans.Id=Integer Sec=sec. since boot
Vendor Specific Area (Options) Magic cookie 99 130 83 99 …….. Type Length Value . Type Length Value
Items in the Vendor Specific Area Content of Value Ip address of N/4 routers “ “ “ related ser. “ “ “ “ Host name reserved Variab. Length Value N N N N N N N N N N 2 - Item Type Default Routers Time Server IEN16 Server Domain Server Log Server Quote Server Lpr Server Impress RLP Server Hostname Boot size Reserved Item Code 3 4 5 6 7 8 9 10 11 12 13 128-254
Items in the Vendor Specific Area Type Padding Subnet Mask Time of day End Item Code 1 2 255 Fixed Length Value - 4 Content of Value 0000..0 Subnet musk for local net Time of day
Why Dynamic Configuration BOOTP Server IP router
Why Dynamic Configuration BOOTP Server IP router LAN 1 LAN 2
Dynamic Host Configuration Protocol Allows a computer to acquire all the configuration information it needs in a single message Allows a computer to obtain an IP address dynamically DHCP Server has to be configured with a number of IP addresses
Address Assignement Types Manual Configuration Automatic Configuration Dynamic Configuration Static assignment db Dynamic assignment db Manager chooses how DHCP will response for each net and for each host (like BOOTP, DHCP uses the hardware address as client identifier)
DHCP Protocol ………… client server client server server client server Passive open client server UDP 67 client server 68 UDP DHCP Discover 67 UDP server client 67 UDP 68 UDP DHCP Offer server client 67 UDP 68 UDP DHCP Request client server 68 UDP DHCP Ack 67 UDP T=50% client server 68 UDP DHCP Request 67 UDP T=85% client server 68 UDP DHCP Request 67 UDP client server 68 UDP DHCP Ack/Nack 67 UDP ………… client 68 UDP server DHCP Release 67 UDP
Address Acquisition States Nota: Rec/Send
DHCP Message unused flag