В AWS, как проверить, какие ресурсы используют IP-адреса VPC

Вопрос или проблема

Согласно Amazon и моему тесту, подсеть VPC /24 позволяет использовать 251 доступный IP-адрес. У меня есть 2 других подсети в этом VPC, которые, похоже, не используют IP-адресов EC2, и поле доступных IP-адресов указывает, что доступно только 250. Я проверил

Я пытаюсь выяснить, какие ресурсы используют эти IP-адреса, но похоже, что AWS не позволяет выполнять такие запросы.

Что бы мне хотелось видеть, так это список ресурсов, которые используют IP-адреса для конкретной подсети VPC.

Если кто-то может прояснить, какие сервисы AWS могут использовать IP-адреса подсети, кроме EC2, это также поможет.

Спасибо.

В консоли EC2, в навигационной панели слева, нажмите Сетевые интерфейсы.

Все, что имеет IP-адрес — экземпляры EC2, ELB, шлюзы NAT, экземпляры RDS (чтобы назвать некоторые из самых распространенных) — имеют как минимум один виртуальный сетевой адаптер, называемый Эластичный сетевой интерфейс (ENI).

Каждый ENI обычно имеет основной частный адрес IPv4 и может иметь один или несколько вторичных адресов IPv4.

В вашей подсети VPC ничего, что имеет IP-адрес, не должно отсутствовать здесь.

Исключением являются недоступные и зарезервированные адреса, которые не отображаются. Адрес “сеть” из всех нулей и адрес “широковещательный” из всех единиц недоступны по правилам подсетирования, а сетевой адрес +1, +2 и +3 (.1, .2, .3 в /24) зарезервированы инфраструктурой VPC. Это (256 – 2 – 3 = 251) устанавливает базовый максимальный доступный для /24 сетей из 251 адреса.

Недостающим адресом в вашей конфигурации предположительно будут ваши шлюзы NAT, но в любом случае вы должны сможете найти его в разделе Сетевые интерфейсы.

ELB при легкой нагрузке также создаст 1 ENI в каждой подсети, где он настроен. Если ELB автоматически масштабируется (выходит) значительно под нагрузкой, ему потребуется создать больше ENI, и это одна из важных причин, по которой не следует определять размер ваших подсетей, основываясь только на прогнозируемом количестве экземпляров.


Возможно, стоит упомянуть: адреса пиринга для аппаратного VPN VPC и AWS Direct Connect назначаются из пространства локальных ссылок IPv4 169.254.0.0/16. Эти соединения имеют доступ, но фактически не “находятся” в какой-либо подсети VPC, поэтому они не потребляют никаких адресов из частного адресного пространства вашего VPC.


Вот ссылка на документацию, которая уточняет зарезервированные IP-адреса (ноябрь 2024) -> https://docs.aws.amazon.com/vpc/latest/userguide/subnet-sizing.html#subnet-sizing-ipv4

В продолжение отличного ответа от @Michael-sqlbot (я не смог добавить это как комментарий из-за моего рейтинга) вы можете использовать AWS CLI для получения списка IP-адресов, назначенных в вашем VPC:

aws ec2 describe-network-interfaces --filters "Name=vpc-id,Values=<your-vpc-id>" | grep "PrivateIpAddress:"

…и чтобы быстро подсчитать общее количество назначенных IP:

aws ec2 describe-network-interfaces --filters "Name=vpc-id,Values=<your-vpc-id>" | grep "PrivateIpAddress:" | wc -l

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

Ответ или решение

Чтобы проверить, какие ресурсы занимаются IP-адресами в VPC (Virtual Private Cloud) на AWS, вам необходимо использовать несколько методов. В этом ответе мы рассмотрим различные способы, включая использование веб-консоли AWS и интерфейса командной строки (CLI) для получения информации о назначенных IP-адресах. Это поможет вам определить, какие ресурсы занимают IP-адреса в вашем VPC и подсетях.

1. Понимание зарезервированных и доступных IP-адресов

По стандартам AWS, подсети VPC с маской /24 обеспечивают до 251 доступного IP-адреса. Следует помнить, что несколько адресов зарезервированы и не могут быть использованы для ресурсов. Например, первый и последний IP-адрес в каждом диапазоне (нульевой и широковещательный) зарезервированы. Также IP-адреса, используемые для внутреннего управления VPC, могут занимать некоторые из оставшихся адресов.

2. Использование консоли AWS для проверки сетевых интерфейсов

В консоли управления AWS выполните следующие шаги:

  1. Перейдите в раздел EC2.
  2. На левой панели навигации выберите Network Interfaces (Сетевые интерфейсы).
  3. Здесь отображаются все сетевые интерфейсы (ENI) вашей VPC. Каждый ENI может иметь основной и дополнительные IP-адреса.
  4. Убедитесь, что вы проверяете сетевые интерфейсы, привязанные ко всем ресурсам, включая:
    • EC2 инстансы
    • Elastic Load Balancers (ELB)
    • NAT Gateways
    • RDS инстансы

Каждый ресурс, использующий IP-адрес, должен быть представлен среди сетевых интерфейсов. Если вы заметили, что количество доступных IP меньше ожидаемого, это может указывать на активные ресурсы, использующие IP-адреса.

3. Использование AWS CLI для получения списка IP-адресов

Если вы предпочтете использовать интерфейс командной строки, вы можете легко получить список назначенных IP-адресов с помощью следующей команды:

aws ec2 describe-network-interfaces --filters "Name=vpc-id,Values=<your-vpc-id>" --query "NetworkInterfaces[*].[PrivateIpAddress]" --output table

Эта команда выведет список всех назначенных частных IP-адресов в вашем VPC. Если вы хотите быстро подсчитать общее количество назначенных IP-адресов, вы можете воспользоваться следующей командой:

aws ec2 describe-network-interfaces --filters "Name=vpc-id,Values=<your-vpc-id>" | grep "PrivateIpAddress:" | wc -l

4. Учитывайте другие сервисы AWS

Помимо упомянутых выше ресурсов, важно отметить, что другие службы AWS также могут использовать IP-адреса из вашей VPC, такие как:

  • AWS PrivateLink
  • Amazon RDS (отдельные экзemplar)
  • AWS Lambda (при наличии VPC-соединений)
  • Amazon EFS (Elastic File System)
  • NAT Gateway

Заключение

Проведение анализа использования IP-адресов в VPC требует внимания к деталям и понимания ресурсов, работающих в вашем облаке. Используя как консоль AWS, так и AWS CLI, вы сможете получить полное представление о занятых и доступных IP-адресах в вашей подсети. Не забывайте периодически отслеживать используемые IP-адреса, чтобы эффективно управлять ресурсами и избегать исчерпания адресного пространства.

Оцените материал
Добавить комментарий

Капча загружается...