AWS VPC - Internet Gateway vs. NAT [chiuso]


209

Che cos'è un gateway Internet? Che cos'è un'istanza NAT? Quali servizi offrono?

Leggendo la documentazione di AWS VPC, mi accorgo che entrambi mappano gli indirizzi IP privati ​​agli indirizzi instradabili su Internet per le richieste in uscita e instradano le risposte in arrivo da Internet al richiedente sulla sottorete.

Quindi quali sono le differenze tra loro? Quali scenari utilizzo un'istanza NAT anziché (o oltre) un gateway Internet? Sono essenzialmente istanze EC2 che eseguono alcune applicazioni di rete o sono hardware speciali come un router?

Invece di indicare semplicemente i collegamenti alla documentazione di AWS, puoi spiegarli aggiungendo alcune informazioni su cosa sono le sottoreti pubbliche e private in modo che qualsiasi principiante con una conoscenza limitata delle reti possa capirle facilmente? Inoltre, quando dovrei usare un gateway NAT anziché un'istanza NAT?

PS Sono nuovo di AWS VPC, quindi qui potrei paragonare le mele alle arance.

Risposte:


230

Gateway Internet

Un Internet Gateway è una connessione logica tra un Amazon VPC e Internet . È non un dispositivo fisico. Solo uno può essere associato a ciascun VPC. Essa non limita la larghezza di banda della connettività Internet. (L'unica limitazione sulla larghezza di banda è la dimensione dell'istanza di Amazon EC2 e si applica a tutto il traffico, interno al VPC e diretto verso Internet.)

Se un VPC non ha un gateway Internet, le risorse nel VPC non sono accessibili da Internet (a meno che il traffico non fluisca attraverso una rete aziendale e VPN / Direct Connect).

Una sottorete è considerata una sottorete pubblica se ha una tabella di instradamento che indirizza il traffico verso Internet Gateway.

Istanza NAT

Un'istanza NAT è un'istanza Amazon EC2 configurata per inoltrare il traffico su Internet. Può essere avviato da un'AMI esistente o può essere configurato tramite Dati utente in questo modo:

#!/bin/sh
echo 1 > /proc/sys/net/ipv4/ip_forward
echo 0 > /proc/sys/net/ipv4/conf/eth0/send_redirects
/sbin/iptables -t nat -A POSTROUTING -o eth0 -s 0.0.0.0/0 -j MASQUERADE
/sbin/iptables-save > /etc/sysconfig/iptables
mkdir -p /etc/sysctl.d/
cat <<EOF > /etc/sysctl.d/nat.conf
net.ipv4.ip_forward = 1
net.ipv4.conf.eth0.send_redirects = 0
EOF

Alle istanze in una sottorete privata che desiderano accedere a Internet può essere inoltrato il traffico associato a Internet all'istanza NAT tramite una configurazione della tabella di route. L'istanza NAT eseguirà quindi la richiesta a Internet (poiché si trova in una sottorete pubblica) e la risposta verrà inoltrata all'istanza privata.

Il traffico inviato a un'istanza NAT verrà in genere inviato a un indirizzo IP non associato all'istanza NAT stessa (sarà destinato a un server su Internet). Pertanto, è importante disattivare l' opzione Verifica origine / destinazione sull'istanza NAT, altrimenti il ​​traffico verrà bloccato.

NAT Gateway

