IP. Виртуальный IP (VIP): что это, как получить и привязать к машине

Последние изменения: 25.01.2023

Виртуальный IP (VIP) — это IP-адрес, который можно назначить сразу нескольким машинами или сделать вторым адресом для сетевого интерфейса.

Зачем нужен
Как работает
Как тарифицируется
Как получить VIP и назначить его нескольким машинам для создания отказоустойчивой системы
Как получить VIP и сделать его вторым адресом для сетевого интерфейса

Зачем нужен

С помощью VIP можно создать отказоустойчивую инфраструктуру. Назначьте его нескольким машинам сразу, и адрес будет переходить от машины к машине: если главная недоступна, адрес мгновенно передаётся другой, и уже та отвечает на запросы. Если и вторая машина недоступна, адрес передаётся третьей и так далее (очерёдность задаёте вы). В результате ваши пользователи всегда смогут получить ответ при обращении к IP, ведь машины страхуют друг друга.

Также вы можете назначить VIP в качестве второго адреса для сетевого интерфейса.

Как работает

Отказоустойчивая система. Большинство наших машин работает на ОС на базе ядра Linux (Ubuntu, CentOS, Fedora, Debian, CoreOS, Fedora-CoreOS, SUSE). Для них отказоустойчивую систему можно создать с помощью keepalived – системного демона для линуксоидов, который балансирует нагрузку между серверами. В случае отказа основной машины демон переключает VIP на резервную. Для переключения IP-адреса он использует протокол VRRP (Virtual Router Redundancy Protocol).

VIP в качестве второго адреса для сетевого интерфейса. Вы резервируете VIP и назначаете его виртуальной машине сначала в настройках нашей системы, потом — в настройках самой машины. В результате VIP становится адресом этой машины наравне с её обычным IP: машина может принимать и передавать данные от имени обоих адресов.

Как тарифицируется

VIP — это формат использования зарезервированного IP. Его тарификация не отличается от тарификации зарезервированных адресов: месячная цена за IP указана в окне заказа, вы платите только за время от создания адреса до его удаления. Например, если зарезервировали IP и удалили его через час, спишется плата только за час использования. На цену не влияет то, привязан адрес к машине или нет.

Как получить VIP и назначить его нескольким машинам для создания отказоустойчивой системы

1. В разделе Сети → Зарезервированные IP зарезервируйте адрес в публичной либо приватной сети (выберите ту, где хотите создать отказоустойчивую систему).

ceb44ec2ab43119b896a953737d0f607.png
2. Сделайте зарезервированный IP виртуальным и подключите к виртуальным машинам внутри нашей системы. Для этого нажмите на знак ··· напротив IP и выберите VIP settings. В открывшемся окне активируйте опцию Использовать как VIP и добавьте этот адрес к нужным виртуальным машинам с помощью кнопки Добавить.
3. Установите keepalived на свои виртуальные машины. Актуальную инструкцию по его установке для нужной операционной системы можно найти в интернете. По этой же инструкции отредактируйте конфигурационный файл keepalived на машинах: установите для главной машины state «MASTER», для резервных — state «BACKUP». Также установите значение priority, оно определяет очерёдность, с которой VIP будет передаваться между устройствами. При отказе master-сервера адрес будет передан машине с самым высоким значением priority, при отказе второй машины VIP перейдёт следующее по priority устройство и так далее.
4. Запустите keepalived на ваших машинах и добавьте его в список автозагрузки. Отказоустойчивая система начнёт работать.

Как получить VIP и сделать его вторым адресом для сетевого интерфейса

1. В разделе Сети → Зарезервированные IP зарезервируйте адрес в публичной либо приватной сети (выберите ту, где хотите добавить второй адрес для сетевого интерфейса).

2. Подключите VIP к виртуальной машине внутри нашей системы. Для этого нажмите на знак ··· напротив IP и выберите VIP settings. В открывшемся окне активируйте опцию Использовать как VIP и добавьте VIP к нужной машине с помощью кнопки Добавить.

3. Сконфигурируйте VIP в настройках виртуальной машины.

Подключитесь к машине. VIP можно сконфигурировать «на лету» с помощью простой команды (её нужно выполнить от имени администратора):

ip addr add [VIP-адрес]/[маска] dev [имя интерфейса]

Команда мгновенно привяжет VIP к вашей виртуальной машине; привязка будет действовать, пока оборудование включено. После перезагрузки вы сможете ввести команду снова, и VIP опять будет принадлежать машине.

В этой команде:

  • VIP-адрес — это адрес зарезервированного IP, который вы используете в качестве VIP.

  • Маска — это маска подсети, её вы можете посмотреть в настройках виртуальной машины во вкладке Сеть, раскрыв строку с интерфейсом.

  • Имя интерфейса — это имя сетевого интерфейса машины, его можно узнать с помощью команды:

ifconfig

Имя будет указано в начале первой строки.

c64133454233c3d2c3d75855ea6851d8.png


Например, если зарезервированный вами IP — 45.147.140.22, маска подсети — 24, а имя интерфейса — enp1s0, то команда будет такой: ip addr add 45.147.140.22/24 dev enp1s0. И чтобы выполнить её, к примеру, в системе Ubuntu от имени администратора, в начале нужно добавить «sudo»:

baf83c032ceabfe320859e546d7d035e.png

VIP будет сконфигурирован. Чтобы проверить его работоспособность, попробуйте подключиться к машине по SSH по вашему VIP: подключение должно пройти успешно. Если подключиться не вышло, скорее всего, вы неверно ввели команду для добавления IP или забыли привязать его к машине внутри нашей системы. Проделайте ещё раз шаги №2 и №3.

VIP также можно привязать к машине на постоянной основе. Для этого нужно добавить адрес в настройки сети внутри системы. Директория и структура конфигурационного файла может быть разной не только в разных ОС, но даже в пределах релизов одной и той же системы. Мы сознательно не оставляем конкретную инструкцию — она может устареть в любой момент. Чтобы добавить VIP, откройте в интернете официальную документацию операционной системы вашей виртуальной машины и сконфигурируйте адрес по инструкции оттуда. 

Помогла ли вам статья?