Konfiguration af BGP ved hjælp af Quagga på Vultr (CentOS 7)

Vultrs Bring Your IP Space- funktionalitet giver mulighed for hidtil uset frihed til at tildele dine egne IP-ressourcer til servere på Vultr-skyen. Vi anbefaler generelt at bruge BIRD til at annoncere dit IP-rum. Der er et par solide alternativer til BIRD, hvis du ikke kan opnå noget med BIRD (selvom dette er meget sjældent), eller du blot ønsker at bruge anden software.

På grund af de administrative og tekniske omkostninger fraråder vi på det kraftigste at bruge BIRD og Quagga (eller anden software for den sags skyld) i samme infrastruktur og/eller netværk. Husk, at den følgende konfiguration vil give dig en SPOF, da den instans, der annoncerer dit overlappende undernet, ikke er overflødig. Du skal dog bemærke, at Vultr har flere BGP-routere i hvert rack.

Selvom denne vejledning er skrevet med CentOS 7 i tankerne, og kun testet på denne CentOS-version, vil den højst sandsynligt også fungere på ældre versioner såsom CentOS 6. Men vi fraråder naturligvis kraftigt brugen af ​​forældet software, og vi anbefaler stærkt at opdatere til en nyere, nyere (og understøttet) version såsom CentOS 7.

Der er ingen praktisk grænse for mængden af ​​undernet eller deres størrelse, du kan annoncere fra én instans, der kører Quagga (eller en hvilken som helst BGP-router for den sags skyld), selvom du i enhver netværkstopologi burde have en form for risikospredning. Det betyder, at du enten skal oprette en redundant opsætning eller annoncere forskellige undernet fra forskellige servere ved at følge vejledningen nedenfor på flere servere.

For at følge denne guide skal du bruge:

  • Det ASN du ønsker/skal bruge;
  • Det IP-rum (undernet), du vil annoncere;
  • BGP aktiveret på din Vultr-konto

FUGL eller Quagga?

Til at begynde med kan det være meget svært at vælge mellem enten BIRD eller Quagga. Begge er velkendte og har vist sig at være meget stabile og robuste til mange use cases, herunder højtrafikerede miljøer og infrastrukturer, hvor pålidelighed spiller en nøglerolle. Hovedforskellen mellem BIRD og Quagga er, at BIRD's konfiguration er adskilt fra dæmonen og tydeligt mere rettet mod en kodelignende struktur.

For eksempel, med BIRD, hvis du ønsker at opnå en failover-opsætning, vil du bruge følgende blok i bird.confkonfigurationsfilen:

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

Som du kan se, ligner konfigurationen lidt en kodeblok, som den ville se ud med et programmeringssprog. Med Quagga ville du tilføje eller ændre indstillinger ved hjælp af et program i selve dæmonen.

I sidste ende kommer det mest ned til personlige præferencer, og der er ingen 'vinder' eller software, du skal bruge. Generelt er BIRD nemmere at konfigurere på grund af dets nemme at lære måde at konfigurere på, og det er bredt understøttet af fællesskabet.

Til fordel for Quagga, generelt i et kørende produktionsmiljø, er Quagga desuden lettere at omkonfigurere. Med BIRD skal du redigere de passende konfigurationsfiler og få dæmonen til at genindlæse sine indstillinger. Med Quagga kan du gå ind i dens skal, omkonfigurere indstillinger uden for meget ekstra arbejde eller besvær. Kontinuiteten spiller en stor rolle her, men i praksis er overheaden minimal. I de fleste infrastrukturer behøver du ikke at omkonfigurere disse indstillinger for meget, så det er nok en god idé at bedømme ud fra andre aspekter af softwaren i stedet for kun denne detalje.

Ligesom BIRD er Quagga krydskompatibel på tværs af flere distributioner. Hvis du nogensinde ønsker at ændre distributionen/distributionerne, der bruges til routerne, kan du i teorien blot flytte over dine konfigurationer, og intet skulle ændres eller ændres.

I denne guide vil vi beskrive processen med at installere og konfigurere Quagga. Hvis du også vil prøve BIRD, så prøv at følge vejledningen " Konfiguration af BGP på Vultr ".

Som nævnt er der et par gode andre alternativer derude, men den største del af dem har nogle mangler, der forhindrer dem i at blive brugt i et produktionsmiljø. For eksempel er XORP's BGP-implementering relativt forældet, hvilket generelt ikke er en god start til at opsætte en helt ny infrastruktur (selvom dens BGP-implementering er stabil).

