Konfigurera BGP med Quagga på Vultr (CentOS 7)

Vultrs Bring Your IP Space- funktion ger oöverträffad frihet att tilldela dina egna IP-resurser till servrar på Vultr-molnet. Vi rekommenderar generellt att du använder BIRD för att meddela ditt IP-utrymme. Det finns några solida alternativ till BIRD om du inte kan uppnå något med BIRD (även om detta är mycket sällsynt) eller om du helt enkelt vill använda annan programvara.

På grund av administrativa och tekniska omkostnader avråder vi starkt från att använda BIRD och Quagga (eller någon annan programvara för den delen) i samma infrastruktur och/eller nätverk. Tänk på att följande konfiguration skulle ge dig en SPOF, eftersom instansen som tillkännager ditt överlappande subnät inte är redundant. Du bör dock notera att Vultr har flera BGP-routrar i varje rack.

Även om den här guiden har skrivits med CentOS 7 i åtanke, och endast testats på den här CentOS-versionen, kommer den med största sannolikhet också att fungera på äldre versioner som CentOS 6. Men naturligtvis avråder vi starkt från användning av föråldrad programvara och vi rekommenderar starkt att du uppdaterar till en nyare, nyare (och stöds) version som CentOS 7.

Det finns ingen praktisk gräns för antalet subnät eller deras storlek du kan meddela från en instans som kör Quagga (eller någon BGP-router för den delen), även om du i vilken nätverkstopologi som helst bör ha någon form av riskspridning. Det betyder att du bör skapa antingen en redundant installation eller meddela olika subnät från olika servrar genom att följa guiden nedan på flera servrar.

För att följa den här guiden behöver du:

  • ASN du vill/behöver använda;
  • IP-utrymmet (undernätet) du vill meddela;
  • BGP aktiverat i ditt Vultr-konto

BIRD eller Quagga?

Till att börja med kan det vara väldigt svårt att välja mellan antingen BIRD eller Quagga. Båda är välkända och har visat sig vara mycket stabila och robusta för många användningsfall, inklusive högtrafikerade miljöer och infrastrukturer där tillförlitlighet spelar en nyckelroll. Huvudskillnaden mellan BIRD och Quagga är att BIRD:s konfiguration är separerad från demonen och urskiljbar mer riktad mot en kodliknande struktur.

Till exempel, med BIRD, om du vill uppnå en failover-inställning använder du följande block i bird.confkonfigurationsfilen:

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

Som du kan se ser konfigurationen något ut som ett kodblock som det skulle se ut med ett programmeringsspråk. Med Quagga skulle du lägga till eller ändra inställningar med hjälp av ett program i själva demonen.

I slutändan beror det mest på personliga preferenser och det finns ingen "vinnare" eller programvara du bör använda. I allmänhet är BIRD enklare att konfigurera på grund av dess lättlästa sätt att konfigurera och det stöds brett av samhället.

Dessutom, till förmån för Quagga, i allmänhet, i en pågående produktionsmiljö, är Quagga lättare att konfigurera om. Med BIRD skulle du behöva redigera lämpliga konfigurationsfiler och låta demonen ladda om sina inställningar. Med Quagga kan du gå in i dess skal, konfigurera om inställningarna utan alltför mycket extra arbete eller krångel. Kontinuiteten spelar här stor roll, men i praktiken är omkostnaderna minimala. I de flesta infrastrukturer behöver du inte konfigurera om dessa inställningar för mycket, så det är förmodligen en bra idé att bedöma efter andra aspekter av programvaran istället för endast denna detalj.

Precis som BIRD är Quagga korskompatibel över flera distributioner. Om du någonsin skulle vilja ändra distributionen/distributionerna som används för routrarna, kan du i teorin helt enkelt flytta över dina konfigurationer och ingenting skulle behöva ändras eller kommer att ändras.

I den här guiden kommer vi att beskriva processen för att installera och konfigurera Quagga. Om du också vill prova BIRD, försök att följa guiden " Konfigurera BGP på Vultr ".

Som nämnts finns det några bra andra alternativ där ute, men den största delen av dem har några brister, vilket hindrar dem från att användas i en produktionsmiljö. Till exempel är XORP:s BGP-implementering relativt föråldrad, vilket i allmänhet inte är en bra början för att sätta upp en helt ny infrastruktur (även om dess BGP-implementering är stabil).

