Configurazione di BGP utilizzando Quagga su Vultr (CentOS 7)

La funzionalità Bring Your IP Space di Vultr consente una libertà senza precedenti nell'assegnare le proprie risorse IP ai server sul cloud Vultr. Si consiglia generalmente di utilizzare BIRD per annunciare il proprio spazio IP. Ci sono alcune solide alternative a BIRD nel caso in cui non sia possibile ottenere qualcosa con BIRD (anche se questo è molto raro) o semplicemente si desidera utilizzare altri software.

A causa del sovraccarico amministrativo e tecnico, scoraggiamo fortemente l'uso di BIRD e Quagga (o qualsiasi altro software del genere) nella stessa infrastruttura e / o rete. Tieni presente che la seguente configurazione ti darebbe uno SPOF, poiché l'istanza che annuncia la tua sottorete sovrapposta non è ridondante. Si noti, tuttavia, che Vultr ha più router BGP in ogni rack.

Sebbene questa guida sia stata scritta pensando a CentOS 7 e testata solo su questa versione di CentOS, molto probabilmente funzionerà anche con versioni precedenti come CentOS 6. Tuttavia, naturalmente scoraggiamo fortemente l'uso di software obsoleti e raccomandiamo caldamente l'aggiornamento a una versione più recente, più recente (e supportata) come CentOS 7.

Non esiste un limite pratico alla quantità di sottoreti o alle loro dimensioni che è possibile annunciare da un'istanza che esegue Quagga (o qualsiasi router BGP per quella materia), sebbene in qualsiasi topologia di rete si dovrebbe avere un qualche tipo di diffusione del rischio. Ciò significa che è necessario creare un'installazione ridondante o annunciare diverse subnet da server diversi seguendo la guida di seguito su più server.

Per seguire questa guida, avrai bisogno di:

  • L'ASN che vuoi / devi usare;
  • Lo spazio IP (sottorete) che si desidera annunciare;
  • BGP attivato nel tuo account Vultr

UCCELLO o Quagga?

Per i principianti, scegliere tra BIRD o Quagga può essere molto difficile. Entrambi sono noti e hanno dimostrato di essere molto stabili e robusti per molti casi d'uso, inclusi ambienti e infrastrutture ad alto traffico in cui l'affidabilità gioca un ruolo chiave. La differenza principale tra BIRD e Quagga è che la configurazione di BIRD è separata dal demone e riconoscibile più orientata verso una struttura simile a un codice.

Ad esempio, con BIRD, se si desidera ottenere un'installazione di failover, utilizzare il blocco seguente nel bird.conffile di configurazione:

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

Come puoi vedere, la configurazione assomiglia in qualche modo a un blocco di codice come apparirebbe con un linguaggio di programmazione. Con Quagga, aggiungere o modificare le impostazioni usando un programma nel demone stesso.

Alla fine dipende principalmente dalle preferenze personali e non c'è un "vincitore" o un software da usare. In generale, BIRD è più facile da installare grazie al suo modo di configurazione facile da imparare ed è ampiamente supportato dalla comunità.

Inoltre, a favore di Quagga, generalmente, in un ambiente di produzione in esecuzione, Quagga è più facile da riconfigurare. Con BIRD, dovresti modificare i file di configurazione appropriati e fare in modo che il demone ricarichi le sue impostazioni. Con Quagga, puoi inserire la sua shell, riconfigurare le impostazioni senza troppo lavoro o confusione. La continuità gioca un ruolo importante qui, ma in pratica il sovraccarico è minimo. Nella maggior parte delle infrastrutture, non sarà necessario riconfigurare troppo queste impostazioni, quindi è probabilmente una buona idea giudicare da altri aspetti del software anziché solo da questi dettagli.

Proprio come BIRD, Quagga è cross-compatibile tra più distribuzioni. Se dovessi mai voler cambiare la distribuzione o le distribuzioni utilizzate per i router, in teoria potresti semplicemente spostarti sulle tue configurazioni e nulla dovrebbe essere cambiato o cambierà.

In questa guida, descriveremo il processo di installazione e configurazione di Quagga. Se vuoi provare anche BIRD, prova a seguire la guida " Configurazione di BGP su Vultr ".

Come accennato, ci sono alcune altre buone alternative là fuori, ma la maggior parte di esse ha alcuni difetti, impedendo loro di essere utilizzati in un ambiente di produzione. Ad esempio, l'implementazione BGP di XORP è relativamente obsoleta, il che generalmente non è un buon inizio per la creazione di una nuova infrastruttura (sebbene la sua implementazione BGP sia stabile).

Rispetto a molte alternative, BIRD ha un footprint di memoria ridotto e non richiede molte risorse. D'altra parte, la rotazione o l'aggiornamento a un'istanza cloud Vultr più potente richiede solo pochi clic dal pannello di controllo Vultr.

IPv4 e IPv6

Vultr supporta l'annuncio dello spazio IP sia IPv4 che IPv6. L'implementazione BGP di Quagga è relativamente aggiornata, consentendo anche la possibilità di annunciare lo spazio IPv6.

Sebbene questa guida abbia lo scopo di annunciare lo spazio IPv4, è possibile utilizzare l'implementazione IPv6 di Quagga e le istruzioni di questo articolo. Tuttavia, ciò non è esplicitamente documentato, quindi fai riferimento a una fonte alternativa per questo.

Nota importante

Per poter sopravvivere senza un router BGP per passare il traffico, il modo migliore per annunciare il tuo spazio IP è il seguente:

  • Annuncia il tuo / 24 (o più grande) da un'istanza Quagga dedicata;
  • Annunciare singoli / 32 (o più grandi) dal traffico delle istanze da instradare a se stessi

In questo modo, avresti una configurazione dell'istanza per annunciare la sottorete sovrapposta per tutti gli IP che dividi in singoli / 32 o più grandi. Usando questo design sei in grado di annunciare rapidamente gli IP e instradare il traffico verso le istanze corrette.

Naturalmente, sei libero di sperimentare diversi approcci per annunciare il tuo spazio IP a tuo piacimento. In teoria l'uso è illimitato e non conosce confini. Si noti che i server Vultr sono autogestiti e non possiamo assistervi per eventuali problemi che potrebbero sorgere. Inoltre, non può far male usare una soluzione supportata da Vultr e dalla comunità, quindi se possono sorgere problemi è possibile individuare rapidamente la loro causa principale.

Passaggio 1: disabilitare SELinux

Raccomandiamo vivamente di disabilitare SELinux al fine di impedirne il funzionamento di Quagga. Abbiamo una guida per disabilitare SELinux, seguitela e tornate a questo tutorial dopo che SELinux è stato disabilitato: Disabilitare SELinux su CentOS 7 .

Passaggio 2: installazione di Quagga

Possiamo procedere installando Quagga usando yum:

yum install quagga

Se ricevi un errore, specialmente su un'istanza appena distribuita, prova:

yum update

Configurare in systemdmodo che Zebra (il demone principale) venga avviato automaticamente all'avvio:

systemctl enable zebra

Infine, avvia Zebra:

systemctl start zebra

Dobbiamo ripetere il processo per BGPd, ​​come segue:

systemctl start bgpd
systemctl enable bgpd

Zebra e BGPd

La quagga è composta da una varietà di demoni che consentono il routing. Poiché utilizzeremo BGP, dovremo utilizzare i demoni Zebra e BGPd. Zebra e BGPd lavorano insieme. Quando uno dei due smette di funzionare, i tuoi percorsi non saranno più pubblicizzati, rendendo effettivamente non disponibile l'intero spazio IP.

Quagga supporta più protocolli di routing, tra cui OSPF e BGP. Il cuore della topologia delle loro implementazioni è Zebra. Zebra è il demone principale, che è un livello che si occupa della comunicazione del kernel UNIX (TCP) con i client Quagga. Sul back-end Zebra presenta l'API Zserv, che consente a questi protocolli di routing di comunicare gli aggiornamenti di routing. Una delle implementazioni con l'API Zserv è BGP.

La versione predefinita utilizzata da Quagga per BGP è BGPv4 +, che include il supporto della famiglia di indirizzi per multicast e IPv6.

Passaggio 3: configurazione del router BGP

Per configurare il router BGP a proprio piacimento, useremo la vtyshshell. Prima di tutto, copia il file di configurazione di esempio BGP:

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

Dopo aver copiato il file, immettere la shell:

vtysh

In alcune versioni precedenti di Quagga potresti trovare una configurazione con AS7675. Non abbiamo bisogno di questo perché entrerà in conflitto solo con la nostra installazione, quindi dobbiamo eliminarlo se esiste. Controlla se questa configurazione esiste nell'installazione di Quagga eseguendo il seguente comando all'interno della shell :

show running-config

Se questo restituisce una stringa con o incluso "router bgp 7675", eliminala eseguendo:

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

Ora dovresti inserire le informazioni BGP fornite da Vultr.

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

Molto probabilmente, è necessaria una password per stabilire la sessione BGP. Inseriscilo:

neighbor NEIGHBORIP password YOURBGPPASSWORD
exit

Infine, se sei sicuro di voler scrivere queste modifiche (applicabile solo se stai lavorando su un'impostazione di produzione), esegui quanto segue per rendere effettive le modifiche:

write

Assicurarsi che le modifiche abbiano avuto esito positivo eseguendo:

show ip bgp summary

Ora avremmo dovuto stabilire con successo una sessione BGP.

Passaggio 4: annuncio dello spazio IP

Sebbene abbiamo stabilito una sessione BGP, non stiamo ancora annunciando route o indirizzi IP, quindi questo non avrà alcun effetto nella pratica. Fortunatamente, impostare lo spazio IP per annunciare è un processo relativamente semplice.

In vtysh, eseguire i seguenti comandi per ottenere questo:

configure terminal
router bgp YOURAS

Ora sei nella configurazione. Assicurati di avere a portata di mano lo spazio IP che desideri annunciare e inseriscilo:

network YOURSUBNET/CIDR

Ad esempio, un input valido sarebbe:

network 185.92.220.0/23

Naturalmente, questo non funzionerà nella tua configurazione specifica poiché lo spazio IP sopra è di proprietà di Vultr. Sostituisci questo e tutto dovrebbe funzionare bene.

Esci e salva le modifiche:

exit
write

Verifica se i prefissi sono stati annunciati correttamente:

show ip bgp neighbors NEIGHBORIP advertised-routes

Tentare di eseguire il ping di un indirizzo IP dalla sottorete e provare a eseguire un traceroute dall'esterno della rete.

Risoluzione dei problemi

Risoluzione dei problemi Quagga è in gran parte al di fuori dell'ambito di questo articolo, ma se riscontri difficoltà potresti sempre tentare di arrestare l'istanza di Quagga e riprovare a annunciare lo spazio IP tramite BIRD per poter escludere una serie di possibili cause.

Quando BGP non funziona correttamente su Quagga e BIRD, è possibile che il firewall non sia stato configurato correttamente. La porta 179 dovrebbe essere aperta. Su CentOS 7, provare a disabilitare temporaneamente il firewall:

systemctl stop firewalld

Se usi iptables, prova:

service iptables stop

Quindi provare a riavviare la sessione BGP. Se si blocca su "Inattivo", "Connetti" o "Attivo" è possibile che la porta sia ancora bloccata. Con lo stato "Stabilito", la sessione BGP è stata impostata correttamente e vengono mostrati i percorsi pubblicizzati.

Quagga è ora installato sul tuo server e dovrebbe funzionare. Durante i primi giorni in cui è stato annunciato il proprio spazio IP, è necessario monitorarne le funzionalità per impedire il mancato funzionamento dell'intera infrastruttura.

Questo conclude il nostro tutorial su Quagga, grazie per aver letto. Per saperne di più sulla funzionalità Bring Your IP Space di Vultr, vai alla pagina BGP .



Leave a Comment

Come installare e configurare CyberPanel sul server CentOS 7

Come installare e configurare CyberPanel sul server CentOS 7

Usi un sistema diverso? Introduzione CyberPanel è uno dei primi pannelli di controllo sul mercato che è sia open source che utilizza OpenLiteSpeed. Che cosa

Come installare e configurare Sensu Monitoring su CentOS 7

Come installare e configurare Sensu Monitoring su CentOS 7

Introduzione Sensu è una soluzione di monitoraggio gratuita e open source che può essere utilizzata per monitorare server, applicazioni e vari servizi di sistema. Sensu i

Come installare OpenMeetings su CentOS 7

Come installare OpenMeetings su CentOS 7

Usi un sistema diverso? Apache OpenMeetings è unapplicazione per conferenze Web open source. È scritto in Java e supporta più server di database. io

Come usare Sudo su Debian, CentOS e FreeBSD

Come usare Sudo su Debian, CentOS e FreeBSD

Luso di un utente sudo per accedere a un server ed eseguire comandi a livello di root è una pratica molto comune tra Linux e Unix Systems Administrator. Luso di un sud

Come installare RabbitMQ su CentOS 7

Come installare RabbitMQ su CentOS 7

Usando un sistema diverso? RabbitMQ è un broker di messaggi open source ampiamente utilizzato scritto nel linguaggio di programmazione Erlang. Come middleware orientato ai messaggi

Installazione di Nginx-RTMP su CentOS 7

Installazione di Nginx-RTMP su CentOS 7

Usi un sistema diverso? RTMP è ottimo per pubblicare contenuti live. Quando RTMP è associato a FFmpeg, i flussi possono essere convertiti in varie qualità. Vultr i

Come installare TaskBoard 0.3.1 su CentOS 7

Come installare TaskBoard 0.3.1 su CentOS 7

TaskBoard è unapp Web di gestione del tempo gratuita e open source. Ispirato da Kanban, TaskBoard può aiutarti a tenere traccia delle cose che devono essere fatte in a

Come installare Gradle su CentOS 7

Come installare Gradle su CentOS 7

Usi un sistema diverso? Gradle è un set di strumenti di automazione di build gratuito e open source basato sui concetti di Apache Ant e Apache Maven. Gradle fornisce

Installa un server FTP con ProFTPd su CentOS 6 o CentOS 7

Installa un server FTP con ProFTPd su CentOS 6 o CentOS 7

Usi un sistema diverso? In questa guida, vedremo come configurare un server FTP (ProFTPd) per trasferire file tra il tuo PC e il tuo server.

Installazione di Netdata su CentOS 7

Installazione di Netdata su CentOS 7

Usando un sistema diverso? Netdata è una stella nascente nel campo del monitoraggio delle metriche di sistema in tempo reale. Rispetto ad altri strumenti dello stesso tipo, Netdata:

Come installare Apache Cassandra 3.11.x su CentOS 7

Come installare Apache Cassandra 3.11.x su CentOS 7

Usi un sistema diverso? Apache Cassandra è un sistema di gestione di database NoSQL gratuito e open source progettato per fornire scalabilità, alta

Come installare Just Cause 2 (JC2-MP) Server su CentOS 7

Come installare Just Cause 2 (JC2-MP) Server su CentOS 7

In questo tutorial imparerai bene come configurare un server multiplayer Just Cause 2. Prerequisiti Assicurarsi che il sistema sia completamente aggiornato prima di iniziare

Come installare Starbound Server su CentOS 7

Come installare Starbound Server su CentOS 7

Usando un sistema diverso? In questo tutorial, spiegherò come impostare un server Starbound su CentOS 7. Prerequisiti Devi possedere questo gioco su di te

Installazione e configurazione di ZNC su CentOS 7

Installazione e configurazione di ZNC su CentOS 7

ZNC è un buttafuori IRC gratuito e open source che rimane permanentemente connesso a una rete in modo che i client possano ricevere messaggi inviati mentre sono offline. Thi

Come installare Django su CentOS 7

Come installare Django su CentOS 7

Django è un popolare framework Python per la scrittura di applicazioni Web. Con Django, puoi creare applicazioni più velocemente, senza reinventare la ruota. Se vuoi

Come impostare lautenticazione a due fattori (2FA) per SSH su CentOS 6 utilizzando Google Authenticator

Come impostare lautenticazione a due fattori (2FA) per SSH su CentOS 6 utilizzando Google Authenticator

Dopo aver modificato la porta SSH, configurato il port knocking e apportato altre modifiche per la sicurezza SSH, cè forse un altro modo per proteggerti

Come installare MyCLI su Linux (CentOS, Debian, Fedora e Ubuntu)

Come installare MyCLI su Linux (CentOS, Debian, Fedora e Ubuntu)

Introduzione MyCLI è un client da riga di comando per MySQL e MariaDB che ti consente di completare automaticamente e ti aiuta con la sintassi dei tuoi comandi SQL. MyCL

Come installare Directus 6.4 CMS su un VPS CentOS 7 LAMP

Come installare Directus 6.4 CMS su un VPS CentOS 7 LAMP

Usi un sistema diverso? Directus 6.4 CMS è un sistema di gestione dei contenuti senza testa (CMS) potente e flessibile, gratuito e open source che fornisce agli sviluppatori

Creare una rete di server Minecraft con BungeeCord su Debian 8, Debian 9 o CentOS 7

Creare una rete di server Minecraft con BungeeCord su Debian 8, Debian 9 o CentOS 7

Cosa ti serve Un VPS Vultr con almeno 1 GB di RAM. Accesso SSH (con privilegi di root / amministrativi). Passaggio 1: installare prima BungeeCord

Come installare MaraDNS su CentOS 6

Come installare MaraDNS su CentOS 6

MaraDNS è un programma server DNS open source leggero ma robusto. Rispetto ad altre applicazioni dello stesso tipo, come ISC BIND, PowerDNS e djbdns

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Lintelligenza artificiale può combattere con un numero crescente di attacchi ransomware?

Gli attacchi ransomware sono in aumento, ma l'intelligenza artificiale può aiutare ad affrontare l'ultimo virus informatico? L'intelligenza artificiale è la risposta? Leggi qui sai è AI boone o bane

ReactOS: è questo il futuro di Windows?

ReactOS: è questo il futuro di Windows?

ReactOS, un sistema operativo open source e gratuito è qui con l'ultima versione. Può essere sufficiente alle esigenze degli utenti Windows moderni e abbattere Microsoft? Scopriamo di più su questo vecchio stile, ma un'esperienza del sistema operativo più recente.

Rimani connesso tramite lapp desktop WhatsApp 24*7

Rimani connesso tramite lapp desktop WhatsApp 24*7

Whatsapp ha finalmente lanciato l'app desktop per utenti Mac e Windows. Ora puoi accedere facilmente a Whatsapp da Windows o Mac. Disponibile per Windows 8+ e Mac OS 10.9+

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

In che modo lintelligenza artificiale può portare lautomazione dei processi al livello successivo?

Leggi questo per sapere come l'intelligenza artificiale sta diventando popolare tra le aziende di piccole dimensioni e come sta aumentando le probabilità di farle crescere e dare un vantaggio ai loro concorrenti.

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Laggiornamento del supplemento macOS Catalina 10.15.4 sta causando più problemi che risolverli

Recentemente Apple ha rilasciato macOS Catalina 10.15.4 un aggiornamento supplementare per risolvere i problemi, ma sembra che l'aggiornamento stia causando più problemi che portano al bricking delle macchine mac. Leggi questo articolo per saperne di più

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per lestrazione dei dati dai Big Data

13 strumenti commerciali per l'estrazione dei dati dai Big Data

Che cosè un file system di journaling e come funziona?

Che cosè un file system di journaling e come funziona?

Il nostro computer memorizza tutti i dati in un modo organizzato noto come file system di journaling. È un metodo efficiente che consente al computer di cercare e visualizzare i file non appena si preme search.https://wethegeek.com/?p=94116&preview=true

Singolarità tecnologica: un lontano futuro della civiltà umana?

Singolarità tecnologica: un lontano futuro della civiltà umana?

Man mano che la scienza si evolve a un ritmo rapido, assumendo gran parte dei nostri sforzi, aumentano anche i rischi di sottoporci a una singolarità inspiegabile. Leggi, cosa potrebbe significare per noi la singolarità.

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Uno sguardo a 26 tecniche di analisi dei Big Data: Parte 1

Limpatto dellintelligenza artificiale nella sanità 2021

Limpatto dellintelligenza artificiale nella sanità 2021

L'intelligenza artificiale nell'assistenza sanitaria ha compiuto grandi passi avanti negli ultimi decenni. Pertanto, il futuro dell'IA in sanità continua a crescere giorno dopo giorno.