Сетевой интерфейс виртуальной машины
У каждой виртуальной машины (ВМ) есть сетевой интерфейс, с помощью которого обеспечивается взаимодействие с другими ВМ и интернетом. Сетевой интерфейс создается вместе с ВМ. Вы можете установить для него следующие настройки:
- назначить внутренний и внешний IP-адреса.
Все сетевые настройки ВМ (сеть, подсеть, внутренний и внешний IP-адреса, настройки DNS) можно просмотреть в веб-консоли, через API или с помощью консольной утилиты MWS CLI.
Внимание
У ВМ может быть только один сетевой интерфейс. Удалить его невозможно.
Внутренний IP-адрес
ВМ на этапе создания получает внутренний IP-адрес из диапазона подсети. Полученный IP-адрес привязывается к сетевому интерфейсу ВМ.
Внутренние IP-адреса используются для связи виртуальных машин в рамках одной сети. Подключиться к ВМ по внутреннему адресу можно только с другой ВМ, расположенной в той же сети.
Внутренние IP-адреса подразделяются на динамические и статические.
| Критерий | Динамический внутренний IP | Статический внутренний IP |
|---|---|---|
| Способ назначения | Выбирается из пула и назначается автоматически или вручную | Резервируется заранее. Выбирается пользователем при создании ВМ |
| Действие при удалении или выключении ВМ | Сохраняется закрепленным за сетевым интерфейсом до удаления виртуальной машины или интерфейса. При перезагрузке ВМ будет запущена с тем же адресом. При выключении и при удалении ВМ освобождается и возвращается в пул провайдера | При выключении ВМ остается закрепленным за ней. После удаления ВМ остается в проекте, пока не будет удален вручную |
Вы можете зарезервировать статический внутренний IP-адрес заранее. Резервирование выводит IP-адрес из пула динамического распределения. Это позволяет всегда использовать один и тот же IP-адрес для одной и той же ВМ, даже если вы удалите и создадите ее заново.
Использование статических внутренних IP-адресов имеет ограничения:
- Нельзя назначить другой статический внутренний IP-адрес запущенному или остановленному экземпляру виртуальной машины. При этом вы можете сделать динамический внутренний IP-адрес ВМ статическим, чтобы этот адрес оставался зарезервированным даже после удаления ВМ.
- Статический внутренний IP-адрес может быть назначен только одной ВМ одновременно.
- Статический внутренний IP-адрес автоматически не освобождается при удалении ВМ. Удалите адрес вручную, если он вам больше не нужен.
Внешний IP-адрес
Чтобы ВМ была доступна из интернета, нужно назначить ее сетевому интерфейсу внешний IP-адрес из пула IP-адресов MWS. Взаимодействие с ВМ по внешнему адресу организовано с помощью механизма One-to-One NAT (Network Address Translation): каждому внешнему IP-адресу назначается внутренний. Все запросы на внешний IP-адрес сетевого интерфейса перенаправляются на его внутренний адрес.
Внешние IP-адреса подразделяются на динамические и статические.
| Критерий | Динамический внешний IP | Статический внешний IP |
|---|---|---|
| Способ назначения | Выбирается из пула и назначается автоматически | Резервируется заранее. Выбирается пользователем при создании ВМ |
| Действие при удалении или выключении ВМ | При выключении и при удалении ВМ освобождается и возвращается в пул провайдера. Использовать этот же адрес повторно невозможно | При выключении ВМ остается закрепленным за ней. После удаления ВМ остается в проекте, пока не будет удален вручную |
Важно
ВМ получит новый динамический внешний IP-адрес при перезагрузке. Доступ из интернета к ВМ может быть потерян, если ваше приложение подключается к ВМ по IP-адресу.
Динамический внешний IP-адрес можно преобразовать в статический. Статические внешние IP-адреса:
- остаются привязанными к ВМ при ее перезагрузке;
- можно переносить в рамках одного проекта как с одной ВМ на другую, так и на другие ресурсы — например, на балансировщик нагрузки.
Если вы используете динамический DNS для сопоставления существующего DNS-имени с внешним IP-адресом нового экземпляра ВМ, для распространения нового IP-адреса по интернету может потребоваться до 24 часов. В результате новые экземпляры ВМ могут не получать трафик, т.к. он будет направляться на остановленные ВМ. Чтобы не допустить простоя сервисов, развернутых на ВМ, назначьте ей статический IP-адрес.
IP Forwarding
По умолчанию ВМ принимает только трафик, направленный непосредственно на ее IP-адрес. Пакеты с другим destination ipотбрасываются на уровне сетевой инфраструктуры облака.
Чтобы ВМ можно было использовать, например, в качестве VPN-шлюза или маршрутизатора, нужно разрешить доставку на нее транзитного трафика, предназначенного для других узлов. Для этого используется опция IP Forwarding, которую можно включить при создании или изменении ВМ.
Важно
После включения IP Forwarding для ВМ необходимо также активировать IP Forwarding в операционной системе этой ВМ. В ОС семейства Linux для этого используется параметр sysctl>net.ipv4.ip_forward=1.
Имя хоста (hostname) и FQDN
Имя хоста (hostname) и FQDN — это ключевые идентификаторы ВМ.
Имя хоста — это имя ВМ в операционной системе. Оно совпадает с именем ВМ, которое дается ей при создании. Оно может использоваться:
- при инициализации и настройке ВМ с помощью скрипта cloud-init;
- в системах управления конфигурациями (Ansible, Puppet, Chef и др.);
- при настройке систем мониторинга (Prometheus, VictoriaMetrics и др.);
- в настройках кластеризации и оркестрации (например, для идентификации узлов в кластерах Kubernetes);
- для идентификации ВМ в системах логирования.
Внимание
Имя хоста невозможно изменить после создания ВМ.
FQDN — это буквенный адрес, по которому можно взаимодействовать с ВМ в рамках одной сети. Он состоит из имени хоста и имени домена. По умолчанию имя домена имеет вид <имя проекта.c.mws. При необходимости вы можете указать кастомное имя домена.
К ВМ можно обращаться по FQDN так же, как и по IP-адресу.
Имя хоста и FQDN на ВМ прописываются в файлы /etc/hostname и /proc/sys/kernel/hostname.
Также FQDN и имя хоста можно узнать, запросив метаданные изнутри ВМ.
Настройки и ограничения доступа
Внутренний и внешний доступ регламентируется правилами файрвола. По умолчанию доступ к ВМ из интернета закрыт.
Чтобы открыть доступ, настройте правила файрвола и разрешите входящий трафик для нужных протоколов и портов.