Jämfört med många alternativ har BIRD ett lågt minnesfotavtryck och är inte särskilt resurskrävande. Å andra sidan, att snurra upp eller uppgradera till en kraftfullare Vultr-molninstans tar bara några få klick från Vultr-kontrollpanelen.

IPv4 och IPv6

Vultr stöder annonsering av både IPv4 och IPv6 IP-utrymme. Quaggas BGP-implementering är relativt uppdaterad, vilket gör det möjligt att även annonsera IPv6-utrymme.

Även om den här guiden syftar till att tillkännage IPv4-utrymme, kan du använda Quaggas IPv6-implementering och använda den här artikelns instruktioner. Detta är dock inte explicit dokumenterat, så hänvisa till en alternativ källa för detta.

Viktig notering

För att kunna överleva utan en BGP-router för att passera trafik, är det bästa sättet att meddela ditt IP-utrymme enligt följande:

  • Meddela din /24 (eller större) från en dedikerad Quagga-instans;
  • Meddela enskilda /32:or (eller större) från de tillfällen som trafik ska dirigeras till dem själva

På så sätt skulle du ha en instansinställning för att meddela det överlappande subnätet för alla IP-adresser du bryter in i individuella /32:s eller större. Med denna design kan du snabbt meddela IP:er och dirigera trafik till rätt instanser.

Naturligtvis är du fri att experimentera med flera metoder för att tillkännage ditt IP-utrymme som du vill. I teorin är användningen obegränsad och känner inga gränser. Observera att Vultrs servrar är självhanterade och vi kan inte hjälpa dig med några problem som kan uppstå. Bortsett från det kan det inte skada att använda en lösning som stöds av Vultr och communityn, så om några problem kan uppstå kan du snabbt fastställa deras grundorsak.

Steg 1: Inaktivera SELinux

Vi rekommenderar starkt att du inaktiverar SELinux för att förhindra att det stoppar Quagga från att fungera. Vi har en guide för att inaktivera SELinux, följ den och gå tillbaka till den här handledningen efter att SELinux har inaktiverats: Inaktivera SELinux på CentOS 7 .

Steg 2: Installera Quagga

Vi kan fortsätta genom att installera Quagga med yum:

yum install quagga

Om du får ett fel, särskilt på en nyligen distribuerad instans, försök:

yum update

Konfigurera systemdså att Zebra (kärndemonen) startas automatiskt vid uppstart:

systemctl enable zebra

Slutligen, starta Zebra:

systemctl start zebra

Vi måste upprepa processen för BGPd, ​​enligt följande:

systemctl start bgpd
systemctl enable bgpd

Zebra och BGPd

Quagga består av en mängd olika demoner som tillåter routing. Eftersom vi kommer att använda oss av BGP kommer vi att behöva använda Zebra och BGPd deamoner. Zebra och BGPd arbetar tillsammans. När någon av dem slutar fungera kommer dina rutter inte att annonseras längre, vilket i praktiken gör hela ditt IP-utrymme otillgängligt.

Quagga stöder flera routingprotokoll, bland annat OSPF och BGP. Kärnan i topologin för deras implementeringar är Zebra. Zebra är kärndemonen, som är ett lager som tar hand om UNIX-kärnans kommunikation (TCP) med Quagga-klienter. På baksidan presenterar Zebra Zserv API, som tillåter dessa routingprotokoll att kommunicera routinguppdateringar. En av implementeringarna med Zserv API är BGP.

Standardversionen som används av Quagga för BGP är BGPv4+, som inkluderar adressfamiljsstöd för multicast och IPv6.

Steg 3: Konfigurera BGP-routern

För att konfigurera BGP-routern efter din smak kommer vi att använda vtyshskalet. Först och främst, kopiera BGP-exemplets konfigurationsfil:

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

När filen har kopierats anger du skalet:

vtysh

I vissa äldre Quagga-versioner kan du hitta en installation med AS7675. Vi behöver inte detta eftersom det bara kommer i konflikt med vår inställning, så vi måste ta bort det om det finns. Kontrollera om den här konfigurationen finns i din Quagga-installation genom att utföra följande kommando inuti skalet :

show running-config

Om detta returnerar en sträng med eller inklusive "router bgp 7675", radera den genom att köra:

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

Du bör nu ange BGP-informationen som Vultr har försett dig med.

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

