2016-08-01 4 views
62

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

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

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

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

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

ответ

70

Internet Gateway

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

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

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

НАТ экземпляра

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

#!/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-объектом (он будет предназначен для сервера в Интернете). Поэтому важно отключить опцию Source/Destination Check в NAT-экземпляре, иначе трафик будет заблокирован.

NAT шлюз

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

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

Однако:

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

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

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

Интернет Шлюзы

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

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

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

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

+10

Лучший ответ с точки зрения NAT против интернет-шлюза. – Tagar

0

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

стол Маршрут 0.0.0.0/0