Ho una connessione VPN sito-sito AWS a un VPC gestito da Amazon Virtual Private Cloud (Amazon VPC). Esistono intervalli di indirizzi IP duplicati o identici in più siti interconnessi e desidero configurare NAT per la mia connessione VPN sito-sito.
Breve descrizione
AWS VPN non fornisce un'opzione gestita per applicare NAT al traffico VPN.
Per applicare NAT al traffico VPN, intraprendi una delle seguenti azioni:
- Utilizza una soluzione VPN basata su software di AWS Marketplace per configurare manualmente NAT.
- Configura manualmente NAT in un'istanza Linux Amazon Elastic Compute Cloud (Amazon EC2) che esegue una soluzione VPN basata su software e iptables.
L'esempio di configurazione nella seguente risoluzione utilizza due VPC. La prima è una VPN gestita da AWS e la seconda è una soluzione VPN basata su software che puoi utilizzare come gateway del cliente.
Importante: per risolvere il problema della sovrapposizione degli indirizzi IP, devi disporre di una soluzione sia per il NAT di origine che per il NAT di destinazione. I gateway NAT privati sono in grado di eseguire il NAT dell'indirizzo IP di origine, ma non sono in grado di eseguire sia il NAT di origine che il NAT di destinazione. Le istanze NAT possono invece gestire contemporaneamente il NAT di origine e il NAT di destinazione.
Risoluzione
Consenti il traffico VPN
Configura la tabella di routing, i gruppi di sicurezza e la lista di controllo degli accessi alla rete (ACL) del VPC per consentire il traffico VPN.
Completa i seguenti passaggi:
- Nella tabella di routing, crea una route per indirizzare il traffico di rete verso la rete di destinazione. Imposta l'interfaccia di rete elastica come destinazione dell'istanza EC2 Linux basata su software.
- Verifica che la tabella di routing abbia una route predefinita con un gateway Internet come destinazione.
- Modifica le regole del gruppo di sicurezza dell'istanza per consentire il traffico in entrata. Utilizza pacchetti UDP sulla porta 500 (ISAKMP) e 4500 (IPSec NAT-Traversal).
- Disattiva i controlli di origine/destinazione in modo che l'istanza possa inoltrare pacchetti di indirizzi IP tra le sottoreti della VPN.
Configura la connessione VPN
- Configura una connessione VPN sito-sito per la soluzione pertinente, se non ne hai già una. Puoi scaricare esempi di file di configurazione di VPN sito-sito.
- Utilizza il gestore di pacchetti della distribuzione per installare la soluzione VPN nell'istanza EC2 Linux.
Nota: per utilizzare StrongSwan come soluzione VPN, consulta vpn-gateway-strongswan sul sito web GitHub.
Configura iptables
Per configurare iptables per il NAT di origine, esegui questo comando sudo iptables:
sudo iptables -t nat -A POSTROUTING -d your_destination_address_or_CIDR -j SNAT --to-source your_IP_address
Nota: sostituisci your_destination_address_or_CIDR con il tuo CIDR o indirizzo di destinazione e your_IP_address con il tuo indirizzo IP.
Per il NAT di destinazione, esegui questo comando sudo iptables:
sudo iptables -t nat -A PREROUTING -j DNAT --to-destination your_IP_address
Nota: sostituisci your_IP_address con il tuo indirizzo IP.
Per salvare la configurazione di iptables in esecuzione in un file, esegui questo comando sudo iptables-save:
sudo iptables-save > /etc/iptables.conf
Per caricare la configurazione di iptables all'avvio, inserisci la riga seguente in /etc/rc.local prima dell'istruzione exit 0:
sudo iptables-restore < /etc/iptables.conf
Facoltativamente, puoi verificare la connessione VPN sito-sito.