Висока доступність на Vultr з плаваючим IP і BGP

Vultr дозволяє об’єднати дві наші функції (плаваючі IP-адреси та BGP) для досягнення високої доступності.

Налаштування

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

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

Ми будемо використовувати 192.0.2.10/32як наш приклад плаваючу IP-адресу та 198.51.100.99як IP-адресу одного з наших екземплярів.

Примітка. Ви не повинні приєднувати плаваючу 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

Далі ми налаштуємо 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команду. BIRD помітить, що інтерфейс зник, і забере маршрут.

Використання виробництва

Щоб переконатися, що ваш сайт продовжує працювати, вам потрібно більше одного сервера з однаковою конфігурацією BGP. Якщо один із екземплярів вимкнеться, трафік буде динамічно перенаправлено на один із інших екземплярів. Кількість екземплярів, які можна запустити з цією конфігурацією в певному місці, не обмежена, однак у будь-який момент часу буде активним лише один із них.

У деяких наших місцях трафік буде розподілено випадковим чином між будь-якими екземплярами, які ви налаштували таким чином. Згодом усі локації будуть налаштовані таким чином. Якщо ви хочете, щоб один екземпляр отримував весь трафік, якщо він не перебуває в режимі офлайн, ви б хотіли використовувати додавання для керування трафіком.

Наприклад, якщо у вас є два екземпляри:

  • Примірник A - основний екземпляр, повинен нормально отримувати весь трафік
  • Примірник B – резервний екземпляр, повинен отримувати трафік, лише якщо екземпляр A не працює

Щоб зробити це, додайте наступний розділ до вашої конфігурації BIRD на екземплярі B наступним чином:

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

Це гарантує, що трафік завжди буде надходити до екземпляра А, якщо він не вийде.

Якщо у вас є екземпляр C, який повинен отримувати трафік лише тоді, коли A і B не працюють, ви можете просто додати ще один рядок 'bgp_path.prepend' для цього.

Налаштування IPv6

Цей процес також працюватиме із зарезервованими підмережами IPv6, хоча ви будете використовувати «bird6» замість «bird» і «birdc6» замість «birdc».

Залишити коментар

Повстання машин: застосування ШІ в реальному світі

Повстання машин: застосування ШІ в реальному світі

Штучний інтелект не в майбутньому, він тут прямо в сьогоденні У цьому блозі Прочитайте, як програми штучного інтелекту вплинули на різні сектори.

DDOS-атаки: короткий огляд

DDOS-атаки: короткий огляд

Ви також стали жертвою DDOS-атак і спантеличені методами запобігання? Прочитайте цю статтю, щоб вирішити свої запитання.

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

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

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

Революційні винаходи від Google, які полегшать ваше життя.

Революційні винаходи від Google, які полегшать ваше життя.

Ви хочете побачити революційні винаходи Google і як ці винаходи змінили життя кожної людини сьогодні? Тоді читайте в блозі, щоб побачити винаходи Google.

Friday Essential: Що сталося з автомобілями, керованими штучним інтелектом?

Friday Essential: Що сталося з автомобілями, керованими штучним інтелектом?

Концепція самокерованих автомобілів, щоб вирушати в дороги за допомогою штучного інтелекту, є мрією, яку ми давно мріємо. Але, незважаючи на кілька обіцянок, їх ніде не видно. Прочитайте цей блог, щоб дізнатися більше…

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

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

Оскільки наука розвивається швидкими темпами, бере на себе багато наших зусиль, ризики піддати себе незрозумілій Сингулярності також зростає. Читайте, що може означати для нас сингулярність.

Функціональні можливості шарів еталонної архітектури великих даних

Функціональні можливості шарів еталонної архітектури великих даних

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

Еволюція зберігання даних – інфографіка

Еволюція зберігання даних – інфографіка

Методи зберігання даних можуть розвиватися з моменту народження Даних. Цей блог висвітлює еволюцію зберігання даних на основі інфографіки.

6 дивовижних переваг використання пристроїв розумного дому в нашому житті

6 дивовижних переваг використання пристроїв розумного дому в нашому житті

У цьому цифровому світі пристрої розумного дому стали важливою частиною життя. Ось кілька дивовижних переваг пристроїв розумного дому щодо того, як вони роблять наше життя гідним життя та спрощують його.

Оновлення доповнення macOS Catalina 10.15.4 спричиняє більше проблем, ніж вирішує

Оновлення доповнення macOS Catalina 10.15.4 спричиняє більше проблем, ніж вирішує

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