Sammenlignet med mange alternativer har BIRD et lavt hukommelsesfodaftryk og er ikke særlig ressourcekrævende. På den anden side tager det kun et par klik fra Vultr-kontrolpanelet at skrue op eller opgradere til en mere kraftfuld Vultr-skyinstans.

IPv4 og IPv6

Vultr understøtter annoncering af både IPv4 og IPv6 IP-plads. Quaggas BGP-implementering er relativt up-to-date, hvilket giver mulighed for også at annoncere IPv6-plads.

Selvom denne vejledning er rettet mod at annoncere IPv4-plads, kan du bruge Quaggas IPv6-implementering og bruge denne artikels instruktioner. Dette er dog ikke eksplicit dokumenteret, så se venligst en alternativ kilde for dette.

Vigtig note

For at kunne overleve uden en BGP-router til at passere trafik igennem, er den bedste måde at annoncere dit IP-rum på som følger:

  • Annoncer din /24 (eller større) fra en dedikeret Quagga-instans;
  • Meddel individuelle /32'er (eller større) fra de tilfælde, hvor trafik skal dirigeres til dem selv

På denne måde ville du have en instansopsætning til at annoncere det overlappende undernet for alle IP'er, du bryder ind i individuelle /32'er eller større. Ved at bruge dette design er du i stand til hurtigt at annoncere IP'er og dirigere trafik til de korrekte forekomster.

Du er naturligvis fri til at eksperimentere med flere metoder til at annoncere dit IP-rum efter din smag. I teorien er brugen ubegrænset og kender ingen grænser. Bemærk, at Vultrs servere er selvadministrerede, og vi kan ikke hjælpe dig med eventuelle problemer, der måtte opstå. Bortset fra, kan det ikke skade at bruge en løsning, der understøttes af Vultr og fællesskabet, så hvis der måtte opstå problemer, kan du hurtigt finde ud af deres grundlæggende årsag.

Trin 1: Deaktivering af SELinux

Vi anbefaler stærkt at deaktivere SELinux for at forhindre det i at stoppe Quagga i at fungere. Vi har en guide til at deaktivere SELinux, følg den og vend tilbage til denne tutorial efter SELinux er blevet deaktiveret: Deaktivering af SELinux på CentOS 7 .

Trin 2: Installation af Quagga

Vi kan fortsætte ved at installere Quagga ved hjælp af yum:

yum install quagga

Hvis du får en fejl, især på en nyligt implementeret instans, prøv:

yum update

Konfigurer, systemdså Zebra (kernedæmonen) startes automatisk ved opstart:

systemctl enable zebra

Start til sidst Zebra:

systemctl start zebra

Vi er nødt til at gentage processen for BGPd, ​​som følger:

systemctl start bgpd
systemctl enable bgpd

Zebra og BGPd

Quagga består af en række dæmoner, der tillader routing. Da vi vil gøre brug af BGP, bliver vi nødt til at bruge Zebra- og BGPd-dæmonerne. Zebra og BGPd arbejder sammen. Når en af ​​dem holder op med at fungere, vil dine ruter ikke længere blive annonceret, hvilket effektivt gør hele din IP-plads utilgængelig.

Quagga understøtter flere routing-protokoller, blandt andre OSPF og BGP. Kernen i topologien af ​​deres implementeringer er Zebra. Zebra er kernedæmonen, som er et lag, der tager sig af UNIX-kernens kommunikation (TCP) med Quagga-klienter. På backend præsenterer Zebra Zserv API, som gør det muligt for disse routingprotokoller at kommunikere routingopdateringer. En af implementeringerne med Zserv API er BGP.

Standardversionen, der bruges af Quagga til BGP, er BGPv4+, som inkluderer adressefamilieunderstøttelse til multicast og IPv6.

Trin 3: Konfiguration af BGP-routeren

For at konfigurere BGP-routeren efter din smag, bruger vi vtyshskallen. Først skal du kopiere BGP-eksempel-konfigurationsfilen:

cp /usr/share/doc/quagga-*/bgpd.conf.sample /etc/quagga/bgpd.conf

Når filen er blevet kopieret, skal du indtaste skallen:

vtysh

I nogle ældre Quagga-versioner kan du finde en opsætning med AS7675. Vi har ikke brug for dette, da det kun vil være i konflikt med vores opsætning, så vi er nødt til at slette det, hvis det eksisterer. Tjek om denne konfiguration findes i din Quagga installation ved at udføre følgende kommando inde i skallen :

show running-config

Hvis dette returnerer en streng med eller inklusive "router bgp 7675", skal du slette den ved at udføre:

configure terminal
no router bgp 7675
router bgp YOURAS
no auto-summary
no synchronization