Troligtvis behöver du ett lösenord för att upprätta BGP-sessionen. Ange det:

neighbor NEIGHBORIP password YOURBGPPASSWORD
exit

Slutligen, om du är säker på att du vill skriva dessa ändringar (endast tillämpligt om du arbetar med en produktionsinställning), utför följande för att låta ändringarna träda i kraft:

write

Se till att ändringarna lyckades genom att utföra:

show ip bgp summary

Vi borde nu framgångsrikt ha etablerat en BGP-session.

Steg 4: Tillkännage ditt IP-utrymme

Även om vi har etablerat en BGP-session, tillkännager vi inga rutter eller IP-adresser än, så detta kommer inte att ha någon effekt i praktiken. Lyckligtvis är det en relativt enkel process att ställa in IP-utrymmet för att annonsera.

I vtysh, kör följande kommandon för att uppnå detta:

configure terminal
router bgp YOURAS

Du är nu i konfigurationen. Se till att ha det IP-utrymme du vill meddela till hands och ange det:

network YOURSUBNET/CIDR

Till exempel skulle giltig inmatning vara:

network 185.92.220.0/23

Naturligtvis kommer detta inte att fungera i din specifika installation eftersom ovanstående IP-utrymme ägs av Vultr. Byt ut detta och allt borde fungera bra.

Avsluta och spara ändringarna:

exit
write

Kontrollera om dina prefix har tillkännages framgångsrikt:

show ip bgp neighbors NEIGHBORIP advertised-routes

Försök att pinga en IP-adress från undernätet och försök utföra en spårning utanför nätverket.

Felsökning

Felsökning Quagga ligger till stor del utanför ramen för den här artikeln, men om du har problem kan du alltid försöka stoppa din Quagga-instans och försöka meddela IP-utrymmet igen via BIRD för att kunna utesluta ett antal möjliga orsaker.

När BGP inte fungerar korrekt på Quagga såväl som BIRD, finns det en chans att din brandvägg inte har konfigurerats korrekt. Port 179 bör vara öppen. På CentOS 7, försök att tillfälligt inaktivera brandväggen:

systemctl stop firewalld

Om du använder iptables, försök:

service iptables stop

Försök sedan starta BGP-sessionen igen. Om det hänger på "Idle", "Connect" eller "Active" finns det en möjlighet att porten fortfarande är blockerad. Med tillståndet "Established" har BGP-sessionen konfigurerats och annonserade rutter visas.

Quagga har nu installerats på din server och borde fungera. Under de första dagarna efter att du tillkännager ditt eget IP-utrymme bör du övervaka dess funktionalitet för att förhindra att hela din infrastruktur inte fungerar.

Det avslutar vår Quagga-tutorial, tack för att du läser. För att lära dig mer om Vultrs Bring Your IP Space-funktion, gå till BGP-sidan .


Installera Plesk på CentOS 7

Installera Plesk på CentOS 7

Använder du ett annat system? Plesk är en egen kontrollpanel för webbhotell som tillåter användare att administrera sina personliga och/eller klienters webbplatser, databaser

Hur man installerar Squid Proxy på CentOS

Hur man installerar Squid Proxy på CentOS

Squid är ett populärt, gratis Linux-program som låter dig skapa en webbproxy för vidarebefordran. I den här guiden ser du hur du installerar Squid på CentOS för att förvandla dig

Hur man installerar Lighttpd (LLMP Stack) på CentOS 6

Hur man installerar Lighttpd (LLMP Stack) på CentOS 6

Inledning Lighttpd är en apachegaffel som syftar till att vara mycket mindre resurskrävande. Den är lätt, därav namnet, och är ganska enkel att använda. Installera

Konfigurera statiskt nätverk och IPv6 på CentOS 7

Konfigurera statiskt nätverk och IPv6 på CentOS 7

VULTR har nyligen gjort ändringar på deras sida, och allt borde nu fungera bra direkt när NetworkManager är aktiverat. Om du vill inaktivera

Ändra Icinga2 för att använda Master/Client Model på CentOS 6 eller CentOS 7

Ändra Icinga2 för att använda Master/Client Model på CentOS 6 eller CentOS 7

Icinga2 är ett kraftfullt övervakningssystem, och när det används i en master-klient-modell kan det ersätta behovet av NRPE-baserade övervakningskontroller. Master-klienten

Hur man installerar Apache Cassandra 3.11.x på CentOS 7

