Floating IP (плавающий IP) — это виртуальный IP-адрес, не привязанный постоянно к конкретному серверу. Провайдер управляет маршрутизацией на уровне своей сети: при переключении трафик начинает поступать на новый сервер за секунды, без ожидания TTL DNS.
Как работает
Провайдер создаёт floating IP в своей инфраструктуре. IP назначается на primary-сервер. При сбое оператор (вручную или через API) переназначает IP на standby-сервер. Переключение происходит через ARP-announcement или обновление маршрутов BGP внутри сети провайдера — занимает 1–10 секунд.
Отличие от смены DNS: при TTL 300 секунд смена A-записи требует до 5 минут на распространение. Floating IP не зависит от DNS-кэша клиентов.
Применение
- Отказоустойчивость: keepalived + floating IP. При падении primary сервиса VRRP-демон переключает IP на резервный сервер.
- Обслуживание без простоя: запускаем обновлённую версию приложения на втором сервере, переключаем floating IP, первый сервер уходит в обслуживание.
- Blue-green деплой: два идентичных окружения, переключение трафика мгновенное.
История
Концепция появилась в облачных платформах начала 2010-х. Amazon EC2 Elastic IP (2008) — одна из первых публичных реализаций. DigitalOcean ввёл Floating IP в 2015 году. Аналоги: Elastic IP (AWS), Reserved IP (DigitalOcean), Floating IP (Hetzner Cloud).
Floating IP в хостинге
Floating IP доступен не у всех провайдеров — требует специальной поддержки на уровне сети. Обычно выдаётся бесплатно при активном использовании и тарифицируется, если не назначен ни одному серверу. При использовании с VPS нужно настроить интерфейс lo на приём пакетов для этого IP или использовать keepalived.
Как работает Floating IP
Floating IP — публичный IP-адрес, который может быть переназначен между серверами через API провайдера за секунды. Технически: провайдер обновляет ARP-таблицы или BGP-анонсы (в зависимости от реализации) так, что трафик на этот IP начинает маршрутизироваться к другому серверу. В DigitalOcean (Floating IP) переключение занимает 10–30 секунд. У Hetzner — 10–60 секунд. У Vultr — под 1 минуту.
Реализация: на новом сервере Floating IP настраивается на loopback-интерфейс или отдельный dummy-интерфейс: ip addr add 1.2.3.4/32 dev lo. Сервер начинает принимать трафик на этот адрес. Основной IP сервера остаётся без изменений.
Применение Floating IP
Основной кейс — ручной или автоматический failover. Сценарий: nginx-балансировщик на основном сервере упал → скрипт (или сторожевой процесс Keepalived) переключает Floating IP на резервный сервер → пользователи получают ответы от резервного. Downtime = время переключения IP (10–60 секунд) + TTL DNS (если используется DNS failover).
Другие применения: blue-green деплой (переключение между старой и новой версией приложения без даунтайма), canary деплой (постепенное переключение части трафика), обслуживание основного сервера без простоя сервиса.
Floating IP vs Failover IP vs Virtual IP
Термины пересекаются. Failover IP у OVH/Hetzner = то, что DigitalOcean/Linode называют Floating IP. Virtual IP (VIP) — термин для инструментов вроде Keepalived/VRRP, где один IP перемещается между серверами через протокол VRRP (Virtual Router Redundancy Protocol) на уровне L2 сети. Оба решают одну задачу — быстрый перенос адреса при отказе. Floating IP через API провайдера проще, VIP/VRRP работает быстрее (1–2 секунды vs 30–60 секунд).
Keepalived и VRRP
Keepalived — инструмент для реализации VIP/Floating IP на уровне серверов без участия API провайдера. Работает через VRRP (Virtual Router Redundancy Protocol, RFC 5798). Один сервер — MASTER, второй — BACKUP. MASTER анонсирует виртуальный IP по ARP. При недоступности MASTER BACKUP берёт IP. Требует нахождения серверов в одном L2-сегменте (одна подсеть). Для серверов в разных ЦОД нужно Floating IP через API.