Høj tilgængelighed på Vultr med flydende IP og BGP

Vultr giver dig mulighed for at kombinere to af vores funktioner (Floating IPs og BGP) for at opnå høj tilgængelighed.

Opsætning

Du skal bruge to forekomster på samme placering og en flydende IP. Du skal også åbne en billet og anmode om at BGP sættes op på et privat ASN til flydende IP'er. (Du kan også bruge denne funktion, hvis du kører BGP hos os på et offentligt ASN)

Du skal også bruge en BGP-dæmon, vi anbefaler BIRD. BIRD er normalt tilgængelig via dit operativsystems pakkehåndtering.

Vi bruger 192.0.2.10/32som vores eksempel flydende IP og 198.51.100.99som IP-adressen for en af ​​vores forekomster.

Bemærk: Du bør ikke knytte den flydende IP til nogen bestemt instans via dit kontrolpanel. Hvis en IP er tilsluttet via kontrolpanelet, vil høj tilgængelighed ikke fungere korrekt.

IP-konfiguration

Vi kommer til at bruge en Linux "dummy"-grænseflade til at binde IP-adressen til. Du kan oprette dette med følgende kommandoer:

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

Bekræft, at dette er konfigureret korrekt:

# 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 konfiguration

Dernæst konfigurerer vi BIRD. Disse instruktioner varierer lidt mellem værtsoperativsystemer, se fodnoterne nederst i dette afsnit.

Opret en /etc/bird.conffil:

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

Du skal opdatere YOURASog YOURPASSWORDmed AS-nummeret og BGP-adgangskoden tildelt din konto. Disse oplysninger kan findes på BGP-fanen på en instansside i Vultr-kontrolpanelet .

Denne konfigurationsfil vil bede BIRD om at lede efter dummy1-grænsefladen og annoncere eventuelle IP'er, den finder til vores infrastruktur via BGP. Det betyder, at så snart din instans kører, vil du begynde at modtage trafik, og hvis den nogensinde går ned, stopper trafikken.

FreeBSD konfiguration

Hvis du bruger FreeBSD som vært i stedet for Linux, er der et par forskelle.

  1. Kernen skal omkompileres til TCP MD5-signaturunderstøttelse. Disse instruktioner er uden for rammerne af denne artikel. Hvis din BSD-kerne ikke understøtter TCP MD5-signaturer, vil du se følgende output i BIRD-loggen.

    $ 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-konfigurationsfilen er placeret /usr/local/etc/bird.confpå BSD.

Bekræft BGP-forbindelse

Start BIRD-tjenesten service bird start, og vent et par sekunder. Tjek, at BGP-sessionen er etableret:

# 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

Hvis alt fungerer korrekt, bør du se "Etableret" ud for BGP-tilstand. Et almindeligt problem her er at have en firewall, der blokerer BGP-porten (TCP 179). Desuden, hvis denne instans blev implementeret før Vultr satte din BGP-session op, skal den genstartes via kontrolpanelet, før BGP er tilgængelig. Hvis du stadig har problemer, kan du se /var/log/birdfor yderligere detaljer.

Afprøvning

Du kan sikre dig, at BIRD annoncerer ruten til din flydende IP med følgende:

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

For at bekræfte, at dette fungerer korrekt, kan du deaktivere dummy1-grænsefladen (med ip link set dummy1 down), og derefter gentage show routekommandoen. BIRD vil have bemærket, at grænsefladen er forsvundet og vil trække ruten tilbage.

Produktionsbrug

For at sikre, at dit websted forbliver oppe, vil du have mere end én server, der kører den samme BGP-konfiguration. Hvis en af ​​forekomsterne går ned, vil trafikken blive dynamisk omdirigeret til en af ​​de andre forekomster. Der er ingen grænse for antallet af forekomster, du kan køre med denne konfiguration på et bestemt sted, men kun én af dem vil være aktiv på et givet tidspunkt.

På nogle af vores lokationer vil trafikken blive fordelt tilfældigt mellem alle forekomster, som du har konfigureret på denne måde. Til sidst vil alle lokationer blive konfigureret på denne måde. Hvis du vil have én forekomst til at få al trafikken, medmindre den er offline, vil du gerne bruge prepends til at styre trafikken.

For eksempel, hvis du har to tilfælde:

  • Forekomst A - hovedinstans, bør modtage al trafik normalt
  • Instance B - backup-instans, bør kun modtage trafik, hvis instans A er nede

For at opnå dette skal du tilføje følgende afsnit til din BIRD-konfiguration på instans B som følger:

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

Dette ville sikre, at trafikken altid vil gå til instans A, medmindre den er nede.

Hvis du har en Instance C, som kun bør modtage trafik, når A og B er nede, kan du blot tilføje en anden 'bgp_path.prepend'-linje for at opnå dette.

IPv6 opsætning

Denne proces vil også fungere med IPv6 reserverede undernet, selvom du vil bruge "bird6" i stedet for "bird" og "birdc6" i stedet for "birdc".

Efterlad en kommentar

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her lige i nuet I denne blog Læs, hvordan kunstig intelligens-applikationer har påvirket forskellige sektorer.

DDOS-angreb: et kort overblik

DDOS-angreb: et kort overblik

Er du også et offer for DDOS-angreb og forvirret over forebyggelsesmetoderne? Læs denne artikel for at løse dine spørgsmål.

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Har du nogensinde spekuleret på, hvordan tjener hackere penge?

Du har måske hørt, at hackere tjener mange penge, men har du nogensinde spekuleret på, hvordan tjener de den slags penge? lad os diskutere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Revolutionære opfindelser fra Google, der vil gøre dit liv lettere.

Vil du se revolutionerende opfindelser fra Google, og hvordan disse opfindelser ændrede livet for ethvert menneske i dag? Læs derefter til bloggen for at se opfindelser fra Google.

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Fredag ​​Essential: Hvad skete der med AI-drevne biler?

Konceptet med selvkørende biler til at køre på vejene ved hjælp af kunstig intelligens er en drøm, vi har haft i et stykke tid nu. Men på trods af flere løfter er de ingen steder at se. Læs denne blog for at lære mere...

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Teknologisk singularitet: En fjern fremtid for menneskelig civilisation?

Efterhånden som videnskaben udvikler sig i et hurtigt tempo og overtager en stor del af vores indsats, stiger risikoen for at udsætte os selv for en uforklarlig Singularitet. Læs, hvad singularitet kunne betyde for os.

Funktioner af Big Data Reference Architecture Layers

Funktioner af Big Data Reference Architecture Layers

Læs bloggen for at kende forskellige lag i Big Data-arkitekturen og deres funktionaliteter på den enkleste måde.

Udvikling af datalagring – Infografik

Udvikling af datalagring – Infografik

Opbevaringsmetoderne for dataene har været under udvikling, kan være siden fødslen af ​​dataene. Denne blog dækker udviklingen af ​​datalagring på basis af en infografik.

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

6 fantastiske fordele ved at have smarte hjemmeenheder i vores liv

I denne digitalt drevne verden er smarte hjemmeenheder blevet en afgørende del af livet. Her er et par fantastiske fordele ved smarte hjemmeenheder om, hvordan de gør vores liv værd at leve og enklere.

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

macOS Catalina 10.15.4-tillægsopdatering forårsager flere problemer end at løse

For nylig udgav Apple macOS Catalina 10.15.4 en supplerende opdatering for at løse problemer, men det ser ud til, at opdateringen forårsager flere problemer, hvilket fører til mursten af ​​mac-maskiner. Læs denne artikel for at lære mere