Wysoka dostępność na Vultr z pływającym IP i BGP

Vultr pozwala połączyć dwie nasze funkcje (zmienne adresy IP i BGP) w celu osiągnięcia wysokiej dostępności.

Ustawiać

Będziesz potrzebował dwóch instancji w tej samej lokalizacji i zmiennego adresu IP. Musisz także otworzyć bilet z prośbą o skonfigurowanie BGP na prywatnym ASN dla pływających adresów IP. (Z tej funkcji można również skorzystać, jeśli korzystasz z BGP na publicznej ASN)

Będziesz także potrzebował demona BGP, zalecamy BIRD. BIRD jest zwykle dostępny w menedżerze pakietów systemu operacyjnego.

192.0.2.10/32Jako przykład użyjemy zmiennego adresu IP i 198.51.100.99adresu IP jednej z naszych instancji.

Uwaga: nie należy dołączać pływającego adresu IP do żadnego konkretnego wystąpienia za pośrednictwem panelu sterowania. Jeśli adres IP jest podłączony za pomocą panelu sterowania, wysoka dostępność nie będzie działać poprawnie.

Konfiguracja IP

Użyjemy „fałszywego” interfejsu Linuksa, aby powiązać adres IP. Możesz to zrobić za pomocą następujących poleceń:

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

Potwierdź, że zostało to poprawnie skonfigurowane:

# 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

Konfiguracja BIRD

Następnie skonfigurujemy BIRD. Instrukcje te różnią się nieznacznie w zależności od systemu operacyjnego hosta, patrz przypisy na dole tej sekcji.

Utwórz /etc/bird.confplik:

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>>";
}

Musisz aktualizacji YOURASi YOURPASSWORDnumerem AS i hasło BGP przypisany do konta. Informacje te można znaleźć na karcie BGP strony instancji w panelu sterowania Vultr .

Ten plik konfiguracyjny każe BIRD szukać interfejsu dummy1 i reklamować wszelkie znalezione adresy IP w naszej infrastrukturze za pośrednictwem BGP. Oznacza to, że zaraz po uruchomieniu instancji zaczniesz otrzymywać ruch, a jeśli kiedykolwiek się zawiesi, ruch zostanie zatrzymany.

Konfiguracja FreeBSD

Jeśli używasz FreeBSD jako hosta zamiast Linuksa, istnieje kilka różnic.

  1. Jądro musi zostać ponownie skompilowane w celu obsługi podpisu TCP MD5. Te instrukcje są poza zakresem tego artykułu. Jeśli twoje jądro BSD nie obsługuje podpisów TCP MD5, w dzienniku BIRD zobaczysz następujące dane wyjściowe.

    $ 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. Plik konfiguracyjny BIRD znajduje się /usr/local/etc/bird.confna BSD.

Sprawdź łączność BGP

Uruchom usługę BIRD service bird starti poczekaj kilka sekund. Sprawdź, czy ustanowiono sesję 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

Jeśli wszystko działa poprawnie, obok stanu BGP powinien być widoczny komunikat „Ustanowiony”. Częstym problemem jest tutaj zapora blokująca port BGP (TCP 179). Ponadto, jeśli to wystąpienie zostało wdrożone przed skonfigurowaniem sesji BGP przez Vultr, konieczne będzie jego ponowne uruchomienie za pomocą panelu sterowania, zanim BGP będzie dostępny. Jeśli nadal masz problemy, poszukaj /var/log/birddalszych szczegółów.

Testowanie

Możesz upewnić się, że BIRD reklamuje trasę do twojego pływającego adresu IP, wykonując następujące czynności:

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

Aby potwierdzić, że działa poprawnie, możesz wyłączyć interfejs dummy1 (z ip link set dummy1 down), a następnie powtórzyć show routepolecenie. BIRD zauważy, że interfejs zniknął i cofnie trasę.

Wykorzystanie produkcji

Aby mieć pewność, że Twoja witryna pozostanie bezczynna, potrzebujesz więcej niż jednego serwera z tą samą konfiguracją BGP. Jeśli którakolwiek z instancji ulegnie awarii, ruch zostanie dynamicznie przekierowany do jednej z innych instancji. Nie ma ograniczeń co do liczby instancji, które można uruchomić z tą konfiguracją w określonej lokalizacji, jednak tylko jedna z nich będzie aktywna w danym momencie.

W niektórych naszych lokalizacjach ruch będzie losowo rozdzielany między wszystkie instancje skonfigurowane w ten sposób. Ostatecznie wszystkie lokalizacje zostaną skonfigurowane w ten sposób. Jeśli chcesz, aby jedna instancja przejmowała cały ruch, chyba że jest w trybie offline, możesz użyć prepends do kierowania ruchem.

