Questo documento spiega come l'uso di elenchi degli accessi rispetto a mappe dei percorsi modifichi la funzionalità di Network Address Translation (NAT). Per ulteriori informazioni su NAT, fare riferimento a Cisco IOS NAT.
Nessun requisito specifico previsto per questo documento.
Le informazioni fornite in questo documento si basano sulle seguenti versioni software e hardware:
Cisco serie 2500 Router.
Software Cisco IOS® versione 12.3(3).
Le informazioni discusse in questo documento fanno riferimento a dispositivi usati in uno specifico ambiente di emulazione. Su tutti i dispositivi menzionati nel documento la configurazione è stata ripristinata ai valori predefiniti. Se la rete è operativa, valutare attentamente eventuali conseguenze derivanti dall'uso dei comandi.
Per ulteriori informazioni sulle convenzioni usate, consultare il documento Cisco sulle convenzioni nei suggerimenti tecnici.
NAT utilizza solo elenchi degli accessi e mappe percorsi quando deve creare una voce di traduzione. Se esiste già una voce di traduzione corrispondente al traffico, verrà utilizzata la voce di traduzione; gli elenchi degli accessi o le mappe dei percorsi non saranno consultati. La differenza tra l'utilizzo di un elenco degli accessi o di una mappa dei percorsi consiste nel tipo di voce di traduzione che verrà creata.
Quando NAT utilizza una mappa dei percorsi per decidere di creare una voce di traduzione, crea sempre una voce di traduzione "completamente estesa". Questa voce di conversione contiene sia le voci dell'indirizzo interno che quelle dell'indirizzo esterno (locale e globale) ed eventuali informazioni sulle porte TCP o UDP. Per ulteriori informazioni, fare riferimento al documento NAT: Definizioni locali e globali per ulteriori informazioni su indirizzi interni ed esterni (locali e globali).
Quando NAT utilizza un elenco degli accessi per decidere di creare una voce di traduzione, crea una voce di traduzione "semplice". Questa voce "semplice" contiene solo voci di indirizzi IP locali e globali solo per l'interno o l'esterno, a seconda che il comando ip nat inside o ip nat outside sia configurato. Inoltre, non include informazioni sulle porte TCP o UDP.
Quando NAT utilizza un elenco degli accessi ed è stato specificato anche l'overload, NAT crea una voce di traduzione "completamente estesa". (Vedere Nota 1). L'operazione è simile al caso della mappa del percorso, con la differenza che la mappa del percorso ha alcune caratteristiche aggiuntive. Per ulteriori informazioni, vedere la nota 2. È possibile visualizzare un esempio di una semplice voce di traduzione NAT e una voce di traduzione NAT completamente estesa selezionando uno dei seguenti collegamenti:
Questo è un esempio di diagramma di rete usato per illustrare la differenza tra l'utilizzo di una mappa dei percorsi e un elenco degli accessi con NAT:
Nel diagramma di rete di esempio riportato di seguito è necessario convertire gli host della versione 10.1.1.0 in:
131.108.2.0 quando si va a 131.108.1.0
131.118.2.0 quando si va a 131.118.1.0
Con un approccio basato sull'elenco degli accessi, per tradurre gli host sulla versione 10.1.1.0 è necessario attenersi alla seguente procedura:
ip nat pool pool108 131.108.2.1 131.108.2.254 prefix-length 24 !--- Defines a pool of global addresses to be allocated as needed. ip nat pool pool118 131.118.2.1 131.118.2.254 prefix-length 24 ip nat inside source list 108 pool pool108 !--- Establishes dynamic source translation, specifying the !--- access list defined below. ip nat inside source list 118 pool pool118 interface ethernet0 ip address 10.1.1.1 255.255.255.0 ip nat inside !--- Marks the interface as connected to the inside. interface ethernet1 ip address 10.1.2.1 255.255.255.0 ip nat outside !--- Marks the interface as connected to the outside. access-list 108 permit ip 10.1.1.0 0.0.0.255 131.108.1.0 0.0.0.255 !--- Defines the access-list mentioning those addresses !--- that are to be translated. access-list 118 permit ip 10.1.1.0 0.0.0.255 131.118.1.0 0.0.0.255
Per ulteriori informazioni su questi comandi, fare riferimento a Indirizzamento IP e comandi di servizi.
Ecco cosa succede quando l'host 1 si connette all'host 2.
Packet on (Network 1) s:10.1.1.2(1024) d:131.108.1.2(23) Packet on (Network 2) s:131.108.2.1(1024) d:131.108.1.2(23) (after NAT)
Poiché NAT ha utilizzato un elenco degli accessi per abbinare questo traffico, viene creata una voce di traduzione semplice, che include solo informazioni di traduzione interne e nessuna informazione su protocollo o porta:
inside outside local global global local 10.1.1.2 131.108.2.1 ---- ----
Pacchetto restituito: Dall'host 2 all'host 1:
Packet on (Network 2) s:131.108.1.2(23) d:131.108.2.1(1024) Packet on (Network 1) s:131.108.1.2(23) d:10.1.1.2(1024) (after NAT)
Con la semplice traduzione di cui sopra, ecco cosa succede quando l'host 1 si connette anche all'host 3:
Packet on (Network 1) s:10.1.1.2(1025) d:131.118.1.2(23) Packet on (Network 2) s:131.108.2.1(1025) d:131.118.1.2(23) (after NAT)
Potete vedere che c'è un problema. I pacchetti che vanno dagli host 10.1.1.0 all'host 131.118.1.0 devono essere convertiti in host 131.118.2.0, non 131.108.2.0. Ciò si verifica perché esiste già una voce di traduzione NAT per 10.1.1.2 <—> 131.108.2.1 che corrisponde anche al traffico tra l'host 1 e l'host 3. Pertanto, questa voce di traduzione verrà utilizzata e gli elenchi degli accessi 108 e 11111 8 non sono selezionate.
Anche se la voce di traduzione semplice è presente nella tabella di traduzione NAT, può essere utilizzata da qualsiasi utente esterno su qualsiasi host esterno per inviare un pacchetto all'host 1, a condizione che l'utente esterno utilizzi l'indirizzo globale interno (131.108.2.1) per l'host 1. Normalmente, per consentire questa operazione, è necessaria una traduzione NAT statica.
Il modo corretto per configurare l'esempio in questo documento è utilizzare le mappe percorsi. Con un approccio basato sulla mappa dei percorsi, è possibile effettuare le seguenti operazioni per tradurre gli host in 10.1.1.0:
ip nat pool pool-108 131.108.2.1 131.108.2.254 prefix-length 24 ip nat pool pool-118 131.118.2.1 131.118.2.254 prefix-length 24 ip nat inside source route-map MAP-108 pool pool-108 !--- Establishes dynamic source translation, specifying !--- the route-map MAP-108 which is defined below. ip nat inside source route-map MAP-118 pool pool-118 !--- Establishes dynamic source translation, specifying the route-map MAP-118. !--- Here, the route-maps are consulted instead of !--- access-lists (as in the previous case). interface ethernet0 ip address 10.1.1.1 255.255.255.0 ip nat inside interface ethernet1 ip address 10.1.2.1 255.255.255.0 ip nat outside access-list 108 permit ip 10.1.1.0 0.0.0.255 131.108.1.0 0.0.0.255 access-list 118 permit ip 10.1.1.0 0.0.0.255 131.118.1.0 0.0.0.255 route-map MAP-108 permit 10 !--- Defines the Route-map MAP-108. match ip address 108 !--- Specifies the criteria for translation. Here, the IP !--- address mentioned in the access-list 108 is translated. !--- The translation is defined in the !--- ip nat inside source route-map MAP-108 pool pool-108 command. route-map MAP-118 permit 10 !--- Defines the Route-map MAP-108. match ip address 118 !--- The IP address mentioned in the access-list 118 is translated. !--- The translation is defined in the !--- ip nat inside source route-map MAP-118 pool pool-118 command.
Per ulteriori informazioni su questi comandi, fare riferimento a Indirizzamento IP e comandi di servizi.
Di seguito viene riportato ciò che accade quando l'host 1 si connette all'host 2:
Packet on (Network 1) s:10.1.1.2(1024) d:131.108.1.2(23) Packet on (Network 2) s:131.108.2.1(1024) d:131.108.1.2(23) (after NAT)
In questo caso, poiché NAT ha utilizzato una mappa dei percorsi per abbinare il traffico da tradurre, NAT creerà una voce di traduzione completamente estesa, che include informazioni di traduzione sia interne che esterne:
inside outside local global global local 10.1.1.2:1024 131.108.2.1:1024 131.108.1.2:23 131.108.1.2:23
Pacchetto restituito: Dall'host 2 all'host 1:
Packet on (Network 2) s:131.108.1.2(23) d:131.108.2.1(1024) Packet on (Network 1) s:131.108.1.2(23) d:10.1.1.2(1024) (after NAT)
Ora, quando l'host 1 invia un pacchetto all'host 3, viene visualizzato questo messaggio:
Packet on (Network 1) s:10.1.1.2(1025) d:131.118.1.2(23) Packet on (Network 2) s:131.118.2.1(1025) d:131.118.1.2(23) (after NAT)
La traduzione ha funzionato correttamente perché il pacchetto su (N1) non corrisponde alla voce di traduzione completamente estesa utilizzata per il traffico dall'host 1 all'host 2. Poiché la traduzione esistente non corrisponde, NAT crea un'altra voce di traduzione per il traffico dall'host 1 all'host 3.
Queste sono le voci di traduzione completamente estese sul router NAT:
inside outside local global global local 10.1.1.2:1024 131.108.2.1:1024 131.108.1.2:23 131.108.1.2:23 10.1.1.2:1025 131.118.2.1:1025 131.118.1.2:23 131.118.1.2:23
Poiché la tabella di conversione NAT include due voci complete, il traffico che va alle due diverse destinazioni dalla stessa origine verrà tradotto correttamente.
A differenza della voce di traduzione semplice creata tramite l'elenco degli accessi, la voce di traduzione completamente estesa creata tramite la mappa dei percorsi non può essere utilizzata da altri utenti esterni per inviare un pacchetto all'host 1. A tale scopo, è necessaria una traduzione NAT statica.
In caso di elenco degli accessi con sovraccarico, la configurazione è simile a quella del file elenco degli accessi senza sovraccarico. L'eccezione è che è necessario aggiungere la parola chiave overload al comando ip nat nell'elenco di origine 108 pool108 e ip nat nell'elenco di origine 118 pool118.
Il vantaggio di usare le route map è che con il comando match si possono avere più opzioni rispetto all'indirizzo IP di origine. Ad esempio, sotto la route-map, è possibile specificare match interface o match ip next-hop. Le route map consentono di specificare l'indirizzo IP e l'interfaccia o l'indirizzo dell'hop successivo a cui inoltrare il pacchetto. Pertanto, le route map con NAT vengono utilizzate in uno scenario in cui il sottoscrittore esegue il multihoming a diversi ISP.
Revisione | Data di pubblicazione | Commenti |
---|---|---|
1.0 |
10-Aug-2005 |
Versione iniziale |