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

Виртуальный IP — это 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» зарезервируйте адрес в публичной либо приватной сети (выберите ту, где хотите создать отказоустойчивую систему).

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

  1. Установите keepalived на свои виртуальные машины. Актуальную инструкцию по его установке для нужной операционной системы можно найти в интернете. По этой же инструкции отредактируйте конфигурационный файл keepalived на машинах: установите для главной машины state «MASTER», для резервных — state «BACKUP». Также установите значение priority, оно определяет очерёдность, с которой VIP будет передаваться между устройствами. При отказе master-сервера адрес будет передан машине с самым высоким значением priority, при отказе второй машины VIP перейдёт следующее по priority устройство и так далее.

  2. Запустите keepalived на ваших машинах и добавьте его в список автозагрузки. Отказоустойчивая система начнёт работать.

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

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

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

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

Инструкция для машин на любой ОС, кроме Windows

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

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

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

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

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

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

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

ifconfig

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


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


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

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

Инструкция для машин на ОС Windows

  1. Подключитесь к машине, откройте командную строку и введите команду:

ipconfig

Вы увидите параметры подключения. Не закрывайте командную строку: на шаге №4 вам понадобятся значения из строк IPv4 Address, Subnet Mask и Default Gateway.

  1. Перейдите в Control Panel → Network and Internet → Network Connections. Нажмите правой кнопкой мыши на адаптер и выберите «Properties».

  1. Кликните на строку «Internet Protocol Version 4 (TCP/IPv4)» и нажмите «Properties».

  1. Скопируйте IP, маску подсети и шлюз по умолчанию из командной строки в соответствующие строки. Затем нажмите «Advanced...».

  1. Нажмите «Add...». В открывшемся окне в строку «IP address» введите ваш VIP (зарезервированный IP, который вы ранее привязали к виртуальной машине в качестве VIP), а в строке «Subnet mask» — маску подсети из командной строки. Затем нажмите «Add».

  1. Подтвердите все изменения кнопками «OK».

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

 

Была ли статья полезна?
Недавно просмотренные статьи