Публичная и частная подсеть в VPC
IANA установила определенные блоки IP в качестве частного диапазона IP (показано ниже)
10.0.0.0 – 10.255.255.255 (255.0.0.0)
172.16.0.0 – 172.31.255.255 (255.255.0.0)
192.168.0.0 – 192.168.255.255 (255.255.255.0)
Общедоступные IP-адреса будут выдаваться интернет-провайдером и иметь номера в диапазоне от 1
в 191
в первом октете, за исключением диапазонов частных адресов, которые начинаются с 10.0.0
для частных сетей класса А и 172.16.0
для частных адресов класса B.
Чтобы подключить VPC к одной частной подсети и одной общедоступной подсети на зону (как показано ниже):
Сервер приложений находится в частной подсети.
NAT-шлюз и бастионный сервер находятся в публичной подсети
1) Нужно ли использовать частный диапазон IP (только) для двух частных подсетей?
2) Нужно ли использовать общедоступный диапазон IP-адресов (только) для двух общедоступных подсетей?
3 ответа
Весь VPC имеет один большой частный адресный блок, например 10.20.0.0/16
и ваши подсети имеют фрагменты этого блока, например
- public-az1 и public-az2 будут иметь
10.20.0.0/24
а также10.20.1.0/24
- private-az1 и private-az2 будут иметь
10.20.2/24
а также10.20.3.0/24
Кроме того, экземплярам EC2 в общедоступных подсетях также могут быть назначены Public IP или Elastic IP. Они распределяются по одному AWS и присваиваются отдельным экземплярам в соответствии с запросом.
Обновление: подробности см. В моем другом ответе: шлюз NAT для экземпляров ec2
Обычно у вас будет 2 вида подсетей в VPC:
Общедоступная подсеть
- имеет IGW и опционально NAT
0.0.0.0/0
там указывает на IGW- хосты (экземпляры EC2) получают свои первичные частные IP-адреса из диапазона VPC (10.20.0.0/16), но также...
- хосты должны иметь общедоступный IP-адрес или эластичный IP-адрес, подключенный непосредственно к Интернету.
- с хостами можно связываться из интернета по этому общедоступному / эластичному IP (если позволяет группа безопасности)
Частная подсеть
- не имеет IGW или NAT
0.0.0.0/0
указывает на NAT в общедоступной подсети выше- хосты имеют только частный IP из диапазона VPC, и весь исходящий доступ "маскируется" к IP-шлюзу NAT
- хосты могут инициировать подключения к Интернету, но не могут связаться извне, поскольку они "скрыты" за NAT (шлюз трансляции сетевых адресов).
- без настроенных NAT хосты не будут иметь доступ в интернет
Надеюсь, что это проясняет:)
Вы можете использовать любой блок IP / CIDR в своем AWC VPC, так как IP / CIDR VPC виден только вашим ресурсам внутри VPC, а не за пределами AWS. Любое взаимодействие с интернетом осуществляется с помощью Elastic IPs, или публичных IP-адресов.
Единственное, что нужно иметь в виду, - если вы хотите взаимодействовать с другими VPC, у вас не может быть перекрывающихся блоков CIDR.
Вам нужно использовать частные IP -адреса для всех подсетей.
Экземпляр с публичным IPv4-адресом (когда он автоматически назначается / динамический или статический /EIP) в VPC не знает своего публичного IP -адреса. Например, ifconfig
на экземпляре сервера Linux с публичным IP -адресом не будет отображаться публичный IP -адрес - он будет показывать частный IP -адрес. Интернет-шлюз выполняет статический NAT 1: 1 между назначенным общему IP -адресу устройства и фактическим частным IP -адресом устройства.
Интернет-шлюз служит двум целям: предоставить в таблицах маршрутов VPC цель для трафика, маршрутизируемого через Интернет, и выполнить преобразование сетевых адресов (NAT) для экземпляров, которым были назначены публичные адреса IPv4.
https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html
Интернет-шлюз не делает этого для экземпляров без общедоступного IP -адреса, поэтому для доступа к Интернету вам необходим один или несколько шлюзов NAT.