Высокая доступность на Vultr с плавающим IP и BGP

Vultr позволяет объединить две наши функции (плавающие IP-адреса и BGP) для достижения высокой доступности.

Настроить

Вам понадобятся два экземпляра в одном месте и плавающий IP. Вам также нужно будет открыть билет, запрашивающий настройку BGP на частном ASN для плавающих IP-адресов. (Вы также можете использовать эту функцию, если вы используете BGP вместе с нами на общедоступной ASN)

Вам также потребуется демон BGP, мы рекомендуем BIRD. BIRD обычно доступен через менеджер пакетов вашей операционной системы.

В 192.0.2.10/32качестве примера мы будем использовать плавающий IP-адрес и 198.51.100.99IP-адрес одного из наших экземпляров.

Примечание. Не следует подключать плавающий IP-адрес к какому-либо конкретному экземпляру через панель управления. Если IP-адрес подключен через панель управления, высокая доступность не будет работать должным образом.

Конфигурация IP

Мы собираемся использовать «фиктивный» интерфейс Linux для привязки IP-адреса. Вы можете создать это с помощью следующих команд:

ip link add dev dummy1 type dummy
ip link set dummy1 up
ip addr add dev dummy1 192.0.2.10/32

Убедитесь, что это было правильно настроено:

# ip addr show dev dummy1
5: dummy1: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
    link/ether ba:23:57:2c:ad:bc brd ff:ff:ff:ff:ff:ff
    inet 192.0.2.10/32 scope global dummy1

Конфигурация ПТИЦЫ

Далее мы настроим BIRD. Эти инструкции немного различаются в зависимости от операционной системы хоста, см. Сноски внизу этого раздела.

Создать /etc/bird.confфайл:

log "/var/log/bird" all;

router id 198.51.100.99;

protocol device
{
    scan time 60;
}

protocol direct
{
    interface "dummy1";
}

protocol bgp vultr
{
    local as <<YOURAS>>;
    source address 198.51.100.99;
    import none;
    export all;
    graceful restart on;
    next hop self;
    multihop 2;
    neighbor 169.254.169.254 as 64515;
    password "<<YOURPASSWORD>>";
}

Вам необходимо обновление YOURASи YOURPASSWORDс номером AS и BGP пароль , заданный для вашей учетной записи. Эту информацию можно найти на вкладке BGP на странице экземпляра в панели управления Vultr .

Этот файл конфигурации сообщит BIRD о поиске интерфейса dummy1 и объявит любые IP-адреса, которые он найдет, в нашей инфраструктуре через BGP. Это означает, что как только ваш экземпляр будет запущен, вы начнете получать трафик, и в случае его сбоя трафик остановится.

Конфигурация FreeBSD

Если вы используете FreeBSD в качестве хоста вместо Linux, есть несколько отличий.

  1. Ядро необходимо перекомпилировать для поддержки подписи TCP MD5. Эти инструкции выходят за рамки данной статьи. Если ваше ядро ​​BSD не поддерживает подписи TCP MD5, вы увидите следующий вывод в журнале BIRD.

    $ cat /var/log/bird
    2017-12-15 01:35:00 <INFO> Started
    2017-12-15 01:35:00 <ERR> vultr: Socket error: Kernel does not support TCP MD5 signatures
    
  2. Файл конфигурации BIRD находится /usr/local/etc/bird.confна BSD.

Проверьте подключение BGP

Запустите службу BIRD service bird startи подождите несколько секунд. Убедитесь, что сеанс BGP установлен:

# birdc show proto all vultr
BIRD 1.5.0 ready.
name     proto    table    state  since       info
vultr    BGP      master   up     2016-01-15  Established
  Preference:     100
  Input filter:   REJECT
  Output filter:  ACCEPT
  Routes:         0 imported, 1 exported, 0 preferred
  Route change stats:     received   rejected   filtered    ignored   accepted
    Import updates:      255919581          0  255919581          0          0
    Import withdraws:      1905513          0        ---  257825094          0
    Export updates:              1          0          0        ---          1
    Export withdraws:            0        ---        ---        ---          0
  BGP state:          Established
    Neighbor address: 169.254.169.254
    Neighbor AS:      YOURAS
    Neighbor ID:      x.x.x.x (Host IP)
    Neighbor caps:    refresh enhanced-refresh restart-able AS4
    Session:          external multihop AS4
    Source address:   198.51.100.99
    Hold timer:       184/240
    Keepalive timer:  30/80

Если все работает правильно, вы должны увидеть «Установлено» рядом с состоянием BGP. Распространенной проблемой здесь является наличие межсетевого экрана, блокирующего порт BGP (TCP 179). Кроме того, если этот экземпляр был развернут до того, как Vultr настроил ваш сеанс BGP, его необходимо будет перезапустить через панель управления, прежде чем BGP станет доступен. Если у вас все еще есть проблемы, посмотрите на /var/log/birdболее подробную информацию.

тестирование

Вы можете убедиться, что BIRD объявляет маршрут к вашему плавающему IP с помощью следующего:

# birdc show route
BIRD 1.5.0 ready.
192.0.2.10/32    dev dummy1 [direct1 2015-12-29] * (240)

Чтобы убедиться, что это работает правильно, вы можете отключить интерфейс dummy1 (с помощью ip link set dummy1 down), а затем повторить show routeкоманду. ПТИЦА заметит, что интерфейс исчез, и откажется от маршрута.

Использование продукции

Чтобы обеспечить работоспособность вашего сайта, необходимо, чтобы несколько серверов работали с одинаковой конфигурацией BGP. Если один из экземпляров выйдет из строя, трафик будет динамически перенаправлен на один из других экземпляров. Количество экземпляров, которые вы можете запустить с этой конфигурацией в определенном месте, не ограничено, однако только один из них будет активен в любой момент времени.

В некоторых наших местах трафик будет распределяться случайным образом между любыми экземплярами, которые вы настроили таким образом. В конце концов все места будут настроены таким образом. Если вы хотите, чтобы один экземпляр получал весь трафик, если он не находится в автономном режиме, вам следует использовать prepends для управления трафиком.

Например, если у вас есть два экземпляра:

  • Экземпляр A - основной экземпляр, должен нормально получать весь трафик
  • Экземпляр B - резервный экземпляр, должен получать трафик, только если экземпляр A не работает

Для этого добавьте следующий раздел в конфигурацию BIRD на экземпляре B следующим образом:

export filter {
    bgp_path.prepend(YOURAS);
    accept;
};

Это гарантирует, что трафик всегда будет идти к экземпляру А, если он не работает.

Если у вас есть экземпляр C, который должен получать трафик только тогда, когда A и B не работают, вы можете просто добавить еще одну строку «bgp_path.prepend» для этого.

Настройка IPv6

Этот процесс также будет работать с зарезервированными подсетями IPv6, хотя вы будете использовать «bird6» вместо «bird» и «birdc6» вместо «birdc».

Оставить комментарий

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Функциональные возможности уровней эталонной архитектуры больших данных

Функциональные возможности уровней эталонной архитектуры больших данных

Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.

6 невероятных фактов о Nintendo Switch

6 невероятных фактов о Nintendo Switch

Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.

Технические обещания, которые все еще не выполнены

Технические обещания, которые все еще не выполнены

Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.

Как ИИ может вывести автоматизацию процессов на новый уровень?

Как ИИ может вывести автоматизацию процессов на новый уровень?

Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.

Технологическая сингулярность: далекое будущее человеческой цивилизации?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

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

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?

Телемедицина и удаленное здравоохранение: будущее уже здесь

Телемедицина и удаленное здравоохранение: будущее уже здесь

Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше