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 .

Lascia un commento

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.