AWS permite dezvoltatorului să creeze o instanță NAT în subrețeaua publică și să ofere subrețelei private posibilitatea de a accesa internetul.
Iată procedura de creare a instanței NAT. Pentru configurația iptables, este doar o schimbare de o linie.
În consola EC2, dezactivați verificarea sursei/destinației făcând clic dreapta pe instanța pe care doriți să o utilizați pentru NAT și alegând „Modificare sursă/Verificare destinație”.
Creați un grup de securitate cu o regulă de intrare care să permită TOATE de la 10.0.0.0/16 și asociați-l cu instanța dvs. NAT.
Pe instanța NAT, creați /etc/network/if-pre-up.d/nat-setup ca:
#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
iptables -t nat -A POSTROUTING -s 10.0.0.0/16 -j MASQUERADE
chmod +x scriptul, apoi rulați-l. Acest script va fi rulat automat când mașina repornește, astfel încât NAT-ul tău va supraviețui unei reporniri.
Asigurați-vă că toate subrețelele dvs. private au o rută implicită pentru a utiliza instanța NAT ca gateway (creați o rută pentru 0.0.0.0/0 și asociați-o cu instanța dvs. NAT în tabelele de rută asociate subrețelelor private).
testați-vă NAT-ul prin ping ceva dintr-o instanță EC2 într-o subrețea privată
Conexiuni inițiate din interior
Dacă conexiunea este inițiată din interior, presupun că instanța NAT funcționează în acest fel.
Instanța EC2 A (în subrețea privată) ar dori să acceseze serverul web C pe internet.
Instanța EC2 A din subrețeaua privată trimite pachete către instanța B NAT.
Instanța B NAT redirecționează pachetele și face lucrul SNAT, de ex.
- schimba ip-ul sursei din pachet.
- înregistrează această conexiune activă în tabelele conttrack.
Pachetele ajung la serverul C de pe internet.
Serverul C trimite pachetele înapoi la instanța B NAT
Deoarece conexiunea este în tabele contratrack
, toate pachetele sunt acceptate.
Conexiuni inițiate din exterior
Dacă cineva de pe internet inițiază direct o conexiune și trimite pachetele către instanța NAT, de exemplu, autentificare ssh sau ping.
ce va face instanța NAT?
Cum vor gestiona iptable-urile instanței NAT traficul pe baza configurației din paragraful precedent?
Referinţă
- Esența Github: crearea instanței AWS NAT
- Kabisa: Economie de costuri cu instanțe NAT
- AWS: instanțe NAT