AWS VPC - Internet Gateway vs. NAT [zamknięte]

209

Co to jest brama internetowa? Co to jest wystąpienie NAT? Jakie usługi oferują?

Czytając dokumentację AWS VPC, zbieram, że oba mapują prywatne adresy IP na adresy internetowe tras możliwych dla wychodzących żądań i kierują przychodzące odpowiedzi z Internetu do requestera w podsieci.

Jakie są między nimi różnice? W jakich scenariuszach korzystam z wystąpienia NAT zamiast (lub poza) bramy internetowej? Czy są to w zasadzie instancje EC2 z uruchomionymi niektórymi aplikacjami sieciowymi, czy też są one specjalnym sprzętem, takim jak router?

Zamiast po prostu wskazywać linki do dokumentacji AWS, czy możesz wyjaśnić je dodając pewne informacje na temat publicznych i prywatnych podsieci, aby każdy początkujący z ograniczoną wiedzą na temat sieci mógł je łatwo zrozumieć? Również kiedy powinienem używać bramy NAT zamiast instancji NAT?

PS Jestem nowy w AWS VPC, więc mogę porównać jabłka do pomarańczy.

Szczęśliwe miasto
źródło

Odpowiedzi:

230

Brama internetowa

Internet Gateway to logiczne połączenie między Amazon VPC a Internetem . To nie jest urządzenie fizyczne. Tylko jeden może być powiązany z każdym VPC. To ma nie ograniczać przepustowości połączenia internetowego. (Jedynym ograniczeniem przepustowości jest wielkość instancji Amazon EC2 i dotyczy ona całego ruchu - wewnętrznego do VPC i do Internetu).

Jeśli VPC nie ma bramy internetowej, wówczas nie można uzyskać dostępu do zasobów VPC z Internetu (chyba że ruch przepływa przez sieć firmową i VPN / Direct Connect).

Podsieć uważa się za podsieć publiczną, jeśli ma tablicę tras, która kieruje ruch do bramy internetowej.

Instancja NAT

Instancja NAT to instancja Amazon EC2 skonfigurowana do przekazywania ruchu do Internetu. Można go uruchomić z istniejącego interfejsu AMI lub skonfigurować za pomocą Danych użytkownika w następujący sposób:

#!/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

Wystąpienia w prywatnej podsieci, które chcą uzyskać dostęp do Internetu, mogą przekazywać ruch związany z Internetem do wystąpienia NAT za pośrednictwem konfiguracji tablicy tras. Instancja NAT następnie wysyła żądanie do Internetu (ponieważ znajduje się w podsieci publicznej), a odpowiedź zostanie przesłana z powrotem do instancji prywatnej.

Ruch wysyłany do wystąpienia NAT będzie zazwyczaj wysyłany na adres IP, który nie jest powiązany z samym wystąpieniem NAT (będzie przeznaczony na serwer w Internecie). Dlatego ważne jest, aby wyłączyć opcję Sprawdzanie źródła / miejsca docelowego w wystąpieniu NAT, w przeciwnym razie ruch zostanie zablokowany.

Brama NAT

AWS wprowadziło usługę bramy NAT, która może zastąpić wystąpienie NAT. Korzyści z korzystania z usługi NAT Gateway to:

  • Jest to w pełni zarządzana usługa - wystarczy ją utworzyć i działa ona automatycznie, w tym przełączanie awaryjne
  • Może rozerwać do 10 Gb / s (wystąpienie NAT jest ograniczone do przepustowości związanej z typem wystąpienia EC2)

Jednak:

  • Grup zabezpieczeń nie można powiązać z bramą NAT
  • Będziesz potrzebował jednego w każdym AZ, ponieważ działają one tylko w jednym AZ
