Виртуальный 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 и назначить его нескольким машинам для создания отказоустойчивой системы
-
В разделе «Сети» → «Зарезервированные IP» зарезервируйте адрес в публичной либо приватной сети (выберите ту, где хотите создать отказоустойчивую систему).
-
Превратите зарезервированный IP в VIP и подключите к виртуальным машинам внутри нашей системы. Для этого нажмите на селектор напротив IP и выберите «VIP settings». В открывшемся окне включите ползунок «Использовать как VIP» и добавьте этот адрес к нужным виртуальным машинам с помощью кнопки «Добавить».
-
Установите keepalived на свои виртуальные машины. Актуальную инструкцию по его установке для нужной операционной системы можно найти в интернете. По этой же инструкции отредактируйте конфигурационный файл keepalived на машинах: установите для главной машины state «MASTER», для резервных — state «BACKUP». Также установите значение priority, оно определяет очерёдность, с которой VIP будет передаваться между устройствами. При отказе master-сервера адрес будет передан машине с самым высоким значением priority, при отказе второй машины VIP перейдёт следующее по priority устройство и так далее.
-
Запустите keepalived на ваших машинах и добавьте его в список автозагрузки. Отказоустойчивая система начнёт работать.
Как получить VIP и сделать его вторым адресом для сетевого интерфейса
-
В разделе «Сети» → «Зарезервированные IP» зарезервируйте адрес в публичной либо приватной сети (выберите ту, где хотите добавить второй адрес для сетевого интерфейса).
-
Подключите VIP к виртуальной машине внутри нашей системы. Для этого нажмите на селектор напротив IP и выберите «VIP settings». В открывшемся окне включите ползунок «Использовать как VIP» и добавьте VIP к нужной машине с помощью кнопки «Добавить».
-
Сконфигурируйте 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
-
Подключитесь к машине, откройте командную строку и введите команду:
ipconfig
Вы увидите параметры подключения. Не закрывайте командную строку: на шаге №4 вам понадобятся значения из строк IPv4 Address, Subnet Mask и Default Gateway.
-
Перейдите в Control Panel → Network and Internet → Network Connections. Нажмите правой кнопкой мыши на адаптер и выберите «Properties».
-
Кликните на строку «Internet Protocol Version 4 (TCP/IPv4)» и нажмите «Properties».
-
Скопируйте IP, маску подсети и шлюз по умолчанию из командной строки в соответствующие строки. Затем нажмите «Advanced...».
-
Нажмите «Add...». В открывшемся окне в строку «IP address» введите ваш VIP (зарезервированный IP, который вы ранее привязали к виртуальной машине в качестве VIP), а в строке «Subnet mask» — маску подсети из командной строки. Затем нажмите «Add».
-
Подтвердите все изменения кнопками «OK».
-
VIP будет сконфигурирован. Чтобы проверить его работоспособность, попробуйте подключиться к машине по вашему VIP: подключение должно пройти успешно. Если подключиться не вышло, скорее всего, вы неверно настроили адаптер или забыли привязать VIP к машине внутри нашей системы. Проделайте пункты инструкции ещё раз.