Configuració
Configuració IP
Configuració BIRD
Verifiqueu la connectivitat BGP
Prova
Ús de producció
Configuració IPv6
Vultr us permet combinar dues de les nostres funcions (IP flotants i BGP) per aconseguir una alta disponibilitat.
Configuració
Necessitareu dues instàncies a la mateixa ubicació i una IP flotant. També haureu d'obrir un bitllet per sol·licitar la configuració de BGP en un ASN privat per a IP flotants. (També podeu utilitzar aquesta funció si feu servir BGP amb nosaltres en un ASN públic)
També necessitareu un dimoni BGP, us recomanem BIRD. BIRD normalment està disponible mitjançant el gestor de paquets del vostre sistema operatiu.
Utilitzarem 192.0.2.10/32com a exemple la IP flotant i 198.51.100.99l'adreça IP d'una de les nostres instàncies.
Nota: no hauríeu d' adjuntar l'IP flotant a cap instància concreta mitjançant el vostre tauler de control. Si s'adjunta una IP mitjançant el tauler de control, l'alta disponibilitat no funcionarà correctament.
Configuració IP
Utilitzarem una interfície "dummy" de Linux per vincular l'adreça IP. Podeu crear-ho amb les ordres següents:
ip link add dev dummy1 type dummy
ip link set dummy1 up
ip addr add dev dummy1 192.0.2.10/32
Confirmeu que s'ha configurat correctament:
# ip addr show dev dummy1
5: dummy1: <BROADCAST,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
link/ether ba:23:57:2c:ad:bc brd ff:ff:ff:ff:ff:ff
inet 192.0.2.10/32 scope global dummy1
Configuració BIRD
A continuació, configurarem BIRD. Aquestes instruccions varien lleugerament entre els sistemes operatius de l'amfitrió; consulteu les notes al peu de pàgina al final d'aquesta secció.
Crea un /etc/bird.conffitxer:
log "/var/log/bird" all;
router id 198.51.100.99;
protocol device
{
scan time 60;
}
protocol direct
{
interface "dummy1";
}
protocol bgp vultr
{
local as <<YOURAS>>;
source address 198.51.100.99;
import none;
export all;
graceful restart on;
next hop self;
multihop 2;
neighbor 169.254.169.254 as 64515;
password "<<YOURPASSWORD>>";
}
Haureu d'actualitzar YOURASi YOURPASSWORDamb el número AS i la contrasenya BGP assignats al vostre compte. Aquesta informació es pot trobar a la pestanya BGP d'una pàgina d'instància al tauler de control de Vultr .
Aquest fitxer de configuració dirà a BIRD que busqui la interfície dummy1 i anunciï qualsevol IP que trobi a la nostra infraestructura mitjançant BGP. Això vol dir que tan bon punt s'executi la vostra instància, començareu a rebre trànsit i, si alguna vegada es bloqueja, el trànsit s'aturarà.
Configuració de FreeBSD
Si utilitzeu FreeBSD com a host en lloc de Linux, hi ha algunes diferències.
El nucli s'ha de recompilar per al suport de signatura TCP MD5. Aquestes instruccions estan fora de l'abast d'aquest article. Si el vostre nucli BSD no admet signatures TCP MD5, veureu la següent sortida al registre BIRD.
$ cat /var/log/bird
2017-12-15 01:35:00 <INFO> Started
2017-12-15 01:35:00 <ERR> vultr: Socket error: Kernel does not support TCP MD5 signatures
El fitxer de configuració BIRD es troba a /usr/local/etc/bird.confBSD.
Verifiqueu la connectivitat BGP
Inicieu el servei BIRD service bird starti espereu uns segons. Comproveu que la sessió BGP s'ha establert:
# birdc show proto all vultr
BIRD 1.5.0 ready.
name proto table state since info
vultr BGP master up 2016-01-15 Established
Preference: 100
Input filter: REJECT
Output filter: ACCEPT
Routes: 0 imported, 1 exported, 0 preferred
Route change stats: received rejected filtered ignored accepted
Import updates: 255919581 0 255919581 0 0
Import withdraws: 1905513 0 --- 257825094 0
Export updates: 1 0 0 --- 1
Export withdraws: 0 --- --- --- 0
BGP state: Established
Neighbor address: 169.254.169.254
Neighbor AS: YOURAS
Neighbor ID: x.x.x.x (Host IP)
Neighbor caps: refresh enhanced-refresh restart-able AS4
Session: external multihop AS4
Source address: 198.51.100.99
Hold timer: 184/240
Keepalive timer: 30/80
Si tot funciona correctament, hauríeu de veure "Establit" al costat de l'estat BGP. Un problema comú aquí és tenir un tallafoc que bloqueja el port BGP (TCP 179). A més, si aquesta instància es va desplegar abans que Vultr configurés la vostra sessió BGP, caldrà reiniciar-la mitjançant el tauler de control abans que BGP estigui disponible. Si encara teniu problemes, consulteu /var/log/bird-ne més detalls.
Prova
Podeu assegurar-vos que BIRD anunciï la ruta a la vostra IP flotant amb el següent:
# birdc show route
BIRD 1.5.0 ready.
192.0.2.10/32 dev dummy1 [direct1 2015-12-29] * (240)
Per confirmar que funciona correctament, podeu desactivar la interfície dummy1 (amb ip link set dummy1 down) i repetir l' show routeordre. BIRD haurà notat que la interfície ha desaparegut i retirarà la ruta.
Ús de producció
Per assegurar-vos que el vostre lloc continuï activat, voldreu que més d'un servidor executi la mateixa configuració BGP. Si alguna de les instàncies baixa, el trànsit es redirigiria dinàmicament a una de les altres instàncies. No hi ha límit en el nombre d'instàncies que podeu executar amb aquesta configuració en una ubicació concreta, però només una d'elles estarà activa en un moment donat.
En algunes de les nostres ubicacions, el trànsit es distribuirà aleatòriament entre qualsevol instància que hàgiu configurat d'aquesta manera. Finalment, totes les ubicacions es configuraran d'aquesta manera. Si voleu que una instància obtingui tot el trànsit tret que estigui fora de línia, us recomanem que utilitzeu els antecedents per dirigir el trànsit.
Per exemple, si teniu dos casos:
- Instància A - instància principal, hauria de rebre tot el trànsit amb normalitat
- Instància B: instància de còpia de seguretat, només hauria de rebre trànsit si la instància A està baixa
Per aconseguir-ho, afegiu la secció següent a la vostra configuració BIRD a la instància B de la següent manera:
export filter {
bgp_path.prepend(YOURAS);
accept;
};
Això garantiria que el trànsit sempre anirà a la instància A, tret que estigui baixa.
Si teniu una instància C, que només hauria de rebre trànsit quan A i B estan caigudes, només podeu afegir una altra línia 'bgp_path.prepend' per aconseguir-ho.
Configuració IPv6
Aquest procés també funcionarà amb subxarxes reservades IPv6, tot i que utilitzareu "bird6" en lloc de "bird" i "birdc6" en comptes de "birdc".