La función BGP de Vultr le permite traer su propio espacio IP y usarlo en cualquiera de nuestras ubicaciones, con una instancia de OpenBSD no se necesita ningún software adicional.
Empezando
Para utilizar BGP, necesitaría su propio espacio IP (v4 o v6). Si tiene su propio ASN, puede usarlo o podemos asignarle uno privado.
Abra un boleto con la siguiente información:
- Sus rangos de IP
- Su ASN (si tiene uno)
- Un LOA para sus rangos de IP (solo si no tiene su propio ASN)
Una vez que BGP se haya configurado en su cuenta, puede continuar con la configuración de BGP.
Nuestros ejemplos usarán lo siguiente:
- ASN: 64512
- Dirección IPv4 de la instancia: 203.0.113.123
- Dirección IPv6 de la instancia: 2001: DB8: 1000 :: 1/64
- Bloque IPv4: 198.51.100.0/24
- Bloque IPv6: 2001: 0db8 :: / 32
- Contraseña BGP: hunter2
Configuración BGP
OpenBSD se entrega con bgpd(8)
ya instalado y solo requiere unos pocos cambios en el archivo de configuración para comenzar.
Editar rc.conf.local(8)
para agregar la siguiente línea para permitir que el bgpd(8)
demonio comience a través derc.d(8)
bgpd_flags=
Un ejemplo completo de bgpd.conf(8)
se puede encontrar en /etc/examples/bgpd.conf
y contiene una gran cantidad de opciones de configuración adicionales que pueda necesitar.
Ajuste la configuración de ejemplo a continuación según sea necesario y escriba /etc/bgpd.conf
(asegúrese de que los permisos para este archivo sean 600)
AS 64512
router-id 203.0.113.123
listen on 127.0.0.1
listen on ::1
log updates
network 198.51.100.0/24
network 2001:0db8::/32
neighbor 169.254.169.254 {
remote-as 64515
descr "Vultr IPv4"
announce IPv4 unicast
announce IPv6 none
tcp md5sig password hunter2
multihop 2
local-address 203.0.113.123
}
neighbor 2001:19f0:ffff::1 {
remote-as 64515
descr "Vultr IPv6"
announce IPv4 none
announce IPv6 unicast
tcp md5sig password hunter2
multihop 2
local-address 2001:DB8:1000::1
}
Para asegurarse de que todo esté en orden, puede emitir el comando bgpd -f /etc/bgpd.conf -n
. Si bgpd(ok)
se devuelve, puede iniciar el demonio.
# rcctl enable bgpd
# rcctl start bgpd
bgpd(ok)
Para verificar el estado de sus sesiones de BGP, deberá usar bgpctl(8)
. Por ejemplo, para ver una descripción general básica, puede usarbgpctl show summary
# bgpctl show summary
Neighbor AS MsgRcvd MsgSent OutQ Up/Down State/PrfRcvd
Vultr IPv6 64515 230 207 0 01:41:40 0
Vultr IPv4 64515 244 220 0 01:48:09 0
Para ver información detallada sobre un vecino de BPG, use bgpctl show neighbor
BGP neighbor is 2001:19f0:ffff::1, remote AS 64515, Multihop (2)
Description: Vultr IPv6
BGP version 4, remote router-id 45.63.102.186, using md5sig
BGP state = Established, up for 01:46:45
Last read 00:00:08, holdtime 90s, keepalive interval 30s
Neighbor capabilities:
Multiprotocol extensions: IPv6 unicast
Route Refresh
Graceful Restart: Timeout: 120, IPv6 unicast
4-byte AS numbers
Message statistics:
Sent Received
Opens 1 1
Notifications 0 0
Updates 2 1
Keepalives 214 240
Route Refresh 0 0
Total 217 242
Update statistics:
Sent Received
Updates 4 0
Withdraws 0 0
End-of-Rib 1 1
Local host: 2001:DB8:1000::1, Local port: 38298
Remote host: 2001:19f0:ffff::1, Remote port: 179
BGP neighbor is 169.254.169.254, remote AS 64515, Multihop (2)
Description: Vultr IPv4
BGP version 4, remote router-id 45.63.102.186, using md5sig
BGP state = Established, up for 01:53:14
Last read 00:00:14, holdtime 90s, keepalive interval 30s
Neighbor capabilities:
Multiprotocol extensions: IPv4 unicast
Route Refresh
Graceful Restart: Timeout: 120, IPv4 unicast
4-byte AS numbers
Message statistics:
Sent Received
Opens 1 1
Notifications 0 0
Updates 2 1
Keepalives 227 253
Route Refresh 0 0
Total 230 255
Update statistics:
Sent Received
Updates 4 0
Withdraws 0 0
End-of-Rib 1 1
Local host: 203.0.113.123, Local port: 19824
Remote host: 169.254.169.254, Remote port: 179
En este punto, podemos comenzar a asignar nuestras direcciones IP a las interfaces (por ejemplo, configurando /etc/hostname.lo1
) para que las aplicaciones se puedan configurar para escuchar en estas IP.
Si tiene la intención de utilizar sus direcciones IP en varias instancias, deberá ajustar las network
declaraciones en cada instancia para anunciar una ruta más específica para esas IP.
Instancia A
AS 64512
router-id 203.0.113.123
listen on 127.0.0.1
listen on ::1
log updates
network 198.51.100.0/24
network 198.51.100.1/32
network 2001:0db8::/32
network 2001:0db8::/64
neighbor 169.254.169.254 {
remote-as 64515
descr "Vultr IPv4"
announce IPv4 unicast
announce IPv6 none
tcp md5sig password hunter2
multihop 2
local-address 203.0.113.123
}
neighbor 2001:19f0:ffff::1 {
remote-as 64515
descr "Vultr IPv6"
announce IPv4 none
announce IPv6 unicast
tcp md5sig password hunter2
multihop 2
local-address 2001:DB8:1000::1
}
Instancia B
AS 64512
router-id 203.0.113.124
listen on 127.0.0.1
listen on ::1
log updates
network 198.51.100.0/24
network 198.51.100.2/32
network 2001:0db8::/32
network 2001:0db8:0001::/64
neighbor 169.254.169.254 {
remote-as 64515
descr "Vultr IPv4"
announce IPv4 unicast
announce IPv6 none
tcp md5sig password hunter2
multihop 2
local-address 203.0.113.124
}
neighbor 2001:19f0:ffff::1 {
remote-as 64515
descr "Vultr IPv6"
announce IPv4 none
announce IPv6 unicast
tcp md5sig password hunter2
multihop 2
local-address 2001:DB8:1000::2
}
Nota: no olvide utilizar una contraseña diferente de la que se menciona en este artículo.