Introduzione
In questo documento viene descritto come configurare correttamente Hairpin su una appliance Cisco Adaptive Security (ASA)
Prerequisiti
Requisiti
Cisco raccomanda la conoscenza dei seguenti argomenti:
- Configurazione NAT sull'appliance ASA
- Configurazione ACL su ASA
Componenti usati
Le informazioni fornite in questo documento si basano sulle seguenti versioni software e hardware:
- Software Cisco Adaptive Security Appliance versione 9.18(4)2
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.
Configurazione
La tecnologia NAT (Hairpin Network Address Translation), nota anche come loopback NAT o riflessione NAT, è una tecnica utilizzata nel routing di rete tramite la quale un dispositivo in una rete privata può accedere a un altro dispositivo nella stessa rete privata tramite un indirizzo IP pubblico.
Questa opzione viene utilizzata quando un server è ospitato dietro un router e si desidera consentire ai dispositivi della stessa rete locale del server di accedervi utilizzando l'indirizzo IP pubblico (quello assegnato al router dal provider di servizi Internet) come farebbe una periferica esterna.
Il termine "hairpin" viene utilizzato perché il traffico proveniente dal client raggiunge il router (o il firewall che implementa NAT) e, dopo la traduzione, viene "girato indietro" come una hairpin alla rete interna per accedere all'indirizzo IP privato del server.
Si supponga, ad esempio, di disporre di un server Web nella rete locale con un indirizzo IP privato. Si desidera accedere a questo server utilizzando il relativo indirizzo IP pubblico o un nome di dominio che viene risolto nell'indirizzo IP pubblico, anche quando ci si trova nella stessa rete locale.
Senza Hairpin NAT, il router non è in grado di comprendere questa richiesta perché prevede che le richieste dell'indirizzo IP pubblico provengano dall'esterno della rete.
Hairpin NAT risolve questo problema consentendo al router di riconoscere che, sebbene la richiesta venga effettuata a un IP pubblico, deve essere instradata a un dispositivo sulla rete locale.
Esempio di rete
Configurazioni
Passaggio 1. Creazione degli oggetti
- Rete interna:192.168.14.10
- Server Web: 192.168.14.25
- Server Web pubblico: 10.88.243.25
- Porta: 80
ciscoasa(config)# object network Local_Client
ciscoasa(config-network-object)# host 192.168.14.10
ciscoasa(config)# object network Web_Server
ciscoasa(config-network-object)# host 192.168.14.25
ciscoasa(config)# object network P_Web_Server
ciscoasa(config-network-object)# host 10.88.243.25
ciscoasa(config)# object service HTTP
ciscoasa(config-service-object)# service tcp destination eq 80
Passaggio 2. Creare il NAT
ciscoasa(config-service-object)# nat (Inside,Inside) source dynamic Local_Client interface destination static P_Web_Server Web_Server service HTTP HTTP
Verifica
Dal client locale eseguire un IP di destinazione telnet con una porta di destinazione:
Se il messaggio "telnet unable to connect to remote host: Connection timed out" (telnet non riesce a connettersi all'host remoto: connessione scaduta) viene visualizzato, si è verificato un errore durante la configurazione.
Ma se dice "Connesso", funziona!
Risoluzione dei problemi
In caso di problemi con Network Address Translation (NAT), utilizzare questa guida dettagliata per la risoluzione dei problemi più comuni.
Passaggio 1: Controllo della configurazione delle regole NAT
- Esamina regole NAT: verifica che tutte le regole NAT siano configurate correttamente. Verificare che gli indirizzi IP di origine e di destinazione e le porte siano corretti.
- Assegnazione interfaccia: verificare che entrambe le interfacce di origine e di destinazione siano assegnate correttamente nella regola NAT. Un mapping non corretto può causare la conversione o il routing non corretto del traffico.
- Priorità regola NAT: verificare che alla regola NAT sia assegnata una priorità più alta di qualsiasi altra regola che potrebbe corrispondere allo stesso traffico. Le regole vengono elaborate in ordine sequenziale, pertanto una regola posizionata più in alto ha la precedenza.
Passaggio 2: Verifica delle regole di controllo di accesso (ACL)
- Revisione degli ACL: controllare gli Access Control Lists per verificare che siano appropriati per autorizzare il traffico NAT. Gli ACL devono essere configurati in modo da riconoscere gli indirizzi IP tradotti.
- Ordine delle regole: verificare che l'elenco di controllo di accesso sia nell'ordine corretto. Come le regole NAT, gli ACL vengono elaborati dall'alto verso il basso e la prima regola che corrisponde al traffico è quella applicata.
- Autorizzazioni traffico: verificare che esista un elenco di controllo di accesso appropriato per consentire il traffico dalla rete interna alla destinazione tradotta. Se una regola non è presente o non è configurata correttamente, il traffico desiderato potrebbe essere bloccato.
Passaggio 3: Diagnostica aggiuntiva
- Utilizzare gli strumenti di diagnostica: utilizzare gli strumenti di diagnostica disponibili per monitorare ed eseguire il debug del traffico che attraversa il dispositivo. Ciò include la visualizzazione in tempo reale dei registri e degli eventi di connessione.
- Riavvia connessioni: in alcuni casi, le connessioni esistenti non riconoscono le modifiche apportate alle regole NAT o agli ACL finché non vengono riavviate. Valutare l'opportunità di cancellare le connessioni esistenti per forzare l'applicazione di nuove regole.
ciscoasa(config)# clear xlate
- Verifica della traduzione: utilizzare comandi quali `show xlate` e `show nat` sulla riga di comando se si utilizzano dispositivi ASA per verificare che le traduzioni NAT vengano eseguite come previsto.
ciscoasa(config)# show xlate
ciscoasa(config)# show nat