Висока наличност на Vultr с плаващ IP и BGP

Vultr ви позволява да комбинирате две от нашите функции (Floating IPs и 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 - основната инстанция, трябва да получава нормално целия трафик
  • Екземпляр Б - резервен екземпляр, трябва да получава трафик само ако Инстанция А не работи

За да постигнете това, добавете следния раздел към вашата BIRD конфигурация на екземпляр B, както следва:

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

Това ще гарантира, че трафикът винаги ще отива към екземпляр А, освен ако не е спрян.

Ако имате екземпляр C, който трябва да получава трафик само когато A и B не работят, можете просто да добавите друг ред 'bgp_path.prepend', за да постигнете това.

Настройка на IPv6

Този процес ще работи и с IPv6 запазени подмрежи, въпреки че ще използвате „bird6“ вместо „bird“ и „birdc6“ вместо „birdc“.

Оставете коментар

Възходът на машините: Реални приложения на AI

Възходът на машините: Реални приложения на AI

Изкуственият интелект не е в бъдещето, тук е точно в настоящето. В този блог Прочетете как приложенията за изкуствен интелект са повлияли на различни сектори.

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 машини. Прочетете тази статия, за да научите повече