Postaviti
IP konfiguracija
Konfiguracija BIRD
Provjerite BGP povezanost
Testiranje
Upotreba u proizvodnji
Postavljanje IPv6
Vultr vam omogućuje kombiniranje dvije naše značajke (plutajući IP-ovi i BGP) kako biste postigli visoku dostupnost.
Postaviti
Trebat će vam dvije instance na istoj lokaciji i plutajući IP. Također ćete morati otvoriti ulaznicu koja zahtijeva postavljanje BGP-a na privatni ASN za plutajuće IP adrese. (Ovu značajku možete koristiti i ako s nama koristite BGP na javnom ASN-u)
Trebat će vam i BGP demon, preporučujemo BIRD. BIRD je obično dostupan putem upravitelja paketa vašeg operacijskog sustava.
Koristit ćemo 192.0.2.10/32kao naš primjer plutajuću 198.51.100.99IP adresu i kao IP adresu jedne od naših instanci.
Napomena: plutajuću IP adresu ne biste trebali priložiti ni jednoj određenoj instanci putem svoje upravljačke ploče. Ako je IP povezan putem upravljačke ploče, visoka dostupnost neće ispravno funkcionirati.
IP konfiguracija
Koristit ćemo Linux "dummy" sučelje za povezivanje IP adrese. To možete stvoriti pomoću sljedećih naredbi:
ip link add dev dummy1 type dummy
ip link set dummy1 up
ip addr add dev dummy1 192.0.2.10/32
Potvrdite da je ovo ispravno konfigurirano:
# 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
Konfiguracija BIRD
Zatim ćemo konfigurirati BIRD. Ove se upute neznatno razlikuju između operacijskih sustava glavnog računala, pogledajte fusnote na dnu ovog odjeljka.
Napravite /etc/bird.confdatoteku:
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>>";
}
Morat ćete ažurirati YOURASi YOURPASSWORDs AS brojem i BGP lozinkom dodijeljenim vašem računu. Ove informacije se mogu pronaći na kartici BGP stranice instance na Vultr upravljačkoj ploči .
Ova konfiguracijska datoteka će reći BIRD-u da potraži sučelje dummy1 i reklamira sve IP-ove koje pronađe našoj infrastrukturi putem BGP-a. To znači da čim se vaša instanca pokrene, počet ćete primati promet, a ako se ikada sruši promet će prestati.
FreeBSD konfiguracija
Ako koristite FreeBSD kao host umjesto Linuxa, postoji nekoliko razlika.
Kernel treba ponovno kompajlirati za podršku TCP MD5 potpisa. Ove upute su izvan dosega ovog članka. Ako vaša BSD kernel ne podržava TCP MD5 potpise, vidjet ćete sljedeći izlaz u BIRD logu.
$ 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
Konfiguracijska datoteka BIRD nalazi se /usr/local/etc/bird.confna BSD-u.
Provjerite BGP povezanost
Pokrenite uslugu BIRD service bird starti pričekajte nekoliko sekundi. Provjerite je li uspostavljena BGP sesija:
# 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
Ako sve radi ispravno, trebali biste vidjeti "Uspostavljeno" pored BGP stanja. Uobičajeni problem ovdje je da vatrozid blokira BGP port (TCP 179). Također, ako je ova instanca implementirana prije nego što je Vultr postavio vašu BGP sesiju, morat će se ponovno pokrenuti putem upravljačke ploče prije nego što BGP postane dostupan. Ako i dalje imate problema, potražite /var/log/birddodatne pojedinosti.
Testiranje
Možete biti sigurni da BIRD oglašava rutu do vašeg plutajućeg IP-a na sljedeći način:
# birdc show route
BIRD 1.5.0 ready.
192.0.2.10/32 dev dummy1 [direct1 2015-12-29] * (240)
Da biste potvrdili da ovo radi ispravno, možete onemogućiti sučelje dummy1 (sa ip link set dummy1 down), a zatim ponoviti show routenaredbu. BIRD će primijetiti da je sučelje nestalo i povući će rutu.
Upotreba u proizvodnji
Kako biste osigurali da vaša web-lokacija ostane u funkciji, željeli biste više od jednog poslužitelja koji koristi istu BGP konfiguraciju. Ako bilo koja od instanci padne, promet bi se dinamički preusmjeravao na jednu od drugih instanci. Ne postoji ograničenje broja instanci koje možete pokrenuti s ovom konfiguracijom na određenom mjestu, no samo će jedna od njih biti aktivna u bilo kojem trenutku.
Na nekim našim lokacijama promet će biti raspoređen nasumično između svih instanci koje ste konfigurirali na ovaj način. Na kraju će sve lokacije biti konfigurirane na ovaj način. Ako želite da jedna instanca dobije sav promet osim ako nije izvan mreže, trebali biste koristiti prependove za usmjeravanje prometa.
Na primjer, ako imate dvije instance:
- Instanca A - glavna instanca, trebala bi normalno primati sav promet
- Instanca B - instanca sigurnosne kopije, trebala bi primati promet samo ako instanca A ne radi
Da biste to postigli, dodajte sljedeći odjeljak svojoj BIRD konfiguraciji na instanci B kako slijedi:
export filter {
bgp_path.prepend(YOURAS);
accept;
};
To bi osiguralo da će promet uvijek ići na instancu A, osim ako nije u prekidu.
Ako imate instancu C, koja bi trebala primati promet samo kada A i B ne rade, možete jednostavno dodati još jednu liniju 'bgp_path.prepend' da biste to postigli.
Postavljanje IPv6
Ovaj proces će također raditi s IPv6 rezerviranim podmrežama, iako ćete koristiti "bird6" umjesto "bird" i "birdc6" umjesto "birdc".