Hur man installerar Apache Cassandra 3.11.x på CentOS 7

Använder du ett annat system? Apache Cassandra är ett gratis NoSQL-databashanteringssystem med öppen källkod som är designat för att ge skalbarhet, hög

Hur man installerar Microweber på CentOS 7

Hur man installerar Microweber på CentOS 7

Använder du ett annat system? Microweber är en öppen källkod för dra och släpp CMS och onlinebutik. Microweber källkod finns på GitHub. Denna guide kommer att visa dig

Hur man installerar Vanilla Forum på CentOS 7

Hur man installerar Vanilla Forum på CentOS 7

Använder du ett annat system? Vanilla forum är en open source forumapplikation skriven i PHP. Det är en helt anpassningsbar, enkel att använda och stöder externa

Hur man installerar Mattermost 4.1 på CentOS 7

Hur man installerar Mattermost 4.1 på CentOS 7

Använder du ett annat system? Mattermost är ett alternativ med öppen källkod, självvärd till meddelandetjänsten Slack SAAS. Med andra ord, med Mattermost, du ca

Skapa ett nätverk av Minecraft-servrar med BungeeCord på Debian 8, Debian 9 eller CentOS 7

Skapa ett nätverk av Minecraft-servrar med BungeeCord på Debian 8, Debian 9 eller CentOS 7

Vad du behöver En Vultr VPS med minst 1 GB RAM. SSH-åtkomst (med root-/administrativa privilegier). Steg 1: Installera BungeeCord Först till kvarn

Låt oss kryptera på Plesk

Låt oss kryptera på Plesk

Plesks kontrollpanel har en mycket trevlig integration för Lets Encrypt. Lets Encrypt är en av de enda SSL-leverantörerna som ger ut certifikat fullständigt

Låter kryptera på cPanel

Låter kryptera på cPanel

Lets Encrypt är en certifikatmyndighet dedikerad till att tillhandahålla SSL-certifikat gratis. cPanel har byggt en snygg integration så att du och din klient

Hur man installerar Concrete5 på CentOS 7

Hur man installerar Concrete5 på CentOS 7

Använder du ett annat system? Concrete5 är ett CMS med öppen källkod som erbjuder många distinkta och användbara funktioner för att hjälpa redaktörer att producera innehåll enkelt och

Hur man installerar Review Board på CentOS 7

Hur man installerar Review Board på CentOS 7

Använder du ett annat system? Review Board är ett gratis och öppen källkodsverktyg för att granska källkod, dokumentation, bilder och många fler. Det är webbaserad mjukvara

Ställ in HTTP-autentisering med Nginx på CentOS 7

Ställ in HTTP-autentisering med Nginx på CentOS 7

I den här guiden lär du dig hur du ställer in HTTP-autentisering för en Nginx-webbserver som körs på CentOS 7. Krav För att komma igång behöver du

Hur man installerar YOURLS på CentOS 7

Hur man installerar YOURLS på CentOS 7

YOURLS (Your Own URL Shortener) är ett webbadressförkortnings- och dataanalysprogram med öppen källkod. I den här artikeln kommer vi att täcka installationsprocessen

Hur man installerar och konfigurerar ArangoDB på CentOS 7

Hur man installerar och konfigurerar ArangoDB på CentOS 7

Använder du ett annat system? Inledning ArangoDB är en NoSQL-databas med öppen källkod med en flexibel datamodell för dokument, grafer och nyckel-värden. Det är

Använda Etckeeper för versionskontroll av /etc

Använda Etckeeper för versionskontroll av /etc

Inledning Katalogen /etc/ spelar en avgörande roll för hur ett Linux-system fungerar. Anledningen till detta är att nästan varje systemkonfiguration

Varför ska du använda SSHFS? Hur man monterar ett fjärrfilsystem med SSHFS på CentOS 6

Varför ska du använda SSHFS? Hur man monterar ett fjärrfilsystem med SSHFS på CentOS 6

Många systemadministratörer hanterar stora mängder servrar. När filer behöver nås över olika servrar, logga in på var och en individuellt ca

Konfigurera en Half Life 2-server på CentOS 6

Konfigurera en Half Life 2-server på CentOS 6

Denna handledning kommer att täcka processen att installera en Half Life 2-spelserver på CentOS 6 System. Steg 1: Installera förutsättningarna För att ställa in ou

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.

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.

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.

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