La fonction BGP de Vultr vous permet d'apporter votre propre espace IP et de l'utiliser sur n'importe lequel de nos sites, avec une instance OpenBSD aucun logiciel supplémentaire n'est nécessaire!
Commencer
Pour utiliser BGP, vous auriez besoin de votre propre espace IP (v4 ou v6). Si vous avez votre propre ASN, vous pouvez l'utiliser ou nous pouvons en attribuer un privé.
Ouvrez un ticket avec les informations suivantes:
- Vos plages IP
- Votre ASN (si vous en avez un)
- Un LOA pour vos plages IP (uniquement si vous n'avez pas votre propre ASN)
Une fois BGP configuré sur votre compte, vous pouvez procéder à la configuration de BGP.
Nos exemples vont utiliser les éléments suivants:
- ASN: 64512
- Adresse IPv4 de l'instance: 203.0.113.123
- Adresse IPv6 de l'instance: 2001: DB8: 1000 :: 1/64
- Bloc IPv4: 198.51.100.0/24
- Bloc IPv6: 2001: 0db8 :: / 32
- Mot de passe BGP: hunter2
Configuration BGP
OpenBSD est livré avec bgpd(8)
déjà installé et ne nécessite que quelques modifications du fichier de configuration pour démarrer.
Modifier rc.conf.local(8)
pour ajouter la ligne suivante pour permettre au bgpd(8)
démon de démarrer viarc.d(8)
bgpd_flags=
Un exemple complet de bgpd.conf(8)
peut être trouvé sur /etc/examples/bgpd.conf
et contient de nombreuses options de configuration supplémentaires dont vous pourriez avoir besoin.
Ajustez l'exemple de configuration ci-dessous si nécessaire et écrivez dans /etc/bgpd.conf
(assurez-vous que les autorisations pour ce fichier sont 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
}
Pour vous assurer que tout est en ordre, vous pouvez exécuter la commande bgpd -f /etc/bgpd.conf -n
. Si bgpd(ok)
est retourné, vous pouvez démarrer le démon.
# rcctl enable bgpd
# rcctl start bgpd
bgpd(ok)
Pour vérifier l'état de vos sessions BGP, vous devrez utiliser bgpctl(8)
. Par exemple, pour voir un aperçu de base, vous pouvez utiliserbgpctl 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
Pour voir des informations détaillées sur un voisin BPG, utilisez 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
À ce stade, nous pouvons commencer à attribuer nos adresses IP aux interfaces (par exemple en configurant /etc/hostname.lo1
) afin que les applications puissent être configurées pour écouter sur ces IP.
Si vous avez l'intention d'utiliser vos adresses IP sur plusieurs instances, vous devrez ajuster les network
instructions sur chaque instance pour annoncer un itinéraire plus spécifique pour ces IP.
Instance 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
}
Instance 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
}
Remarque: N'oubliez pas d'utiliser un mot de passe différent de celui référencé dans cet article.