AWS VPC - интернет-шлюз против NAT - программирование
Подтвердить что ты не робот

AWS VPC - интернет-шлюз против NAT

Что такое интернет-шлюз? Что такое NAT-экземпляр? Какие услуги они предлагают?

Чтение документации AWS VPC, я собираюсь, они оба сопоставляют частные IP-адреса с адресами, адресованными интернет-маршрутам для исходящих запросов, и направляют входящие ответы из Интернета на запросчика в подсети.

Так в чем же разница между ними? В каких сценариях я использую NAT-экземпляр вместо (или кроме того) интернет-шлюза? Являются ли они в основном экземплярами EC2, использующими некоторые сетевые приложения, или они являются специальным оборудованием, таким как маршрутизатор?

Вместо того, чтобы просто указывать ссылки на AWS-документацию, можете ли вы объяснить это, добавив некоторые сведения о том, что такое общедоступные и закрытые подсети, чтобы любой новичок с ограниченными знаниями сети мог легко их понять? Также, когда я должен использовать NAT-шлюз вместо экземпляра NAT?

P.S. Я новичок в AWS VPC, поэтому я мог бы сравнивать яблоки с апельсинами здесь.

4b9b3361

Ответ 1

Интернет-шлюз

Интернет-шлюз - это логическое соединение между VPC Amazon и Интернетом. Это не физическое устройство. С каждым VPC можно связать только один. Он не ограничивает пропускную способность интернет-соединения. (Единственное ограничение ширины полосы пропускания - это размер экземпляра Amazon EC2, и он применяется ко всему трафику - внутреннему к VPC и к Интернету.)

Если у VPC нет нет интернет-шлюза, доступ к ресурсам в VPC недоступен из Интернета (если трафик не проходит через корпоративную сеть и VPN/Direct Connect).

Подсеть считается Public Subnet, если она имеет таблицу маршрутов, которая направляет трафик на Интернет-шлюз.

Экземпляр NAT

Экземпляр NAT - это экземпляр Amazon EC2, настроенный для пересылки трафика в Интернет. Он может быть запущен из существующего AMI или может быть настроен через данные пользователя следующим образом:

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

Экземпляры в частной подсети, которые хотят получить доступ к Интернету, могут перенаправлять свой интернет-трафик на NAT-экземпляр через конфигурацию таблицы маршрутов. Затем экземпляр NAT сделает запрос в Интернет (поскольку он находится в общедоступной подсети), и ответ будет отправлен обратно в частный экземпляр.

Трафик, отправленный в экземпляр NAT, обычно отправляется на IP-адрес, который не связан с самим экземпляром NAT (он будет предназначен для сервера в Интернете). Поэтому важно отключить опцию Исходная/целевая проверка в экземпляре NAT, иначе трафик будет заблокирован.

шлюз NAT

AWS представила услугу шлюза NAT, которая может заменить место NAT. Преимущества использования услуги NAT Gateway:

  • Это полностью управляемый сервис - просто создайте его, и он работает автоматически, включая fail-over
  • Он может разрывать до 10 Гбит/с (показатель NAT ограничен полосой пропускания, связанной с типом экземпляра EC2)

Однако:

  • Группы безопасности не могут связываться с шлюзом NAT
  • Вам понадобится один в каждом AZ, поскольку они работают только в одном AZ

Ответ 2

Что касается NAT-шлюза или NAT-экземпляра, то он будет работать. Экземпляр NAT может быть немного дешевле, но NAT-шлюз полностью управляется AWS, поэтому он имеет то преимущество, что ему не нужно поддерживать экземпляр EC2 только для NATing.

Однако для экземпляров, которые должны быть доступны для Интернета, шлюз/экземпляры NAT не являются тем, что вы ищете. NAT позволит частным экземплярам (без публичного IP) получать доступ к Интернету, но не наоборот. Итак, для экземпляров EC2, которые должны быть доступны в Интернете, вам необходимо назначить публичный IP-адрес. Существует обходное решение, если вам действительно нужно, чтобы экземпляры EC2 были приватными - вы можете использовать эластичный балансировщик нагрузки для запроса запросов.

Интернет-шлюзы

Интернет-шлюз - это то, как ваш VPC подключается к Интернету. Вы используете интернет-шлюз с таблицей маршрутов, чтобы сообщить VPC, как интернет-трафик поступает в Интернет.

В VPC появляется интернет-шлюз как просто имя. Amazon управляет шлюзом, и в этом нет ничего, на что вы действительно говорите (кроме использования или нет, помните, что вам может понадобиться полностью сегментированная подсеть, которая вообще не может получить доступ к Интернету).

Общественная подсеть означает подсеть, в которой интернет-трафик маршрутизируется через интернет-шлюз AWS. Любой экземпляр внутри публичной подсети может иметь публичный IP, назначенный ему (например, экземпляр EC2 с включенным "связанным публичным IP-адресом" ).

Частная подсеть означает, что экземпляры недоступны из Интернета. У них нет общедоступного IP-адреса. Например, вы не можете получить к ним доступ напрямую через SSH. Экземпляры в частных подсетях могут по-прежнему получать доступ к самому Интернету (т.е. С помощью шлюза NAT).

Ответ 3

Интернет-шлюз используется для подключения vpc к Интернету, а шлюз NAT используется для подключения частной подсети к Интернету (что означает, что трафик поступает на частный экземпляр подсети, который будет перенаправляться на шлюз NAT). вам необходимо перенаправить трафик в таблице маршрутов на NAT

Таблица маршрутов 0.0.0.0/0