Cosa significano queste tre opzioni in una configurazione NAT di Cisco Router?


10

In una configurazione PAT statica standard, in cui una combinazione IP: Port è sempre mappata su un'altra combinazione IP: Port, è possibile configurare tre possibili combinazioni di interno / esterno / sorgente / destinazione.

Ad esempio, questo è un esempio di configurazione:

ip nat inside source static tcp 10.0.20.13 8080 2.2.2.33 80
       ^^^^^^^^^^^^^

In parole povere, questa configurazione consente a qualsiasi host esterno di avviare una connessione TCP a IP 2.2.2.33 sulla porta 80. Quando questo pacchetto colpisce il router, l' indirizzo IP e la porta ( 2.2.2.33:80) di destinazione vengono tradotti in 10.0.20.13:8080.

Potrebbe verificarsi anche il contrario, se l'host interno 10.0.20.13 invia un pacchetto TCP con una porta di origine 8080, quando questo pacchetto attraversa il router, l' IP di origine e Port ( 10.0.20.13:8080) vengono tradotti 2.2.2.33:80. (questo sarebbe in genere un pacchetto di risposta , piuttosto che uno avviato dall'host Inside)


Ecco tutte e tre le opzioni di configurazione per la parte contrassegnata sopra:

Router(config)#ip nat inside ?
  destination  Destination address translation
  source       Source address translation

Router(config)#ip nat outside ?
  source  Source address translation

In effetti, è possibile configurare:

  • ip nat all'interno del sorgente tcp statico {IP} {Porta} {IP} {Porta}
  • ip nat all'interno della destinazione static tcp {IP} {Porta} {IP} {Porta}
  • ip nat fuori dalla fonte statica tcp {IP} {Porta} {IP} {Porta}

In che modo queste opzioni sono diverse e quando si utilizzerebbero ognuna delle tre opzioni? Si prega di utilizzare i termini di laici come ho fatto sopra per descrivere come ciascuno manipolerebbe i pacchetti che stavano arrivando attraverso il dispositivo.

Inoltre, qualcuno può dirmi perché non esiste un'opzione di destinazione esterna ?


2
@Eddie, piuttosto che tutti noi rigurgitare i manuali dell'utente, dai un'occhiata a questo cisco.com/c/en/us/support/docs/ip/… o a questo groupstudy.com/archives/ccielab/200702/msg01284.html e vedi se questo ti aiuta. Dopodiché, se hai ancora domande specifiche, saremo felici di aiutarti.
Ron Trunk,

Qualche risposta ti è stata d'aiuto? in tal caso, dovresti accettare la risposta in modo che la domanda non continui a comparire per sempre, cercando una risposta. In alternativa, potresti fornire e accettare la tua risposta.
Ron Maupin

Risposte:


7

Pensaci molto attentamente.

Inside source significa che vuoi tradurre l'indirizzo sorgente dal traffico proveniente dalla tua rete. Questa è la tipica "rete domestica" che consente di utilizzare indirizzi privati ​​su Internet pubblico. Naturalmente, questo non è l'unico uso per questa versione.

Destinazione interna significa che si desidera che il traffico proveniente da un indirizzo esterno verso un determinato protocollo di trasporto di destinazione e porta verso un indirizzo interno particolare. Questo è ciò che fanno gli utenti domestici per consentire a qualcosa come un server Web con un indirizzo privato di accedere da Internet pubblico. Naturalmente, questo non è l'unico uso per questa versione.

La fonte esterna traduce il traffico proveniente dall'esterno per sembrare originato da un indirizzo interno. Può essere utile nei casi in cui le aziende con intervalli di indirizzi IP sovrapposti si uniscono e devono iniziare a connettere le reti. È possibile tradurre gli indirizzi di origine del traffico provenienti dall'esterno, che normalmente avrebbero indirizzi di origine esterni in conflitto con gli indirizzi interni, in indirizzi di indirizzi di origine in un intervallo di indirizzi interno disponibile.

La destinazione esterna non ha molto senso poiché è l'inverso del port forwarding. Ciò limiterebbe qualsiasi traffico proveniente dall'interno, destinato a un particolare protocollo e porto di trasporto esterno, a un unico indirizzo esterno.


La tua descrizione per inside destinationsembra corrispondere alla mia "spiegazione del profano" per inside source. Ad eccezione del mio esempio, ho cambiato il numero di porta di destinazione per il traffico in entrata da 80a 8080. La tua descrizione sembra implicare che il numero di porta non cambi? Ad ogni modo, questa non può essere l'unica differenza tra inside destinatione inside source, vero?
Eddie,

La differenza è la fonte del traffico. Il inside sourceflusso di traffico ha origine all'interno e il inside destinationflusso di traffico ha origine dall'esterno. Se il traffico proveniente da ha inside sourcebisogno di una risposta, si verifica un inside destinationprocesso temporaneo di tipo per la risposta. Il numero di porta può essere modificato mentre il traffico viaggia da una parte all'altra, ma non tutti i router (in particolare i router di casa) lo supportano.
Ron Maupin

4

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?

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.