Ocell o Quagga?
IPv4 i IPv6
Nota important
Resolució de problemes
La funcionalitat Bring Your IP Space de Vultr permet una llibertat sense precedents per assignar els vostres propis recursos IP als servidors del núvol Vultr. En general, recomanem utilitzar BIRD per anunciar el vostre espai IP. Hi ha algunes alternatives sòlides a BIRD per si no podeu aconseguir alguna cosa amb BIRD (tot i que això és molt rar) o simplement voleu utilitzar un altre programari.
A causa de la sobrecàrrega administrativa i tècnica, desaconsellem l'ús de BIRD i Quagga (o qualsevol altre programari per a aquest cas) a la mateixa infraestructura i/o xarxa. Tingueu en compte que la configuració següent us donaria un SPOF, ja que la instància que anuncia la vostra subxarxa superposada no és redundant. Tanmateix, heu de tenir en compte que Vultr té diversos encaminadors BGP a cada bastidor.
Tot i que aquesta guia s'ha escrit tenint en compte CentOS 7 i només s'ha provat en aquesta versió de CentOS, és probable que també funcioni en versions anteriors com CentOS 6. Tanmateix, naturalment, desaconsellem fermament l'ús de programari obsolet i recomanem l'actualització a una versió més recent i més recent (i compatible), com ara CentOS 7.
No hi ha cap límit pràctic per a la quantitat de subxarxes o la seva mida que podeu anunciar des d'una instància que executi Quagga (o qualsevol encaminador BGP per al cas), encara que en qualsevol topologia de xarxa hauríeu de tenir algun tipus de risc de propagació. Això vol dir que hauríeu de crear una configuració redundant o anunciar diferents subxarxes de diferents servidors seguint la guia següent en diversos servidors.
Per seguir aquesta guia, necessitareu:
- L'ASN que voleu / necessiteu utilitzar;
- L'espai IP (subxarxa) que voleu anunciar;
- BGP activat al vostre compte Vultr
Ocell o Quagga?
Per començar, triar entre BIRD o Quagga pot ser molt difícil. Tots dos són coneguts i han demostrat ser molt estables i robusts per a molts casos d'ús, inclosos entorns de gran trànsit i infraestructures on la fiabilitat juga un paper clau. La diferència principal entre BIRD i Quagga és que la configuració de BIRD està separada del dimoni i es pot discernir més dirigida a una estructura semblant a un codi.
Per exemple, amb BIRD, si voleu aconseguir una configuració de failover, utilitzareu el bloc següent al bird.conffitxer de configuració:
export filter {
bgp_path.prepend(asnumber);
accept;
};
Com podeu veure, la configuració sembla una mica un bloc de codi tal com apareixeria amb un llenguatge de programació. Amb Quagga, afegiríeu o alteraríeu la configuració utilitzant un programa al mateix dimoni.
Al final, principalment es redueix a les preferències personals i no hi ha cap "guanyador" ni programari que hàgiu d'utilitzar. En general, BIRD és més fàcil de configurar a causa de la seva forma de configuració fàcil d'aprendre i és àmpliament recolzat per la comunitat.
A més, a favor de Quagga, generalment, en un entorn de producció en execució, Quagga és més fàcil de reconfigurar. Amb BIRD, haureu d'editar els fitxers de configuració adequats i fer que el dimoni torni a carregar la seva configuració. Amb Quagga, podeu entrar al seu intèrpret d'ordres, reconfigurar els paràmetres sense massa feina o enrenou. La continuïtat juga un paper important aquí, però a la pràctica, la sobrecàrrega és mínima. A la majoria d'infraestructures, no haureu de reconfigurar massa aquests paràmetres, així que probablement sigui una bona idea jutjar per altres aspectes del programari en lloc d'aquest detall només.
Igual que BIRD, Quagga és compatible amb diverses distribucions. Si mai voleu canviar la distribució o les distribucions utilitzades per als encaminadors, en teoria només podríeu passar per les vostres configuracions i no s'hauria de canviar ni canviarà res.
En aquesta guia, descriurem el procés d'instal·lació i configuració de Quagga. En cas que també vulgueu provar BIRD, proveu de seguir la guia " Configuració de BGP a Vultr ".
Com s'ha esmentat, hi ha algunes bones alternatives, però la major part d'aquestes tenen alguns defectes, que impedeixen que s'utilitzin en un entorn de producció. Per exemple, la implementació BGP de XORP està relativament obsoleta, cosa que generalment no és un bon començament per configurar una infraestructura totalment nova (tot i que la seva implementació BGP és estable).
En comparació amb moltes alternatives, BIRD té una empremta de memòria baixa i no consumeix gaire recursos. D'altra banda, augmentar o actualitzar a una instància de núvol Vultr més potent només requereix uns quants clics des del tauler de control de Vultr.
IPv4 i IPv6
Vultr admet l'anunci d'espai IPv4 i IPv6. La implementació de BGP de Quagga està relativament actualitzada, permetent també la possibilitat d'anunciar espai IPv6.
Tot i que aquesta guia té com a objectiu anunciar l'espai IPv4, podeu utilitzar la implementació IPv6 de Quagga i fer servir les instruccions d'aquest article. Tanmateix, això no està documentat explícitament, així que consulteu una font alternativa per a això.
Nota important
Per poder sobreviure sense un encaminador BGP per passar el trànsit, la millor manera d'anunciar el vostre espai IP és la següent:
- Anuncia el teu /24 (o més gran) des d'una instància Quagga dedicada;
- Anunciar /32 individuals (o més grans) dels casos en què el trànsit s'hauria d'encaminar cap a ells mateixos
D'aquesta manera, tindreu una configuració d'instància per anunciar la subxarxa solapada per a totes les IP que inclogueu en /32 individuals o més grans. Amb aquest disseny, podeu anunciar ràpidament les IP i dirigir el trànsit a les instàncies correctes.
Naturalment, podeu experimentar amb diversos enfocaments per anunciar el vostre espai IP al vostre gust. En teoria l'ús és il·limitat i no coneix límits. Tingueu en compte que els servidors de Vultr són autogestionats i no us podem ajudar amb cap problema que pugui sorgir. A part, no pot fer mal utilitzar una solució compatible amb Vultr i la comunitat, de manera que si pot sorgir algun problema, podeu identificar-ne la causa arrel ràpidament.
Pas 1: desactivació de SELinux
Recomanem molt desactivar SELinux per evitar que deixi de funcionar Quagga. Tenim una guia per desactivar SELinux, si us plau, seguiu-la i torneu a aquest tutorial després que SELinux s'hagi desactivat: Desactivació de SELinux a CentOS 7 .
Pas 2: instal·lació de Quagga
Podem procedir instal·lant Quagga mitjançant yum:
yum install quagga
Si obteniu un error, especialment en una instància recentment desplegada, proveu:
yum update
Configureu systemdperquè Zebra (el dimoni principal) s'iniciï automàticament a l'arrencada:
systemctl enable zebra
Finalment, inicieu Zebra:
systemctl start zebra
Hem de repetir el procés per a BGPd, de la següent manera:
systemctl start bgpd
systemctl enable bgpd
Zebra i BGPd
Quagga consta d'una varietat de dimonis que permeten l'encaminament. Com que farem ús de BGP, haurem d'utilitzar els dimonis Zebra i BGPd. Zebra i BGPd treballen junts. Quan qualsevol d'ells deixi de funcionar, les vostres rutes ja no s'anunciaran, la qual cosa farà que tot el vostre espai IP no estigui disponible.
Quagga admet múltiples protocols d'encaminament, entre d'altres OSPF i BGP. El nucli de la topologia de les seves implementacions és Zebra. Zebra és el dimoni principal, que és una capa que s'encarrega de la comunicació del nucli UNIX (TCP) amb els clients Quagga. Al fons, Zebra presenta l'API Zserv, que permet que aquests protocols d'encaminament comuniquin les actualitzacions d'encaminament. Una de les implementacions amb l'API Zserv és BGP.
La versió predeterminada que utilitza Quagga per a BGP és BGPv4+, que inclou suport per a famílies d'adreces per a multicast i IPv6.
Pas 3: Configuració de l'encaminador BGP
Per configurar l'encaminador BGP al vostre gust, farem servir l' vtyshintèrpret d'ordres. En primer lloc, copieu el fitxer de configuració BGP de mostra:
cp /usr/share/doc/quagga-*/bgpd.conf.sample /etc/quagga/bgpd.conf
Després de copiar el fitxer, introduïu el shell:
vtysh
En algunes versions anteriors de Quagga, és possible que trobeu una configuració amb AS7675. No ho necessitem, ja que només entrarà en conflicte amb la nostra configuració, així que hem de suprimir-lo si existeix. Comproveu si aquesta configuració existeix a la vostra instal·lació de Quagga executant l'ordre següent dins del shell :
show running-config
Si això retorna una cadena amb o inclosa "router bgp 7675", suprimiu-la executant:
configure terminal
no router bgp 7675
router bgp YOURAS
no auto-summary
no synchronization
Ara hauríeu d'introduir la informació BGP que us ha proporcionat Vultr.
neighbor NEIGHBORIP remote-as VULTRAS
neighbor NEIGHBORIP description "Vultr"
El més probable és que necessiteu una contrasenya per establir la sessió BGP. Introduïu-lo:
neighbor NEIGHBORIP password YOURBGPPASSWORD
exit
Finalment, si esteu segur que voleu escriure aquests canvis (només aplicables si esteu treballant en una configuració de producció), executeu el següent perquè els canvis tinguin efecte:
write
Assegureu-vos que els canvis han tingut èxit executant:
show ip bgp summary
Ara hauríem d'haver establert correctament una sessió BGP.
Pas 4: anunciant el vostre espai IP
Tot i que hem establert una sessió BGP, encara no anunciem cap ruta ni adreça IP, de manera que això no tindrà cap efecte a la pràctica. Afortunadament, configurar l'espai IP per anunciar és un procés relativament fàcil.
A vtysh, executeu les ordres següents per aconseguir-ho:
configure terminal
router bgp YOURAS
Ara esteu a la configuració. Assegureu-vos de tenir a mà l'espai IP que voleu anunciar i introduïu-lo:
network YOURSUBNET/CIDR
Per exemple, una entrada vàlida seria:
network 185.92.220.0/23
Naturalment, això no funcionarà a la vostra configuració específica, ja que l'espai IP anterior és propietat de Vultr. Substituïu-ho i tot hauria de funcionar bé.
Sortiu i deseu els canvis:
exit
write
Comproveu si els vostres prefixos s'han anunciat correctament:
show ip bgp neighbors NEIGHBORIP advertised-routes
Intenteu fer ping a una adreça IP des de la subxarxa i proveu de fer un seguiment des de fora de la xarxa.
Resolució de problemes
La resolució de problemes de Quagga està fora de l'abast d'aquest article, però si teniu dificultats, sempre podeu intentar aturar la vostra instància de Quagga i tornar a provar d'anunciar l'espai IP mitjançant BIRD per poder excloure una sèrie de possibles causes.
Quan BGP no funciona correctament a Quagga com a BIRD, hi ha la possibilitat que el vostre tallafoc no s'hagi configurat correctament. El port 179 hauria d'estar obert. A CentOS 7, intenteu desactivar temporalment el tallafoc:
systemctl stop firewalld
Si utilitzeu iptables, proveu:
service iptables stop
A continuació, intenteu tornar a iniciar la sessió BGP. Si es penja a "Idle", "Connect" o "Active", hi ha la possibilitat que el port encara estigui bloquejat. Amb l'estat "establert", la sessió BGP s'ha configurat correctament i es mostren les rutes anunciades.
Quagga s'ha instal·lat al vostre servidor i hauria de funcionar. Durant els primers dies d'anunciar el vostre propi espai IP, hauríeu de supervisar-ne la funcionalitat per evitar que tota la vostra infraestructura no funcioni.
Amb això conclou el nostre tutorial de Quagga, gràcies per llegir-lo. Per obtenir més informació sobre la funció Bring Your IP Space de Vultr, aneu a la pàgina BGP .