La funció BGP de Vultr us permet portar el vostre propi espai IP i utilitzar-lo a qualsevol de les nostres ubicacions.
Començant
Per utilitzar BGP, necessiteu:
- Una instància del servidor Vultr desplegada.
- El vostre propi espai IP (ja sigui v4 o v6). Si teniu el vostre propi ASN, podeu utilitzar-lo, o podem assignar-ne un de privat.
Si anuncieu un prefix IPv4, la instància del servidor ha de tenir una adreça IPv4 assignada automàticament per Vultr. Si anuncieu un prefix IPv6, la instància del servidor ha de tenir adreces IPv4 i IPv6 assignades automàticament per Vultr.
Si us plau, omple el formulari de configuració de BGP per començar. Assegureu-vos de verificar la propietat de l'ASN i de les subxarxes per evitar retards.
Un cop s'hagi configurat al vostre compte, podeu continuar amb la configuració de BGP.
Configuració BGP
Nota: si voleu configurar una instància que es va implementar abans que BGP s'instal·lés al vostre compte, haureu de reiniciar-la mitjançant el tauler de control. BGP no funcionarà en cap instància existent fins que no s'hagin reiniciat (el reinici mitjançant SSH no és suficient).
Us recomanem que utilitzeu BIRD com a dimoni BGP (però podeu utilitzar qualsevol dimoni BGP que vulgueu). La majoria de sistemes operatius tenen un paquet disponible per a això.
Els nostres exemples assumiran el següent:
- ASN: 64512
- IP de la instància: 203.0.113.123
- Bloc IPv4: 198.51.100.0/24
- Contrasenya BGP: hunter2
Per confirmar la connectivitat, configurem una sessió BGP sense anunciar cap IP. Creeu un /etc/bird.conffitxer amb el text següent. Tingueu en compte que en alguns sistemes, com Ubuntu 16.04, això serà /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";
}
Reinicieu bird i comproveu l'estat de la sessió:
[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
Un estat BGP d'"Establet" significa que tot funciona correctament. Si no veieu un estat d'establert, aquí teniu algunes coses per provar:
- Heu reiniciat mitjançant el tauler de control des que l'assistència va configurar BGP al vostre compte?
- Es permet el port BGP (TCP 179) a través del vostre tallafoc?
- La vostra contrasenya BGP és correcta? (Això es pot verificar al vostre tauler de control, cada subscripció té una pestanya BGP amb els detalls)
- Esteu utilitzant la IP principal de la vostra instància? (No podeu utilitzar res més que la IP principal d'una instància amb BGP)
Notes de FreeBSD
La configuració predeterminada de FreeBSD no funcionarà amb BGP. Per poder fer ús de BGP a FreeBSD, haureu de fer algunes coses:
1) Torneu a compilar el nucli amb aquestes opcions addicionals habilitades:
device crypto
options IPSEC
options TCP_SIGNATURE
2) Configura el teu adaptador de xarxa amb una IP estàtica.
3) Actualitzeu ipsec.conf amb la contrasenya 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";
Anunciant rutes
Un cop tingueu una sessió BGP de treball, el següent pas és començar a anunciar algunes rutes. Perquè el vostre espai d'adreces sigui visible a Internet, haureu d'anunciar com a mínim un /24 (o /48 per a IPv6).
La manera més senzilla de començar és afegir una ruta estàtica a la configuració de BIRD, com ara:
protocol static
{
route 198.51.100.0/24 via 203.0.113.123;
}
protocol device
{
scan time 5;
}
El bloc "dispositiu de protocol" permet a BIRD recopilar informació sobre els adaptadors de xarxa connectats a la vostra instància. Sense ell, les vostres rutes estàtiques no apareixeran.
Torneu a carregar BIRD i, a continuació, comproveu que la ruta funcioni correctament:
[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)
En aquest punt, el trànsit de la vostra subxarxa hauria de fluir cap a la vostra instància. No podreu fer ping a cap IP fins que no estiguin configurades al vostre sistema operatiu. Una manera de verificar-ho seria utilitzar tcpdump, 'tcpdump -i eth0 -n net 198.51.100.0/24'.
Configuració d'IPs
Una configuració habitual que veiem és utilitzar adreces IP individuals en diferents instàncies. Això és possible, tot i que cada instància hauria d'executar el seu propi servidor BGP.
Per fer-ho, anunciarem /32 rutes des d'instàncies individuals, a més de la cobertura /24. Podríem fer-ho amb rutes estàtiques, però recomanem utilitzar interfícies simulades. Utilitzarem 198.51.100.100 com a IP que volem encaminar.
Configura això en una interfície:
# ip link add dev dummy1 type dummy
# ip link set dummy1 up
# ip addr add dev dummy1 198.51.100.100/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 198.51.100.100/32 scope global dummy1
Nota: hauríeu de consultar la documentació del vostre sistema operatiu per determinar com configurar aquesta interfície per a l'arrencada.
Ara configurarem BIRD per buscar qualsevol interfície simulada i anunciar qualsevol IP que hi trobi. Afegiu el següent a la vostra configuració de BIRD i torneu a carregar BIRD:
protocol direct
{
interface "dummy*";
import all;
}
Verifiqueu que BIRD anunciï la ruta:
[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)
Podeu repetir aquest procés en altres instàncies amb altres IP. El que passa és que els nostres encaminadors utilitzaran la ruta més específica que tenen per a qualsevol adreça IP determinada. Quan hi ha /24 i /32, /32 és la ruta més específica, de manera que qualsevol trànsit d'aquesta IP seguirà aquesta ruta.
Podeu tenir diverses instàncies que anuncien el mateix /32. Això us donaria una alta disponibilitat (si alguna instància fallava, les seves rutes desapareixerien i el trànsit passaria per error a l'altra instància).
Les nostres ubicacions no estan enllaçades, de manera que hauríeu d'assegurar-vos d'anunciar un /24 (o IPv6 /48) de cada ubicació on voleu utilitzar les IP. No podeu utilitzar un /24 per assignar IP a diverses ubicacions tret que intenteu configurar una xarxa anycast.
Algunes de les nostres ubicacions admeten ECMP, en aquest cas el trànsit es distribuirà aleatòriament entre fins a 8 instàncies que anunciïn la mateixa IP. Les ubicacions que actualment donen suport a ECMP són:
- Nova Jersey
- Chicago
- Dallas
- Atlanta
- Tòquio
- Singapur
- Els angels
- Miami
- Silicon Valley
- París
- Londres
Documents relacionats
Notes
Per a BIRD 1.5 i posteriors, potser haureu de canviar la routesintaxi de les línies de:
route 198.51.100.0/24 via 203.0.113.123;
a:
route 198.51.100.0/24 via "203.0.113.123";
** Resolució de problemes **
Els nostres sistemes requereixen l'autenticació TCP MD5 per establir la connexió. Això vol dir que no podeu provar la connectivitat amb alguna cosa com telnet. En general, suggerim que mireu el trànsit amb tcpdump per resoldre problemes de connectivitat.