Passa ai contenuti principali

Introduzione alle reti 7 - IP Addressing Services

  
Oltre a compiti relativi alla sicurezza come nel caso delle ACL, un router è in grado di assolvere anche a compiti relativi all'indirizzamento automatico. 


Dynamic Host Configuration Protocol (DHCP)


Il DHCP (Dynamic Host Configuration Protocol) è un protocollo di rete di livello applicativo che consente ai device di una rete locale di ricevere dinamicamente, non appena connessi, la configurazione di base: indirizzo IP, subnet mask, default gateway e, se previsto, l'indirizzo IP del DNS (Domain Name Server). 


In particolari contesti il compito di assegnare dinamicamente la configurazione di rete viene affidato ad uno specifico DHCP Server, ma di prassi questo servizio è svolto dal router principale della rete locale.

Il processo di assegnazione della configurazione prevede più step:
  • Non appena connesso, il client (ad esempio, l'host in attesa di configurazione) invia in broadcast un messaggio di DHCPDISCOVER col quale si informa di quale macchina sia responsabile del servizio DHCP all'interno della LAN;
  • In risposta alla DHCPDISCOVER, il router invia all'host una DHCPOFFER per segnalare la propria disponibilità al servizio;   
  • L'host risponde quindi (ancora in broadcast) inviando una DHCPREQUEST, ovvero una richiesta di configurazione; 
  • Il router invia finalmente all'host la configurazione. 

Da notare che la configurazione viene assegnata - o, come è più corretto dire, "affittata" - all'host solo per un limitato periodo di tempo, scaduto il quale, lo stesso host farà richiesta al DHCP Server (il router) per il rinnovo della medesima configurazione. 

Ovviamente, all'interno di una rete, non tutti i dispositivi dovranno disporre di indirizzamento dinamico (è ad esempio auspicabile che i Server abbiano indirizzo statico, vale a dire stabile nel tempo per risultare ben noto ai fruitori dei propri servizi). 

É per tale motivo che, nella configurazione del servizio di DHCP è possibile specificare l'insieme di IP Address riservati all'indirizzamento statico, e più Pool di indirizzi dei quali è invece possibile disporre per l'indirizzamento dinamico (si noti che si parla di più di un pool, dal momento che il router potrà servire più reti in ambito DHCP: quelle connesse alle proprie interfacce).  


Qualora, peraltro, un indirizzo nel pool fosse in conflitto con altri indirizzi nella rete, lo stesso verrebbe escluso fino a risoluzione del conflitto.    

Di seguito le istruzione per la configurazione DHCP:




(config)#ip dhcp excluded-address
<low-address>
[<high-address>]
Definisce il range di indirizzi statici (che, cioè, non debbono essere assegnati dinamicamente)


(config)#ip dhcp pool <pool-name>
(dhcp-config)#network <ip> <subnet_mask>
(dhcp-config)#default-router
<ip-address>
(dhcp-config)#dns-server
<ip-address>
Definisce un pool di indirizzi per l'indirizzamento dinamico e ne dichiara le caratteriostiche: rete, default gateway (qui chiamato default-router), DNS. Sarà quindi necessario
definire tanti pool di indirizzi quante sono le reti che si intendono amministrare tramite DHCP.



Segue un esempio di configurazione DHCP. 



Router(config)#ip dhcp pool MyPool1
Router(dhcp-config)#network 192.168.1.0 255.255.255.0
Router(dhcp-config)#default-router 192.168.1.1

Router(config)#ip dhcp pool MyPool2
Router(dhcp-config)#network 192.168.2.0 255.255.255.0
Router(dhcp-config)#default-router 192.168.2.1

Gli indirizzi dei terminali sono stati assegnati automaticamente attingendo dai due pool di indirizzi definiti e nel rispetto delle reti che originano dalle interfacce del router.


Network Address Translation (NAT)

Con NAT si indica la tecnica comunemente utilizzata per "sostituire", nell’intestazione di un pacchetto, l'indirizzo IP (sorgente o destinazione) con un altro indirizzo. 

NAT viene principalmente utilizzato per consentire l'uso di indirizzi privati all'interno di reti locali. Attraverso NAT, difatti, gli host della rete privata "escono" su internet "mascherando" il proprio indirizzo privato con un indirizzo pubblico. Di fatto, senza NAT, non sarebbe possibile l'impiego di indirizzi privati. 

Dal momento che il NAT offre implicitamente una misura di protezione, non è insolito trovarlo implementato per mezzo di Firewall. Tuttavia, quando il traffico di rete lo consente, lo stesso compito può essere tranquillamente affidato ai router, ed è quest'ultima la situazione qui esaminata.

É prassi distinguere fra tre distinti tipi di NAT:


Static NAT

Il NAT Statico realizza una traduzione di indirizzi del tipo one-to-one, ovvero, ad ogni indirizzo privato viene fatto corrispondere uno, ed uno solo, indirizzo pubblico da utilizzare all'esterno della rete locale. 

L'implementazione del NAT statico è immediata: a ciascun pacchetto in uscita dalla LAN privata, viene assegnato in modo univoco, un indirizzo sorgente pubblico; l'inverso sarà per i pacchetti in ingresso alla rete: verrà assegnato loro l'indirizzo di destinazione privato corrispondente all'IP pubblico col quale si presenteranno al medesimo router. 

Ovviamente, il NAT statico richiede una disponibilità di indirizzi pubblici almeno pari al numero di host della rete privata che abbiano necessità di uscire su Internet. 

Per configurare su un router il NAT statico, questi i passaggi:
  • Specificare le interfacce del router con funzione di gateway delle reti private: le inside interface
        es. Router(config)#interface fa0/0             
       Router(config-if)#ip nat inside

       
Router(config)#interface fa0/1             
       Router(config-if)#ip nat inside


  • Specificare le outside interface, ovvero le interfacce del router che instradano i pacchetti all'esterno delle reti private  
        es. Router(config)#interface s0/0/0
            Router(config-if)#ip nat outside

       Router(config)#interface s0/1/0
            Router(config-if)#ip nat outside

  • Definire le traduzioni <indirizzo privato - indirizzo pubblico> 
        es. Router(config)#ip nat inside                                                     source 192.168.10.1 209.165.200.1
       Router(config)#ip nat inside 
                    source 192.168.10.2 209.165.200.2
       Router(config)#ip nat inside 
                    source 192.168.10.3 209.165.200.3



Dynamic NAT

A differenza di quanto avviene per il NAT statico, nel NAT dinamico la corrispondenza <indirizzo privato - indirizzo pubblico> non è fissa: ad un indirizzo privato che ne faccia richiesta, viene assegnato il primo fra gli indirizzi pubblici al momento disponibili. Il router dispone, difatti, di un pool di indirizzi pubblici (in numero almeno pari a quelli privati) che 
assegna dinamicamente ai pacchetti in uscita dalla rete locale, e che torneranno ad essere disponibili una volta esaurito il proprio compito. Il router tiene anche traccia delle associazioni correnti <indirizzo privato - indirizzo pubblico> attraverso un'apposita NAT Table.   

Per configurare in un router il NAT dinamico, è necessario:
  • Specificare le interfacce gateway delle reti private, ovvero le inside interface
        es. Router(config)#interface fa0/0
       Router(config-if)#ip nat inside


       Router(config)#interface fa0/1             
       Router(config-if)#ip nat inside

  • Specificare le outside interface, ovvero le interfacce del router che instradano i pacchetti all'esterno  
        es. Router(config)#interface s0/0/0
            Router(config-if)#ip nat outside

       
Router(config)#interface s0/1/0
            Router(config-if)#ip nat outside

  • Definire, tramite una ACL, l'insieme di indirizzi privati che possono essere tradotti 
        es. Router(config)#access-list 10 permit 192.168.1.0  0.0.0.255 

  • Definire il pool di indirizzi pubblici (<ip-addr.min> <ip-addr.-max> netmask <subnet-mask>) da poter assegnare dinamicamente 
        es. Router(config)#ip nat pool 
                     MyPool 209.165.200.1 209.165.200.254 
                     netmask 255.255.255.0

  • Legare il pool di indirizzi pubblici agli indirizzi privati "traducibili"  
        es. Router(config)#ip nat inside source list 10 pool MyPool


Di seguito un esempio di configurazione per NAT dinamico: gli indirizzi privati della rete 192.168.1.0/24 (nel presente scenario, di fatto, il solo indirizzo 192.168.1.254) vengono "mascherati" con gli indirizzi nel range [100.100.100.1 - 100.100.100.5]. 


Router(config)#interface fa0/0
Router(config-if)#ip address 192.168.1.1 255.255.255.0
Router(config-if)#ip nat inside
Router(config-if)#exit
Router(config)#interface s0/0/1
Router(config-if)#ip address 200.100.10.1 255.255.255.252
Router(config-if)#ip nat outside 
Router(config-if)#exit
Router(config)#access-list 10 permit 192.168.1.0 0.0.0.255
Router(config)#ip nat pool MyPool 100.100.100.1 100.100.100.5 
                 netmask 255.255.255.248
Router(config)#ip nat inside source list 10 pool MyPool 

Da tenere sempre presente che i pacchetti uscenti dalla rete privata, al di fuori di questa, verranno gestiti come pacchetti provenienti dalla rete 100.100.100.0/29 (come imposto dal pool di indirizzi pubblici adottato nel NAT dinamico).



NAT Overload o PAT

Il NAT Overload (anche detto Port Address Translation o PAT) prende origine dal NAT Dinamico, ma riesce a "mappare" una moltitudine di indirizzi privati ​​su pochi (eventualmente uno solo) indirizzi pubblici. 

La situazione tipica è quella delle reti domestiche: al di fuori della rete privata, tutti i pacchetti di qui uscenti assumono indistintamente lo stesso indirizzo Ip di origine,  ovvero quello dell'Access Point (il router di frontiera della rete stessa).

L'idea alla base di NAT Overload è semplice: 
associare il numero di porta TCP/UDP di ciascun pacchetto con indirizzo privato legato allo stesso indirizzo pubblico. Quando un client apre una sessione TCP/IP, il router assegna un numero di porta al suo indirizzo di origine. NAT Overload si assicura che i client utilizzino ciascuno un numero di porta TCP differente. Quando un messaggio di risposta ritorna dal server, il numero della porta di origine, che diventa il numero della porta di destinazione per il viaggio di ritorno, determina a quale client il router dovrà destinare il pacchetto.

Di seguito le istruzioni per implementare NAT Overload per il router R0 del seguente scenario:




Nel caso si voglia implementare NAT Overload su unico indirizzo pubblico:


  • Specificare le interfacce gateway delle reti private: le inside interface
        es. Router(config)#interface fa0/0
              Router(config-if)#ip nat inside


  • Specificare la outside interface, ovvero l'interfaccia del router che instrada i pacchetti all'esterno  
        es. Router(config)#interface s0/0/1
            Router(config-if)#ip nat outside


  • Definire una regola (ACL) che stabilisca quali indirizzi privati possono essere tradotti 
        es. Router(config-if)#access-list 10 
                      permit 192.168.100.16 0.0.0.15


  • Legare lindirizzo pubblico (quello della outside interface) all'insieme di indirizzi privati "traducibili"  
        es. ip nat inside source list 10 interface serial 0/0/1
         overload


Nell'ipotesi in cui gli indirizzi pubblici disponibili siano, invece, superiori ad uno:

  • Specificare le interfacce gateway delle reti private: le inside interface
        es. Router(config)#interface fa0/0
              Router(config-if)#ip nat inside

  • Specificare le outside interface, ovvero l'interfaccia del router che instrada i pacchetti all'esterno  
        es. Router(config)#interface s0/0/1
            Router(config-if)#ip nat outside

  • Definire una regola (ACL) che stabilisca quali indirizzi privati possono essere tradotti 
        es. Router(config-if)#access-list 10 
                      permit 192.168.100.16  0.0.0.15


  • Definire il pool di indirizzi pubblici da poter assegnare dinamicamente 
        esRouter(config)#ip nat pool 
                    MyPool 198.18.184.105 198.18.184.110 
                    netmask 255.255.255.248
  • Legare il pool di indirizzi pubblici all'insieme di indirizzi privati "traducibili"  
        es. Router(config)#ip nat inside source list 10 
                    pool MyPool overload



 







Commenti

Post popolari in questo blog

Introduzione alle reti 3 - Switch tecnologies

In questa sezione verranno esaminate le Virtual LAN, prima espressione della tecnologia LAN Switching.    Virtual Local Area Network (VLAN) Come già detto, uno dei punti di forza di uno switch risiede nella possibilità di creare sotto-reti a basso costo. Le VLAN ( Virtual Local Area Network ) , in particolare,  rappresentano la risposta a quelle situazioni nelle quali, pur non disponendo di grandi risorse, si renda comunque necessario tener distinti due o più ambiti della stessa rete, o, come è usuale dire, suddividere in più parti un dominio di broadcast.  L'esempio tipico è quello di una (piccola) impresa che abbia necessità di tener separati sulla rete i propri device in base alle attività produttive. La rete potrebbe allora pensarsi composta di tante VLAN quante sono le attività aziendali, ciascuna VLAN potendo contenere al proprio interno l'hw destinato ad ogni specifica attività. Dal punto di vista sistemistico, una  VLAN  è costituita da un sottoinsiem

Switch Commands - istruzioni Cisco HP Extreme "in a nutshell"

Indirizzamento IP

Obiettivo di questo articolo, senza pretesa di esaurire l'argomento, è quello di presentare in modo chiaro e comprensibile un argomento alle volte ostico: l'indirizzamento IP.  Questo, fra l'altro, consentirà di affrontare, anche agli utenti meno esperti, operazioni semplici quali   la configurazione di una scheda di rete con maggiore consapevolezza. Gli indirizzi IP Come noto, con IP  ci si riferisce ad uno dei protocolli di comunicazione di rete più affermati nel mondo delle telecomunicazioni:  Internet Protocol .   Un indirizzo IP è, in particolare, un codice binario che identifica univocamente un dispositivo di rete (una scheda ethernet, la porta di uno switch o di un router, etc.) all'interno di una rete di computer.  Di primaria importanza, nell'ambito dell'indirizzamento, è la lunghezza degli indirizzi, ovvero il numero di bit utilizzati per rappresentare un indirizzo di rete. Questo, evidentemente, perché con n bit sarà possibile ind