Na przykład, jeśli masz dwa wystąpienia:

  • Instancja A - główna instancja powinna normalnie odbierać cały ruch
  • Instancja B - instancja zapasowa, powinna otrzymywać ruch tylko wtedy, gdy Instancja A jest wyłączona

Aby to zrobić, dodaj następującą sekcję do konfiguracji BIRD w instancji B w następujący sposób:

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

Zapewniłoby to, że ruch zawsze będzie kierowany do wystąpienia A, chyba że jest on wyłączony.

Jeśli masz instancję C, która powinna odbierać ruch tylko wtedy, gdy A i B są wyłączone, możesz po prostu dodać kolejną linię „bgp_path.prepend”, aby to osiągnąć.

Konfiguracja IPv6

Ten proces będzie również działał z podsieciami zastrzeżonymi IPv6, chociaż użyjesz „bird6” zamiast „bird” i „birdc6” zamiast „birdc”.



Leave a Comment

Funkcjonalności warstw architektury referencyjnej Big Data

Funkcjonalności warstw architektury referencyjnej Big Data

Przeczytaj blog, aby w najprostszy sposób poznać różne warstwy w architekturze Big Data i ich funkcjonalności.

Rewolucyjne wynalazki Google, które ułatwią Twoje życie.

Rewolucyjne wynalazki Google, które ułatwią Twoje życie.

Chcesz zobaczyć rewolucyjne wynalazki Google i jak te wynalazki zmieniły życie każdego człowieka dzisiaj? Następnie czytaj na blogu, aby zobaczyć wynalazki Google.

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

13 komercyjnych narzędzi do ekstrakcji danych z Big Data

Pozostań w kontakcie dzięki aplikacji WhatsApp na komputer 24*7

Pozostań w kontakcie dzięki aplikacji WhatsApp na komputer 24*7

Whatsapp w końcu uruchomił aplikację Desktop dla użytkowników komputerów Mac i Windows. Teraz możesz łatwo uzyskać dostęp do Whatsapp z systemu Windows lub Mac. Dostępne dla Windows 8+ i Mac OS 10.9+

5 przykładów, które dowodzą, że energetyka jądrowa nie zawsze jest zła

5 przykładów, które dowodzą, że energetyka jądrowa nie zawsze jest zła

Energia jądrowa jest zawsze pogardzana, nigdy jej nie szanujemy z powodu przeszłych wydarzeń, ale nie zawsze jest zła. Przeczytaj post, aby dowiedzieć się więcej na ten temat.

Friday Essential: Co się stało z samochodami sterowanymi przez sztuczną inteligencję?

Friday Essential: Co się stało z samochodami sterowanymi przez sztuczną inteligencję?

Koncepcja autonomicznych samochodów, które wyjadą na drogi za pomocą sztucznej inteligencji, to marzenie, które mamy już od jakiegoś czasu. Ale pomimo kilku obietnic nigdzie ich nie widać. Przeczytaj ten blog, aby dowiedzieć się więcej…

Czy AI może walczyć z rosnącą liczbą ataków ransomware?

Czy AI może walczyć z rosnącą liczbą ataków ransomware?

Wzrasta liczba ataków ransomware, ale czy sztuczna inteligencja może pomóc w radzeniu sobie z najnowszym wirusem komputerowym? Czy AI jest odpowiedzią? Przeczytaj tutaj, wiedz, że sztuczna inteligencja jest zmorą lub zgubą

5 przydatnych narzędzi sztucznej inteligencji, które uproszczą Twoje życie

5 przydatnych narzędzi sztucznej inteligencji, które uproszczą Twoje życie

Sztuczna inteligencja nie jest dla ludzi nową nazwą. Ponieważ sztuczna inteligencja jest włączona do każdego strumienia, jednym z nich jest opracowywanie narzędzi zwiększających ludzką wydajność i dokładność. Skorzystaj z tych niesamowitych narzędzi uczenia maszynowego i uprość swoje codzienne zadania.

Wgląd w 26 technik analizy Big Data: część 2

Wgląd w 26 technik analizy Big Data: część 2

Zawsze potrzebujemy Big Data Analytics do efektywnego zarządzania danymi. W tym artykule omówiliśmy kilka technik analizy Big Data. Sprawdź ten artykuł.

Ataki DDOS: krótki przegląd

Ataki DDOS: krótki przegląd

Czy jesteś również ofiarą ataków DDOS i nie masz pewności co do metod zapobiegania? Przeczytaj ten artykuł, aby rozwiązać swoje pytania.