Veçoria BGP e Vultr ju lejon të sillni hapësirën tuaj IP dhe ta përdorni atë në cilindo nga vendndodhjet tona.
Duke filluar
Për të përdorur BGP, ju duhet:
- Një shembull i vendosur i serverit Vultr.
- Hapësira juaj IP (ose v4 ose v6). Nëse keni ASN-në tuaj, mund ta përdorni atë, ose ne mund të caktojmë një privat.
Nëse po reklamoni një prefiks IPv4, shembulli i serverit duhet të ketë një adresë IPv4 të caktuar automatikisht nga Vultr. Nëse po reklamoni një prefiks IPv6, shembulli i serverit duhet të ketë të dyja adresat IPv4 dhe IPv6 të caktuara automatikisht nga Vultr.
Për të filluar, plotësoni formularin e konfigurimit të BGP . Sigurohuni që të verifikoni pronësinë e ASN-së dhe nën-rrjetit tuaj për të parandaluar vonesat.
Pasi kjo të jetë konfiguruar në llogarinë tuaj, mund të vazhdoni me konfigurimin e BGP.
Konfigurimi i BGP
Shënim: Nëse do të konfiguroni një shembull që është vendosur përpara se BGP të konfigurohej në llogarinë tuaj, do t'ju duhet ta rindizni atë nëpërmjet panelit të kontrollit. BGP nuk do të funksionojë në asnjë instancë ekzistuese derisa ato të jenë rindezur (rindezja përmes SSH nuk është e mjaftueshme).
Ne ju rekomandojmë të përdorni BIRD si daemon tuaj BGP (por ju mund të përdorni çdo demon BGP që dëshironi). Shumica e sistemeve operative kanë një paketë të disponueshme për këtë.
Shembujt tanë do të supozojnë sa vijon:
- ASN: 64512
- IP-ja e shembullit:: 203.0.113.123
- Blloku IPv4: 198.51.100.0/24
- Fjalëkalimi BGP: Hunter2
Për të konfirmuar lidhjen, le të konfigurojmë një sesion BGP pa njoftuar ndonjë IP. Krijoni një /etc/bird.confskedar me tekstin e mëposhtëm. Vini re se në disa sisteme, si Ubuntu 16.04, kjo do të jetë /etc/bird/bird.conf.
router id 203.0.113.123;
protocol bgp vultr
{
local as 64512;
source address 203.0.113.123;
import none;
export all;
graceful restart on;
multihop 2;
neighbor 169.254.169.254 as 64515;
password "hunter2";
}
Rinisni zogun dhe kontrolloni statusin e seancës:
[root@vultr ~]# birdc show proto all vultr
BIRD 1.4.5 ready.
name proto table state since info
vultr BGP master up 14:11:36 Established
Preference: 100
Input filter: REJECT
Output filter: (unnamed)
Routes: 0 imported, 581634 filtered, 1 exported, 0 preferred
Route change stats: received rejected filtered ignored accepted
Import updates: 581674 0 581674 0 0
Import withdraws: 2 0 --- 581675 0
Export updates: 1 0 0 --- 1
Export withdraws: 0 --- --- --- 0
BGP state: Established
Neighbor address: 169.254.169.254
Neighbor AS: 64515
Neighbor ID: 169.254.169.254
Neighbor caps: refresh restart-able AS4
Session: external multihop AS4
Source address: 203.0.113.123
Hold timer: 208/240
Keepalive timer: 57/80
Një gjendje BGP e 'Themeluar' do të thotë që gjithçka po funksionon siç duhet. Nëse nuk shihni një gjendje të themeluar, këtu janë disa gjëra për të provuar:
- A jeni rindezur përmes panelit të kontrollit që kur mbështetja konfiguroi BGP në llogarinë tuaj?
- A lejohet porti BGP (TCP 179) përmes murit tuaj të zjarrit?
- A është i saktë fjalëkalimi juaj BGP? (Kjo mund të verifikohet në panelin tuaj të kontrollit, çdo abonim ka një skedë BGP që rendit detajet)
- A po përdorni IP-në kryesore të shembullit tuaj? (Nuk mund të përdorni asgjë tjetër përveç IP-së kryesore të një shembulli me BGP)
Shënime FreeBSD
Konfigurimi i paracaktuar i FreeBSD nuk do të funksionojë me BGP. Për të përdorur realisht BGP në FreeBSD, do t'ju duhet të bëni disa gjëra:
1) Rikompiloni kernelin me këto opsione shtesë të aktivizuara:
device crypto
options IPSEC
options TCP_SIGNATURE
2) Konfiguro përshtatësin e rrjetit me një IP statike.
3) Përditësoni ipsec.conf me fjalëkalimin BGP:
add 203.0.113.123 169.254.169.254 tcp 0x1000 -A tcp-md5 "hunter2";
add 169.254.169.254 203.0.113.123 tcp 0x1000 -A tcp-md5 "hunter2";
Njoftimi i rrugëve
Pasi të keni një seancë pune BGP, hapi tjetër është të filloni të shpallni disa rrugë. Në mënyrë që hapësira juaj e adresës të jetë e dukshme në internet, do t'ju duhet të shpallni të paktën një /24 (ose /48 për IPv6).
Mënyra më e lehtë për të filluar është të shtoni një rrugë statike në konfigurimin tuaj BIRD, si p.sh.
protocol static
{
route 198.51.100.0/24 via 203.0.113.123;
}
protocol device
{
scan time 5;
}
Blloku 'pajisja e protokollit' lejon BIRD të mbledhë informacione rreth përshtatësve të rrjetit të bashkangjitur në shembullin tuaj. Pa të, rrugët tuaja statike nuk do të shfaqen.
Ringarko BIRD, më pas verifiko që itinera jote po funksionon siç duhet:
[root@vultr ~]# birdc show route
BIRD 1.4.5 ready.
198.51.100.0/24 via 203.0.113.123 on eth0 [static1 14:22:12] * (200)
Në këtë pikë, trafiku për nënrrjetin tuaj tani duhet të rrjedhë drejt shembullit tuaj. Nuk do të mund të bëni ping për asnjë IP derisa të konfigurohet brenda sistemit tuaj operativ. Një mënyrë për ta verifikuar këtë do të ishte përdorimi i tcpdump, 'tcpdump -i eth0 -n net 198.51.100.0/24'.
Konfigurimi i IP-ve
Një konfigurim i zakonshëm që shohim është përdorimi i adresave IP individuale në instanca të ndryshme. Kjo është e mundur, megjithëse çdo shembull do të duhet të ekzekutojë serverin e vet BGP.
Për ta bërë këtë, ne do të shpallim /32 rrugë nga instanca individuale, përveç mbulimit /24. Ne mund ta bëjmë këtë me rrugë statike, por rekomandojmë përdorimin e ndërfaqeve dummy. Ne do të përdorim 198.51.100.100 si IP që duam të drejtojmë.
Vendoseni këtë në një ndërfaqe:
# ip link add dev dummy1 type dummy
# ip link set dummy1 up
# ip addr add dev dummy1 198.51.100.100/32
Konfirmoni se kjo është konfiguruar siç duhet:
# 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 198.51.100.100/32 scope global dummy1
Shënim: Ju duhet të konsultoheni me dokumentacionin e sistemit tuaj operativ për të përcaktuar se si të konfiguroni këtë ndërfaqe për të ardhur pas nisjes.
Tani ne do të konfigurojmë BIRD që të skanojë për çdo ndërfaqe të rreme dhe të shpallë çdo IP që gjen në to. Shtoni sa vijon në konfigurimin tuaj BIRD dhe ringarkoni BIRD:
protocol direct
{
interface "dummy*";
import all;
}
Verifikoni që BIRD po shpall itinerarin:
[root@vultr ~]# birdc show route
BIRD 1.4.5 ready.
198.51.100.0/24 via 203.0.113.123 on eth0 [static1 14:22:12] * (200)
198.51.100.100/32 dev dummy1 [direct1 14:36:56] * (240)
Ju mund ta përsërisni këtë proces në raste të tjera me IP të tjera. Ajo që ndodh është se ruterët tanë do të përdorin rrugën më specifike që kanë për çdo adresë IP të dhënë. Kur ka një /24 dhe /32, /32 është rruga më specifike, kështu që çdo trafik për atë IP do të ndjekë atë rrugë.
Mund të keni disa raste që shpallin të njëjtën /32. Kjo do t'ju jepte disponueshmëri të lartë (nëse ndonjë shembull dështon, rrugët e tij do të zhdukeshin dhe trafiku do të kalonte në shembullin tjetër).
Vendndodhjet tona nuk janë të lidhura, kështu që ju duhet të siguroheni që po shpallni një /24 (ose IPv6 /48) nga çdo vendndodhje ku dëshironi të përdorni IP-të. Ju nuk mund të përdorni një /24 për të caktuar IP për shumë vendndodhje, përveç nëse po përpiqeni të konfiguroni një rrjet anycast.
Disa nga vendndodhjet tona mbështesin ECMP, në të cilin rast trafiku do të shpërndahet në mënyrë të rastësishme deri në 8 raste që shpallin të njëjtën IP. Vendndodhjet që aktualisht mbështesin ECMP janë:
- New Jersey
- Çikago
- Dallas
- Atlanta
- Tokio
- Singapor
- Los Angjelos
- Miami
- Lugina e silikonit
- Parisi
- Londra
Dokumentet përkatëse
Shënime
Për BIRD 1.5 dhe më lart, mund t'ju duhet të ndryshoni routesintaksën e rreshtave nga:
route 198.51.100.0/24 via 203.0.113.123;
te:
route 198.51.100.0/24 via "203.0.113.123";
** Zgjidhja e problemeve **
Sistemet tona kërkojnë vërtetim TCP MD5 për të vendosur lidhjen. Kjo do të thotë që ju nuk mund të testoni lidhjen duke përdorur diçka si telnet. Në përgjithësi do të sugjeronim shikimin e trafikut me tcpdump për të zgjidhur problemet e lidhjes.