Поиск по сайту:

Что такое плавающие IP-адреса в DigitalOcean?


Плавающие IP-адреса DigitalOcean — это способ резервирования общедоступных IP-адресов, которые не зависят от ваших вычислительных ресурсов. Они позволяют быстро перенаправлять трафик между вашими активами, не дожидаясь вступления в силу изменений DNS.

Вычислительные компоненты, такие как дроплеты, имеют собственный IPv4-адрес, облегчающий публичный доступ. Когда вы уничтожаете дроплет, вы теряете права на его IP. Этот адрес вернется в пул, доступный для новых созданий Droplet.

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

Использование плавающих IP-адресов

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

Плавающие IP-адреса предлагают аналогичную простоту использования ресурсов в вашей учетной записи DigitalOcean. Указание вашего внешнего DNS на плавающий IP-адрес вместо определенного IP-адреса дроплета позволяет вам заменять отдельные дроплеты, оставляя записи DNS в покое.

Одним из распространенных вариантов использования являются сценарии отработки отказа в сочетании с развертываниями высокой доступности. Вы можете быстро перенаправить трафик от дроплета, в котором возникли проблемы, переключив плавающий IP-адрес на ссылку на другую цель в вашей учетной записи. Вы можете использовать API-интерфейс DigitalOcean для реализации автоматического перехода на другой ресурс, переключая цель плавающего IP-адреса, когда ваша служба мониторинга обнаруживает сбой.

Создание плавающих IP-адресов

Плавающие IP-адреса можно создавать с помощью панели управления DigitalOcean или API. Изначально вы ограничены тремя плавающими IP-адресами в своей учетной записи; запросы на дополнительные должны быть инициированы через панель управления после того, как вы достигнете шапки.

Адреса, которые активно используются, в настоящее время бесплатны. Вам будет выставляться счет в размере 4 долларов США в месяц или 0,00595 долларов США в час, если вы создаете плавающие IP-адреса, но оставляете их бездействующими в своей учетной записи. Эта плата применяется из-за глобальной нехватки адресов IPv4. Вам будет выставлен счет только после того, как ваше использование превысит 1 доллар США, поэтому вам не нужно беспокоиться о коротких периодах отключения при создании и переназначении ваших адресов.

Чтобы создать плавающий IP-адрес, войдите в свою учетную запись панели управления и нажмите ссылку «Сеть» на левой боковой панели. Выберите вкладку «Плавающие IP-адреса». Используйте раскрывающееся меню, чтобы выбрать дроплет, на который вы хотите направить трафик. Затем нажмите кнопку «Назначить плавающий IP», чтобы сгенерировать новый адрес.

Запросы, сделанные на этот IP-адрес, будут перенаправляться в выбранную каплю. Вы можете изменить цель, вернувшись на страницу «Плавающие IP-адреса», нажав кнопку «Дополнительно» рядом с вашим IP-адресом и выбрав «Переназначить» или «Отменить назначение». При отмене назначения IP-адреса начнет начисляться счет за неиспользованное резервирование.

С API

Чтобы создать плавающий IP-адрес с помощью API DigitalOcean, отправьте запрос POST на конечную точку api.linux-console.net/v2/floating_ips. Обратитесь к документации, чтобы сгенерировать и предоставить правильные учетные данные для доступа к вашей учетной записи.

Запрос должен включать полезную нагрузку JSON, идентифицирующую целевую каплю:

{
    "droplet_id": 1234567890
}

Вы можете узнать идентификаторы всех своих дроплетов, отправив запрос GET в конечную точку api.linux-console.net/v2/droplets.

Чтобы изменить цель плавающего IP-адреса, вы должны использовать специальную конечную точку actions:

POST api.linux-console.net/v2/floating_ips/123.456.789.012/actions

Плавающий IP-адрес должен быть идентифицирован по его IPv4-адресу, как показано в приведенном выше URL-адресе. Включите полезную нагрузку JSON, которая выбирает действие assign и указывает целевой идентификатор дроплета:

{
    "droplet_id": 1234567890,
    "type": "assign"
}

Чтобы отменить назначение IP-адреса, используйте ту же конечную точку, но замените unassign в качестве поля type в полезной нагрузке JSON. Вы можете опустить поле droplet_id.

Управление исходящим трафиком

Даже с назначенным плавающим IP-адресом капли по-прежнему будут использовать свои определенные IP-адреса для исходящего трафика. Это означает, что внешние службы, такие как сторонние API, будут продолжать идентифицировать вашу каплю по собственному IP-адресу, а не по плавающему IP-адресу.

Вместо этого вы можете заставить исходящий трафик использовать плавающий IP-адрес, обновив таблицу маршрутизации в сетевой конфигурации дроплета. Начните с использования API метаданных DigitalOcean внутри дроплета, чтобы узнать его якорный IP-адрес. Якорные IP-адреса — это IP-адреса, через которые проходит трафик при перемещении между каплей и ее плавающим IP-адресом.

# Returns the Anchor IP of the Droplet this command is executed on
curl -s http://169.254.169.254/metadata/v1/interfaces/public/0/anchor_ipv4/gateway

Затем используйте команду ip route, чтобы изменить маршрут вашей капли по умолчанию:

# Remove the existing default route (Droplet-specific IP)
ip route del 0/0;

# Set the Anchor IP as the new default route
ip route add default via <anchor IP> dev eth0

Теперь трафик, исходящий от вашего дроплета, будет исходить от назначенного ему плавающего IP-адреса. Это полезно, когда вы общаетесь со службами, которые используют автоматически определяемые URL-адреса обратного вызова для последующей отправки подтверждения обратно в вашу систему. Процедура гарантирует, что обратный вызов будет отправлен на плавающий IP-адрес, который в настоящее время предоставляет доступ к вашей капле.

Ограничения

Плавающие IP-адреса в настоящее время ограничены адресами IPv4. DigitalOcean публично не объявляла о каких-либо планах предлагать плавающие IP-адреса IPv6.

Поскольку плавающие IP-адреса выделяются для определенных регионов центра обработки данных, они могут нацеливаться только на дроплеты в одном и том же центре обработки данных. Плавающий IP-адрес в NYC1 нельзя сопоставить с каплей в AMS1.

Только дроплеты могут быть целями ваших плавающих IP-адресов. Невозможно ссылаться на управляемый узел Kubernetes или любой другой ресурс, использующий его. В случае с Kubernetes наиболее близкой альтернативой является балансировщик нагрузки, позволяющий маршрутизировать трафик между вашими узлами. Балансировщики нагрузки имеют собственный общедоступный IP-адрес и не могут использоваться в качестве цели с плавающим IP-адресом.

Все плавающие IP-адреса работают с одним дроплетом одновременно — они не могут быть сопоставлены с несколькими дроплетами одновременно, поскольку у них нет активного компонента маршрутизации. Они также не предлагают записи PTR для обратного DNS и не могут использоваться для SMTP-трафика.

Заключение

Плавающие IP-адреса — это механизм, с помощью которого вы можете переключать цели общедоступных статических IP-адресов в своей учетной записи DigitalOcean. Плавающий IP-адрес сам по себе никогда не изменит свой адрес, но вы можете динамически переключать дроплет, на который он указывает, в любое время.

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




Все права защищены. © Linux-Console.net • 2019-2024