AWS ha introdotto un servizio gateway NAT che può sostituire un'istanza NAT. I vantaggi dell'utilizzo di un servizio NAT Gateway sono:

  • È un servizio completamente gestito: basta crearlo e funziona automaticamente, incluso il failover
  • Può esplodere fino a 10 Gbps (un'istanza NAT è limitata alla larghezza di banda associata al tipo di istanza EC2)

Però:

  • I gruppi di sicurezza non possono essere associati a un gateway NAT
  • Ne avrai bisogno in ogni AZ poiché funzionano solo in una singola AZ

4
Puoi aggiungere un altro punto nella tua nota? Le istanze NAT funzioneranno se si dispone di IGW nella sottorete pubblica. Limitano anche la ricerca inversa da Internet all'istanza nella sottorete.
Ameya,

1
Ora al 2019, NAT gw può essere utilizzato solo nel VPC, allocando un EIP nella sottorete o sottorete "pubblica" con "gateway Internet" e nelle sottoreti interne, basta instradare verso NAT gw.
Felipe Buccioni,

Questa risposta è ancora accurata? Dai documenti AWS , vedo: An internet gateway is a horizontally scaled, redundant, and highly available VPC component that allows communication between instances in your VPC and the internet. It therefore imposes no availability risks or bandwidth constraints on your network traffic.. Dalla descrizione ho l'impressione che si tratti di un dispositivo hardware reale, ma gestito da AWS. Per favore, correggimi se la mia comprensione è disattivata.
Abhishek Divekar,

@AbhishekDivekar Nulla è cambiato. Quando lavori con AWS, concentrati su ciò che vorresti ottenere, piuttosto che pensare all'hardware sottostante.
John Rotenstein,

1
All'interno di un VPC esistono istanze NAT @Sandeep e gateway NAT. Pertanto, qualsiasi traffico in uscita e in viaggio verso Internet dovrà comunque passare attraverso Internet Gateway. Se non è presente alcun gateway Internet, non sarà possibile accedere a Internet.
John Rotenstein,

127

Per quanto riguarda il gateway NAT o l'istanza NAT, entrambi funzioneranno. Un'istanza NAT può essere un po 'più economica, ma il gateway NAT è completamente gestito da AWS, quindi ha il vantaggio di non dover mantenere un'istanza EC2 solo per NATing.

Tuttavia, per le istanze che devono essere disponibili su Internet, il gateway NAT / istanze non è quello che stai cercando. Un NAT consentirà alle istanze private (senza un IP pubblico) di accedere a Internet, ma non viceversa. Pertanto, per le istanze EC2 che devono essere disponibili su Internet, è necessario assegnare un IP pubblico. Esiste una soluzione alternativa se è davvero necessario mantenere private le istanze EC2: è possibile utilizzare un bilanciamento del carico elastico per eseguire il proxy delle richieste.

Gateway Internet

Internet Gateway è il modo in cui il tuo VPC si connette a Internet. Si utilizza un gateway Internet con una tabella di route per indicare al VPC come il traffico Internet arriva a Internet.

Un gateway Internet appare nel VPC come solo un nome. Amazon gestisce il gateway e non c'è nulla in cui tu abbia davvero voce in capitolo (oltre a usarlo o no; ricorda che potresti desiderare una sottorete completamente segmentata che non può assolutamente accedere a Internet).

Una sottorete pubblica indica una sottorete che ha il traffico Internet instradato attraverso Internet Gateway di AWS. A qualsiasi istanza all'interno di una sottorete pubblica può essere assegnato un IP pubblico (ad esempio un'istanza EC2 con "indirizzo IP pubblico associato" abilitato).

Una sottorete privata significa che le istanze non sono accessibili pubblicamente da Internet. NON hanno un indirizzo IP pubblico. Ad esempio, non è possibile accedervi direttamente tramite SSH. Le istanze su sottoreti private possono comunque accedere a Internet stesse (ovvero utilizzando un gateway NAT).


23
Migliore risposta in termini di NAT contro gateway Internet.
Tagar,

Bella risposta. Solo una domanda di follow-up: quando un'istanza EC2 su una sottorete pubblica ha un IP pubblico, logicamente è autosufficiente ricevere richieste in entrata da Internet o effettuare richieste in uscita a Internet poiché il suo IP è instradabile e raggiungibile. Quindi quale ulteriore lavoro fa Internet Gateway qui?
Sandeep,

L'istanza @Sandeep EC2 non ha un vero IP pubblico ma dietro la scena, è mappata su un indirizzo IP privato. Un gateway Internet ha due scopi: fornire un target nelle tabelle dei percorsi VPC per il traffico instradabile su Internet ed eseguire la traduzione degli indirizzi di rete (NAT) per i casi a cui sono stati assegnati indirizzi IPv4 pubblici
Omar Faroque Anik,

11

Il gateway Internet viene utilizzato per connettere un VPN a Internet e il gateway NAT viene utilizzato per connettere la sottorete privata a Internet (il che significa che tutto il traffico arriva all'istanza della sottorete privata che verrà inoltrata al gateway NAT). devi inoltrare il traffico nella tabella del percorso a NAT

Tabella di route 0.0.0.0/0


Grazie per l'esempio: mi ha aiutato a risollevarmi!
Chris

C'è un diagramma in questa pagina: docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html che chiarisce lo scopo del gateway NAT e IGW. Entrambi sono necessari affinché le sottoreti private possano accedere a Internet
Maruthi,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.