Hög tillgänglighet på Vultr med flytande IP och BGP

Vultr låter dig kombinera två av våra funktioner (Floating IPs och BGP) för att uppnå hög tillgänglighet.

Uppstart

Du behöver två instanser på samma plats och en flytande IP. Du måste också öppna en biljett och begära att BGP konfigureras på ett privat ASN för flytande IP-adresser. (Du kan också använda den här funktionen om du kör BGP med oss ​​på ett offentligt ASN)

Du behöver också en BGP-demon, vi rekommenderar BIRD. BIRD är vanligtvis tillgängligt via ditt operativsystems pakethanterare.

Vi använder 192.0.2.10/32som exempel flytande IP och 198.51.100.99som IP-adress för en av våra instanser.

Obs: Du bör inte koppla den flytande IP-adressen till någon speciell instans via din kontrollpanel. Om en IP ansluts via kontrollpanelen kommer hög tillgänglighet inte att fungera korrekt.

IP-konfiguration

Vi kommer att använda ett Linux "dummy"-gränssnitt för att binda IP-adressen till. Du kan skapa detta med följande kommandon:

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

Bekräfta att detta konfigurerades 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

Därefter konfigurerar vi BIRD. Dessa instruktioner varierar något mellan värdoperativsystem, se fotnoterna längst ner i det här avsnittet.

Skapa 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 måste uppdatera YOURASoch YOURPASSWORDmed AS-numret och BGP-lösenordet som tilldelats ditt konto. Den här informationen finns på BGP-fliken på en instanssida i Vultr-kontrollpanelen .

Den här konfigurationsfilen kommer att berätta för BIRD att leta efter dummy1-gränssnittet och annonsera alla IP-adresser som den hittar till vår infrastruktur via BGP. Det betyder att så snart din instans körs kommer du att börja ta emot trafik, och om den någon gång kraschar kommer trafiken att stanna.

FreeBSD-konfiguration

Om du använder FreeBSD som värd istället för Linux finns det några skillnader.

  1. Kärnan måste kompileras om för TCP MD5-signaturstöd. Dessa instruktioner ligger utanför den här artikelns omfattning. Om din BSD-kärna inte stöder TCP MD5-signaturer, kommer du att se följande utdata 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 finns /usr/local/etc/bird.confpå BSD.

Verifiera BGP-anslutningen

Starta BIRD-tjänsten service bird startoch vänta några sekunder. Kontrollera att BGP-sessionen har upprättats:

# 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

Om allt fungerar som det ska bör du se "Established" bredvid BGP-tillstånd. Ett vanligt problem här är att ha en brandvägg som blockerar BGP-porten (TCP 179). Dessutom, om den här instansen distribuerades innan Vultr satte upp din BGP-session, måste den startas om via kontrollpanelen innan BGP är tillgängligt. Om du fortfarande har problem, titta på /var/log/birdför mer information.

Testning

Du kan se till att BIRD annonserar rutten till din flytande IP med följande:

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

För att bekräfta att detta fungerar korrekt kan du inaktivera dummy1-gränssnittet (med ip link set dummy1 down), sedan upprepa show routekommandot. BIRD kommer att ha märkt att gränssnittet har försvunnit och kommer att dra tillbaka rutten.

Produktionsanvändning

För att säkerställa att din webbplats förblir uppe, skulle du vilja ha mer än en server som kör samma BGP-konfiguration. Om någon av instanserna går ner kommer trafiken att omdirigeras dynamiskt till en av de andra instanserna. Det finns ingen gräns för antalet instanser du kan köra med den här konfigurationen på en viss plats, men endast en av dem kommer att vara aktiv vid varje given tidpunkt.

På vissa av våra platser kommer trafiken att distribueras slumpmässigt mellan alla instanser som du har konfigurerat på detta sätt. Så småningom kommer alla platser att konfigureras på detta sätt. Om du vill att en instans ska få all trafik såvida den inte är offline, skulle du vilja använda prepends för att styra trafiken.

Till exempel, om du har två instanser:

  • Instans A - huvudinstans, ska ta emot all trafik normalt
  • Instans B - backup-instans, ska bara ta emot trafik om instans A är nere

För att åstadkomma detta, lägg till följande avsnitt till din BIRD-konfiguration på instans B enligt följande:

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

Detta skulle säkerställa att trafiken alltid går till instans A, om den inte är nere.

Om du har en instans C, som bara ska ta emot trafik när A och B är nere, kan du helt enkelt lägga till en annan 'bgp_path.prepend'-rad för att åstadkomma detta.

IPv6-installation

Denna process kommer också att fungera med IPv6-reserverade subnät, även om du använder "bird6" istället för "bird" och "birdc6" istället för "birdc".

Lämna en kommentar

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Artificiell intelligens är inte i framtiden, det är här i nuet I den här bloggen Läs hur Artificiell intelligens-applikationer har påverkat olika sektorer.

DDOS-attacker: En kort översikt

DDOS-attacker: En kort översikt

Är du också ett offer för DDOS-attacker och förvirrad över de förebyggande metoderna? Läs den här artikeln för att lösa dina frågor.

Har du någonsin undrat hur hackare tjänar pengar?

Har du någonsin undrat hur hackare tjänar pengar?

Du kanske har hört att hackare tjänar mycket pengar, men har du någonsin undrat hur de tjänar den typen av pengar? låt oss diskutera.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Revolutionerande uppfinningar från Google som gör ditt liv lätt.

Vill du se revolutionerande uppfinningar av Google och hur dessa uppfinningar förändrade livet för varje människa idag? Läs sedan till bloggen för att se uppfinningar av Google.

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Fredag ​​Essential: Vad hände med AI-drivna bilar?

Konceptet med att självkörande bilar ska ut på vägarna med hjälp av artificiell intelligens är en dröm vi har ett tag nu. Men trots flera löften finns de ingenstans att se. Läs den här bloggen för att lära dig mer...

Technological Singularity: A Distant Future of Human Civilization?

Technological Singularity: A Distant Future of Human Civilization?

När vetenskapen utvecklas i snabb takt och tar över en hel del av våra ansträngningar, ökar också riskerna för att utsätta oss för en oförklarlig singularitet. Läs, vad singularitet kan betyda för oss.

Funktioner för Big Data Reference Architecture Layers

Funktioner för Big Data Reference Architecture Layers

Läs bloggen för att känna till olika lager i Big Data Architecture och deras funktionaliteter på enklaste sätt.

Utveckling av datalagring – Infographic

Utveckling av datalagring – Infographic

Lagringsmetoderna för data har utvecklats kan vara sedan födelsen av data. Den här bloggen tar upp utvecklingen av datalagring på basis av en infografik.

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

6 fantastiska fördelar med att ha smarta hemenheter i våra liv

I denna digitala värld har smarta hemenheter blivit en avgörande del av livet. Här är några fantastiska fördelar med smarta hemenheter om hur de gör vårt liv värt att leva och enklare.

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

macOS Catalina 10.15.4 tilläggsuppdatering orsakar fler problem än att lösa

Nyligen släppte Apple macOS Catalina 10.15.4, en tilläggsuppdatering för att åtgärda problem, men det verkar som om uppdateringen orsakar fler problem som leder till att mac-datorer blir murade. Läs den här artikeln för att lära dig mer