Network Address Translations su Cisco (NAT)
Nel collegamento di due reti differenti, private o non, può presentarsi il problema di overlapping di indirizzi. In altre parole due entità (aziende) differenti utilizzano lo stesso indirizzamento, impedendo così la possibilità di poter comunicare in modo trasparente. Occorre quindi rendere trasparente la rete del cliente alla rete interna e viceversa.
Si vuole in particolare che:
- particolari host situati nella rete di produzione (inside) siano esposti mediante indirizzi compatibili con quelli del cliente (192.168.0.0/24);
- particolari host situati nella rete del cliente (outside) siano esposti mediante indirizzi compatibili con quelli della rete di produzione (10.0.0.0/24).
ip nat inside source static 10.128.0.2 192.168.0.2A questo punto si avranno due importanti conseguenze:
- tutti i pacchetti dall'IP 10.128.0.2 verso la rete del cliente, verranno visti dal clienti come provenienti dall'IP 192.168.0.2;
- viceversa il cliente potrà chiamare l'IP 10.128.0.2 utilizzando invece l'indirizzo 192.168.0.2 compatibile con la sua rete.
Il secondo punto si traduce invece come "esponi l'IP esterno 192.168.128.2 come 10.0.0.2", ovvero:
ip nat outside source static 192.168.128.2 10.0.0.2In questo caso è necessario l'inserimento di un'apposita rotta statica. La sequenza delle operazioni nel passaggio inside-outside prevede che prima del NAT venga effettuato il routing. Questo significa che il router dovrà sapere come instradare un pacchetto proveniente dalla rete di produzione verso la rete 10.0.0.0/24, che sarebbe sconosciuta senza la rotta statica. Questa rotta servirà anche per la redistribuzione via OSPF/EIGRP in modo da rendere raggiungibile il cliente da tutta la rete interna.
ip route 10.0.0.0 255.255.255.0 fa0/0
Le due importanti conseguenze sono ora:
- tutti i pacchetti dall'IP 192.168.128.2 verso la rete di produzione, verranno visti all'interno come provenienti dall'IP 10.0.0.2;
- viceversa sarà possibile chiamare dall'interno l'IP 192.168.128.2 utilizzando invece l'indirizzo 10.0.0.2 compatibile con la rete interna.
Si vuole ora impedire che la rete del cliente chiami la rete interna usando la classe 10.128.0.0/9. Occorre quindi permettere solo i pacchetti verso la rete 192.168.0.0/24 in entrata sull'interfaccia fa0/0:
access-list 101 permit ip any 192.168.0.0 0.0.0.255Si noti che se la rete 192.168.0.0/16 non viene redistribuita via OSPF/EIGRP, l'inaccessibilità è già garantita. Tuttavia un filtro aggiuntivo lato cliente ci da maggiore sicurezza.
interface fa0/0
ip access-group 101 in
Esposizione di più host su un unico IP
In questo caso il cliente desidera che i vari servizi erogati da diversi host interni siano disponibili su diverse porte localizzate però su un unico indirizzo IP. Traducendo si ha: "esponi l'IP interno 10.128.0.2 porta 23 come 192.168.0.3 porta 2323", ovvero:
ip nat inside source static tcp 10.128.0.2 80 192.168.0.3 2323Viceversa se sono gli host interni che devono invocare i servizi dal cliente, e il cliente vuole che le chiamate arrivino da un unico indirizzo IP la cosa si traduce in "esponi gli IP interni AllowedIP come IPPool", ovvero:
ip nat inside source static tcp 10.128.0.3 81 192.168.0.3 2324
ip nat inside source static tcp 10.128.0.4 82 192.168.0.3 2325
ip nat inside source list AllowedIP pool IPPoolDove AllowedIP è una ACL contenente le regole che permettono l'accesso all'esterno. Si noti che l'ACL può selezionare gli IP in base anche alle porte di destinazione, permettendo così una certa flessibilità nel mascherare (esporre) IP in base al servizio chiamato.
Eventualmente al posto di un pool di indirizzi è possibile usare l'IP del router stesso. Questa è la configurazione tipica nell'esporre (mascherare) gli host interni su Internet.