Du skal nu indtaste de BGP-oplysninger, som Vultr har givet dig.

neighbor NEIGHBORIP remote-as VULTRAS
neighbor NEIGHBORIP description "Vultr"

Mest sandsynligt har du brug for en adgangskode for at etablere BGP-sessionen. Indtast det:

neighbor NEIGHBORIP password YOURBGPPASSWORD
exit

Til sidst, hvis du er sikker på, at du vil skrive disse ændringer (kun gældende, hvis du arbejder på en produktionsopsætning), skal du udføre følgende for at lade ændringerne træde i kraft:

write

Sørg for, at ændringerne lykkedes ved at udføre:

show ip bgp summary

Vi skulle nu have etableret en BGP-session.

Trin 4: Annoncering af din IP-plads

Selvom vi har etableret en BGP-session, annoncerer vi ikke nogen ruter eller IP-adresser endnu, så dette har ingen effekt i praksis. Heldigvis er det en forholdsvis nem proces at indstille IP-pladsen til at annoncere.

I vtyshskal du udføre følgende kommandoer for at opnå dette:

configure terminal
router bgp YOURAS

Du er nu i konfigurationen. Sørg for at have den IP-plads, du vil annoncere, ved hånden, og indtast den:

network YOURSUBNET/CIDR

For eksempel vil gyldigt input være:

network 185.92.220.0/23

Dette vil naturligvis ikke fungere i din specifikke opsætning, da ovenstående IP-rum ejes af Vultr. Udskift dette og alt skulle fungere fint.

Afslut og gem ændringerne:

exit
write

Tjek, om dine præfikser er blevet annonceret:

show ip bgp neighbors NEIGHBORIP advertised-routes

Forsøg at pinge en IP-adresse fra undernettet, og prøv at udføre en traceroute uden for netværket.

Fejlfinding

Fejlfinding Quagga er stort set uden for rammerne af denne artikel, men hvis du oplever problemer, kan du altid forsøge at stoppe din Quagga-instans og igen prøve at annoncere IP-pladsen via BIRD for at kunne udelukke en række mulige årsager.

Når BGP ikke fungerer korrekt på Quagga såvel som BIRD, er der en chance for, at din firewall ikke er konfigureret korrekt. Port 179 skulle være åben. På CentOS 7, forsøg midlertidigt at deaktivere firewallen:

systemctl stop firewalld

Hvis du bruger iptables, prøv:

service iptables stop

Forsøg derefter at starte BGP-sessionen igen. Hvis den hænger på 'Idle', 'Connect' eller 'Active', er der en mulighed for, at porten stadig er blokeret. Med tilstanden 'Etableret' er BGP-sessionen blevet konfigureret med succes, og annoncerede ruter vises.

Quagga er nu blevet installeret på din server og burde fungere. I løbet af de første par dage efter annoncering af dit eget IP-rum, bør du overvåge dets funktionalitet for at forhindre, at hele din infrastruktur ikke fungerer.

Det afslutter vores Quagga-tutorial, tak fordi du læste med. For at lære mere om Vultrs Bring Your IP Space-funktion, skal du gå over til BGP-siden .


Installer Plesk på CentOS 7

Installer Plesk på CentOS 7

Bruger du et andet system? Plesk er et proprietært webhost kontrolpanel, der giver brugerne mulighed for at administrere deres personlige og/eller klienters websteder, databaser

Sådan installeres Squid Proxy på CentOS

Sådan installeres Squid Proxy på CentOS

Squid er et populært, gratis Linux-program, der giver dig mulighed for at oprette en webproxy til videresendelse. I denne vejledning vil du se, hvordan du installerer Squid på CentOS for at gøre dig

Sådan installeres Lighttpd (LLMP Stack) på CentOS 6

Sådan installeres Lighttpd (LLMP Stack) på CentOS 6

Introduktion Lighttpd er en forgrening af Apache, der sigter mod at være meget mindre ressourcekrævende. Den er let, deraf navnet, og den er ret enkel at bruge. Installer

Konfiguration af statisk netværk og IPv6 på CentOS 7

Konfiguration af statisk netværk og IPv6 på CentOS 7

VULTR har for nylig foretaget ændringer i deres ende, og alt skulle nu fungere fint ud af boksen med NetworkManager aktiveret. Skulle du ønske at deaktivere

Ændring af Icinga2 til at bruge Master/Client Model på CentOS 6 eller CentOS 7

Ændring af Icinga2 til at bruge Master/Client Model på CentOS 6 eller CentOS 7

