Sono confuso qual è la differenza effettiva tra SNAT e Masquerade?
Se desidero condividere la mia connessione Internet sulla rete locale, se devo selezionare SNAT o Masquerade?
Sono confuso qual è la differenza effettiva tra SNAT e Masquerade?
Se desidero condividere la mia connessione Internet sulla rete locale, se devo selezionare SNAT o Masquerade?
Risposte:
Il SNAT
target richiede di assegnargli un indirizzo IP da applicare a tutti i pacchetti in uscita. Il MASQUERADE
target ti consente di dargli un'interfaccia e qualunque indirizzo sia su quell'interfaccia è l'indirizzo che viene applicato a tutti i pacchetti in uscita. Inoltre, con SNAT
, il tracciamento delle connessioni del kernel tiene traccia di tutte le connessioni quando l'interfaccia viene rimossa e ripristinata; lo stesso non vale per il MASQUERADE
bersaglio.
Buoni documenti includono gli HOWTO sul sito Netfilter e la iptables
pagina man .
-j SNAT
(al contrario del tracciamento del riciclaggio con -j MASQUERADE
) quando una nuova connessione in uscita da un nodo LAN utilizza lo stesso numero di porta di origine della connessione in uscita interrotta dallo stesso nodo LAN. In tal caso, posso immaginare che i pacchetti in arrivo dalla vecchia connessione in uscita vengano inviati al nodo, confondendo il suo stack TCP. Per quanto riguarda il vantaggio di -j SNAT, cosa succede se la NAT box è configurata con lo stesso indirizzo IP esterno e il kernel continua a inoltrare i pacchetti dalle vecchie connessioni invece di rispondere con RST?
Fondamentalmente SNAT
e MASQUERADE
fai la stessa cosa NAT sorgente nella tabella nat all'interno della catena POSTROUTING.
differenze
MASQUERADE
non richiede in --to-source
quanto è stato progettato per funzionare con IP assegnati dinamicamente
SNAT
funziona solo con IP statici, ecco perché --to-source
MASQUERADE
ha un sovraccarico extra ed è più lento rispetto a SNAT
quando ogni MASQUERADE
target viene colpito da un pacchetto, deve controllare l'indirizzo IP da usare.
NOTA : un tipico caso d'uso per MASQUERADE
: istanza AWS EC2 in un VPC, ha un IP privato all'interno del VPC CIDR (ad es. 10.10.1.0/24) - ad esempio 10.10.1.100, ha anche un IP pubblico per comunicare con Internet (supponiamo che sia in una sottorete pubblica) attraverso il quale il NAT privato 1: 1 NAT. L'IP pubblico può cambiare dopo il riavvio dell'istanza (se NON è un EIP), MASQUERADE
è un'opzione migliore in questo caso d'uso.
Importante: è ancora possibile utilizzare la MASQUERADE
destinazione con IP statico, tenere presente l'overhead aggiuntivo.
Riferimenti