Introduzione
In questo documento viene descritto come configurare Network Address Translation (NAT) per il bilanciamento del carico del traffico TCP sui router Cisco IOS®.
Prerequisiti
Requisiti
Nessun requisito specifico previsto per questo documento.
Componenti usati
Il documento può essere consultato per tutte le versioni software o hardware. Questo documento è relativo a tutti i router e gli switch Cisco con Cisco IOS.
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.
Premesse
Scopo
Gli utenti che accedono al server locale dall'esterno di Internet accederanno al server utilizzando un solo URL o indirizzo IP. Tuttavia, il dispositivo NAT viene utilizzato per caricare e condividere il traffico utente su più server identici con contenuto con mirroring.
Descrizione
Gli utenti esterni A e B accedono al contenuto del server Web con l'indirizzo IP visibile esterno 172.16.2.3 (indirizzo IP virtuale dei server). Il router NAT converte il traffico destinato alla versione 172.16.1.3 negli indirizzi IP interni 10.1.1.1, 10.1.1.2 e 10.1.1.3 in modo round robin e lo inoltra al rispettivo server. Ogni nuova sessione avviata dall'utente esterno viene convertita nell'indirizzo IP del server fisico successivo.
Configurazione
Esempio di rete
Passi
- L'utente A avvia una connessione TCP con l'indirizzo IP 172.16.2.3 del server virtuale.
- Alla ricezione della richiesta di connessione, il router NAT crea una voce di conversione NAT che alloca il successivo indirizzo IP reale del server disponibile (ad esempio, 10.1.1.1).
- Il router NAT sostituisce l'indirizzo IP di destinazione con l'indirizzo IP reale allocato e inoltra il pacchetto.
- Il server riceve il pacchetto e risponde all'origine.
- Il router NAT riceve il pacchetto restituito dal server ed esegue la ricerca nella tabella NAT. Il router quindi converte l'indirizzo di origine nell'indirizzo IP del server virtuale (172.16.2.3) e inoltra il pacchetto.
- L'utente B avvia una sessione TCP con l'indirizzo IP virtuale del server 172.16.2.3. Dopo aver ricevuto la richiesta di connessione, il router NAT converte questo indirizzo nell'indirizzo IP reale del server successivo disponibile (ad esempio, 10.1.1.2) e quindi inoltra il pacchetto al server.
Poiché il protocollo NAT statico è bidirezionale nell'altra direzione, la destinazione del pacchetto verrà tradotta. Quando si esegue questa forma di NAT, la connessione viene attivata tramite invio di pacchetti TCP. L'invio del protocollo ICMP (Internet Control Message Protocol) potrebbe non attivare la conversione NAT.
Il traffico non TCP viene indirizzato al primo indirizzo del pool.
A differenza delle interfacce statiche NAT e statiche PAT di origine, il router non risponde alle richieste ARP sull'indirizzo globale, a meno che tale indirizzo non sia assegnato alla relativa interfaccia. Potrebbe pertanto essere necessario aggiungerlo a un'interfaccia come quella secondaria. Non è possibile reindirizzare le porte con questo metodo di conversione (ad esempio, 80 e 1087). Le porte devono corrispondere.
Nota: L'indirizzo IP del pool NAT non deve essere uguale all'indirizzo IP dell'interfaccia esterna. Per illustrare la stessa situazione, l'esempio usa un indirizzo IP di un blocco 172.16.2.x diverso dall'effettiva subnet IP dell'interfaccia 172.16.1.x.
- Definire un pool di indirizzi contenente gli indirizzi dei server reali.
ip nat pool NATPOOL 10.1.1.1 10.1.1.3 prefix-length 24 type rotary
- Definire un elenco degli accessi che consenta l'indirizzo del server virtuale.
access-list 1 permit host 172.16.2.3
- Abilita una traduzione dinamica degli indirizzi di destinazione interni.
ip nat inside destination list
pool
ip nat inside destination list 1 pool NATPOOL
- Definire le interfacce NAT interna ed esterna.
Interface gig0/0
ip address 10.1.1.4 255.255.255.0
Ip nat inside
Interface gig0/1
ip address 172.16.1.1 255.255.255.248
Ip nat outside
Gli indirizzi IP 10.1.1.1, 10.1.1.2 e 10.1.1.3 vengono ora trasmessi a rotazione quando si cerca di accedere all'indirizzo IP 172.16.2.3
Verifica
Per verificare questa condizione, avviare più sessioni TCP dagli host esterni all'indirizzo IP virtuale. Debug IP NAT ttranslate/show ip nat translation output può essere utilizzato per la verifica.
Router#
Router#
*Jul 24 13:27:41.193: NAT*: s=192.168.1.1, d=172.16.2.3->10.1.1.3 [22864]
*Jul 24 13:27:41.196: NAT*: s=10.1.1.3->172.16.2.3, d=192.168.1.1 [18226]
Router#
*Jul 24 13:27:44.329: NAT*: s=192.168.2.1, d=172.16.2.3->10.1.1.1 [35533]
*Jul 24 13:27:44.331: NAT*: s=10.1.1.1->172.16.2.3, d=192.168.2.1 [14573]
*Jul 24 13:27:44.332: NAT*: s=192.168.2.1, d=172.16.2.3->10.1.1.1 [35534]
*Jul 24 13:27:44.332: NAT*: s=192.168.2.1, d=172.16.2.3->10.1.1.1 [35535]
*Jul 24 13:27:44.332: NAT*: s=192.168.2.1, d=172.16.2.3->10.1.1.1 [35536]
*Jul 24 13:27:44.333: NAT*: s=10.1.1.1->172.16.2.3, d=192.168.2.1 [14574]
*Jul 24 13:27:44.365: NAT*: s=10.1.1.1->172.16.2.3, d=192.168.2.1 [14575]
*Jul 24 13:27:44.365: NAT*: s=10.1.1.1->172.16.2.3, d=192.168.2.1 [14576]
*Jul 24 13:27:44.368: NAT*: s=192.168.2.1, d=172.16.2.3->10.1.1.1 [35537]
Router#
*Jul 24 13:27:44.369: NAT*: s=192.168.2.1, d=172.16.2.3->10.1.1.1 [35538]
*Jul 24 13:27:44.369: NAT*: s=192.168.2.1, d=172.16.2.3->10.1.1.1 [35539]
*Jul 24 13:27:44.369: NAT*: s=192.168.2.1, d=172.16.2.3->10.1.1.1 [35540]
*Jul 24 13:27:44.371: NAT*: s=10.1.1.1->172.16.2.3, d=192.168.2.1 [14577]
*Jul 24 13:27:44.574: NAT*: s=10.1.1.1->172.16.2.3, d=192.168.2.1 [14578]
Router#
*Jul 24 13:27:46.474: NAT*: s=10.1.1.1->172.16.2.3, d=192.168.2.1 [14579]
*Jul 24 13:27:46.478: NAT*: s=192.168.2.1, d=172.16.2.3->10.1.1.1 [35541]
*Jul 24 13:27:46.478: NAT*: s=192.168.2.1, d=172.16.2.3->10.1.1.1 [35542]
*Jul 24 13:27:46.479: NAT*: s=10.1.1.1->172.16.2.3, d=192.168.2.1 [14580]
Router#sh ip nat tr
Pro Inside global Inside local Outside local Outside global
tcp 172.16.2.3:23 10.1.1.1:23 192.168.2.1:49703 192.168.2.1:49703
tcp 172.16.2.3:23 10.1.1.2:23 192.168.2.1:50421 192.168.2.1:50421
tcp 172.16.2.3:80 10.1.1.3:80 192.168.1.1:26621 192.168.1.1:26621
Router#
Risoluzione dei problemi
Al momento non sono disponibili informazioni specifiche per la risoluzione dei problemi di questa configurazione.
Limitazioni
- Non è in grado di rilevare eventuali errori di un server interno del gruppo. Ciò significa che Cisco IOS inoltrerà sempre il traffico ai server del gruppo, a prescindere dal loro stato operativo.
- Non è in grado di determinare i carichi effettivi dei server interni, pertanto non è in grado di eseguire il bilanciamento del carico in modo efficiente.