Icinga2 er et kraftfuldt overvågningssystem, og når det bruges i en master-klient-model, kan det erstatte behovet for NRPE-baserede overvågningstjek. Mester-klienten

Sådan installeres Apache Cassandra 3.11.x på CentOS 7

Sådan installeres Apache Cassandra 3.11.x på CentOS 7

Bruger du et andet system? Apache Cassandra er et gratis og open source NoSQL-databasestyringssystem, der er designet til at give skalerbarhed, høj

Sådan installeres Microweber på CentOS 7

Sådan installeres Microweber på CentOS 7

Bruger du et andet system? Microweber er en open source træk og slip CMS og online shop. Microweber-kildekoden er hostet på GitHub. Denne guide vil vise dig

Sådan installeres Mattermost 4.1 på CentOS 7

Sådan installeres Mattermost 4.1 på CentOS 7

Bruger du et andet system? Mattermost er et open source, selvhostet alternativ til Slack SAAS-meddelelsestjenesten. Med andre ord, med Mattermost er du ca

Oprettelse af et netværk af Minecraft-servere med BungeeCord på Debian 8, Debian 9 eller CentOS 7

Oprettelse af et netværk af Minecraft-servere med BungeeCord på Debian 8, Debian 9 eller CentOS 7

Hvad skal du bruge En Vultr VPS med mindst 1 GB RAM. SSH-adgang (med root/administrative rettigheder). Trin 1: Installation af BungeeCord Første ting først

Lad os kryptere på Plesk

Lad os kryptere på Plesk

Plesk-kontrolpanelet har en meget flot integration til Lets Encrypt. Lets Encrypt er en af ​​de eneste SSL-udbydere, der udleverer certifikater komplet

Lader kryptere på cPanel

Lader kryptere på cPanel

Lets Encrypt er en certifikatmyndighed dedikeret til at levere SSL-certifikater gratis. cPanel har bygget en pæn integration, så du og din klient

Sådan installeres Concrete5 på CentOS 7

Sådan installeres Concrete5 på CentOS 7

Bruger du et andet system? Concrete5 er et open source CMS, som tilbyder mange karakteristiske og nyttige funktioner til at hjælpe redaktører med at producere indhold nemt og

Sådan installeres Review Board på CentOS 7

Sådan installeres Review Board på CentOS 7

Bruger du et andet system? Review Board er et gratis og open source-værktøj til gennemgang af kildekode, dokumentation, billeder og mange flere. Det er webbaseret software

Konfigurer HTTP-godkendelse med Nginx på CentOS 7

Konfigurer HTTP-godkendelse med Nginx på CentOS 7

I denne vejledning lærer du, hvordan du opsætter HTTP-godkendelse for en Nginx-webserver, der kører på CentOS 7. Krav For at komme i gang skal du bruge

Sådan installeres YOURLS på CentOS 7

Sådan installeres YOURLS på CentOS 7

YOURLS (Your Own URL Shortener) er en open source URL-forkortelse og dataanalyseapplikation. I denne artikel vil vi dække installationsprocessen

Sådan installeres og konfigureres ArangoDB på CentOS 7

Sådan installeres og konfigureres ArangoDB på CentOS 7

Bruger du et andet system? Introduktion ArangoDB er en open source NoSQL-database med en fleksibel datamodel for dokumenter, grafer og nøgleværdier. det er

Brug af Etckeeper til versionskontrol af /etc

Brug af Etckeeper til versionskontrol af /etc

Introduktion /etc/-biblioteket spiller en afgørende rolle i den måde et Linux-system fungerer på. Årsagen til dette er, at næsten alle systemkonfigurationer

Hvorfor skal du bruge SSHFS? Sådan monteres et eksternt filsystem med SSHFS på CentOS 6

Hvorfor skal du bruge SSHFS? Sådan monteres et eksternt filsystem med SSHFS på CentOS 6

Mange systemadministratorer administrerer store mængder servere. Når filer skal tilgås på tværs af forskellige servere, logges ind på hver enkelt individuelt ca

Opsætning af en Half Life 2-server på CentOS 6

Opsætning af en Half Life 2-server på CentOS 6

Denne vejledning vil dække processen med at installere en Half Life 2-spilserver på CentOS 6 System. Trin 1: Installation af forudsætninger For at opsætte ou

Sådan installeres Laravel GitScrum på CentOS 7

Sådan installeres Laravel GitScrum på CentOS 7

Laravel GitScrum eller GitScrum er et open source-produktivitetsværktøj designet til at hjælpe udviklingsteams med at implementere Scrum-metoden på en måde, der ligner t.

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.

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.

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.

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