Плавающие IP-адреса для организации сети в публичных и частных облаках OpenStack / Хабр
Автор: Piotr Siwczak
Недавно я описал, как работает VlanManager и как он обеспечивает масштабируемость сети и изолированность пользователей. Но до настоящего момента я говорил только о сетях с фиксированным IP-адресом, принадлежащих различным пользователям. И хотя по умолчанию экземплярам выделяются фиксированные IP-адреса, они не гарантируют немедленной доступности экземпляров из-за пределов сети (или из других ЦОД). Представьте себе следующий сценарий:
Вы запускаете небольшой веб-сайт с одним www-сервером, сервером базы данных, и брандмауэром, который выполняет трансляцию сетевых адресов (NAT) и фильтрацию трафика. Обычно вы применяете следующие настройки:
-Все серверы общаются внутри сети в рамках частного (немаршрутизируемого) сетевого диапазона (например, 192.168.0.0/24).
-Есть один публичный маршрутизируемый IP-диапазон, на котором виден www-сервер.
Вы делаете следующее:
-Создаете правило NAT на брандмауэре для маршрутизации трафика с публичного IP-адреса на частный IP-адрес www-сервера.
Фиксированные IP-адреса в OpenStack работают так же, как и сетевой диапазон 192.168.0.0/24 в примере выше. Они гарантируют только взаимодействие между экземплярами внутри одного кластера OpenStack. Но OpenStack также вводит другой пул IP-адресов под названием “плавающие IP-адреса”. Плавающие IP-адреса — это публично маршрутизируемые IP-адреса, которые вы покупаете у провайдера интернет-услуг (того, который помещается в указанный выше брандмауэр). Пользователи могут назначать IP-адреса своим экземплярам, делая их доступными из внешней сети.
Различия между плавающими и фиксированными IP-адресами
Плавающие IP-адреса не назначаются виртуальным машинам по умолчанию. Пользователи облака должны явным образом “взять” их из пула, настроенного администратором OpenStack, а затем назначить их своим виртуальным машинам. Как только пользователь забрал плавающий IP-адрес из пула, он становится его “владельцем” (то есть в любой момент он может открепить IP-адрес от виртуальной машины и прикрепить его к другой). Если виртуальная машина по каким-то причинам прекращает существование, пользователь не теряет плавающий IP-адрес — он может его затем назначить другому экземпляру. К сожалению, сейчас невозможно совместно использовать один плавающий IP-адрес несколькими виртуальными машинами для балансировки нагрузки, как например с эластичной балансировкой нагрузки на Amazon EC2.
Системные администраторы могут настраивать несколько пулов плавающих IP-адресов.
В итоге основные функции плавающих IP-адресов следующие:
-Плавающие IP-адреса не назначаются виртуальным машинам автоматически по умолчанию (их необходимо назначать инстансам вручную).
-Если виртуальная машина прекращает свое существование, пользователь может повторно использовать плавающий IP-адрес, назначив его другому инстансу.
Плавающие IP-адреса—внутренние или внешние облака
“Публичная доступность” плавающего IP-адреса – это относительное понятие. Для публичных облаков вы, возможно, захотите определить пул плавающих IP-адресов как пул IP-адресов, публично доступных из интернета. Затем ваши клиенты смогу назначать их виртуальным машинам, чтобы заходить в них через SSH со своих домашних или рабочих компьютеров:
Если в вашем ЦОД запущено корпоративное облако, то пул плавающих IP-адресов может быть любым диапазоном IP-адресов, который предоставляет доступ к инстансам OpenStack из остального ЦОД.
Для трафика своего ЦОД вы можете определить следующий диапазон: 10.0.0.0/16.
Внутри OpenStack вы можете создать следующий диапазон фиксированных IP-адресов: 192.168.0.0/16, разбитый на подсети пользователей.
Чтобы сделать экземпляры OpenStack доступными из всего ЦОД вы можете определить пул плавающих IP-адресов как подсеть 10.0.0.0/8, (например, 10. 0.0.0/16) и зарегистрировать её в OpenStack, чтобы пользователи могли брать оттуда IP-адреса.
Работа с плавающими IP-адресами
Как я упомянул ранее, сначала системный администратор регистрирует пул плавающих IP-адресов в OpenStack:nova-manage floating create --ip_range=PUBLICLY_ROUTABLE_IP_RANGE --pool POOL_NAME
Таким образом, публичный пул становится доступным пользователям.
Теперь пользователи следуют данной процедуре:
-Загрузить экземпляр:
+—————————————+———+———+———————————+
| ID | Name | Status | Networks |
+—————————————+———+———+———————————+
| 79935433-241a-4268-8aea-5570d74fcf42 | inst1 | ACTIVE | private=10.0.0.4 |
-Перечислить доступные пулы плавающих IP-адресов:
nova floating-ip-pool-list
+——+
| name |
+——+
| pub |
| test |
+——+
-Взять плавающий IP-адрес из пула “pub” (или при желании из пула “test”):
nova floating-ip-create pub
+—————+————-+———-+——+
| Ip | Instance Id | Fixed Ip | Pool |
+—————+————-+———-+——+
| 172. 24.4.225 | None | None | pub |
-Назначить плавающий IP-адрес экземпляру:
nova add-floating-ip 79935433-241a-4268-8aea-5570d74fcf42 172.24.4.225
(где первый аргумент — это uuid экземпляра, а второй – сам плавающий IP-адрес)
-Проверить правильность всех настроек:
nova floating-ip-list
+—————+—————————————+———-+——+
| Ip | Instance Id | Fixed Ip | Pool |
+—————+—————————————+———-+——+
| 172.24.4.225 | 79935433-241a-4268-8aea-5570d74fcf42 | 10.0.0.4 | pub |
+—————+—————————————+———-+——+
Как работают плавающие IP-адреса
Что происходит внутри экземпляра после добавления плавающего IP-адреса? Правильный ответ – ничего. Если вы подключитесь к нему по SSH и посмотрите конфигурацию сети, вы увидите, что существует один интерфейс сети с настроенным фиксированным IP-адресом.
Вся настройка выполняется на вычислительном узле. Вся работа, связанная с плавающим IP-адресом, выполняется сервисом nova-network: организуется транслятор сетевых адресов (NAT) между фиксированным и плавающим IP-адресами экземпляра. Объяснение, как работает NAT, можно найти тут.
Взгляните на следующую диаграмму:
Схема отображает один вычислительный узел, настроенный в режиме сети c распределением узлов и VlanManager, используемый для настраивания фиксированных IP-сетей. Вычислительный узел оснащен двумя сетевыми интерфейсами: интерфейс eth0 выделен для трафика с фиксированным IP/VLAN, а eth2 – это интерфейс, по которому вычислительный узел подключается к внешней сети; в нем располагаются плавающие IP-адреса. (Информацию о том, как VlanManager настраивает фиксированные IP-сети см. в предыдущей статье)
Примите во внимание, что в то время как на интерфейсе eth0 (фиксированном/частном) не настроен адрес, интерфейсу eth2 назначен IP-адрес, который является шлюзом по умолчанию для вычислительного узла (91.
Когда пользователь назначает плавающий IP-адрес (91.207.16.144) инстансу VM_1, происходят две вещи:
-Плавающий IP-адрес настроен как вторичный адрес на интерфейсе eth2: это на выходе команды “ip addr show eth2″, содержащей следующие действия:
inet 91.207.15.105/24 scope global eth2 # primary eth2 ip
inet 91.207.16.144/32 scope global eth2 # floating ip of VM_1
-Набор правил NAT для плавающего IP-адреса настраивается в таблицах iptables. Ниже приведены все соответствующие записи из таблицы «nat» вычислительного узла (за исключением команды “iptables –S -t nat». Подробно о том, как настроить NAT с помощью таблиц iptables в Linux можно посмотреть здесь):
# where the instance resides, will reach the instance via its floating IP:
-A nova-network-OUTPUT -d 91.207.16.144/32 -j DNAT —to-destination 10.0.0.3
# ensures that all external traffic to the floating IP
# is directed to the fixed IP of the instance
-A nova-network-PREROUTING -d 91. 207.16.144/32 -j DNAT —to-destination 10.0.0.3
# all the traffic originating from the instance will be SNAT-ted to its floating IP
-A nova-network-float-snat -s 10.0.0.3/32 -j SNAT —to-source 91.207.16.144
В общем, nova-network добавляет дополнительные цепочки к тем, которые предварительно определены в таблице NAT. Порядок цепочек по отношению к трафику по плавающему IP-адресу показан ниже (с использованием правил, показанных выше):
Chain OUTPUT — Chain nova-network-OUTPUT — Rule: -d 91.207.16.144/32 -j DNAT —to-destination 10.0.0.3
Chain PREROUTING — Chain nova-network-PREROUTING — Rule: -d 91.207.16.144/32 -j DNAT —to-destination 10.0.0.3
Chain POSTROUTING — Chain nova-postrouting-bottom — Chain nova-network-snat — Chain nova-network-float-snat — Rule: -s 10.0.0.3/32 -j SNAT —to-source 91.207.16.144
-Код, ответственный за задание правил, располагается в nova/network/linux_net.py в функции:
def floating_forward_rules(floating_ip, fixed_ip):
return [(‘PREROUTING’, ‘-d %s -j DNAT —to %s’ % (floating_ip, fixed_ip)),
(‘OUTPUT’, ‘-d %s -j DNAT —to %s’ % (floating_ip, fixed_ip)),
(‘float-snat’,
‘-s %s -j SNAT —to %s’ % (fixed_ip, floating_ip))]
Возвращаемся к диаграмме. Если пользователь хочет получить доступ к виртуальной машине по своему IP-адресу из внешней сети (например, “ping 91.20.16.144″):
-Трафик достигает публичного интерфейса (eth2) вычислительного узла. В nova-network-PREROUTING выполняется DNAT, меняющий IP-адрес назначения пакетов с 91.207.16.144 на 10.0.0.3.
-Вычислительный узел обращается к своей таблице маршрутизации и видит, что сеть 10.0.0.0 доступна на интерфейсе br100 (за исключением “ip route show” вычислительного узла):
10.0.0.0/24 dev br100
Таким он направляет пакет на интерфейс br100, затем пакет достигает виртуальной машины.
Если виртуальная машина отправляет пакет во внешний мир (например, “ping 8.8.8.8):
-Так как адрес назначения не находится в локальной сети виртуальной машины, пакеты отправляются на шлюз виртуальной машины по умолчанию с IP-адресом 10.0.0.1 (адрес устройства “br100″ на вычислительном узле).
-Вычислительный узел проверяет свои таблицы маршрутизации и обнаруживает, что в непосредственно подключенных сетях нет адреса 8. 8.8.8, поэтому он переадресует пакет на шлюз по умолчанию (который является первичным адресом eth2 — 91.207.15.105 в данном случае).
-Пакет попадает в цепочку POSTROUTING и передается цепочке “nova-network-float-snat”, где его исходный IP-адрес переписывается на плавающий IP-адрес (91.207.16.144).
Примечания о безопасности
При использовании OpenStack системные администраторы передают полный контроль за таблицами iptables сервисам nova. Набор настраиваемых правил очень сложен и с легкостью нарушается любым вмешательством извне. Более того, при каждом перезапуске демона nova-network он применяет все правила в цепочках таблиц iptables, связанных с OpenStack. Если есть необходимость каким-либо образом изменить поведение таблиц iptables, это можно сделать, изменив код в соответствующих местах linux_net.py (для правил NAT это будут floating_forward_rules).
Также стоит сказать, что nova-network не отслеживает свои таблицы каким-либо образом. Таким образом, если мы вручную удаляем какие-либо правила из цепочек, связанных с OpenStack, они не восстановятся при следующем запуске nova-network.
Таким образом, системный администратор может легко случайно открыть нежелательный доступ к вычислительному узлу. Помните, что nova-network поместил плавающий IP-адрес как вторичный на интерфейсе eth2 и настроил правила DNAT, которые направляют трафик на фиксированный IP-адрес виртуальной машины:
-A nova-network-PREROUTING -d 91.207.16.144/32 -j DNAT —to-destination 10.0.0.3
Таким образом, весь трафик, направленный на 91.207.16.144, попадает на адрес 10.0.0.3.
Теперь давайте представим, что системный администратор ночью решал проблемы подключения к сети и случайно удалил все правила NAT, напечатав:
iptables –F –t nat
Указанное выше правило NAT было удалено, но интерфейсу eth2 все ещё присвоен вторичный IP-адрес 91.207.16.144. Таким образом, мы всё ещё можем обратиться к адресу 91.207.16.144 извне, но вместо того, чтобы попасть на виртуальную машину, у нас теперь есть доступ к самому вычислительному узлу (IP-адрес назначения более не транслируется по правилу DNAT, так как мы удалили все правила NAT). Эта дыра в безопасности не будет закрыта до следующего перезапуска процесса nova-network, который заново создаст правила.
Настройка плавающих IP-адресов
В сервисе nova.conf существуют флаги, которые влияют на поведение плавающих IP-адресов:
# the interface to which floating ips are attached
# as secondary addresses
public_interface=«eth2»
# the pool from which floating IPs are taken by default
default_floating_pool=«pub»
# we can add a floating ip automatically to every instance that is spawned
auto_assign_floating_ip=false
Итоговые комментарии
Кроме предоставления доступа к виртуальным машинам напрямую из интернета, механизм плавающих IP-адресов дает пользователям облака некоторую гибкость. После “забора” плавающего IP-адреса они могут менять их принадлежность, то есть на ходу назначать их различным виртуальным машинам и переназначать их, что значительно облегчает выпуск нового кода и обновления системы. Для системных администраторов это представляет потенциальную угрозу безопасности, так как лежащий в основе механизм (iptables) работает очень сложно и не отслеживается OpenStack. Поэтому очень важно, чтобы только программное обеспечение OpenStack могло менять политики брандмауэра и чтобы они не менялись вручную.
Оригинал статьи на английском языке
Использование плавающих IP-адресов | 8HOST.COM
16 апреля, 2017 12:06 пп 7 607 views | Комментариев нетCloud Server, VPS | Amber | Комментировать запись
Плавающий IP – публичный статический IP-адрес, который можно присвоить одному из ваших серверов. Плавающие IP-адреса быстро переназначать (обычно с помощью панели управления или API) – передавать между машинами в одном датацентре. Эта функция мгновенного переопределения даёт возможность проектировать и создавать инфраструктуру серверов высокой доступности (HA), не имеющую единой точки отказа, путем добавления избыточности к точке входа или шлюзу.
Для достижения максимально высокой доступности требуется избыточность на каждом уровне инфраструктуры, в том числе и на серверах приложений и баз данных, что часто бывает трудно реализовать. Однако это позволяет значительно сократить время простоя.
Плавающий IP не заменяет оригинальный публичный IP-адрес сервера, он останется без изменений. Плавающий IP – это дополнительный статический IP-адрес, с помощью которого можно получить доступ к серверу, к которому он в настоящее время прикреплён.
В данной статье охвачены следующие темы:
- Базовая настройка высокой доступности.
- Метаданные плавающих IP-адресов.
- Реализация высокой доступности.
- Другие варианты использования плавающих IP-адресов.
Базовая настройка высокой доступности.
Чтобы понять, как работает простейшая настройка высокой доступности, рассмотрим следующий пример.
Базовая настройка сервера с высокой доступностью состоит из плавающего IP-адреса, который привязан к группе балансировщиков нагрузки (нужно 2 балансировщика минимум). Плавающий IP-адрес действует как уровень шлюза, с помощью которого пользователи могут взаимодействовать с веб-серверами.
Пользователь
↓
Плавающий IP-адрес
________________| :...................
↓ ↓
Балансировщик 1 Балансировщик 2
(активный) (пассивный)
| |
↓ ↓
Сервер приложения 1 Сервер приложения 2
| |
↓ ↓
Сервер баз данных 1 Сервер баз данных 2
↑ ↑
|__________________________|
Репликация
- Активный сервер – сервер, получающий пользовательский трафик, который перенаправляется с плавающего IP. Как правило, это балансировщик нагрузки, который перенаправляет трафик на серверы приложений.
- Пассивный сервер – резервный сервер (обычно с такой же конфигурацией, как на активном сервере). Он будет получать трафик только во время отказа активного сервера (то есть если активный сервер становится недоступным, плавающий IP переназначается резервному серверу).
- Плавающий IP-адрес – это IP-адрес, который прикреплён к одному из серверов и может быть переназначен в случае сбоя активного сервера.
Важно отметить, что сами по себе плавающие IP-адреса не обеспечивают высокую доступность автоматически. Чтобы установка считалась высокодоступной, нужно разработать и внедрить механизм отказоустойчивости, который автоматизирует процесс обнаружения сбоев активного сервера и переназначает плавающий IP-адрес пассивному серверу.
При разумном подходе описанная выше настройка позволяет обеспечить доступность приложения, даже если один из балансировщиков выходит из строя.
Метаданные плавающих IP-адресов
Сервер узнаёт о наличии плавающего IP-адреса с помощью своих метаданных. Если вы присвоили серверу плавающий IP-адрес, сервер может извлечь его. Эта информация может пригодиться при настройке высокой доступности.
Любые метаданные обычно можно извлечь с помощью команды curl.
Чтобы узнать, назначен ли серверу плавающий IP-адрес, выполните следующую команду:
curl -s http://169.254.169.254/metadata/v1/floating_ip/ipv4/active
Если у сервера есть плавающий IP, вы можете извлечь его:
curl -s http://169.254.169.254/metadata/v1/floating_ip/ipv4/ip_address
Реализация высокой доступности
Теперь вы знаете, как работают плавающие IP-адреса, и можете приступать к разработке собственной высокодоступной инфраструктуры.
Ниже вы найдёте список полезных инструментов и приложений, которые помогут собрать инфраструктуру с высокой доступностью:
- Corosync и Pacemaker предоставляют программное обеспечение, с помощью которого можно создать кластер с высокой доступностью. Corosync отвечает за уровень передачи сообщений, благодаря которому серверы могут взаимодействовать и работать как кластер. Pacemaker предоставляет возможность контролировать поведение кластера. Вы можете использовать Corosync и Pacemaker с плавающими IP для настройки активного и пассивного сервера.
- Keepalived – сервис, который позволяет контролировать серверы и процессы для обеспечения высокой доступности инфраструктуры. Демон keepalived может мониторить веб-серверы и автоматически передавать трафик второму серверу, если первый сервер не отвечает.
- Heartbeat – инструмент кластеризации, который можно использовать с плавающими IP-адресами для реализации базовой настройки активного/пассивного сервера и обеспечения высокой доступности. Инструмент довольно просто настроить, но он не всегда рекомендуется к использованию на этапе производства.
Другие варианты использования плавающих IP-адресов
Еще один вариант реализации плавающих IP-адресов – это blue/green deployment.
Blue/green deployment – это стратегия развертывания программного обеспечения, которая основана на двух идентичных производственных конфигурациях, которые чередуются (одна находится в активной фазе, а вторая – в пассивной). Одна среда называется blue, а дублирующая среда – green. Две среды, blue и green, могут обрабатывать всю производственную нагрузку и использоваться поочередно, а не как основное и дополнительное пространство. Если одна среда является активной, то другая находится в режиме ожидания (такую среду можно использовать для тестирования).
Заключение
Теперь у вас есть базовые навыки работы с плавающими IP-адресами и построения высокодоступных инфраструктур.
Читайте также:
- Что такое балансировка нагрузки?
- Основы работы с HAProxy и базовые понятия балансировки нагрузки
Работа с сетями | База знаний Selectel
Создать приватную сеть
Внутри приватной сети отсутствует ограничение на объем трафика — это позволяет передавать любой объем данных между вашими сервисами без дополнительных платежей.
Количество используемых приватных сетей не ограничено, пропускная способность — 1 Гбит/с.
Приватная сеть работает только внутри одного проекта и одного пула, недоступна для других проектов аккаунта пользователя и других аккаунтов.
- В панели управления перейдите в раздел Облачная платформа ⟶ Сеть.
- Откройте вкладку Приватные сети ⟶ нажмите Создать сеть.
- Выберите пул сети.
- Введите имя сети.
- Укажите CIDR подсети — диапазон IP-адресов, доступных в подсети.
- Опционально: отметьте чекбокс Включить DHCP.
- Опционально: измените шлюз.
- Опционально: добавьте еще подсети, нажав Добавить подсеть.
- Нажмите Создать.
Добавить облачный сервер в приватную сеть
- В панели управления перейдите в раздел Облачная платформа ⟶ Серверы.
- Откройте страницу сервера ⟶ вкладка Порты.
- Нажмите Добавить порт.
- Выберите приватную подсеть.
- Укажите IP-адрес.
- Нажмите Добавить порт.
Создать кросспроектную сеть
Приватную или публичную сеть одного проекта можно сделать доступной для другого проекта (только внутри одного пула) — создать кросспроектную сеть.
- В панели управления нажмите на имя текущего проекта и откройте список всех проектов.
- Скопируйте ID целевого проекта.
- Перейдите в раздел Облачная платформа ⟶ Сеть в текущем проекте.
- Откройте вкладку Приватные сети или Публичные подсети.
- Откройте карточку приватной сети, которую необходимо сделать доступной в другом проекте ⟶ вкладка Проекты.
- Нажмите Добавить проект и введите скопированный ID целевого проекта.
Если вам необходимо объединить облачные серверы из разных пулов (в том числе разных проектах и аккаунтах), используйте L3 VPN сети.
Создать облачный роутер
Облачный роутер позволяет маршрутизировать трафик между приватными сетями.
Роутер можно использовать для настройки доступа в интернет из приватной сети или для доступа к устройству в приватной подсети из интернета по плавающему IP.
- В панели управления перейдите в раздел Облачная платформа ⟶ Сеть.
- Откройте вкладку Роутеры ⟶ нажмите Создать роутер.
- Выберите пул роутера.
- Введите имя.
- Опционально: отметьте чекбокс Подключить роутер к внешней сети — для роутера будет выделен внешний IP-адрес.
- Нажмите Создать.
Подключить облачный роутер к внешней сети
Если облачный роутер подключен к внешней сети, он выполняет функцию 1:1 NAT для доступа из приватной сети в интернет через внешний адрес роутера или для доступа к устройству в приватной подсети из интернета по плавающему IP.
- В панели управления перейдите в раздел Облачная платформа ⟶ Сеть.
- Откройте вкладку Роутеры.
- В меню (⋮) роутера выберите Подключить к внешней сети — для роутера будет выделен внешний IP-адрес.
Создать плавающий IP-адрес
Плавающий IP-адрес — это статический публичный IP-адрес, который можно быстро переключать между облачными серверами в приватных подсетях.
Если вы создаете первый плавающий IP-адрес в пуле, автоматически создастся сеть nat и роутер router-nat.
- В панели управления перейдите в раздел Облачная платформа ⟶ Сеть.
- Откройте вкладку Плавающие IP ⟶ нажмите Создать IP-адрес.
- Выберите пул IP-адреса.
- Укажите количество адресов.
- Нажмите Создать.
Подключить приватную сеть к облачному роутеру
- Создайте роутер.
- Откройте карточку роутера ⟶ нажмите Добавить подсеть.
- Выберите приватную подсеть.
- Укажите IP-адрес роутера.
- Нажмите Добавить подсеть.
Подключить облачный сервер к интернету
Доступ в интернет осуществляется через публичную подсеть или плавающий IP-адрес.
Пропускная способность сети через интернет и локально — 1 Гбит/с.
Через публичную подсеть
- В панели управления перейдите в раздел Облачная платформа ⟶ Сеть.
- Откройте вкладку Публичные подсети ⟶ нажмите Создать подсеть.
- Выберите пул подсети.
- Выберите размер подсети.
- Нажмите Создать.
- Перейдите в раздел Облачная платформа ⟶ Серверы.
- Откройте страницу сервера ⟶ вкладка Порты.
- Нажмите Добавить порт.
- Выберите публичную подсеть.
- Укажите IP-адрес.
- Нажмите Добавить порт.
Через плавающий IP
- Создайте плавающий IP-адрес.
- Создайте облачный роутер с подключением к внешней сети.
- В панели управления перейдите в раздел Облачная платформа ⟶ Серверы.
- Откройте страницу сервера ⟶ вкладка Порты.
- Нажмите Добавить порт.
- Выберите приватную подсеть.
- Укажите IP-адрес.
- Нажмите Добавить порт.
- Подключите к порту плавающий адрес — в столбце Плавающий IP нажмите Подключить и выберите плавающий IP.
Облачный сервер в подсети L3 VPN
Если у вас есть облачный сервер, который находится в сети L3 VPN, то вы можете настроить доступ в интернет через облачный роутер. Облачный сервер будет связан с другими устройствами в приватной сети L3 VPN.
- Создайте облачный роутер. При создании отметьте чекбокс Подключить роутер к внешней сети.
- Подключите к облачному роутеру созданную L3 VPN подсеть. Для этого в панели управления откройте карточку роутера ⟶ нажмите Добавить подсеть ⟶ выберите созданную ранее L3 VPN подсеть ⟶ укажите IP-адрес роутера, отличный от IP-адреса L3 VPN роутера и служебных адресов .253 и .254 ⟶ нажмите Добавить подсеть.
- Подключите к облачному серверу плавающий IP-адрес. Перейдите в раздел Облачная платформа ⟶ Серверы ⟶ откройте страницу сервера ⟶ вкладка Порты ⟶ в строке с подсетью L3 VPN в столбце Плавающий IP нажмите Подключить.
- Укажите порт роутера шлюзом по умолчанию. В строке с подсетью L3 VPN в меню (⋮) выберите Сделать шлюзом по умолчанию.
- Пропишите маршруты на облачном сервере до всех подсетей L3 VPN.
Управление сетями с помощью CLI
Подробнее о начале работы с OpenStack CLI.
Создание подсетей
Для создания новой сети:
openstack network create <network name>
В ответе будет выведена таблица с информацией о сети:
+----------------+--------------------------------------+ | Field | Value | +----------------+--------------------------------------+ | admin_state_up | True | | id | add73ca5-6120-43bd-bb56-d1d8d71d21ac | | name | localnet | | shared | False | | status | ACTIVE | | subnets | | | tenant_id | d15391cc95474b1ab6bd81fb2a73bc5c | +----------------+--------------------------------------+
Создать в этой сети подсеть можно при помощи следующей команды:
openstack subnet create \ --network <network name> \ --subnet-range <subnet-range> \ <subnet name>
Управление портами
Для просмотра всех портов сервера:
openstack port list --server <server name>
Для просмотра всех портов сети:
openstack port list --network <network name>
Для создания в сети порта:
openstack port create \ --network <network name> \ <port name>
Для подключения порта к облачному серверу:
openstack server add port [-h] <server> <port name>
Для удаления порта:
openstack port delete <port name>
Назначение плавающего IP-адреса
Для выхода облачного сервера в интернет используется плавающий IP-адрес.
Для просмотра списка всех выделенных плавающих IP-адресов:
openstack floating ip list
Для выделения плавающего адреса:
openstack floating ip create external-network
Для назначения серверу плавающего адреса, созданного ранее в панели управления:
openstack server add floating ip <server> <IP address>
В параметре <server>
может быть использовано имя или ID сервера.
Проброс порта
Проброс порта (port forwarding) используется для перенаправления трафика с одного порта на другой порт. Например, можно настроить проброс порта на плавающем IP-адресе на любой порт в приватной подсети — в таком случае доступ к приватному порту будет организован без заказа дополнительного IP.
Примечание: плавающий IP-адрес перед началом настройки проброса портов не должен быть ассоциирован с каким-либо интерфейсом, балансировщиком и так далее.
Обратите внимание! Доступно только для версий OpenStack Train и выше.
Просмотрите список портов:
openstack port list
В ответе будет выведена информация о портах:
+--------------------------------------+------+-------------------+------------------------------------------------+--------+ | ID | Name | MAC Address | Fixed IP Addresses | Status | +--------------------------------------+------+-------------------+------------------------------------------------+--------+ | 1001b155-ec53-2121-ac40-d101b187a7f3 | | fa:17:3e:d7:21:60 | ip_address='123.123.123.123', subnet_id='16ab21| N/A | | | | | be-e7fe-1ae1-a109-0426e4a6e0a7' | | | 97e01013-3d77-41bc-b0d7-7b74daa7aa2a | | fa:17:3e:d3:9e:c1 | ip_address='192.168.0.1', subnet_id='305ab695- | ACTIVE | | | | | dafe-4a38-bc9d-acf0080f21cf' | | | ed010217-9f78-4002-8703-2112da3fef1f | | fa:17:3e:08:21:7d | ip_address='192. 168.0.2', subnet_id='305ab695- | ACTIVE | | | | | dafe-4a38-bc9d-acf0080f21cf' | | +--------------------------------------+------+-------------------+------------------------------------------------+--------+
Для настройки port forwarding введите:
openstack floating ip port forwarding create / --internal-ip-address <internal ip address> / --port <port> / --internal-protocol-port <internal protocol> / --external-protocol-port <external protocol> / --protocol <protocol> <floating ip>
Где:
<internal ip address>
— IP-адрес порта в приватной подсети, на который будет осуществляться проброс;<port>
— имя или UUID этого порта;<internal protocol>
— номер протокола порта в приватной подсети;<external protocol>
— номер протокола порта плавающего IP-адреса, порт которого пробрасывается;<protocol>
— протокол TCP или UDP;<floating ip>
— плавающий IP-адрес, порт которого пробрасывается.
Пример:
openstack floating ip port forwarding create --internal-ip-address 192.168.0.2 --port ed010217-9f78-4002-8703-2112da3fef1f --internal-protocol-port 80 --external-protocol-port 80 --protocol tcp 123.123.123.123
Для просмотра созданных port forwarding для плавающего IP-адреса:
openstack floating ip port forwarding list <floating ip>
Вывод будет выглядеть примерно так:
+---------------------+--------------------------------------+ | Field | Value | +---------------------+--------------------------------------+ | description | None | | external_port | 80 | | id | 1daa7717-1ce6-4573-95cb-ddb94a39b844 | | internal_ip_address | 192.168.0.2 | | internal_port | 80 | | internal_port_id | ed010217-9f78-4002-8703-2112da3fef1f | | name | None | | project_id | | | protocol | tcp | +---------------------+--------------------------------------+
Плавающие IP-адреса — Linxdatacenter
Дата-центр – комплексный ИТ- и инженерный объект, требующий профессионализма на всех уровнях управления: от руководителей до технических специалистов и исполнителей эксплуатационных работ. Рассказываем, как мы помогли клиенту навести порядок в операционном управлении в корпоративных ЦОДах.
Тарас Чирков, руководитель ЦОД Linxdatacenter в Санкт-Петербурге
Константин Нагорный, главный инженер ЦОД Linxdatacenter в Санкт-Петербурге
Дата-центр – комплексный ИТ- и инженерный объект, требующий профессионализма на всех уровнях управления: от руководителей до технических специалистов и исполнителей эксплуатационных работ. Рассказываем, как мы помогли клиенту навести порядок в операционном управлении в корпоративных ЦОДах.
В главной роли – управление
Самое современное и дорогое ИТ-оборудование не принесет ожидаемой экономической пользы, если не будут выстроены правильные процессы эксплуатации инженерных систем ЦОДа, где оно располагается.
Роль надежных и производительных дата-центров в современной экономике постоянно растет вместе с требованиями к их бесперебойной работе. Однако на этом направлении существует большая системная проблема.
Высокий уровень «аптайма» – безаварийной работы дата-центра без простоев – очень сильно зависит от команды инженеров, которая занимается управлением площадки. А единой формализованной школы управления ЦОДами не существует.
Нет какого-то сводного канона с правилами, применимыми для любого дата-центра. Есть стандарты международной отраслевой организации Uptime Institute, но они устанавливают рамки и вектор развития, к каждому конкретному дата-центру они будут применяться по-разному.
В масштабах страны
На практике в России ситуация с эксплуатацией ЦОДов выглядит так.
Дата-центры из сегмента коммерческих как правило имеют сертификаты, подтверждающие компетенции в сфере управления. Далеко не все и не всегда, но сама специфика бизнес-модели, когда провайдер отвечает перед клиентом качеством сервиса, деньгами и репутацией на рынке, обязывает владеть предметом.
Сегмент корпоративных ЦОДов, которые обслуживают собственные потребности компаний, по показателям качества эксплуатации заметно отстает от коммерческих дата-центров. К внутреннему заказчику относятся не так тщательно, как к внешнему клиенту, далеко не в каждой компании понимают потенциал хорошо настроенных управленческих процессов.
Наконец, государственные ведомственные ЦОДы – в этом отношении они часто представляют собой неизвестную территорию в силу закрытости. Международный аудит таких объектов по понятным причинам невозможен. Российские госстандарты только разрабатываются.
Все это выливается в ситуацию «кто во что горазд». «Разношерстный» состав команд эксплуатации из специалистов с разным бэкграундом, различные подходы к организации корпоративной архитектуры, взгляды и требования в отношении ИТ-департаментов.
Факторов, приводящих к такому положению дел, много, один из главных – отсутствие систематизированной документации по выстраиванию эксплуатационных процессов. Есть пара вводных статей Uptime Institute, которые дают представление о проблеме и путях ее преодоления. Но дальше необходимо выстраивать систему своими силами. А на это ресурсов и компетенций хватит далеко не у каждого бизнеса.
Между тем, даже небольшая систематизация процессов управления по лучшим отраслевым практикам всегда дает отличный результат в том, что касается повышения отказоустойчивости инженерных и ИТ-систем.
Кейс: через тернии к относительному порядку
Проиллюстрируем на примере реализованного проекта. К нам обратилась крупная международная компания с сетью собственных дата-центров. Запрос был на помощь в оптимизации процессов управления тремя площадками, где на серверах развернуты ИТ-системы и приложения, абсолютно критичные для бизнеса.
Компания недавно прошла аудит головного офиса и получила список несоответствий корпоративным стандартам с предписанием их устранить. Для этого в качестве консультанта привлекли нас как носителя отраслевых компетенций: мы развиваем собственную систему управления ЦОДами и ведем просветительскую работу о роли качества эксплуатационных процессов уже несколько лет.
Началось общение с командой клиента. Специалисты хотели получить выстроенную систему эксплуатации инженерных систем ЦОДов, зафиксированную в документации по процессам мониторинга, обслуживания и устранению неполадок. Все это должно было обеспечить оптимизацию инфраструктурной составляющей с точки зрения непрерывности работы ИТ-оборудования.
И здесь началось самое интересное.
Познай себя
Чтобы оценить уровень работы ЦОДов с точки зрения соответствия стандартам, нужно знать точные требования бизнеса к ИТ-системам: каков уровень внутренних SLA, допустимый период простоя оборудования и т.д.
Сразу же выяснилось – ИТ-департамент не знает, что именно хочет бизнес. Не было внутренних критериев качества сервиса, не было и понимания логики устройства собственной инфраструктуры.
Коллеги просто не представляли, каково допустимое время простоя операций, завязанных на ИТ, каково оптимальное время восстановления систем в случае аварии, как устроена архитектура собственных приложений. Например, пришлось разбираться, будет ли критичным для работы приложения «падение» одного из ЦОДов, или в нем нет компонентов, влияющих на приложение.
Не зная таких вещей, рассчитать какие-то конкретные требования к эксплуатации невозможно. Клиент осознал проблему и усилил координацию между ИТ и бизнесом, чтобы выработать внутренние требования и наладить взаимосвязи для выстраивания работы.
Когда было достигнуто понимание архитектуры ИТ-систем, команда смогла суммировать требования к службе эксплуатации, подрядчикам и к уровню надежности оборудования.
Улучшения в процессе
Наши специалисты выезжали на площадки для оценки инфраструктуры, читали имеющуюся документацию, проверяли уровень соответствия проектов ЦОДов фактической реализации.
Отдельным направлением стали опросы ответственных сотрудников и их руководителей. Они рассказывали, что и как они делают в различных рабочих ситуациях, как устроены ключевые процессы эксплуатации инженерных систем.
После начала работ и знакомства со спецификой задачи клиент немного «сдал назад»: мы услышали просьбу «просто написать всю необходимую документацию», по-быстрому и без глубокого погружения в процессы.
Однако правильная оптимизация управления «инженеркой» ЦОДа предполагает выполнение задачи научить людей правильно оценивать процессы и писать под них уникальную документацию исходя из специфики конкретного объекта.
Придумать рабочий документ за конкретного начальника участка службы эксплуатации невозможно – если только не проработать в паре с ним на площадке безотрывно несколько месяцев. Поэтому такой подход был отклонен: мы находили лидеров на местах, которые были готовы учиться сами и вести за собой подчиненных.
Объяснив алгоритм создания документов, требования к их содержанию и принципы организации экосистемы инструкций, шесть последующих месяцев мы контролировали процесс детального написания документации и поэтапный переход персонала к работе по-новому.
Далее последовал этап первичной поддержки работ по обновленным регламентам, который в удаленном формате продолжался один год. Затем мы перешли к тренингам и учениям – единственный путь закрепления нового материала на практике.
Что сделано
В процессе работ нам удалось решить несколько серьезных вопросов.
Прежде всего, мы избежали ведения двойной документации, которой опасались сотрудники клиента. Для этого соединили в новых регламентах нормативные требования, применяющиеся к различным инженерным системам стандартно (электрика, охлаждение, контроль доступа), с отраслевыми best practices, создав прозрачную структуру документации с простой и логичной навигацией.
Принцип «просто найти, просто понять, легко запомнить» дополнился тем, что новая информация привязывается к старому опыту и знаниям сотрудников.
Далее мы перетряхнули штат инженеров службы эксплуатации: несколько человек оказались полностью неготовыми к переменам. Сопротивление некоторых успешно преодолевалось по ходу проекта через демонстрацию преимуществ, но определенный процент сотрудников оказался необучаем и невосприимчив к новому.
Но нас удивило легкомысленное отношение компании к своей ИТ-инфраструктуре: от отсутствия резервирования критичных систем до хаоса в структуре и управлении.
За 1,5 года процессы управления инженерными системами были прокачаны до уровня, который позволил специалистам компании успешно отчитаться «за качество» перед аудиторами из головного офиса.
При поддержке темпов развития эксплуатационной составляющей компания сможет самостоятельно пройти любую существую сертификацию ЦОДов от ведущих международных агентств.
Выводы
В целом перспективы консалтинга в сфере операционного управления дата-центрами, по нашему мнению, самые яркие.
Процесс цифровизации экономики и госсектора идет полным ходом. Да, сейчас будет много корректировок запуска новых проектов и планов по развитию старых, но сути это не изменит – эксплуатацию нужно улучшать хотя бы для повышения КПД уже построенных площадок.
Главная проблема здесь: многие руководители не понимают, по какому тонкому льду они идут, не уделяя этому моменту должного внимания. Человеческий фактор по-прежнему остается главным источником самых неприятных аварий и сбоев. И это нужно объяснять.
Государственные проекты в сфере дата-центров также становятся более актуальны сейчас и требуют повышенного внимания с точки зрения эксплуатации: сфера государственных ИТ-систем растет. Здесь также потребуется разработка и ввод системы стандартизации и сертификации площадок.
Когда требования к государственным ЦОДам в РФ на уровне законодательного акта будут сведены в стандарт, его можно будет применять и для коммерческих дата-центров, в том числе и для размещения государственных ИТ-ресурсов.
Работы по этому направлению ведутся, мы участвуем в этом процессе в рамках консультаций с Минцифры и наращивая компетенции по преподаванию на курсах по эксплуатации дата-центров в АНО ЦОД. Опыта по таким задачам в России не много, и мы считаем, что должны им делиться с коллегами и клиентами.
простой способ получения динамичного ip-адреса
Не секрет, что в интернете есть пользователи, которые хотят получить больше информации о динамичных IP-адресах. Мы расскажем, зачем они нужны и как их получить.
Что дает динамичный IP-адрес
Начнем с простого – что такое IP-адрес. По сути это виртуальный аналог обычного почтового адреса человека. Как правило, офлайн-адрес содержит название страны, области, города, улицы, номер дома, блока и квартиры. Понятно, что в принципе не может быть нескольких абсолютно одинаковых адресов, т. к. это вызвало бы неразбериху. В таких условиях найти нужного человека было бы достаточно проблематично. А значит, все адреса должны быть уникальны. Все вышесказанное относительно обычных офлайн-адресов относится и к IP-адресам. Они также не могут повторяться и должны быть уникальными.
Такой адрес присваивается устройству, находящемуся в Сети. Статические IP-адреса даются провайдерами. Если такой адрес изменяется на динамический, устройству просто присваивается номер, который был свободен на момент выделения. Динамический IP-адрес позволяет:
-
посещать любые сайты, блоги, форумы, социальные сети, несмотря на бан;
-
оставаться во Всемирной сети практически невидимым.
Пользователи, которые работают со статических адресов, всегда оставляют в интернете определенную историю. Она позволяет выяснить, чем занимается человек, какие веб-ресурсы посещает. При применении динамичного IP-адреса это невозможно в принципе, т. к. он выделяется для каждой сессии и больше не повторяется. А значит, пользователи не оставляют никакой истории в Сети.
Особенности получения динамического IP-адреса
Коснемся самой актуальной темы, как получить динамический IP-адрес. Самый простой ответ: поменять провайдера, так как некоторые из них предлагают специальные тарифы. Изменять IP-адреса помогают анонимайзеры. Эти сервисы позволяют пользователям пребывать в Сети анонимно, потому они получили такое название. Примером сервиса, предоставляющего динамические IP-адреса, является анонимайзер 2ip. Пользоваться им может житель любой страны без ограничений. Сервис позволяет получить много информации о человеке, посетившем его. Можно увидеть данные пользователя:
-
IP-адрес и имя устройства;
-
операционную систему и браузер;
-
место нахождения и провайдера;
-
используемые прокси.
На сайте можно сразу же поменять IP-адрес. Аналогичных сервисов в интернете немало. Они могут быть одинаково полезны пользователям и со статическими, и с динамическими адресами. Иногда получить динамический IP-адрес хотят даже те, кто уже имеет такой. Столь странная ситуация объясняется очень просто: провайдер, предоставляющий пользователю IP-адрес, может самостоятельно менять его.
Не все анонимайзеры бесплатны. Некоторые сервисы устанавливают определенные расценки за предоставляемые услуги. Чаще всего оплата производится через SMS-сообщение. Возможно два варианта оплаты: лимитированного отрезка времени пользования динамическим IP-адресом либо одной сессии. Мы не призываем прибегать к платным анонимайзерам, т. к. в Сети существует немало качественных сервисов, при этом абсолютно бесплатных. Отдельно отметим, что динамичные IP-адреса довольно часто используют спамеры и кликеры. Так они могут без труда рассылать пользователям интернета спам, а также получать плату за ложные клики.
Таким образом, существует несколько способов получить динамический IP-адрес. Выбирайте наиболее приемлемый и применяйте его с пользой.
Как сделать динамический IP на телефоне
В большинстве случаев мобильные операторы и так выдают своим пользователям динамические ip-адреса. То есть вы не заходите постоянно под одни и тем же номером. При этом смена происходит один раз в день или раз в несколько дней.
Но это не значит, что у вас не может возникнуть необходимости посетить тот или иной ресурс, не раскрывая собственный IP-адрес. Причины для этого могут быть разные, например:
-
Ваш адрес внесён в чёрный список, и вы попросту не можете совершить переход. Учитывая, что он выдаётся провайдером из статичного пула, нарушение мог совершить другой пользователь. И в этот день вам просто непосчастливилось получить Ip-адрес, который, по каким-то причинам, был забанен.
-
Вы собираетесь посетить проект, который был заблокирован для того региона, в котором вы находитесь. Сегодня такие случаи совсем не редкость. Есть страны, вроде Китая, которые вообще для своих пользователей воздвигли стену и держат их в, своего рода, локальной сети, без доступа к международным ресурсам.
Для смены Ip-адреса необходимо воспользоваться услугами стороннего программного обеспечения. К счастью, сегодня сделать это максимально легко и просто.
iOS
Наиболее простой и удобный способ скрыть свои перемещения по Глобальной сети – воспользоваться услугами VPN. Благо сервисов, предоставляющих подобные услуги, сегодня огромное множество. Достаточно прибегнуть к поиску во внутреннем магазине App Store. В качестве примера можно рассмотреть некоторые из них:
-
TunnelBear – этот VPN-сервис снискал всеобщую симпатию. Он собрал обширную аудиторию и радует своих клиентов широкими возможностями. В частности, вы можете выбрать сервер одной из 20 доступных стран. Более того, приложение условно бесплатное. То есть оно позволяет отработать 0,5 Гбайт трафика и ничего не платить. Но если за месяц вам нужно выкачать больше, придётся оплатить подписку.
-
Opera VPN – предоставляет стабильное подключение к нескольким сотням серверов, расположенных в 10 различных регионах мира. Здесь также есть варианты с бесплатным использованием и платной подпиской. Различаются между собой они только шириной канала. То есть скоростью загрузки.
-
Windscribe – работает по принципу TunnelBear. То есть предоставляет бесплатный трафик раз в месяц. Правда здесь его намного больше — 10 Гбайт. Более того, сервис предоставляет вам различные способы по бесплатному увеличению тарифного плана. За репост рекламной записи в Twitter вы получите дополнительно 5 Гбайт, и ещё по 1 Гбайту за каждого, приведённого по вашей реферальной ссылке, нового пользователя.
-
Hotspot Shield – монетизируется по иной схеме. Сервис предоставляет новым клиентам бесплатный пробный период длительностью в 7 дней. А далее нужно либо оплатить подписку, либо мириться с ощутимыми перепадами в скорости загрузки.
-
Speedify – VPN-сервис, сконцентрированный на предоставлении клиентам максимальной скорости подключения. Разработчик заявляет, что он может одновременно использовать возможности wi-fi и мобильного интернета. Бесплатная версия приложения позволяет выкачивать 4 Гбайта в первый месяц использования, и по 1 в каждый последующий. Если захотите большего, то придётся оплатить премиум.
В целом вы можете выбрать любое из приведённых приложений или вообще нечто иное. Использование VPN сегодня стало чем-то само собой разумеющимся. Рано или поздно, большинство пользователей сталкиваются с необходимостью замаскировать своё посещение или войти в Сеть через сервер другой страны.
Android
Существующие сегодня VPN-сервисы отличаются друг от друга своим функционалом, условиями регистрации, возможностями по бесплатной эксплуатации и стоимостью платной подписки.
Независимо от того, какое приложение вы выберите, можете ожидать, что скорость подключения будет в любом случае ниже, чем без использования VPN.
-
ProtonVPN – швейцарский сервис. Предельная ширина канала 1,4 Гбит. Но если вы используете бесплатные серверы, то можете рассчитывать на то, что получите только половину от этой скорости. Никаких ограничений по количеству трафика нет.
-
Hide.me – позволяет получить анонимный Ip-адрес. Бесплатная версия приложения предоставляет 10 Гбайт трафика в месяц. Если вам их не хватает, придётся оплатить подписку. Снижение естественной скорости подключения составляет порядка 50%.
-
Psiphon – не очень дружественный для пользователей сервис. Он предоставляет бесплатную версию без ограничений по количеству трафика, но на чрезвычайно низкой скорости. По сегодняшним меркам, канал в 2 Мбит — это ничто. Вы даже обычные сайты будете загружать по минуте, что уж говорить про социальные сети, YouTube или стриминговые платформы. Таким образом разработчики пытаются изо всех сил принудить аудиторию приобретать платные подписки.
-
Snap VPN – ещё одно приложение, которое предоставляет новым пользователям бесплатную пробную версию. Длится она 7 дней, по истечении которых придётся либо оплатить платную подписку, либо поискать что-нибудь другое. Только помните о том, что при стартовой регистрации придётся ввести номер банковской карты. И если вы не успеете отменить автоматическую оплату подписки, то спустя 7 дней приложение спишет с вас её стоимость. Таким образом разработчики пытаются, в некотором смысле, обманывать нерасторопных клиентов.
-
Betternet – условно бесплатный сервис. Он предоставляет возможность свободно использовать свои возможности без ограничений по объёмам трафика. Но бесплатная версия предполагает некоторое снижение скорости загрузки. Оно составляет примерно треть от максимальной ширины канала. То есть платная подписка предоставляет вам ещё 33% скорости. Для выбора доступны серверы, расположенные в 10 различных странах. Выбрать можно любую из них.
Как узнать динамический или статический ip — пошаговая инструкция — Советы
Пользователи, которые работают в сети Интернет по тем или иным причинам задаются вопросом — как узнать динамический или статический ip адрес на устройстве. Это может быть связано с разными обстоятельствами, а иногда дает дополнительные привилегии или ограничения при работе с разными ресурсами.
Как узнать свой IP адрес и для чего он нужен - читайте в статье.
Как узнать какой ip адрес статический или динамический — немного теории
АйПи адрес представляет собой уникальный идентификатор в Интернете и в пределах одной сети не может повторятся. Может быть как локальным (например в пределах сети организации или провайдера) так и внешним — с помощью него предоставляется выход во всемирную паутину, но в любом случае он будет уникальным.
Статический IP не меняется во времени (в пределах одной сессии) и грубо говоря он постоянный. Может быть изменен провайдером, администратором сети предприятия и т.д. Такой вид айпи адреса полезен, если вы хотите часто подключаться удаленно к своему компьютеру или другому устройству без смены настроек.
IP-адрес называют статическим (постоянным, неизменяемым), если он назначается пользователем в настройках устройства, либо назначается автоматически при подключении устройства к сети и не может быть присвоен другому устройству.
Динамический IP — может меняться при каждом новом подключении к сети и во время сессии (время аренды айпишника ограничено). В таком случае вам постоянно необходимо будет менять определенные настройки в программном обеспечении для организации постоянного удаленного доступа к вашему гаджету.
IP-адрес называют динамическим (непостоянным, изменяемым), если он назначается автоматически при подключении устройства к сети и используется в течение ограниченного промежутка времени, указанного в сервисе назначавшего IP-адрес (DHCP).
Динамический или статический ip — в чем плюсы и минусы
При получении динамического айпи у злоумышленников, которые орудуют в Интернете, меньше шансов взломать ваш девайс, т.к. при перезагрузке устройства (ПК, ноутбук, планшет, роутер и т.д.) скорее всего будет выдан провайдером новый айпишник. Соответственно хакерам придется потратить на проникновение больше времени, а то и начинать все сначала. Также такой тип IP будет полезен спамерам, пользователям которые “сидят” на форумах под разными никами, что позволит минимизировать риски попадания в бан (черный список).
Статический айпи-адрес может пригодится при активном использовании интернет-банкинга и других ситуациях где необходимо обеспечить максимальный уровень безопасности и сделать “привязку” вашего айпишника к учетке. Если вы хотите организовать сервер на вашем устройстве (например, для игр, файлообменник и т.д.) или иметь постоянное удаленное подключение с помощью прикладного ПО к своему устройству или разместить сайт или другой сетевой сервис — такой тип айпишника будет незаменимым.
Как узнать какой у меня ip адрес динамический или статический?
Если вы не понимаете ничего в IT или уровень ваших знаний минимален, то лучше всего обратиться с этим вопросом в организацию, которая предоставляет вам доступ в Интернет или посмотреть условия договора, если таковой имеется.
Также можно воспользоваться сторонними сервисами, которые покажут ваш айпишник (например, 2ip.ru, speedtest.net). Такие сервисы кроме IP-адреса, предоставят много полезной информации: скорость интернет соединения, скорость скачивания/отдачи, инфу о провайдере и т.д.
После этого перезагрузите ваше устройство (компьютер, Wi-Fi-роутер) и проверьте значение айпи-адреса еще раз с помощью этих сайтов. Если значение осталось тоже, то с большой долей вероятности можно сказать, что у вас статический айпишник.
Другой способ — с помощью команды ipconfig:
- 1. Запустите консоль (командную строку) — нажмите Win+R
- 2. наберите cmd
- 3. потом — команду ipconfig /all
- 4. проверьте параметры “Аренда получена” и “Срок аренды истекает” — информация рядом с ними говорит о том, что это динамический айпи, ее отсутствие — статический.
Также стоит отметить, если вы используете роутер для выхода в Интернет, то значение и тип адресов лучше проверять на самом устройстве. Ведь по отношению к роутеру ваш гаджет может иметь динамический адрес, а сам маршрутизатор — статику. Проверьте основные настройки, в них будет четко указан тип адреса. Все устройства, которые будут выходить в Инет через него, имеют зачастую адреса в диапазоне 192.168.0.1 — 192.168.255.255. И возможно именно на вашем компе или ноуте один из таких IP адресов.
Перед тем как узнать динамический или статический ip и получить объективную информацию не используйте различные анонимайзеры, VPN-подключения и другие способы скрытия своего айпи — просто отключите их.
Понравилась статья? Поделись ею в соцсетях с друзьями!
Возможно вам будет интересно узнать:
Как узнать МАК адрес компьютера — все существующие способы пошагово
Ремонт компьютеров на дому с помощью сервиса Allmaster
Как узнать IP адрес компьютера windows 10 — подробное руководство
Почему гудит и сильно шумит компьютер? Посторонние звуки в компьютере
Как скопировать текст на компьютере клавишами и мышкой — детальное описание с картинками
Какую конфигурацию выбрать для игрового ПК? Характеристики игрового компьютера и стоимость
Какую конфигурацию компьютера выбрать для учебы
Что делать, если ноутбук не включается. Возможные причины почему ноут может не включаться
Работа мастер по ремонту компьютеров – свежие вакансии, быстрый поиск
Что такое плавающий IP?
Проще говоря, Интернет состоит из множества компьютеров, соединенных кабелями, оптоволоконными кабелями и беспроводными приемниками. Они обмениваются данными на основе общего «языка». Этот общий стандарт известен как Интернет-протокол (IP). Данные организованы таким образом, что компьютеры, понимающие общий протокол, могут их интерпретировать.
IP-адрес , также называемый «IP», позволяет обнаруживать цифровые устройства в сети. Это необходимое условие для надежной доставки электронных пакетов данных. Устройства взаимодействуют друг с другом, например, через Интернет. IP-адрес гарантирует, что данные от отправителя дойдут до нужного получателя — например, из веб-браузера на веб-сервер или наоборот. IP-адрес может быть назначен как одному, так и нескольким устройствам одновременно. Точно так же одно устройство может иметь несколько IP-адресов одновременно.
Однако для того, чтобы точно понять, что такое плавающий IP-адрес, сначала необходимо узнать разницу между динамическим и статическим IP-адресами.
Содержание
- Динамический IP-адрес
- Статический IP-адрес
- Плавающий IP-адрес – определение
- Как генерируется плавающий IP-адрес?
- Когда используются плавающие IP-адреса?
- Аварийное переключение и переключение
- Какие преимущества предлагает плавающий IP-адрес?
Динамический IP-адрес
Когда компьютер подключается к Интернету, в большинстве случаев Интернет-провайдер (ISP) назначает ему динамический IP-адрес. Динамические IP-адреса являются наиболее экономичным стандартом для пользователей и провайдеров. Они характеризуются тем, что присваиваются только временно и меняются через определенное время, которое либо является фиксированным (например, в течение 24 часов), либо нерегулярно. Затем пользователь получает новый динамический IP-адрес для своего компьютера от соответствующего интернет-провайдера, а предыдущий адрес будет подписан на другого пользователя.
Статический IP-адрес
Статический IP-адрес, с другой стороны, является фиксированным адресом и постоянно назначен устройству. Статические IP-адреса находятся в основном в области веб-сервера или сервера электронной почты или везде, где предложения или содержимое веб-сайта должны быть доступны через фиксированный URL-адрес, чтобы пользователи или процессы могли (повторно) найти их без каких-либо проблем . Компьютеры в сети или периферийные устройства (например, принтеры) имеют фиксированные IP-адреса, поэтому отдельные устройства в сети могут легко взаимодействовать друг с другом.
Чтобы пользователям не приходилось запоминать комплексные числа, можно присвоить доменное имя статическому IP-адресу, например. www.example.org . Таким образом, числовой IP-адрес, «номер подключения» устройства в сети, преобразуется в легко запоминающееся имя. Обычно это только , зарезервированное для статических IP-адресов . Это не имеет особого смысла для динамических IP-адресов, поскольку пользователь так часто меняется.
Плавающий IP-адрес — определение
Плавающий IP-адрес обычно имеет номер 9.0003 общедоступный маршрутизируемый IP-адрес , который не назначается объекту автоматически. Вместо этого владелец проекта временно назначает их одному или нескольким объектам. Соответствующий объект имеет автоматически назначаемый статический IP-адрес для связи между экземплярами в частной, немаршрутизируемой области сети, а также через назначаемый вручную плавающий IP-адрес. Это делает услуги объекта за пределами облака или сети узнаваемыми и, следовательно, достижимыми .
В правильно сконфигурированных сценариях отработки отказа IP-адрес «плавает» к другому активному устройству в сети, чтобы он мог взять на себя функцию бездействующего объекта без временной задержки , а затем может отвечать на входящие запросы.
Как создается плавающий IP-адрес?
Пользователи получают плавающие IP-адреса для своих проектов из разных пулов , которые системный администратор настраивает и предоставляет в качестве ресурсов сервера. Как только пользователь получает плавающий IP-адрес, он становится «владельцем ». Они могут назначить его объекту, удалить его, а затем назначить другому в любое время. Даже если объект прекращается, пользователь не «теряет» связанный с ним плавающий IP-адрес. Остается ресурс и при необходимости может быть назначен другому объекту.
Основной причиной использования нескольких параллельных плавающих пулов IP-адресов является то, что каждый пул может управляться другим поставщиком интернет-услуг или также может быть назначен другими внешними сетями. Это гарантирует, что возможность подключения или доступность будет поддерживаться , даже если поставщик интернет-услуг выйдет из строя из-за неисправности.
Когда используются плавающие IP-адреса?
Максимальная доступность — один из ключевых факторов в любой производственной среде. Однако в коммуникационной сети одна ошибка может привести к сбою приложений. Разработчики лучше спят, зная, что их приложения спроектированы так, чтобы противостоять любым мыслимым сценариям ошибок. Цель состоит в том, чтобы предоставить высокодоступную часть инфраструктуры с минимальным временем простоя .
Плавающий IP-адрес может служить гибким адресом балансировки нагрузки , помогая сбалансировать пиковые нагрузки за счет распределения входящего сетевого трафика по разным узлам сети. Сетевые узлы — это устройства, которые соединяют два (или более) пути передачи телекоммуникационной сети. Как и в случае с компьютером, который распределяет рабочие процессы между несколькими процессорами, балансировка нагрузки также обрабатывает большое количество одновременных запросов или более сложных вычислений путем разделения 9 процессоров. 0003 нагрузка на несколько параллельных систем .
Аварийное переключение и переключение
При отказе основного балансировщика нагрузки или центрального сервера приложений в кластере с одной стороны плавающий IP может быть немедленно назначен резервному серверу приложений или вторичному балансировщику нагрузки в соответствующей настроенной системе. IP «плавает» к активному блоку , который немедленно выполняет нужные процессы. Незапланированное изменение между сетевыми службами называется «отказоустойчивостью». Этот вид защиты особенно рекомендуется для критические приложения .
Запланированное изменение с первичной системы на вторичную называется «переключением». Целенаправленная передача услуг не вызывается ошибками, а обычно контролируется системным администратором. Классической причиной переключения является, например, плановое техническое обслуживание первичной или вторичной систем, когда параллельный экземпляр временно берет на себя его функции.
Какие преимущества дает плавающий IP-адрес?
Одним из основных преимуществ плавающих IP-адресов является их гибкость – возможность бесплатного и ориентированного на потребности назначения. Таким образом, плавающие IP-адреса подходят для использования как в средах аварийного переключения, так и в средах переключения, например, для выполнения обновлений приложений или целых сайтов с минимальным временем простоя. В то время как обновление применяется к одному объекту, другой берет на себя трафик. После успешного завершения обновления трафик перенаправляется на обновленный блок.
Еще одно преимущество: даже если за предлагаемой услугой скрыто несколько или даже много разных объектов, плавающий IP-адрес появляется на поверхности для пользователей (которые используют услугу), а не IP-адрес сервера , который предлагает соответствующую услугу. .
- Ноу-хау
- Протоколы
- Сеть
IP0126
IPv6 — это новейшая версия интернет-протоколов, и она должна решить основные проблемы своих предшественников. В число этих проблем входит надвигающаяся нехватка IPv4-адресов, а также нарушение сквозного принципа строгим разделением публичных и частных IP-адресов. В этой статье дается обзор функций IPv6, а также структуры и распределения адресов…
IPv6: все о новом стандарте интернетаИспользование плавающих IP-адресов — База знаний
Как использовать плавающие IP-адреса
Содержание
Что такое плавающие IP-адреса
Плавающие IP-адреса — это тип виртуального IP-адреса, который может динамически маршрутизироваться на любой сервер в той же сети.
Несколько серверов могут иметь один и тот же плавающий IP-адрес, но он может быть активен только на одном сервере в любой момент времени.
Плавающие IP-адреса можно использовать для:
- реализации отказоустойчивости в кластере высокой доступности
- Внедрение непрерывного развертывания с нулевым временем простоя
- Сохранение одного и того же IP-адреса на сервере, даже если он перемещается в центр обработки данных
- Использование собственных IP-адресов с объявлением IP на любом сервере
- Создание резервного брандмауэра с подключением с отслеживанием состояния синхронизация по нашей частной сети
Как это работает?
Плавающий IP-адрес имеет динамическую прямую связь с «якорным» IP-адресом. Якорный IP-адрес — это основной IP-адрес сервера, на который направляется плавающий IP-адрес.
Звучит сложно, но на самом деле это означает, что плавающий IP-адрес просто связан с другим IP-адресом, который вы можете выбрать и изменить по своему усмотрению.
С помощью клиентского портала и Leaseweb API соотношение плавающий IP-адрес ↔ якорный IP-адрес можно обновлять в режиме реального времени, поэтому вы можете направлять трафик, входящий на плавающий IP-адрес, на сервер по вашему выбору.
Рассмотрим следующий сценарий. Пользователь вводит плавающий IP-адрес 1.1.1.1
в своем браузере, его привязочный IP-адрес равен 9.0189 2.2.2.2 , который принадлежит серверу A. Пользователю будет предоставлен веб-сайт, работающий на сервере A. тот же веб-сайт будет обслуживаться веб-сайтом, работающим на сервере B.
Это изменение происходит мгновенно, без каких-либо заметных простоев с точки зрения конечного пользователя.
Использование плавающих IP-адресов
Использование плавающих IP-адресов довольно просто, вы можете заказать их через портал клиентов и настроить на своем сервере в качестве дополнительного IP-адреса.
Демонстрация
Взяв пример выше, давайте настроим два сервера с простым веб-сервером HTTP и используем плавающий IP-адрес для доступа к веб-сайту любого из серверов.
- Server A has IP address
212.32.230.75
and is installed with CentOS 7 - Server B has IP address
212.32.230.66
and is installed with Ubuntu 18.04 -
89.149.192.0
is the Floating IP address
Настройка плавающего IP-адреса на клиентском портале
- Войдите на портал клиентов Leaseweb и нажмите Floating IP на панели инструментов.
- На странице Плавающие IP-адреса нажмите кнопку Запросить плавающие IP-адреса .
- На странице Request Floating IPs выберите Type (Metro или Site), Location и необходимое количество IP-адресов , установите флажок Условия и нажмите
3 Ok .
. Вы получите это подтверждающее сообщение.
Настройка плавающего IP-адреса на серверах
На сервере плавающие IP-адреса можно настроить как любой другой дополнительный IP-адрес. Адрес шлюза не требуется, а маска подсети всегда 255.255.255.255
или /32
в нотации CIDR.
Чтобы добавить дополнительный IP-адрес к интерфейсу в Linux, не сохраняя изменения, мы можем просто использовать
ip -4 address show
команда, чтобы показать, на каком устройстве настроен основной IP-адрес, а затем выполните команду
ip address add <плавающий IP-адрес>/32 dev <устройство>
, чтобы добавить плавающий IP-адрес к такое же устройство.
Мы также устанавливаем HTTP-сервер и создаем простую демонстрационную веб-страницу:
# Проверяем, к какому устройству нам нужно добавить IP-адрес ip -4 адрес показать IP-адрес добавить 89. 149.192.0/32 dev eno1 # Плавающий IP-адрес теперь должен быть виден на устройстве ip -4 адрес показать # Установите веб-сервер и создайте базовую веб-страницу по умолчанию. ням установить -y httpd systemctl запустить httpd кот </var/www/html/index.html > > > Это тестовый сервер A >Это тестовый сервер A
> > КОНЕЦ
Результат:
tim@laptop:~$ ssh [email protected] [root@servera ~]# ip -4 адрес показать 1: lo:mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 инет 127.0.0.1/8 область хоста lo valid_lft навсегда 2: eno1: mtu 1500 qdisc mq state UP group default qlen 1000 инет 212.32.230.75/26 brd 212.32.230.127 глобальная область действия eno1 valid_lft навсегда [root@servera ~]# IP-адрес добавить 89. 149.192.0/32 dev eno1 [root@servera ~]# ip -4 адрес показать 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 инет 127.0.0.1/8 область хоста lo valid_lft навсегда 2: eno1: mtu 1500 qdisc mq state UP group default qlen 1000 инет 212.32.230.75/26 brd 212.32.230.127 глобальная область действия eno1 valid_lft навсегда инет 89.149.192.0/32 область глобальная eno1 valid_lft навсегда [root@servera ~]# yum install -y httpd [...] [root@servera ~]# systemctl start httpd [root@servera ~]# cat < /var/www/html/index.html > > > Это тестовый сервер A >Это тестовый сервер A
> > EOF [корень@сервера ~]#
( примечание: ssh [email protected]
— это изящный маленький трюк, описанный здесь: https://gist.github.com/timwb/1f95737d54563aedd7c97d5e671667cc)
Теперь плавающий IP-адрес уже может пинговаться адрес, и открытие его в браузере загружает демонстрационную веб-страницу:
Затем добавьте тот же плавающий IP-адрес к серверу B, установите веб-сервер HTTP и создайте простую демонстрационную веб-страницу:
# Проверьте, какое устройство мы необходимо добавить IP-адрес в ip -4 адрес показать IP-адрес добавить 89. 149.192.0/32 разработчик enp32s0 # Плавающий IP-адрес теперь должен быть виден на устройстве ip -4 адрес показать # Установите веб-сервер и создайте базовую веб-страницу по умолчанию. меткая установка -y nginx кот </var/www/html/index.html Это тестовый сервер B Это тестовый сервер B
EOF
Результат:
tim@laptop:~$ ssh [email protected] root@server:~# ip -4 адрес показать 1: lo:mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 инет 127.0.0.1/8 область хоста lo valid_lft навсегда 2: enp32s0: mtu 1500 qdisc mq state UP group default qlen 1000 inet 212.32.230.66/26 brd 212.32.230.127 глобальная область enp32s0 valid_lft навсегда 3: enp34s0: mtu 1500 qdisc mq state UP group default qlen 1000 inet 10. 32.18.208/27 brd 10.32.18.223 глобальная область enp34s0 valid_lft навсегда root@server:~# IP-адрес добавить 89.149.192.0/32 разработчик enp32s0 root@server:~# ip -4 адрес показать 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 инет 127.0.0.1/8 область хоста lo valid_lft навсегда 2: enp32s0: mtu 1500 qdisc mq state UP group default qlen 1000 inet 212.32.230.66/26 brd 212.32.230.127 глобальная область enp32s0 valid_lft навсегда инет 89.149.192.0/32 глобальная область охвата enp32s0 valid_lft навсегда 3: enp34s0: mtu 1500 qdisc mq state UP group default qlen 1000 inet 10.32.18.208/27 brd 10.32.18.223 глобальная область enp34s0 valid_lft навсегда root@server:~# apt install -y nginx [...] root@server:~# cat < /var/www/html/index.html > > > Это тестовый сервер B >Это тестовый сервер B
> > EOF корень@сервер:~#
Переключение плавающего IP-адреса
Первоначально мы настроили плавающий IP-адрес 89. 149.192.0
с привязкой IP-адреса 212.32.230.75
, который принадлежит серверу A.
Предположим, мы создали новый веб-сайт на сервере B. и после месяцев испытаний он наконец готов.
Чтобы направить пользователей, посещающих 89.149.192.0
, на сервер B, нам необходимо обновить Anchor IP плавающего IP 89.149.192.0
, изменив (FLIP’ing) его с 212.32.230.75
(сервер A) на 212.32.230.66
(сервер Б).
Для этого щелкните на Портале клиентов и измените IP-адрес привязки:
Теперь, когда вы обновите браузер, отобразится страница с сервера B:
Поздравляем, вы только что установили свой первый шаг к кластеру веб-хостинга с высокой доступностью и непрерывным развертыванием.
Сохранение изменений на серверах
Поскольку добавление плавающего IP-адреса точно такое же, как и любого другого IP-адреса, просто следуйте инструкциям в разделе Добавление IPv6-адреса на сервер
Использование API для управления плавающими IP-адресами
Конечно, использование клиентского портала — это удобный способ настройки и воспроизведения плавающих IP-адресов, но настоящая сила заключается в автоматизации.
Официальную документацию API с плавающими IP-адресами можно найти на сайте developer.leaseweb.com
В следующих примерах мы будем использовать curl
для выполнения HTTP-запросов и инструмент jq
для красивой печати ответов API, но вы можете использовать любой инструмент или библиотеку для взаимодействия с RESTful API. Вы можете найти свой ключ API ( X-Lsw-Auth
) на клиентском портале в разделе API
Список диапазонов плавающих IP-адресов
Чтобы получить список диапазонов плавающих IP-адресов, отправьте запрос GET
на адрес /floatingIps/v2/ranges
:
curl -- молчание --request GET --url https://api.leaseweb.com/floatingIps/v2/ranges --header 'X-Lsw-Auth: 213423-2134234-234234-23424' |jq
{ "диапазоны": [ { "id": "89.149.192.0_29", "диапазон": "89. 149.192.0/29", "идентификатор клиента": "12345678", "salesOrgId": "2000", «поп»: «АМС-01» } ], "_metadata": { "лимит": 20, "смещение": 0, "общее количество": 1 } }
Список определений плавающих IP-адресов в диапазоне плавающих IP-адресов
Чтобы просмотреть определения плавающих IP-адресов в определенном диапазоне плавающих IP-адресов, отправьте запрос GET на адрес /floatingIps/v2/ranges/{rangeId}/floatingIpDefinitions
. RangeId — это поле идентификатора из предыдущего вызова API:
curl --silent --request GET --url https://api.leaseweb.com/floatingIps/v2/ranges/89.149.192.0_29/floatingIpDefinitions --header 'X-Lsw-Auth: 213423-2134234-234234-23424' |jq
{ "плавающие определения IP": [ { "id": "89.149.192.0", "rangeId": "89.149.192.0_29", "поп": "АМС-01", "идентификатор клиента": "12345678", "salesOrgId": "2000", "плавающий IP": "89. 149.192.0/32", "anchorIp": "212.32.230.66", "статус": "АКТИВНЫЙ", "createdAt": "2019-06-17T14:15:11+00:00", "updatedAt": "2019-06-26T09:26:52+00:00" } ], "_metadata": { "общее количество": 1, "лимит": 20, "смещение": 0 }
Добавить новое определение плавающего IP-адреса
Чтобы добавить новое определение плавающего IP-адреса, выполните POST-вызов /ranges/{rangeId}/floatingIpDefinitions. В теле запроса необходимо указать как плавающий, так и привязной IP-адрес. Допустим, мы создаем новый плавающий IP-адрес Обратите внимание, что в ответе статус Обновление определения плавающего IP-адреса выполняется с помощью вызова PUT 89.149.192.0
с якорным IP-адресом 212.32.230.66
(сервер B):
curl --silent --request POST --url https://api.leaseweb.com/floatingIps /v2/ranges/89.149.192.0_29/floatingIpDefinitions --header 'X-Lsw-Auth: 213423-2134234-234234-23424' --header 'content-type: application/json' --data '{
"floatingIp": "89.149.192.3",
"anchorIp": "212.32. 230.66"
}' |jq
930637
"id": "89.149.192.3",
"rangeId": "89.149.192.0_29",
"поп": "АМС-01",
"идентификатор клиента": "12345678",
"salesOrgId": "2000",
"плавающий IP": "89.149.192.3/32",
"anchorIp": "212.32.230.66",
"статус": "СОЗДАНИЕ",
"createdAt": "2019-06-26T14:30:40+00:00",
"updatedAt": "2019-06-26T14:30:40+00:00"
}
СОЗДАНИЕ
. Процесс создания очень быстрый, но не мгновенный. При отправке запроса GET
к /floatingIps/v2/ranges/{rangeId}/floatingIpDefinitions
вы увидите, что создание было обработано через несколько секунд: {
"плавающие определения IP": [
{
"id": "89.149.192.0",
"rangeId": "89.149.192.0_29",
"поп": "АМС-01",
"идентификатор клиента": "12345678",
"salesOrgId": "2000",
"плавающий IP": "89. 149.192.0/32",
"anchorIp": "212.32.230.66",
"статус": "АКТИВНЫЙ",
"создано в": "2019-06-17T14:15:11+00:00",
"updatedAt": "2019-06-26T14:23:58+00:00"
},
{
"id": "89.149.192.3",
"rangeId": "89.149.192.0_29",
"поп": "АМС-01",
"идентификатор клиента": "12345678",
"salesOrgId": "2000",
"плавающий IP": "89.149.192.3/32",
"anchorIp": "212.32.230.66",
"статус": "АКТИВНЫЙ",
"createdAt": "2019-06-26T14:30:40+00:00",
"updatedAt": "2019-06-26T14:30:45+00:00"
}
],
"_metadata": {
"общее количество": 2,
"лимит": 20,
"смещение": 0
}
}
Обновление существующего определения плавающего IP-адреса
/floatingIps/v2/ranges/{rangeId}/floatingIpDefinitions/{floatingIpDefinitionId}
. floatIpDefinitionId — это просто плавающий IP-адрес. IP-адрес привязки предоставляется в теле запроса. Допустим, мы обновляем 89.149.192.0
с помощью Anchor IP 212.32.230.75
, поэтому мы снова направляем трафик обратно на сервер A:
curl --silent --request PUT --url https://api.leaseweb.com/floatingIps/v2/ranges/89.149.192.0_29/floatingIpDefinitions/89.149.192.0_32 --header 'X-Lsw-Auth:
213423-2134234-234234-23424
' --header 'content-type: application/json' --data '{
"anchorIp": "212.32.230.75"
9039 60 {jq
Обратите внимание, что в ответе по-прежнему указан старый якорный IP-адрес, а статус изменен на ОБНОВЛЕНИЕ. Процесс обновления очень быстрый, но не мгновенный. При повторном запросе GET к /floatingIps/v2/ranges/{rangeId}/floatingIpDefinitions
вы увидите, что обновление было обработано через несколько секунд:
{ "плавающие определения IP": [ { "идентификатор": "89.149.192.0", "rangeId": "89.149.192.0_29", "поп": "АМС-01", "идентификатор клиента": "12345678", "salesOrgId": "2000", "плавающий IP": "89.149.192.0/32", "anchorIp": "212.32.230.75", "статус": "АКТИВНЫЙ", "createdAt": "2019-06-17T14:15:11+00:00", "updatedAt": "2019-06-26T14:36:01+00:00" } ], "_metadata": { "общее количество": 1, "лимит": 20, "смещение": 0 } }
Удалить определение плавающего IP
Удалить определение плавающего IP так же просто, как создать УДАЛИТЬ
вызов на /ranges/{rangeId}/floatingIpDefinitions/{floatingIpDefinitionId}
:
curl --silent --request УДАЛИТЬ --url https://api. leaseweb.com/floatingIps/v2/ranges/89.149 .192.0_29/floatingIpDefinitions/89.149.192.3 --header 'X-Lsw-Auth: 213423-2134234-234234-23424' |jq
{ "id": "89.149.192.3", "rangeId": "89.149.192.0_29", "поп": "АМС-01", "идентификатор клиента": "12345678", "salesOrgId": "2000", "плавающий IP": "89.149.192.3/32", "anchorIp": "212.32.230.66", "статус": "УДАЛЕНИЕ", "создано в": "2019-06-26T14:30:40+00:00", "updatedAt": "2019-06-26T14:39:34+00:00" }
Как и в случае с вызовами POST и PUT, обработка займет пару секунд.
Объединяем все вместе — создание высокодоступной настройки веб-сервера с помощью Keepalived
Keepalived — это универсальная программа, которую можно использовать для реализации автоматического аварийного переключения с помощью API с плавающими IP-адресами. В этом примере мы покажем, как создать простую активную/резервную установку, в которой плавающий IP-адрес автоматически перенаправляется на сервер B в случае сбоя сервера A.
Он может делать гораздо больше, и имейте в виду, что это только пример проверки концепции, предназначенный для демонстрации функциональности плавающих IP-адресов самым простым способом.
Конфигурация keepalived
После установки конфигурация keepalived
находится в файле /etc/keepalived/keepalived.conf
. В этом файле мы укажем для поддержки активности:
- Создать экземпляр «vrrp» с именем webservers с идентификатором 123:
Примечание: идентификатор может быть любым случайным числом в диапазоне 0-255, но он должен быть одинаковым для всех серверы.
vrrp_instance webservers { ... }
virtual_router_id
- Настроить сервер A в качестве главного с приоритетом 200:
состояние MASTER
с приоритетом сервера B в качестве резервного 200
100: - Общаться друг с другом, используя общий секрет:
interface <имя интерфейса>
(см. инструкции в разделе Настройка плавающего IP-адреса на серверах)
unicast_src_IP
unicast_peer {
}
аутентификация { ... }
- master9 запустите сценарий для обновления Anchor90 IP-адреса, когда любой из серверов 18 notify_02 становится /etc/keepalived/becomemaster.sh
- Запустите команду, чтобы проверить, работает ли веб-сервер. На сервере A (CentOS) это процесс
httpd
, на сервере B (Ubuntu) это процессnginx
, и вместо этого нам нужно обернуть команду в небольшой скрипт.
track_script { ... }
состояние BACKUP
приоритет 100
Итак, мы запускаем следующие команды для настройки сервера A:
# Установить keepalived yum установить -y поддерживать активность # Записать конфигурацию поддержки активности кошка </etc/keepalived/keepalived. conf веб-серверы vrrp_instance { виртуальный_роутер_id 123 состояние МАСТЕР приоритет 200 интерфейс eno1 unicast_src_ip 212.32.230.75 unicast_peer { 212.32.230.66 } аутентификация { auth_type ПАРОЛЬ auth_pass суперсекрет } notify_master /etc/keepalived/becomemaster.sh track_script { chk_apache } } vrrp_script chk_apache { скрипт "/usr/sbin/pidof httpd" интервал 2 } EOF # Напишите сценарий, который вызывает плавающий IP-интерфейс для обновления плавающего IP-адреса с этим сервером в качестве якорного IP-адреса. кошка < /etc/keepalived/becomemaster.sh #!/бин/ш curl --silent --request PUT --url https://api.leaseweb.com/floatingIps/v2/ranges/89.149.192.0_29/floatingIpDefinitions/89.149.192.0_32 --header 'X-Lsw-Auth: '"213423-2134234-234234-23424" --header 'content-type: application/json' --data '{ "anchorIp ": "212.32.230.75" }' EOF chmod +x /etc/keepalived/becomemaster.sh # Перезапустить поддержку активности systemctl перезапускает поддержку активности # Проверить статус поддержки активности статус systemctl keepalived
Результат:
tim@laptop:~$ ssh root@20483. lsw [root@servera ~]# yum install -y keepalived [...] [root@servera ~]# cat </etc/keepalived/keepalived.conf > веб-серверы vrrp_instance { > виртуальный_роутер_id 123 > состояние МАСТЕР > приоритет 200 > интерфейс eno1 > unicast_src_ip 212.32.230.75 > unicast_peer { > 212.32.230.66 > } > аутентификация { > auth_type ПАРОЛЬ > суперсекрет auth_pass > } > notify_master /etc/keepalived/becomemaster.sh > track_script { > chk_apache > } > } > > vrrp_script chk_apache { > скрипт "/usr/sbin/pidof httpd" > интервал 2 > } > EOF [root@servera ~]# cat < /etc/keepalived/becomemaster.sh > #!/бин/ш > curl --silent --request PUT --url https://api.leaseweb.com/floatingIps/v2/ranges/89.149.192.0_29/floatingIpDefinitions/89.149.192.0_32 --header 'X-Lsw-Auth: '"213423-2134234-234234-23424" --header 'content-type: application/json' --data '{ "anchorIp ": "212.32.230.75" }' > EOF [root@servera ~]# chmod +x /etc/keepalived/becomemaster.sh [root@servera ~]# systemctl перезапустить keepalived [root@servera ~]# поддержка состояния systemctl ● keepalived. service — монитор высокой доступности LVS и VRRP Загружено: загружено (/usr/lib/systemd/system/keepalived.service; отключено; настройка поставщика: отключена) Активно: активно (работает) со вторника 2019 г.-07-23 11:27:03 UTC; 30 сек. назад Процесс: 1346 ExecStart=/usr/sbin/keepalived $KEEPALIVED_OPTIONS (код=выход, статус=0/УСПЕХ) Основной PID: 1347 (сохранение активности) CGroup: /system.slice/keepalived.service ├─1347 /usr/sbin/keepalived -D ├─1348 /usr/sbin/keepalived -D └─1349 /usr/sbin/keepalived -D 23 июля 11:27:03 s20483 Keepalived_vrrp[1349]: открытие файла '/etc/keepalived/keepalived.conf'. 23 июля 11:27:03 s20483 Keepalived_vrrp[1349]: ПРЕДУПРЕЖДЕНИЕ. Пользователь по умолчанию 'keepalived_script' для выполнения скрипта не существует ... reate. 23 июля 11:27:03 s20483 Keepalived_vrrp[1349]: усечение auth_pass до 8 символов. 23 июля 11:27:03 s20483 Keepalived_vrrp[1349]: НАРУШЕНИЕ БЕЗОПАСНОСТИ - сценарии выполняются, но script_security не включен. 23 июля, 11:27:03 s20483 Keepalived_vrrp[1349]: использование отражателя сетевых ссылок ядра LinkWatch... 23 июля, 11:27:03 s20483 Keepalived_vrrp[1349]: пул VRRP: [ifindex(2), proto(112), unicast(1), fd(10,11)] 23 июля, 11:27:03 s20483 Keepalived_vrrp[1349]: VRRP_Script(chk_apache) выполнен успешно 23 июля, 11:27:04 s20483 Keepalived_vrrp[1349]: VRRP_Instance(веб-серверы) Переход в ГЛАВНОЕ СОСТОЯНИЕ 23 июля 11:27:05 s20483 Keepalived_vrrp[1349]: VRRP_Instance (веб-серверы) переходит в ГЛАВНОЕ СОСТОЯНИЕ 23 июля, 11:27:05 s20483 Keepalived_vrrp[1349]: открытие файла сценария /etc/keepalived/becomemaster.sh Подсказка: некоторые строки были выделены эллипсами, используйте -l, чтобы показать их полностью. [root@servera ~]#
Затем мы настраиваем сервер B:
# Установить keepalived apt install -y keepalived # Записать конфигурацию поддержки активности кошка </etc/keepalived/keepalived. conf vrrp_script chk_nginx { скрипт "/etc/keepalived/chk_nginx.sh" интервал 2 } веб-серверы vrrp_instance { виртуальный_роутер_id 123 резервная копия состояния приоритет 100 интерфейс enp32s0 unicast_src_ip 212.32.230.66 unicast_peer { 212.32.230.75 } аутентификация { auth_type ПАРОЛЬ auth_pass суперсекрет } notify_master /etc/keepalived/becomemaster.sh track_script { chk_nginx } } EOF # Напишите сценарий, который вызывает плавающий IP-интерфейс для обновления плавающего IP-адреса с этим сервером в качестве якорного IP-адреса. кошка < /etc/keepalived/becomemaster.sh #!/бин/ш curl --silent --request PUT --url https://api.leaseweb.com/floatingIps/v2/ranges/89.149.192.0_29/floatingIpDefinitions/89.149.192.0_32 --header 'X-Lsw-Auth: '"213423-2134234-234234-23424" --header 'content-type: application/json' --data '{ "anchorIp ": "212.32.230.66" }' EOF chmod +x /etc/keepalived/becomemaster.sh # Перезапустить поддержку активности systemctl перезапускает поддержку активности # Проверить статус поддержки активности статус systemctl keepalived
Результат:
tim@laptop:~$ ssh root@37089. lsw [root@server ~]# apt install -y keepalived [...] [root@server ~]# cat </etc/keepalived/keepalived.conf > веб-серверы vrrp_instance { > виртуальный_роутер_id 123 > резервное копирование состояния > приоритет 100 > интерфейс enp32s0 > unicast_src_ip 212.32.230.66 > unicast_peer { > 212.32.230.75 > } > > аутентификация { > auth_type ПАРОЛЬ > суперсекрет auth_pass > } > > notify_master /etc/keepalived/becomemaster.sh > > track_script { > chk_nginx > } > } > > vrrp_script chk_nginx { > скрипт "/etc/keepalived/chk_nginx.sh" > интервал 2 > } > EOF [root@server ~]# cat < /etc/keepalived/becomemaster.sh > #!/бин/ш > curl --silent --request PUT --url https://api.leaseweb.com/floatingIps/v2/ranges/89.149.192.0_29/floatingIpDefinitions/89.149.192.0_32 --header 'X-Lsw-Auth: '"213423-2134234-234234-23424" --header 'content-type: > application/json' --data '{ " anchorIp": "212.32.230.66" }' > EOF [root@server ~]# cat < /etc/keepalived/chk_nginx.sh > #!/бин/ш > /bin/pidof nginx > EOF [root@server ~]# chmod +x /etc/keepalived/becomemaster. sh [root@server ~]# systemctl перезапустить keepalived [root@server ~]# поддержка состояния systemctl ● keepalived.service — Демон поддержки активности (LVS и VRRP) Загружено: загружено (/lib/systemd/system/keepalived.service; включено; предустановка поставщика: включена) Активно: активно (работает) со вторника 2019 г.-07-23 11:27:12 UTC; 48 сек. назад Процесс: 24346 ExecStart=/usr/sbin/keepalived $DAEMON_ARGS (code=exited, status=0/SUCCESS) Основной PID: 24355 (сохранение активности) Заданий: 3 (лимит: 4574) CGroup: /system.slice/keepalived.service ├─24355 /usr/sbin/keepalived ├─24357 /usr/sbin/keepalived └─24358 /usr/sbin/keepalived 23 июля, 11:27:12 diy-dhcp-ams01-nl Keepalived_vrrp [24358]: регистрация командного канала сетевой ссылки ядра 23 июля, 11:27:12 diy-dhcp-ams01-nl Keepalived_vrrp[24358]: Регистрация бесплатного общего канала ARP 23 июля, 11:27:12 diy-dhcp-ams01-nl Keepalived_vrrp[24358]: открытие файла '/etc/keepalived/keepalived. conf'. 23 июля, 11:27:12 diy-dhcp-ams01-nl Keepalived_vrrp[24358]: ПРЕДУПРЕЖДЕНИЕ. Пользователь по умолчанию «keepalived_script» для выполнения скрипта не существует — создайте его. 23 июля, 11:27:12 diy-dhcp-ams01-nl Keepalived_vrrp[24358]: усечение auth_pass до 8 символов 23 июля, 11:27:12 diy-dhcp-ams01-nl Keepalived_vrrp[24358]: НАРУШЕНИЕ БЕЗОПАСНОСТИ — сценарии выполняются, но script_security не включен. 23 июля, 11:27:12 diy-dhcp-ams01-nl Keepalived_vrrp[24358]: использование отражателя сетевых ссылок ядра LinkWatch... 23 июля, 11:27:12 diy-dhcp-ams01-nl Keepalived_vrrp [24358]: VRRP_Instance (веб-серверы) переходит в состояние резервного копирования 23 июля, 11:27:12 diy-dhcp-ams01-nl Keepalived_healthcheckers[24357]: открытие файла «/etc/keepalived/keepalived.conf». 23 июля, 11:27:12 diy-dhcp-ams01-nl Keepalived_vrrp[24358]: VRRP_Script(chk_nginx) выполнен успешно [корень@сервер ~]#
Итак, теперь у нас есть избыточная установка, а сервер А является ведущим. Если мы посетим плавающий IP-адрес в нашем браузере, мы увидим, что он обслуживается сервером A:
. Давайте смоделируем сбой на сервере A, выключив веб-сервер Apache с помощью и наблюдаем, как сервер B вступает во владение.
На сервере A запустите:
systemctl stop httpd
Через пару секунд вы увидите аварийное переключение на сервер B. Не стесняйтесь нажимать F5, как будто от этого зависит ваша жизнь!
Глядя на журналы поддержки активности на сервере B, вы можете увидеть, что он обнаружил сбой на сервере A и автоматически выполнил сценарий для обновления IP-адреса привязки:
journalctl -u keepalived |tail
[ . .. ] 23 июля, 11:51:43 diy-dhcp-ams01-nl Keepalived_vrrp[24358]: VRRP_Instance(веб-серверы) Переход в ГЛАВНОЕ СОСТОЯНИЕ 23 июля, 11:51:44 diy-dhcp-ams01-nl Keepalived_vrrp [24358]: VRRP_Instance (веб-серверы) входит в ГЛАВНОЕ СОСТОЯНИЕ 23 июля, 11:51:44 diy-dhcp-ams01-nl Keepalived_vrrp[24358]: открытие файла сценария /etc/keepalived/becomemaster. sh
Вот и все, у вас есть собственный (минимальная реализация) высокодоступный кластер веб-хостинга!
Часто задаваемые вопросы по использованию плавающих IP-адресов
Какие IP-адреса можно использовать в качестве привязных IP-адресов?
Любой IPv4-адрес, отвечающий следующим требованиям, может быть использован в качестве привязки IP-адреса:
- Привязка IP-адреса должна принадлежать тому же сайту (центру обработки данных), что и плавающий IP-адрес
- Привязка IP-адрес должен быть назначен вашему account
- Якорный IP-адрес не может быть плавающим IP-адресом
Это означает, что вы можете использовать плавающие IP-адреса для маршрутизации трафика не только на выделенные серверы, но и на серверы, межсетевые экраны или балансировщики нагрузки в частных стойках, а также на совместное и частное размещение.
В настоящее время виртуальные серверы и частное облако нельзя использовать с плавающими IP-адресами, но мы работаем над тем, чтобы сделать это возможным.
Могу ли я преобразовать существующие IP-адреса в плавающие IP-адреса?
Для обычных IP-адресов это невозможно. Плавающие IP-адреса поступают из отдельного блока IP-адресов.
Можно преобразовать IP-адреса из статического маршрута или IP-объявления в плавающие IP-адреса. Если вы хотите это сделать, обратитесь к своему менеджеру по работе с клиентами.
Можно ли использовать плавающие IP-адреса для балансировки нагрузки?
Трафик с плавающего IP-адреса может быть направлен только на один якорный IP-адрес в любой момент времени, поэтому его можно использовать для управления активными/резервными настройками, но его нельзя использовать для балансировки нагрузки.
Можно ли использовать плавающие IP-адреса с IPv6?
Использование IPv6 для плавающих IP-адресов или якорных IP-адресов невозможно.
Балансировка нагрузки - Невозможно получить доступ к веб-службе с плавающим IP-адресом, назначенным моей машине
У меня есть машина, которой я назначил плавающий IP-адрес. Эта машина также является моим балансировщиком нагрузки. Я могу легко получить доступ к своему сервису, используя IP-адрес балансировщика нагрузки.
Однако я не могу получить к нему доступ, используя плавающий IP-адрес, который был назначен моей машине с балансировщиком нагрузки.
sudo nano /etc/haproxy/haproxy.cfg
значения по умолчанию журнал глобальный режим http опция httplog опция тайм-аут подключения 5000 тайм-аут клиента 50000 тайм-аут сервера 50000 файл ошибок 400 /etc/haproxy/errors/400.http файл ошибок 403 /etc/haproxy/errors/403.http файл ошибок 408 /etc/haproxy/errors/408.http файл ошибок 500 /etc/haproxy/errors/500.http файл ошибок 502 /etc/haproxy/errors/502.http файл ошибок 503 /etc/haproxy/errors/503.http файл ошибок 504 /etc/haproxy/errors/504.http #HAProxy для веб-серверов веб-интерфейс привязать IPADDRESSOFLOADBALANCER:80 режим http default_backend веб-сервер бэкэнд круговой баланс сервер веб-сервер1 IPADD1:80 проверка сервер веб-сервер2 IPADD2:80 проверка сервер веб-сервер3 IPADD3:80 проверить сервер веб-сервер4 IPADD4:80 проверить
Есть ли что-нибудь еще, что мне нужно сделать, кроме назначения плавающего IP-адреса. Я не могу получить доступ к сервису, используя плавающий IP-адрес.
- балансировка нагрузки
- haproxy
- отказоустойчивость
2
Я не думаю, что вы можете, большинство людей просто привязываются к одному IP-адресу или ВСЕМ из них. Вам придется использовать отдельный интерфейс для каждого, использующего один и тот же сервер. Но все просто используют *, который отлично работает.
Я использовал платформу Digtal Ocean для создания своих капель. После присвоил ему плавающий IP с этой страницы.
https://cloud.digitalocean.com/networking/floating_ips?i=0eb956
Теперь мне нужно получить частный IP-адрес моей капли с помощью команды ip a
root@ubuntu-s-1vcpu-1gb -blr1-01:~# IP-адрес 1: lo: mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000 ссылка/петля 00:00:00:00:00:00 брд 00:00:00:00:00:00 инет 127.0.0.1/8 область хоста lo valid_lft навсегда inet6 :: 1/128 узел области видимости valid_lft навсегда 2: eth0: mtu 1500 qdisc fq_codel состояние UP группа по умолчанию qlen 1000 ссылка/эфир 52:a0:A:B:C:D brd ff:ff:ff:ff:ff:ff inet PUBLICIP/20 brd E. F.G.H глобальная область действия eth0 valid_lft навсегда inet *PRIVATEIP(X.X.X.X)*/16 brd X.X.I.J глобальная область действия eth0 valid_lft навсегда inet6 2400:6180:ZZ:ZZ::ZZ:ZZZZ/64 глобальная область действия valid_lft навсегда инет6 fe80::50a0:9fff:fe54:добавить ссылку на прицел 2/64 valid_lft навсегда 3: eth2: mtu 1500 qdisc fq_codel состояние UP группа по умолчанию qlen 1000 ссылка/эфир 9a:4b:a5:ZZ:ZZ:ZZ brd ff:ff:ff:ff:ff:ff inet K.L.M.N/20 brd Область O.P.Q.R глобальная eth2 valid_lft навсегда inet6 fe80::984b:SSSS:TTTT:UUUU/64 ссылка на область действия valid_lft навсегда
Я получил плавающий IP-адрес, скажем, FLOATINGIPADDRESS
Плавающий IP-адрес работает через Anchor IP, представленный через интерфейс eth0. Мы можем использовать тот же частный IP-адрес, поскольку любой трафик, отправляемый через плавающий IP-адрес, будет отправляться только на этот частный IP-адрес, т.е. inet *X.X.X.X*/16 brd
Теперь мне нужно, чтобы HAProxy привязывался к этому частному IP-адресу в моем файле конфигурации HAProxy.
sudo nano /etc/haproxy/haproxy.cfg
#HAProxy для веб-серверов веб-интерфейс привязать PRIVATEIP(X.X.X.X):80 привязать LOADBALNCERIP:80 режим http default_backend веб-сервер бэкэнд http-request set-header X-Forwarded-Proto https if { ssl_fc } # Для Proto http-request add-header X-Real-Ip %[src] # Пользовательский заголовок с исходным IP-адресом option forwardfor # X-forwarded-for круговой баланс сервер web-server1 IP1:80 проверка сервер web-server2 IP2:80 проверить сервер web-server3 IP3:80 проверка сервер web-server4 IP4:80 проверка слушать статистику привязать PRIVATEIP(X.X.X.X):8080 привязать LOADBALNCERIP:8080 режим http опцион вперед для опция httpclose включить статистику статистика шоу-легенды обновление статистики 5s статистика uri /stats stats realm Haproxy\ Статистика stats auth root:password #Логин Пользователь и пароль для мониторинга админ статистики если TRUE default_backend веб-сервер
3
Твой ответ
Зарегистрируйтесь или войдите в систему
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя электронную почту и пароль
Опубликовать как гость
Электронная почта
Обязательно, но не отображается
Опубликовать как гость
Электронная почта
Требуется, но не отображается
Нажимая «Опубликовать свой ответ», вы соглашаетесь с нашими условиями обслуживания, политикой конфиденциальности и политикой использования файлов cookie
.Шаблоны для использования плавающих IP-адресов в Compute Engine | Центр облачной архитектуры
В этом документе описывается, как использовать шаблоны реализации плавающих IP-адресов. при переносе приложений на Compute Engine из локальной Сетевое окружение. Этот документ предназначен для сетевых инженеров, системных администраторы и инженеры по эксплуатации, которые переносят приложения на Облако Google.
Также называемые общими или виртуальными IP-адресами, плавающие IP-адреса часто используется для обеспечения высокой доступности локальных сетевых сред. С использованием плавающие IP-адреса, вы можете передать IP-адрес между несколькими идентичными настроенные физические или виртуальные серверы. Эта практика допускает аварийное переключение или обновление производственного программного обеспечения. Однако вы не можете напрямую реализовать плавающий IP адреса в среде Compute Engine без изменения архитектуры к одному из шаблонов, описанных в этом документе.
Репозиторий GitHub который сопровождает этот документ, включает примеры развертывания для каждого шаблона, который вы можете автоматически развернуть с помощью Терраформ.
Плавающие IP-адреса в локальных средах
Плавающие IP-адреса обычно используются в локальных средах. Пример использования случаях:
- Высокодоступные физические устройства, такие как набор брандмауэров или балансировщики нагрузки часто используют плавающие IP-адреса для отработки отказа.
- Серверы, которым требуется высокая доступность, обычно используют плавающие IP-адреса. адреса — например, реляционные базы данных, использующие первичный сервер и резервный сервер. Типичный пример, Microsoft SQL Server, использует Группы доступности AlwaysOn. Чтобы узнать, как реализовать эти шаблоны в Google Cloud, см. Настройка групп доступности AlwaysOn SQL Server с синхронной фиксацией.
- Среды Linux, в которых реализованы балансировщики нагрузки или обратные прокси-серверы. плавающие IP-адреса, например Виртуальный IP-сервер (IPVS), HAProxy, а также нгинкс. Для обнаружения сбоев узлов и перемещения плавающих IP-адресов между В этих средах используются такие демоны, как Стук сердца, кардиостимулятор, или же Подтверждение активности.
- Высокодоступные службы Windows с Отказоустойчивая кластеризация Windows Server используйте плавающие IP-адреса для обеспечения высокой доступности. Для реализации Windows Службы, использующие отказоустойчивый кластер в Google Cloud, см. Запуск отказоустойчивой кластеризации Windows Server.
Существует несколько способов реализации плавающих IP-адресов в локальной Окружающая среда. Серверы, совместно использующие плавающие IP-адреса, обычно также совместно используют состояние информацию через механизм сердцебиения. Этот механизм позволяет серверам сообщать о своем состоянии каждому Другой; он также позволяет вторичному серверу использовать плавающий IP-адрес. после отказа основного сервера. Эта схема часто реализуется с помощью Протокол резервирования виртуального маршрутизатора, но вы также можете использовать другие подобные механизмы.
После инициирования аварийного переключения IP-адреса сервер получает плавающий IP-адрес. address добавляет адрес к своему сетевому интерфейсу. Об этом сообщает сервер переключение на другие устройства, использующие уровень 2, путем отправки самовольный кадр протокола разрешения адресов (ARP). В качестве альтернативы, иногда протокол маршрутизации, такой как Сначала откройте кратчайший путь (OSPF), объявляет IP-адрес вышестоящему маршрутизатору уровня 3.
На следующей схеме показана типичная установка в локальной среде.
На предыдущей диаграмме показано, как первичный сервер и вторичный сервер подключенные к одному и тому же коммутатору, обмениваются информацией о реакции через механизм сердцебиения. Если первичный сервер выходит из строя, вторичный сервер отправляет необоснованный кадр ARP на коммутатор, чтобы принять плавающий IP-адрес.
Вы используете несколько иную настройку с локальными решениями для балансировки нагрузки, такие как балансировка сетевой нагрузки Windows или балансировка нагрузки Linux с прямым Ответ сервера, как IPVS. В этих случаях служба также отправляет безвозмездные Кадры ARP, но с MAC-адресом другого сервера в качестве необоснованного ARP. источник. Это действие по существу подделывает кадры ARP и берет на себя источник IP-адрес другого сервера.
Это действие выполняется для распределения нагрузки на один IP-адрес между разными серверы. Однако такая установка выходит за рамки этого документа. В почти все случаи, когда плавающие IP-адреса используются для локальной нагрузки балансировка, переход на Балансировка облачной нагрузки является предпочтительным.
Проблемы с миграцией плавающих IP-адресов в Compute Engine
Compute Engine использует виртуализированный сетевой стек в Виртуальное частное облако (VPC) сети, поэтому типовые механизмы реализации не работают без изменений в Облако Google. Например, сеть VPC обрабатывает запросы ARP в программно-определяемой сети и игнорирует необоснованные кадры ARP. Кроме того, это невозможно напрямую изменить таблицу маршрутизации сети VPC со стандартными протоколы маршрутизации, такие как OSPF или протокол пограничного шлюза (BGP). Типичный механизмы для плавающих IP-адресов полагаются на запросы ARP, обрабатываемые инфраструктура коммутации или они полагаются на сети, программируемые с помощью OSPF или BGP. Следовательно, IP-адреса не переключаются при сбое с использованием этих механизмов в Облако Google. Если вы переносите образ виртуальной машины (ВМ) с помощью локальный плавающий IP-адрес, плавающий IP-адрес не может изменение приложения.
Вы можете использовать оверлейная сеть для создания конфигурации, которая обеспечивает полную связь уровня 2 и IP захват через ARP-запросы. Однако настройка оверлейной сети сложна. и затрудняет управление сетевыми ресурсами Compute Engine. Что подход также выходит за рамки настоящего документа. Вместо этого этот документ описывает шаблоны для реализации сценариев отработки отказа в Compute Engine. сетевую среду без создания оверлейных сетей.
Для реализации высокодоступных и надежных приложений в Compute Engine, используйте архитектуры с горизонтальным масштабированием. Этот тип архитектура сводит к минимуму последствия отказа одного узла.
В этом документе описывается несколько шаблонов для миграции существующего приложения. использование плавающих IP-адресов из локальной среды в Compute Engine, включая следующие:
- Шаблоны, использующие балансировку нагрузки:
- Активно-активная балансировка нагрузки
- Балансировка нагрузки с группами отработки отказа и проверками работоспособности приложений
- Балансировка нагрузки с группами отработки отказа и проверками работоспособности с использованием пульса
Шаблоны - с использованием маршрутов Google Cloud:
- Использование маршрутов ECMP
- Использование разных приоритетных маршрутов
- Использование механизма пульса для переключения следующего перехода маршрута
- Паттерн с использованием автовосстановления:
- Использование одного экземпляра с автовосстановлением
Использование Псевдонимы IP-адресов что перемещение между экземплярами ВМ не рекомендуется в качестве аварийного переключения механизм, поскольку он не соответствует требованиям высокой доступности. В некоторых сценарии сбоя, такие как зональный сбой, вы, возможно, не сможете удалить псевдоним IP-адреса экземпляра. Поэтому, возможно, вы не сможете добавить его. к другому экземпляру, что делает отработку отказа невозможной.
Выбор шаблона для вашего варианта использования
В зависимости от ваших требований один или несколько шаблонов, описанных в этом решение может быть полезно для реализации плавающих IP-адресов в локальной Окружающая среда.
Учитывайте следующие факторы при выборе шаблона, который лучше всего подходит для использования приложение:
Плавающий внутренний или внешний IP-адрес: Большинство приложения, которым требуются плавающие IP-адреса, используют плавающий внутренний IP-адрес адреса. Немногие приложения используют плавающие внешние IP-адреса, потому что обычно трафик к внешним приложениям распределяется по нагрузке.
Таблица далее в этом разделе содержит шаблоны, которые можно использовать для плавающих внутренних IP-адресов и для плавающих внешних IP-адресов.
Протоколы приложений: Если ваша виртуальная машина использует только TCP и UDP, вы можете используйте все шаблоны в таблице. Если он использует другие протоколы поверх IPv4 для подключения, подходят только некоторые шаблоны.
Совместимость развертывания «активный-активный»: Некоторые приложения, хотя используя плавающие IP-адреса локально, может работать в активный-активный режим развертывания. Эта возможность означает, что они не обязательно требуют аварийного переключения с первичный сервер на вторичный сервер. У вас есть больше вариантов шаблонов для переместите такие приложения в Compute Engine. Приложения которым требуется только один сервер приложений для получения трафика в любое время несовместимы с развертыванием «активный-активный». Вы можете реализовать только эти приложения с некоторыми шаблонами в следующей таблице.
Поведение при отказе после восстановления основной ВМ: Когда исходная основная виртуальная машина восстанавливается после аварийного переключения в зависимости от используемого шаблона, трафик делает одну из двух вещей. Он либо немедленно возвращается к исходной основной ВМ или остается на новой основной ВМ до тех пор, пока не будет инициируется вручную или новая первичная виртуальная машина выходит из строя. Во всех случаях только недавно инициированные соединения терпят неудачу. Существующие соединения остаются на новом основной ВМ, пока они не будут закрыты.
Проверка совместимости: Если вы не можете проверить, приложение реагирует с использованием Compute Engine проверка здоровья, без труда вы не сможете использовать некоторые паттерны, описанные ниже стол.
Существующие механизмы пульса: Если настройка высокой доступности для ваше приложение уже использует механизм сердцебиения для запуска аварийного переключения, такие как Heartbeat, Pacemaker или Keepalived, вы можете использовать некоторые шаблоны описано в следующей таблице.
В следующей таблице перечислены возможности шаблона. Каждый шаблон описан в следующих разделах:
- Шаблоны с балансировкой нагрузки
- Шаблоны с использованием маршрутов Google Cloud
- Паттерн с использованием автовосстановления
Название шаблона | IP-адрес | Поддерживаемые протоколы | Режим развертывания | Возврат | Требуется проверка совместимости приложений | Возможна интеграция механизма сердцебиения |
---|---|---|---|---|---|---|
Шаблоны с балансировкой нагрузки | ||||||
Активно-активная балансировка нагрузки | Внутренний или внешний | Только TCP/UDP | Активный-активный | н/д | Да | № |
Балансировка нагрузки с отработкой отказа и проверками работоспособности, открытыми для приложений | Внутренний или внешний | Только TCP/UDP | Активно-пассивный | Немедленно (кроме существующих соединений) | Да | № |
Балансировка нагрузки с аварийным переключением и проверками работоспособности с использованием пульса | Внутренний или внешний | Только TCP/UDP | Активно-пассивный | Конфигурируемый | № | Да |
Шаблоны с использованием маршрутов Google Cloud | ||||||
Использование маршрутов ECMP | Внутренний | Все протоколы IP | Активный-активный | н/д | Да | № |
Использование различных приоритетных маршрутов | Внутренний | Все протоколы IP | Активно-пассивный | Немедленно (кроме существующих соединений) | Да | № |
Использование механизма пульса для переключения маршрута на следующий переход | Внутренний | Все протоколы IP | Активно-пассивный | Конфигурируемый | № | Да |
Шаблон с автовосстановлением | ||||||
Использование одного экземпляра с автоматическим восстановлением | Внутренний | Все протоколы IP | Н/Д | н/д | Да | № |
Решение о том, какой шаблон использовать для вашего варианта использования, может зависеть от нескольких факторы. Следующее дерево решений может помочь вам сузить выбор до подходящий вариант.
На предыдущей диаграмме показаны следующие шаги:
- Обеспечивает ли один экземпляр с автоматическим исправлением достаточную доступность?
для ваших нужд?
- Если да, см. Использование одиночного экземпляра с автовосстановлением. далее в этом документе. Автовосстановление использует механизм в экземпляре ВМ. group для автоматической замены неисправного экземпляра ВМ.
- Если нет, перейдите к следующей точке принятия решения.
- Нужны ли вашему приложению протоколы поверх IPv4, отличные от TCP и UDP?
- Если да, переходите к следующему пункту принятия решения.
- Если нет, перейдите к следующей точке принятия решения.
- Ваше приложение может работать в активно-активном режиме?
- Если да и требуются протоколы поверх IPv4, отличные от TCP и UDP, см. Использование маршрутов с равной стоимостью (ECMP) далее в этом документе. Маршруты ECMP распределяют трафик между следующими прыжки всех кандидатов маршрута.
- Если да и ему не нужны протоколы поверх IPv4, кроме TCP и UDP, см. Активно-активная балансировка нагрузки далее в этом документе. Балансировка нагрузки «активный-активный» использует ваши виртуальные машины как серверные части для внутреннего балансировщика нагрузки TCP/UDP.
- Если нет — в любом случае — переходите к следующей точке принятия решения.
- Может ли ваше приложение предоставлять проверки работоспособности Google Cloud?
- Если да и требуются протоколы поверх IPv4, отличные от TCP и UDP, см. раздел Балансировка нагрузки с отработкой отказа и проверками работоспособности, открытыми для приложений. далее в этом документе. Балансировка нагрузки с аварийным переключением и открытые для приложений проверки работоспособности используют ваши виртуальные машины в качестве серверных частей для внутренний балансировщик нагрузки TCP/UDP. Он также использует внутреннюю загрузку TCP/UDP. Балансировка IP-адреса как виртуального IP-адреса.
- Если да и ему не нужны протоколы поверх IPv4, кроме TCP и UDP, см. Использование маршрутов с разными приоритетами далее в этом документе. Использование различных приоритетных маршрутов помогает обеспечить этот трафик всегда направляется на первичный экземпляр, если этот экземпляр терпит неудачу.
- Если нет и требуются протоколы поверх IPv4, отличные от TCP и UDP, см. раздел Балансировка нагрузки с аварийным переключением и проверками работоспособности с использованием пульса. далее в этом документе. В балансировке нагрузки с отказоустойчивостью и шаблон проверки работоспособности с выставлением сердцебиения, проверки работоспособности не выставляются самим приложением, а механизмом сердцебиения, работающим между обе виртуальные машины.
- Если нет и НЕ НУЖНЫ протоколы поверх IPv4, кроме TCP и UDP, см. Использование механизма сердцебиения для переключения следующего прыжка маршрута далее в этом документе. Использование механизма сердцебиения для переключения следующий переход маршрута использует один статический маршрут с указанием следующего перехода к основному экземпляру ВМ.
Шаблоны, использующие балансировку нагрузки
Обычно вы можете перенести свое приложение, используя плавающие IP-адреса, на архитектура в Google Cloud, которая использует Балансировка нагрузки в облаке. Вы можете использовать Внутренняя балансировка нагрузки TCP/UDP, поскольку этот вариант подходит для большинства случаев использования, когда локальная перенесенная служба раскрывается только изнутри. Этот вариант балансировки нагрузки используется для всех примеров в в этом разделе и в примерах развертывания на GitHub. Если у вас есть клиенты доступ к плавающему IP-адресу из других регионов, выберите вариант глобального доступа.
Если ваше приложение взаимодействует с использованием протоколов поверх IPv4, отличных от TCP или UDP, вы должны выбрать шаблон, который не использует балансировку нагрузки. Те шаблоны описаны далее в этом документе.
Если ваше приложение использует HTTP(S), вы можете использовать Внутренняя балансировка нагрузки HTTP(S) реализовать схему «актив-актив».
Если служба, которую вы пытаетесь перенести, доступна извне, вы можете реализовать все шаблоны, обсуждаемые в этом разделе, с помощью Балансировка сетевой нагрузки. Для активно-активных развертываний вы также можете использовать Балансировка нагрузки HTTP(S), TCP-прокси, или же SSL-прокси если ваше приложение использует протоколы и порты, поддерживаемые этими балансировщиками нагрузки опции.
Учтите следующие различия между локальными программами на основе плавающих IP-адресов. реализации и все шаблоны на основе балансировки нагрузки:
Время отработки отказа в локальной среде может произойти сбой IP-адреса в течение нескольких секунд. В среды Compute Engine, среднее время восстановления с отказоустойчивость зависит от установленных вами параметров. В случае, если виртуальная машина (ВМ) или служба экземпляра ВМ выходит из строя, среднее время до отказа трафик зависит от параметров проверки работоспособности, таких как
Интервал проверки
иНеработоспособный порог
. Если для этих параметров установлены значения по умолчанию, отработка отказа обычно занимает 15–20 секунд. Вы можете сократить время, уменьшив эти значения параметров.В Compute Engine отказоустойчивость внутри зон или между зонами занимать одинаковое количество времени.
Протоколы и порты: При локальной настройке плавающий IP-адрес адреса принимают весь трафик. Выберите один из следующих портов спецификации во внутреннем правиле пересылки для внутреннего балансировщика нагрузки TCP/UDP:
- Укажите по крайней мере один порт и до пяти портов по номеру.
- Укажите
ВСЕ
для пересылки трафика на все порты для TCP или UDP. - Использование
несколько правил переадресации с одним и тем же IP-адресом
пересылать смешанный трафик TCP и UDP или использовать более пяти портов
с одним IP-адресом:
- Только TCP или UDP и 1–5 портов: используйте одно правило переадресации.
- TCP и UDP и 1–5 портов: используйте несколько правил переадресации.
- 6 или более портов и TCP или UDP: используйте несколько правил переадресации.
Проверка работоспособности: Локально, можно проверить приложение отзывчивость на машине следующими способами:
- Получение сигнала от другого хоста, указывающего, что он еще отзывчивый.
- Мониторинг доступности приложения через выбранный механизм сердцебиения (Keepalived, Pacemaker или Heartbeat). В Вычислительный движок, проверка здоровья должен быть доступен снаружи хоста через gRPC, HTTP, HTTP/2, HTTPS, TCP или SSL. активная-активная балансировка нагрузки а также балансировка нагрузки с помощью группы отработки отказа и проверки работоспособности открытых приложений шаблоны требуют, чтобы ваше приложение предоставляло свои проверки работоспособности. К перенести сервисы с помощью существующего механизма пульса, вы можете использовать балансировка нагрузки с помощью отказоустойчивых групп и проверки работоспособности с использованием сердцебиения шаблон.
Балансировка нагрузки «активный-активный»
В шаблоне балансировки нагрузки «активный-активный» ваши виртуальные машины являются серверными для внутренний балансировщик нагрузки TCP/UDP. Вы используете внутренний IP-адрес балансировки нагрузки TCP/UDP в качестве виртуальный IP-адрес. Трафик равномерно распределяется между двумя серверными экземпляры. Трафик, относящийся к одному и тому же сеансу, направляется на один и тот же сервер экземпляр, как определено в настройки привязки сеанса.
Используйте шаблон балансировки нагрузки «активный-активный», если ваше приложение использует только протоколы на основе TCP и UDP и не требуют аварийного переключения между машинами. Используйте шаблон в сценарии, когда приложения могут отвечать на запросы в зависимости от по содержанию самого запроса. Если есть состояние машины, которое не постоянно синхронизированы, не используйте шаблон — например, в основном или вторичная база данных.
На следующей диаграмме показана реализация нагрузки «активный-активный». шаблон балансировки:
На предыдущей диаграмме показано, как внутренний клиент получает доступ к службе, которая работает на двух виртуальных машинах через внутренний балансировщик нагрузки TCP/UDP. Обе виртуальные машины являются частью группы экземпляров.
Если ваше приложение, использующее локальный плавающий IP-адрес, не имеет состояния, вы может использовать группа управляемых экземпляров для создания двух или более виртуальных машин с одинаковой конфигурацией. Если они не сработают, вы можете использовать автоисцеление для автоматического воссоздания виртуальных машин.
Если ваши виртуальные машины сохраняют свое состояние или не могут быть воссозданы автоматически, вы можете использовать неуправляемая группа экземпляров содержащий ваши виртуальные машины. Если они выходят из строя, вам необходимо вручную восстановить и воссоздать их.
Шаблон балансировки нагрузки «активный-активный» требует, чтобы ваша служба предоставляла сведения о работоспособности проверяет с помощью одного из поддерживаемые протоколы проверки работоспособности чтобы убедиться, что только отзывчивые виртуальные машины получают трафик.
Полный образец реализации этого шаблона см. пример развертывания с Terraform на GitHub.
Балансировка нагрузки с отработкой отказа и проверкой работоспособности приложений
Подобно шаблону «активный-активный», шаблон проверки работоспособности, предоставляемый приложениям, использует ваши виртуальные машины в качестве серверных частей для внутренний балансировщик нагрузки TCP/UDP. Он также использует внутренний IP-адрес балансировки нагрузки TCP/UDP в качестве виртуальный IP-адрес. Чтобы гарантировать, что только одна виртуальная машина получает трафик одновременно, этот шаблон применяется отработка отказа для внутренней балансировки нагрузки TCP/UDP.
Этот шаблон рекомендуется, если ваше приложение имеет только трафик TCP или UDP, но не поддерживает активно-активное развертывание. Когда вы применяете этот шаблон, все трафик направляется либо на основную виртуальную машину, либо на резервную виртуальную машину.
На следующей диаграмме показана реализация балансировки нагрузки с схема отработки отказа и проверки работоспособности с помощью приложений:
На предыдущей диаграмме показано, как внутренний клиент получает доступ к службе за внутренний балансировщик нагрузки TCP/UDP. Две виртуальные машины находятся в отдельных группах экземпляров. Одна группа экземпляров устанавливается в качестве основного бэкэнда. Другая группа экземпляров настроена как отказоустойчивая. серверная часть для внутренней балансировки нагрузки TCP/UDP.
Если служба на основной виртуальной машине перестает отвечать на запросы, трафик переключается на группа экземпляров отработки отказа. Как только основная виртуальная машина снова начнет реагировать, трафик автоматически переключается обратно на основной серверный сервис.
Вы можете реализовать балансировку нагрузки с аварийным переключением и доступом к приложениям Шаблон проверки работоспособности для управляемых или неуправляемых групп экземпляров. За серверы с отслеживанием состояния необходимо использовать неуправляемые группы экземпляров. Неуправляемый экземпляр группы нуждаются в более активном вмешательстве, когда они терпят неудачу. Решение проблемы автоматически для управляемых групп экземпляров. Как только первичный экземпляр автоматически восстанавливается, новые соединения переключаются обратно на первичный экземпляр.
Полный образец реализации этого шаблона см. пример развертывания с Terraform на GitHub.
Балансировка нагрузки с аварийным переключением и проверками работоспособности с использованием пульса
так же, как предыдущий шаблон. Разница в том, что проверки здоровья не раскрывается самим приложением, но механизмом сердцебиения, работающим между обе виртуальные машины.
На следующей диаграмме показана реализация балансировки нагрузки с Шаблон проверки работоспособности при сбое и пульсации:
На этой диаграмме показано, как внутренний клиент получает доступ к службе за внутренним балансировщик нагрузки. Две виртуальные машины находятся в отдельных группах экземпляров. Одна группа экземпляров установить в качестве основного бэкэнда. Другая группа экземпляров настроена как отказоустойчивая серверная часть. для внутренней балансировки нагрузки TCP/UDP. Keepalived используется как механизм сердцебиения между узлами ВМ.
Узлы ВМ обмениваются информацией о статусе услуги, используя выбранный механизм сердцебиения. Каждый узел VM проверяет свой собственный статус и сообщает, что статус удаленному узлу. В зависимости от состояния локального узла и статус, полученный удаленным узлом, один узел выбирается в качестве основного узла и один узел выбирается в качестве резервного узла. Вы можете использовать эту информацию о состоянии для предоставить результат проверки работоспособности, который гарантирует, что узел считал первичным в механизм пульса также получает трафик от внутреннего балансировщика нагрузки TCP/UDP.
Например, с Keepalived вы можете вызывать скрипты, используя notify_master
, notify_backup
и notify_fault
переменные конфигурации
которые изменяют статус проверки работоспособности. При переходе в первичное состояние (в
Keepalived это состояние называется master
), вы можете запустить приложение, которое
прослушивает пользовательский TCP-порт. При переходе в резервное или аварийное состояние вы
может остановить это приложение. Затем проверка работоспособности может быть проверкой работоспособности TCP, которая
завершается успешно, если этот пользовательский TCP-порт открыт.
Этот шаблон более сложен, чем шаблон, использующий аварийное переключение с проверки работоспособности, предоставляемые приложениями. Тем не менее, это дает вам больше контроля. За Например, вы можете настроить его на немедленное восстановление после сбоя или вручную как часть реализация механизма сердцебиения.
Полный пример реализации этого шаблона, использующего Keepalived, см. пример развертывания с Terraform на GitHub.
Шаблоны с использованием маршрутов Google Cloud
В случаях, когда ваше приложение использует протоколы, отличные от TCP или UDP поверх IPv4, вы можете перенести свой плавающий IP-адрес на шаблон, основанный на маршрутах.
В этом разделе упоминания о маршрутах всегда относятся к Маршруты Google Cloud которые являются частью сети VPC. Ссылки на статические маршруты всегда относятся к статические маршруты в Google Cloud.
Используя один из этих шаблонов, вы устанавливаете несколько статических маршрутов для определенного IP-адреса. адреса с различными экземплярами в качестве следующих переходов. Этот IP-адрес становится плавающий IP-адрес, который используют все клиенты. Это должно быть вне всех Диапазоны IP-адресов подсети VPC поскольку статические маршруты не могут переопределять существующие маршруты подсети. Вы должны включить переадресацию IP-адреса на целевых экземплярах. Включение переадресации IP-адресов позволяет принимать трафик для IP-адресов, не назначенных экземплярам — в этом случае плавающий IP-адрес адрес.
Если вы хотите, чтобы маршруты с плавающими IP-адресами были доступны из пиринговые сети VPC, экспортировать пользовательские маршруты поэтому маршруты с плавающими IP-адресами распространяются на все одноранговые сети VPC.
Для подключения к локальной сети, подключенной через Облачное соединение или же Облачный VPN, тебе следует использовать настраиваемые объявления маршрута IP-адреса для локального объявления плавающего IP-адреса.
Шаблоны на основе маршрутов имеют следующее преимущество перед шаблонами на основе балансировки нагрузки. узоры:
- Протоколы и порты: Шаблоны на основе маршрутов применяются ко всему отправляемому трафику к определенному месту назначения. Шаблоны на основе балансировки нагрузки допускают только TCP и UDP-трафик.
Шаблоны на основе маршрутов имеют следующие недостатки по сравнению с шаблонами на основе балансировки нагрузки. шаблоны:
- Проверка работоспособности: Проверки работоспособности нельзя прикрепить к Маршруты Google Cloud. Маршруты используются вне зависимости от состояния базовые службы виртуальных машин. Всякий раз, когда виртуальная машина работает, маршрутизирует прямой трафик к экземплярам, даже если служба неработоспособна. Прикрепление политики автоматического восстановления к этим экземплярам заменяет экземпляры после неработоспособного периода времени что вы указываете. Однако после перезапуска этих экземпляров трафик возобновляется. немедленно — даже до окончания службы. Этот пробел в обслуживании может привести к потенциальные ошибки службы, когда неработоспособные экземпляры все еще обслуживают трафик или перезагружаются.
- Время аварийного переключения : после удаления или остановки экземпляра ВМ Compute Engine игнорирует любой статический маршрут, указывающий на этот пример. Однако, поскольку на маршрутах нет проверок здоровья, Compute Engine по-прежнему использует статический маршрут, пока экземпляр все еще доступен. Кроме того, остановка экземпляра требует времени, поэтому время аварийного переключения значительно выше, чем при балансировке нагрузки. узоры.
- Только внутренние плавающие IP-адреса: Хотя вы можете реализовать шаблоны, использующие балансировку нагрузки с балансировкой сетевой нагрузки для создания внешний плавающий IP-адрес, шаблоны на основе маршрута работают только с внутренние плавающие IP-адреса.
- Выбор плавающего IP-адреса: Вы можете устанавливать маршруты только на внутренние плавающие IP-адреса, которые не являются частью какой-либо подсети — маршруты подсети не могут быть перезаписывается в Google Cloud. Отслеживайте эти плавающие IP-адреса, чтобы не назначьте их случайно другой сети.
- Доступность маршрутов: Для создания внутренних плавающих IP-адресов доступны из локальных сетей или одноранговых сетей, вам необходимо распределите эти статические маршруты, как описано ранее.
Использование многопутевых маршрутов с равной стоимостью (ECMP)
многопутевые маршруты с равной стоимостью (ECMP) схема аналогична схеме балансировки нагрузки «активный-активный» — трафик поровну распределяется между двумя серверными экземплярами. Когда вы используете статические маршруты Google Cloud, ECMP распределяет трафик между следующими переходами всех кандидатов на маршрут, используя пятикратный хэш для сходства.
Вы реализуете этот шаблон, создавая два статических маршрута с одинаковым приоритетом с экземпляры Compute Engine в качестве следующих переходов.
На следующей диаграмме показана реализация шаблона маршрутов ECMP:
На предыдущей диаграмме показано, как внутренний клиент получает доступ к службе, используя один из двух маршрутов со следующим переходом, указывающим на экземпляры ВМ, реализующие оказание услуг.
Если служба на одной виртуальной машине перестает отвечать на запросы, функция автоматического восстановления пытается воссоздать неотзывчивый экземпляр. После того, как автоисправление удалит экземпляр, маршрут, указывающий к экземпляру становится неактивным до создания нового экземпляра. Как только новый экземпляр существует, маршрут, указывающий на этот экземпляр, сразу используется автоматически и трафик равномерно распределяется между экземпляры.
Шаблон маршрутов ECMP требует, чтобы ваша служба предоставляла проверки работоспособности с использованием поддерживаемые протоколы поэтому автоматическое восстановление может автоматически заменять не отвечающие виртуальные машины.
Вы можете найти пример реализации этого шаблона с использованием Terraform в Репозиторий GitHub связанные с этим документом.
Использование различных приоритетных маршрутов
Шаблон различных приоритетных маршрутов аналогичен предыдущему шаблону, за исключением того, что он использует статические маршруты с разным приоритетом, поэтому трафик всегда направляется на первичный экземпляр, если только этот экземпляр не выйдет из строя.
Чтобы реализовать этот шаблон, выполните те же действия, что и в шаблоне маршрутов ECMP. При создании статических маршрутов укажите маршрут со следующим переходом, указывающим на основной экземпляр имеет более низкое значение приоритета (основной маршрут). Дайте экземпляр со следующим переходом, указывающим на вторичный экземпляр, более высокое значение приоритета (второстепенный маршрут).
На следующей диаграмме показана реализация различных приоритетных маршрутов. шаблон:
На предыдущей диаграмме показано, как внутренний клиент, обращающийся к службе, использует основной маршрут со значением приоритета 500, указывающий на ВМ 1 в качестве следующего перехода в нормальные обстоятельства. Доступен второй маршрут со значением приоритета 1000. указывая на ВМ 2, вторичную ВМ, в качестве следующего прыжка.
Если служба на основной виртуальной машине перестает отвечать на запросы, функция автоматического восстановления пытается воссоздать экземпляр. После того, как автовосстановление удалит экземпляр, и перед новым появляется экземпляр, который он создает, первичный маршрут, с первичным экземпляром в качестве следующий переход становится неактивным. Затем шаблон использует маршрут со вторичным экземпляр в качестве следующего прыжка. Как только появляется новый первичный экземпляр, первичный маршрут снова становится активным, и весь трафик направляется к основному экземпляру.
Как и предыдущий шаблон, другой шаблон приоритетного маршрута требует вашего сервис для предоставления проверок работоспособности с использованием поддерживаемых протоколов, чтобы автоисправление могло автоматически заменять не отвечающие виртуальные машины.
Вы можете найти пример реализации этого шаблона с использованием Terraform в Репозиторий GitHub который сопровождает этот документ.
Использование механизма пульса для переключения следующего узла маршрута
Если ваше приложение реализует механизм пульса, такой как Keepalived, для следить за реакцией приложения, можно применить механизм сердцебиения шаблон для изменения следующего прыжка статического маршрута. В этом случае вы используете только один статический маршрут со следующим переходом, указывающим на основной экземпляр виртуальной машины. На аварийное переключение, механизм пульса указывает следующий переход маршрута на вторичная ВМ.
На следующей диаграмме показана реализация механизма сердцебиения для переключение шаблона следующего перехода маршрута:
На предыдущей диаграмме показано, как внутренний клиент получает доступ к службе с помощью маршрут со следующим прыжком, указывающим на основную виртуальную машину. Основной обмен ВМ информацию пульса со вторичной виртуальной машиной через Keepalived. При отказе Keepalived вызывает облачную функцию, которая использует вызовы API для указания следующий переход на вторичной виртуальной машине.
Узлы используют выбранный механизм пульса для обмена информацией с каждым
прочее о статусе услуги. Каждый узел ВМ проверяет свой собственный статус и
передает его удаленному узлу виртуальной машины. В зависимости от состояния локальной ВМ
узел и статус, полученный удаленным узлом, один узел VM выбирается в качестве
основной узел и один узел виртуальной машины выбираются в качестве резервного узла. Как только узел становится
первичный, он указывает следующий переход маршрута для плавающего IP-адреса на
сам. Если вы используете Keepalived, вы можете вызвать скрипт с помощью уведомить_мастер
переменная конфигурации
который заменяет статический маршрут с помощью
вызов API
или
Облачный интерфейс командной строки Google.
Механизм пульса для переключения шаблона следующего перехода маршрута не требует виртуальные машины должны быть частью группы экземпляров. Если вы хотите, чтобы виртуальные машины заменены в случае сбоя, вы можете поместить их в группу экземпляров с автовосстановлением. Вы можете также вручную восстанавливать и воссоздавать неотвечающие виртуальные машины.
Вызов следующей процедуры при отработке отказа гарантирует, что время отработки отказа сведена к минимуму, поскольку трафик прерывается после завершения одного вызова API в Шаг 1:
- Создайте новый статический маршрут с плавающим IP-адресом в качестве пункта назначения и новый первичный экземпляр в качестве следующего прыжка. Новый маршрут должен иметь другой имя маршрута и более низкий приоритет маршрута (например, 400), чем исходный маршрут.
- Удалите исходный маршрут к старой основной виртуальной машине.
- Создайте маршрут с тем же именем и приоритетом, что и маршрут, который вы только что удален. Направьте его на новую первичную виртуальную машину в качестве следующего прыжка.
- Удалите созданный вами новый статический маршрут. Вам не нужно это для обеспечения трафик направляется на новую основную виртуальную машину.
Поскольку исходный маршрут заменяется, одновременно должен быть активен только один маршрут. даже при разделенной сети.
Использование механизма сердцебиения для переключения шаблона приоритета маршрута вместо другие шаблоны на основе маршрутов могут сократить время аварийного переключения. Вам не нужно удалять и заменять виртуальные машины с помощью автоматического восстановления для отработки отказа. Это также дает вам больше контроль над тем, когда следует вернуться к исходному первичному серверу после того, как он станет снова отзывается.
Одним из недостатков шаблона является то, что вы должны управлять сердцебиением механизм сам. Управление механизмом может привести к большей сложности. Другая недостатком является то, что вы должны дать привилегии для изменения глобальной маршрутизации таблицу либо к виртуальным машинам, на которых запущен процесс пульса, либо к бессерверной функция, вызываемая из процесса сердцебиения. Изменение глобальной таблицы маршрутизации на бессерверная функция более безопасна, поскольку она может уменьшить объем привилегии, предоставленные виртуальным машинам. Однако такой подход более сложен в реализации.
Полный пример реализации этого шаблона с Keepalived см. пример развертывания с Terraform на GitHub.
Шаблон с использованием автоматического восстановления
В зависимости от требований времени восстановления, миграция на один экземпляр ВМ может быть приемлемым вариантом при использовании Compute Engine. Этот вариант true, даже если несколько серверов с плавающим IP-адресом использовались локально. Причина, по которой этот шаблон иногда можно использовать, несмотря на количество виртуальных машин заключается в том, что вы можете создать новый экземпляр Compute Engine в секунды или минуты, в то время как локальные сбои обычно требуют часов или даже дней на исправление.
Использование одного экземпляра с автовосстановлением
При использовании этого шаблона вы полагаетесь на механизм автовосстановления в группе экземпляров ВМ. для автоматической замены неисправного экземпляра ВМ. Приложение выставляет здоровье проверить, и когда приложение неработоспособно, автолечение автоматически заменяет ВМ. Мы рекомендуем использовать этот шаблон в ситуациях, когда виртуальная машина не сохраняет состояние.
На следующей диаграмме показана реализация автоматического восстановления одного экземпляра шаблон:
На предыдущей диаграмме показано, как внутренний клиент напрямую подключается к Экземпляр Compute Engine помещен в управляемую группу экземпляров размером 1 и с включенным автолечением.
По сравнению с шаблонами, использующими балансировку нагрузки, одиночный экземпляр автоматического восстановления Шаблон имеет следующие преимущества:
- Распределение трафика: Существует только один экземпляр, поэтому экземпляр всегда получает весь трафик.
- Простота использования: Поскольку существует только один экземпляр, этот шаблон является наименее сложный в реализации.
- Экономия средств: Использование одного экземпляра виртуальной машины вместо двух может сократить стоимость внедрения в два раза меньше.
Однако этот шаблон имеет следующие недостатки:
- Время восстановления после отказа: Этот процесс намного медленнее, чем шаблоны на основе балансировки нагрузки. После того, как проверка работоспособности обнаружит машину сбой, удаление и повторное создание отказавшего экземпляра занимает не менее минуту, но часто занимает больше времени. Этот шаблон не распространен в производстве среды. Тем не менее, время отработки отказа может быть достаточно хорошим для некоторых внутренние или экспериментальные услуги
- Реакция на сбои зоны: Группа управляемых экземпляров размером 1 не выживает при сбое зоны. Чтобы реагировать на сбои зоны, рассмотрите возможность добавления а Облачный мониторинг оповещение при сбое службы и создание группы экземпляров в другой зоне при отказе зоны. Поскольку вы не можете использовать один и тот же IP-адрес в этом случае используйте Частная зона облачного DNS для обращения к виртуальной машине и переключения DNS-имени на новый IP-адрес.
Вы можете найти пример реализации этого шаблона с использованием Terraform в Репозиторий GitHub.
Что дальше
- Ознакомьтесь с шаблонами развертывания для этого документа на GitHub.
- Узнайте о внутренней балансировке нагрузки TCP/UDP.
- Узнайте о параметрах отработки отказа для внутренней балансировки нагрузки TCP/UDP.
- Узнайте о маршрутах в Compute Engine.
- Проверьте решение группы доступности Always On SQL Server.
- Узнайте о работе отказоустойчивой кластеризации Windows Server.
- Узнайте о создании группы доступности Always On Microsoft SQL Server в Compute Engine.
- Ознакомьтесь с эталонными архитектурами, диаграммами, учебными пособиями и рекомендациями по работе с Google Cloud. Взгляните на нашу Центр облачной архитектуры.
Azure Load Balancer Конфигурация с плавающим IP-адресом
Обратная связь Редактировать
Твиттер LinkedIn Фейсбук Эл. адрес
- Статья
- 3 минуты на чтение
Балансировщик нагрузки предоставляет несколько возможностей для приложений UDP и TCP.
Плавающий IP-адрес
Некоторые сценарии приложений предпочитают или требуют, чтобы один и тот же порт использовался несколькими экземплярами приложения на одной виртуальной машине в бэкэнд-пуле. Общие примеры повторного использования порта включают:
- кластеризация для обеспечения высокой доступности
- сетевые виртуальные устройства
- раскрывает несколько конечных точек TLS без повторного шифрования.
Если вы хотите повторно использовать серверный порт в нескольких правилах, вы должны включить плавающий IP-адрес в определении правила.
Когда плавающий IP-адрес включен, Azure изменяет сопоставление IP-адреса на внешний IP-адрес внешнего интерфейса Load Balancer вместо IP-адреса внутреннего экземпляра. Без плавающего IP-адреса Azure предоставляет IP-адрес экземпляра виртуальной машины. Включение плавающего IP-адреса изменяет сопоставление IP-адреса с внешним IP-адресом балансировщика нагрузки, чтобы обеспечить большую гибкость. Узнайте больше здесь.
На приведенных ниже диаграммах показано, как работает сопоставление IP-адресов до и после включения плавающего IP-адреса:
Плавающий IP-адрес можно настроить в правиле балансировщика нагрузки через портал Azure, REST API, интерфейс командной строки, PowerShell или другой клиент. В дополнение к настройке правила вы также должны настроить гостевую ОС вашей виртуальной машины, чтобы использовать плавающий IP-адрес.
Конфигурация гостевой ОС с плавающим IP-адресом
Для работы гостевая ОС для виртуальной машины должна быть настроена на получение всего трафика, привязанного к внешнему IP-адресу и порту балансировщика нагрузки. Для этого требуется:
- необходимо добавить петлевой сетевой интерфейс
- настройка обратной связи с внешним IP-адресом балансировщика нагрузки
- гарантирует, что система может отправлять/получать пакеты на интерфейсах, которым не назначен IP-адрес этого интерфейса (в Windows для этого требуется настроить интерфейсы для использования модели «слабого хоста»; в Linux эта модель обычно используется по умолчанию) Брандмауэр хоста также должен быть открыт для приема трафика через интерфейсный IP-порт.
Примечание
Во всех приведенных ниже примерах используется IPv4; чтобы использовать IPv6, замените «ipv6» на «ipv4». Также обратите внимание, что плавающий IP-адрес для IPv6 не работает для внутренних балансировщиков нагрузки.
Windows Server
ExpandДля каждой виртуальной машины в бэкэнд-пуле выполните следующие команды в командной строке Windows на сервере.
Чтобы получить список имен интерфейсов вашей виртуальной машины, введите следующую команду:
интерфейс netsh ipv4 показать интерфейс
Для сетевого адаптера виртуальной машины (под управлением Azure) введите эту команду.
интерфейс netsh ipv4 set interface «interfacename» weakhostreceive=enabled
(замените имя интерфейса на имя этого интерфейса)
Для каждого добавленного интерфейса обратной связи повторите приведенные ниже команды.
интерфейс netsh ipv4 add addr "loopbackinterface" floatingipfloatingipnetmask интерфейс netsh ipv4 set interface "loopbackinterface" weakhostreceive=enabled weakhostsend=enabled
(замените loopbackinterface именем этого loopback-интерфейса и floatipnetmask и floatingipnetmask с соответствующими значениями, например. которые соответствуют IP-адресу внешнего интерфейса балансировщика нагрузки)
Наконец, если на гостевом хосте используется брандмауэр, убедитесь, что настроено правило, чтобы трафик мог достигать виртуальной машины через соответствующие порты.
Полный пример конфигурации приведен ниже (при условии, что IP-конфигурация внешнего интерфейса балансировщика нагрузки равна 1.2.3.4 и правило балансировки нагрузки для порта 80):
netsh int ipv4 set int "Ethernet" weakhostreceive=enabled netsh int ipv4 add addr «Псевдо-интерфейс Loopback 1» 1.2.3.4 255.255.255.0 netsh int ipv4 set int "Loopback Pseudo-Interface 1" weakhostreceive=enabled weakhostsend=enabled Брандмауэр netsh advfirewall добавить правило имя = «http» протокол = локальный порт TCP = 80 каталог = в действии = разрешить включить = да
Ubuntu
ExpandДля каждой виртуальной машины в серверном пуле выполните следующие команды через сеанс SSH.
Чтобы получить список имен интерфейсов вашей виртуальной машины, введите следующую команду:
IP-адрес
Для каждого интерфейса обратной связи повторите эти команды, которые назначат плавающий IP-адрес псевдониму обратной связи:
sudo ip addr add floatingip/floatingipnetmask dev lo:0
(замените floatingip и floatingipnetmask соответствующими значениями, например, которые соответствуют внешнему IP-адресу балансировщика нагрузки)
Наконец, если на гостевом хосте используется брандмауэр, убедитесь, что настроено правило, чтобы трафик мог достигать виртуальной машины через соответствующие порты.
Полный пример конфигурации приведен ниже (при условии, что IP-конфигурация внешнего интерфейса балансировщика нагрузки равна 1.2.3.4 и правило балансировки нагрузки для порта 80). В этом примере также предполагается использование UFW (несложного брандмауэра) в Ubuntu.
sudo ip addr add 1.2.3.4/24 dev lo:0 sudo ufw разрешить 80/tcp
Ограничения
- Плавающий IP-адрес в настоящее время не поддерживается в дополнительных IP-конфигурациях для сценариев балансировки нагрузки. Это не относится к общедоступным балансировщикам нагрузки с конфигурациями с двумя стеками или к архитектурам, использующим шлюз NAT для исходящих подключений.
Следующие шаги
- Узнайте об использовании нескольких интерфейсов с Azure Load Balancer.
- Узнайте об исходящих подключениях Azure Load Balancer.
Обратная связь
Отправить и просмотреть отзыв для
Этот продукт Эта страница
Просмотреть все отзывы о странице
Шаблон плавающего IP-адреса для высокой доступности между активными и резервными серверами с отслеживанием состояния
Шаблон проектирования плавающего IP-адреса — это хорошо известный механизм для обеспечения автоматического перехода на другой ресурс. между активной и резервной парой аппаратных узлов (медиасерверов). Статическая вторичная виртуальный IP-адрес назначается активному узлу. Непрерывный мониторинг между активными и резервные узлы обнаруживают сбой. Если активный узел выходит из строя, сценарий мониторинга назначает виртуальный IP-адрес готовому резервному узлу, а резервный узел берет на себя основной активный функция. Таким образом, виртуальный IP-адрес перемещается между активным и резервным узлом.
Применимость в решениях RTC
Не всегда возможно иметь несколько активных экземпляров тот же компонент в эксплуатации, например активно-активный кластер из N узлов. Конфигурация «активный-резервный» обеспечивает наилучшее механизм ГА. Например, компоненты с отслеживанием состояния в RTC решение, такое как медиа-сервер или сервер конференц-связи, или даже SBC или сервер базы данных хорошо подходят для настройка активный-резервный. SBC или медиа-сервер имеет несколько длинных запущенные сеансы или каналы, активные в данное время, и в В случае сбоя активного экземпляра SBC конечные точки могут переподключиться к резервному узлу без каких-либо действий на стороне клиента. конфигурация из-за плавающего IP.
Реализация на AWS
Вы можете реализовать этот шаблон на AWS, используя основные возможности в Amazon Elastic Compute Cloud (Amazon EC2), Amazon EC2 API, Эластичные IP-адреса и поддержка на Amazon EC2 для вторичных частные IP-адреса.
Для реализации шаблона плавающего IP-адреса на AWS:
Запустите два экземпляра EC2, чтобы взять на себя роль основных и вторичные узлы, где предполагается, что первичный находится в активное состояние по умолчанию.
Назначьте дополнительный вторичный частный IP-адрес основной экземпляр EC2.
Эластичный IP-адрес, аналогичный виртуальному IP-адресу (VIP), связан с вторичный частный адрес. Этот вторичный частный адрес является адресом, который используемые внешними конечными точками для доступа к приложению.
Требуется некоторая конфигурация операционной системы (ОС), чтобы сделать вторичный IP-адрес адрес, добавленный в качестве псевдонима к основному сетевому интерфейсу.
Приложение должно быть привязано к этому эластичному IP-адресу. В случае со звездочкой программное обеспечение, вы можете настроить привязку через расширенные настройки Asterisk SIP.
Запуск сценария мониторинга — пользовательского, KeepAlive в Linux, Corosync и т. д. — на каждом node для мониторинга состояния однорангового узла. В случае, если текущий активный узел происходит сбой, узел обнаруживает этот сбой и вызывает API Amazon EC2 для переназначения вторичный частный IP-адрес самому себе.
Таким образом, приложение, которое прослушивало VIP, связанный с вторичный частный IP-адрес становится доступным для конечных точек через резервный узел.
Отработка отказа между экземплярами EC2 с отслеживанием состояния с использованием эластичного IP-адреса
Преимущества
Такой подход является надежным малобюджетным решением, которое защищает от сбоев в экземпляре EC2, инфраструктуре или прикладной уровень.
Ограничения и расширяемость
Этот шаблон проектирования обычно ограничен одной зоной доступности. Может быть реализован в двух зонах доступности, но с вариацией. В этом случае Плавающий эластичный IP-адрес повторно связывается между активным и резервным узлом в разных Доступны зоны доступности через API эластичных IP-адресов повторного связывания. В аварийном переключении реализации, показанной на предыдущем рисунке, текущие вызовы сбрасываются, а конечные точки должен переподключиться. Эту реализацию можно расширить за счет репликации базовых данные сеанса, чтобы обеспечить бесперебойную отработку отказа сеансов или непрерывность мультимедиа.
Балансировка нагрузки для масштабируемости и высокой доступности с помощью WebRTC и SIP
Балансировка нагрузки кластера активных экземпляров на основе предопределенных правила, такие как циклический перебор, сродство или задержка и т. д., является шаблон проектирования, широко популяризированный благодаря природе HTTP без сохранения состояния Запросы. На самом деле, балансировка нагрузки является жизнеспособным вариантом в случае многие компоненты приложения RTC.
Балансировщик нагрузки действует как обратный прокси или точка входа для запросы к нужному приложению, которое само настроено на работать на нескольких активных узлах одновременно. В любой данный момент в время балансировщик нагрузки направляет запрос пользователя на один из активные узлы в определенном кластере. Балансировщики нагрузки выполняют проверки работоспособности узлов в их целевом кластере и не отправить входящий запрос на узел, который не прошел проверку работоспособности. Таким образом, достигается фундаментальная степень высокой доступности. путем балансировки нагрузки. Кроме того, поскольку балансировщик нагрузки выполняет активные и пассивные проверки работоспособности всех узлов кластера за доли секунды интервалы, время аварийного переключения практически мгновенное.
Решение о том, какой узел направить, основано на системных правилах. определенные в балансировщике нагрузки, в том числе:
Применимость в архитектурах RTC
Протокол WebRTC позволяет шлюзам WebRTC легко балансировать нагрузку через балансировщик нагрузки на основе HTTP, такой как Elastic Load Balancing (ELB), Application Load Balancer (ALB) или балансировщик сетевой нагрузки (NLB). Поскольку большинство реализаций SIP полагаются на транспорт по обоим Протокол управления передачей (TCP) и протокол пользовательских дейтаграмм (UDP), вам нужен сетевой или необходима балансировка нагрузки на уровне подключения с поддержкой трафика на основе TCP и UDP.
Балансировка нагрузки на AWS для WebRTC с использованием Application Load Balancer и Auto Scaling
доступный и масштабируемый балансировщик нагрузки, служащий точкой входа для запросов, которые затем направляется в целевой кластер экземпляров EC2, связанных с Elastic Load Balancing. Потому что WebRTC запросы не имеют состояния, вы можете использовать Amazon EC2 Auto Scaling, чтобы обеспечить полностью автоматизированный и контролируемый масштабируемость, эластичность и высокая доступность.
Application Load Balancer предоставляет полностью управляемую высокодоступную службу балансировки нагрузки. использование нескольких зон доступности и возможность масштабирования. Это поддерживает балансировку нагрузки Запросы WebSocket, которые обрабатывают сигнализацию для приложений WebRTC и двунаправленного связь между клиентом и сервером с использованием длительного TCP-соединения. Балансировщик нагрузки приложений также поддерживает маршрутизацию на основе содержимого и фиксированные сеансы, перенаправляя запросы от одного клиента к одной и той же цели, используя файлы cookie, созданные балансировщиком нагрузки. Если вы включите липкие сеансы, та же цель получит запрос и может использовать файл cookie для восстановления контекста сеанса.
На следующем рисунке показана целевая топология.
Масштабируемость WebRTC и архитектура высокой доступности
Внедрение SIP с помощью Network Load Balancer или AWS Marketplace продукт
В случае связи на основе SIP соединения осуществляются через TCP или UDP, с большинство приложений RTC используют UDP. Если SIP/TCP является предпочтительным сигнальным протоколом, тогда можно использовать Network Load Balancer для полностью управляемых, высокодоступных, масштабируемая и производительная балансировка нагрузки.
Балансировщик сетевой нагрузки работает на уровне подключения (четвертый уровень), маршрутизация подключения к целям, таким как экземпляры Amazon EC2, контейнеры и IP-адреса на основе IP данные протокола. Идеально подходит для балансировки нагрузки трафика TCP или UDP, балансировка сетевой нагрузки способный обрабатывать миллионы запросов в секунду при сверхнизких задержках.