John Rotenstein
źródło
4
Czy możesz dodać jeszcze jeden punkt do swojej notatki? Instancje NAT będą działać, jeśli masz IGW w publicznej podsieci. Ograniczają także wyszukiwanie wsteczne z Internetu do Twojej instancji w podsieci.
Ameya
1
Teraz w 2019 r. NAT gw może być używany tylko w VPC, przydzielając EIP w „publicznej” podsieci lub podsieci z „bramą internetową” i w wewnętrznych podsieciach, wystarczy skierować się do NAT gw.
Felipe Buccioni
Czy ta odpowiedź jest nadal dokładna? Od docs AWS , widzę: 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.. Z opisu mam wrażenie, że jest to rzeczywiste urządzenie sprzętowe, ale zarządzane przez AWS. Popraw mnie, jeśli nie rozumiem.
Abhishek Divekar
@AbhishekDivekar Nic się nie zmieniło. Pracując z AWS, skoncentruj się na tym, co chcesz osiągnąć, zamiast myśleć o podstawowym sprzęcie.
John Rotenstein,
1
@ Instancje NAT i bramy NAT istnieją w VPC. Dlatego wszelki ruch wychodzący z niego i podróżujący do Internetu nadal będzie musiał przejść przez bramę internetową. Jeśli nie ma bramy internetowej, dostęp do Internetu nie będzie możliwy.
John Rotenstein,
127

Jeśli chodzi o bramę NAT vs. instancja NAT, oba będą działać. Instancja NAT może być nieco tańsza, ale brama NAT jest w pełni zarządzana przez AWS, więc ma tę zaletę, że nie musi utrzymywać instancji EC2 tylko dla NATing.

Jednak w przypadku instancji, które muszą być dostępne w Internecie, brama / instancje NAT nie są tym, czego szukasz. NAT pozwoli prywatnym instancjom (bez publicznego adresu IP) na dostęp do Internetu, ale nie na odwrót. Tak więc dla instancji EC2, które muszą być dostępne w Internecie, musisz przypisać publiczny adres IP. Istnieje możliwość obejścia tego problemu, jeśli naprawdę chcesz zachować prywatność instancji EC2 - możesz użyć elastycznego modułu równoważenia obciążenia w celu proxy żądań.

Bramy internetowe

Internet Gateway to sposób, w jaki VPC łączy się z Internetem. Korzystasz z bramy internetowej z tablicą tras, aby powiedzieć VPC, w jaki sposób ruch internetowy dociera do Internetu.

Brama internetowa pojawia się w VPC jako nazwa. Amazon zarządza bramą i nie ma nic do powiedzenia (oprócz korzystania z niej lub nie; pamiętaj, że możesz potrzebować całkowicie podzielonej podsieci, która w ogóle nie ma dostępu do Internetu).

Podsieć publiczna oznacza podsieć, w której ruch internetowy jest kierowany przez bramę internetową AWS. Każda instancja w publicznej podsieci może mieć przypisany publiczny adres IP (np. Instancja EC2 z włączonym „skojarzeniem publicznego adresu IP”).

Prywatna podsieć oznacza, że ​​instancje nie są publicznie dostępne z Internetu. NIE mają publicznego adresu IP. Na przykład nie możesz uzyskać do nich dostępu bezpośrednio przez SSH. Instancje w prywatnych podsieciach mogą jednak nadal same uzyskiwać dostęp do Internetu (np. Przez bramę NAT).

error2007s
źródło
23
Najlepsza odpowiedź pod względem NAT względem bramy internetowej.
Tagar
Świetna odpowiedź. Kolejne pytanie: kiedy instancja EC2 w publicznej podsieci ma publiczny adres IP, logicznie samowystarczalne jest albo otrzymywanie żądań przychodzących z Internetu, albo wysyłanie żądań wychodzących do Internetu, ponieważ jego adres IP jest routowalny i osiągalny. Jakie dodatkowe zadanie wykonuje tutaj Internet Gateway?
Sandeep
@ Instancja ECSandeep EC2 nie ma żadnego rzeczywistego publicznego adresu IP, ale poza sceną jest mapowana na prywatny adres IP. Brama internetowa służy dwóm celom: do zapewnienia celu w tablicach tras VPC dla ruchu kierowanego przez Internet oraz do wykonania translacji adresów sieciowych (NAT) dla instancji, którym przypisano publiczne adresy IPv4
Omar Faroque Anik
11

Brama internetowa służy do połączenia Vpc z Internetem, a brama NAT służy do łączenia podsieci prywatnej z Internetem (co oznacza ruch przychodzący do instancji prywatnej podsieci, która będzie przekierowywać do bramy NAT). musisz przekierować ruch z tablicy tras do NAT

Tabela tras 0.0.0.0/0

GNK
źródło
Dzięki za przykład - pomógł mi wyjść z sytuacji!
Chris
Na tej stronie znajduje się diagram: docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html, który wyjaśnia cel bramy NAT i IGW. Oba są potrzebne, aby prywatne podsieci mogły uzyskać dostęp do Internetu
Maruthi,