Dobbiamo partire dalle basi, quindi rivediamo la terminologia NAT. NAT traduce gli indirizzi IP in pacchetti IP, giusto? Cosa significa? Che fondamentalmente crea miraggi - sì, illusioni ottiche, lo sai. Ad esempio, in una tipica configurazione NAT quando gli host LAN con indirizzo privato accedono a Internet utilizzando l'indirizzo IP pubblico dell'interfaccia del router esterno, tali host appaiono per i server Internet come aventi questo IP pubblico (o IP da un pool di IP pubblici). NAT non crea nuovi host fisici, ovviamente - ma crea una sorta di nuove entità virtuali - in questo esempio, gli host LAN si vedono come, diciamo 192.168.1.x ma i server Internet li vedono come 203.0.113.x - un set di host fisici ma due set di indirizzi IP. Due distinti set di host (logici). Illusione Ottica. E la terminologia è questa:
- inside local - indirizzi IP "reali" degli host interni come assegnati alle loro interfacce e come si vedono
- inside global - indirizzi IP "miraggio" visti dal mondo esterno
- outside global - indirizzi IP "reali" degli host esterni visti da soli e da (quasi) Internet intera
- outside local - indirizzi IP "mirage" come vediamo host esterni (se chiedessimo a NAT di tradurre corrispondentemente)
E come puoi vedere, siamo obbligati a fare una distinzione tra la nostra rete e Internet o un'altra rete esterna. Lo facciamo contrassegnando le interfacce IP del nostro router come ip nat dentro o ip nat fuori , d'accordo?
Ora ricordiamo come viene normalmente implementato il NAT: mantiene tabelle speciali che contengono voci sulle traduzioni. E il punto importante è che queste voci possono essere create staticamente o dinamicamente . Per le voci create dinamicamente, la direzione del traffico è importante: il traffico è iniziato dall'interno verso l'esterno o viceversa? Per le voci statiche, non è così: sono simmetriche . Le istruzioni di configurazione NAT che contengono la parola chiave static creano voci statiche immediatamente dopo averle inserite nella configurazione in esecuzione; quelli con la parola chiave dinamica controllano il traffico interessante e creano dinamicamente voci di traduzione, che alla fine scadono.
Possiamo già fare congetture sulla tua ultima domanda: perché non esiste un'opzione di destinazione esterna ? ip nat all'interno del sorgente statico crea una voce NAT statica che si traduce esattamente come descritto, ma include non solo il traffico avviato da un lato particolare: le voci NAT statiche sono simmetriche. Quindi, ip nat fuori destinazione statica creerebbe una voce statica per tradurre gli indirizzi IP di destinazione del traffico che entra nella tua rete dall'esterno E indirizzi IP di origine per il traffico proveniente dall'interno - ma questo è esattamente ciò che ip nat all'interno della sorgente staticacomando fa! Quindi, è semplicemente ridondante avere questo comando. L'unica differenza è che si dovrebbe scambiare l'origine con l'ip di destinazione quando si utilizza l'una o l'altra forma sostanzialmente dello stesso comando.
Per quanto riguarda la tua prima affermazione, "ci sono tre possibili combinazioni di inside / outside / source / destination che possono essere configurate" - non è proprio così. Il punto è che, in generale, le istruzioni di configurazione NAT non sono "formule matematiche" e dovrebbero essere considerate interamente e non costruite logicamente da parole chiave indipendenti. Pertanto, ogni "combinazione" presenta una soluzione per un'attività specifica, ad esempio, ip nat all'interno dell'elenco destinazioni viene utilizzato per configurare il bilanciamento del carico TCP del server che utilizza un algoritmo specifico e non funziona con UDP. Inoltre, (nei moderni IOS) non esiste alcun comando stat nat all'interno del comando statico di destinazione - l'hai mai provato con l' opzione statica ?
È possibile visualizzare alcuni scenari particolari sull'uso di NAT, inclusi esempi di configurazione in questo documento Cisco: http://www.cisco.com/c/en/us/td/docs/ios-xml/ios/ipaddr_nat/configuration/12-2sx /nat-12-2sx-book/iadnat-addr-consv.html
Infine, vorrei ricordare che a volte NAT non è quello che vuoi, ad esempio, guarda la mia risposta a questa "domanda canonica": /server/55611/loopback-to-forwarded-public- indirizzo-ip-da-locale-rete-tornante-nat / 733.532 # 733.532
PS Dovrei andare in maggiori dettagli?