BGP sur Equinix Metal
Equinix Metal™ prend en charge le Border Gateway Protocol (BGP) pour annoncer les itinéraires vers vos serveurs Equinix Metal. Nous prenons en charge le routage pour annoncer les adresses IPv4 et les adresses IPv6. Ce document présente une vue d'ensemble de l'utilisation du protocole BGP sur Equinix Metal.
Étape 1. Activer BGP sur le projet
La première étape consiste à activer BGP sur votre projet, ce qui permet d'activer les sessions BGP et le suivi des sessions BGP. Lorsque vous activez BGP sur un projet, vous avez le choix entre l'utilisation de BGP local et de BGP global.
BGP local et BGP global
Le principal cas d'utilisation du BGP local est le basculement ou la mobilité des adresses IP entre un ensemble de serveurs. Vous choisissez l'une des adresses IP disponibles pour votre projet Equinix Metal à annoncer depuis l'un de vos serveurs à l'aide de BGP. Les étapes détaillées de la mise en place et de la configuration du BGP local se trouvent sur la page Using Local BGP.
Global BGP sert à annoncer vos propres adresses IP à partir des sous-réseaux que vous possédez, pour apporter votre propre adresse IP à Equinix Metal. Pour ce faire, vous devez disposer d'un ASN et d'un espace d'adresses IP enregistrés. Les étapes détaillées de la mise en place et de la configuration de Global BGP se trouvent sur la page BYOIP Using Global BGP.
Note : si vous voulez faire du BYOIP et aussi utiliser le BGP local, choisissez d'activer le BGP global. Si vous sélectionnez BGP global et que vous utilisez un AS public, vous pouvez également utiliser les sessions BGP pour annoncer des IP privées pour le clustering interne avec BGP local.
Étape 2. Initier une session BGP
Crée des sessions BGP pour les hôtes et les routeurs en amont.
Aperçu du routage
Les routeurs d'Equinix Metal apprendront les itinéraires que vous annoncez et enverront le trafic de manière appropriée vers vos serveurs.
Notez qu'Equinix Metal ne prend pas en charge l'annonce de la table BGP complète aux clients, nos routeurs n'exportent pas d'itinéraires vers vous. Nous n'apprenons que les routes que vous annoncez et nous les transmettons en amont.
Les sessions BGP sont gérées par le réseau de gestion privé IPv4 10.x.x.x. Le BGP exige que le réseau et l'adresse IP qui lui est attribuée existent sur votre serveur.
Le peering est mis en place avec deux routeurs au sommet du rack. Pour le peering IPv4, les ID des routeurs seront les adresses locales 169.254.255.1/32 et 169.254.255.2/32. Pour le peering IPv6, les ID de routeur seront les adresses fc00::e/128 et fc00::f/128. Comme ces routeurs ne sont pas directement connectés à l'hôte, il se peut que vous deviez configurer BGP multihop pour revenir à l'adresse de passerelle IPv4 privée pour vos sessions.
Plus important encore, toutes les informations de routage dont vous avez besoin et qui sont spécifiques à votre serveur sont disponibles à partir de l'extrémité des métadonnées de votre serveur une fois que vous avez activé le protocole BGP.
Etape 3. Configurer BGP sur l'hôte
La configuration de BGP sur l'hôte annonce les adresses IP et établit les routes BGP.
Pour terminer la configuration BGP, vous devez d'abord ajouter l'adresse IP à l'interface réseau de votre serveur et configurer un client de routage parlant BGP sur le serveur, tel que BIRD, FRR ou ExaBGP. Le client de routage contrôlera les annonces d'adresses IP dans la session BGP vers les routeurs en amont d'Equinix Metal.
Mise à jour de l'interface réseau de l'hôte
Ajoutez l'adresse IP que vous annoncez à l'interface loopback dans /etc/network/interfaces. L'adresse donnée en exemple est 198.51.100.2.
cat >>/etc/network/interfaces <<EOF
auto lo:0
iface lo:0 inet static
address 198.51.100.2
netmask 255.255.255.255
EOF
Ensuite, mettez en place l'interface de bouclage.
ifup lo:0
Métadonnées BGP
Les informations dont vous avez besoin pour configurer BGP sont disponibles via le service de métadonnées d'Equinix Metal une fois que BGP a été activé à la fois sur le projet et qu'une session BGP a été démarrée.
SSH dans le serveur et curl le point de terminaison des métadonnées.
- IPv4 Sessions
- IPv6 Sessions
curl https://metadata.platformequinix.com/metadata | jq '.bgp_neighbors[0] | { customer_ip: .customer_ip, customer_as: .customer_as, multihop: .multihop, peer_ips: .peer_ips, peer_as: .peer_as }'
En réponse, vous obtenez un objet contenant les informations BGP spécifiques à ce serveur pour une session d'annonce d'adresses IPv4.
{
"customer_ip": "10.67.50.3",
"customer_as": 65000,
"multihop": true,
"peer_ips": [
"169.254.255.1",
"169.254.255.2"
],
"peer_as": 65530
}
Vous pouvez également avoir besoin d'une adresse IP de passerelle pour un saut suivant ou une configuration multi-sauts pour les routes statiques.
curl https://metadata.platformequinix.com/metadata | jq -r '.network.addresses[] | select(.public == false and .address_family == 4) | { gateway: .gateway }'
En réponse, vous obtenez l'adresse de passerelle IPv4 privée de votre serveur.
{
"gateway": "10.67.50.2"
}
curl https://metadata.platformequinix.com/metadata | jq '.bgp_neighbors[1] | { customer_ip: .customer_ip, customer_as: .customer_as, multihop: .multihop, peer_ips: .peer_ips, peer_as: .peer_as }'
En réponse, vous obtenez un objet contenant les informations BGP spécifiques à ce serveur pour une session d'annonce d'adresses IPv6.
{
"customer_ip": "2001:DB8:1001:100::5",
"customer_as": 65000,
"multihop": true,
"peer_ips": [
"fc00:0000:0000:0000:0000:0000:0000:000e",
"fc00:0000:0000:0000:0000:0000:0000:000f"
],
"peer_as": 65530
}
Vous pouvez également avoir besoin d'une adresse IP de passerelle pour un saut suivant ou une configuration multi-sauts pour les routes statiques.
curl https://metadata.platformequinix.com/metadata | jq -r '.network.addresses[] | select(.public == false and .address_family == 4) | { gateway: .gateway }'
En réponse, vous obtenez l'adresse de passerelle IPv4 privée de votre serveur.
{
"gateway": "10.67.50.2"
}
"customer_ip"- The management private IPv4 address of the server."customer_as"- The ASN of the session. If you are using Local BGP, the ASN will be the local-to-Equinix-Metal65000. If you are using Global BGP, the ASN will be your ASN."multihop"- If true, then you will need to include a multihop parameter along with static routing information in your BGP configuration."peer_ips"- An array that contains the peering IP addresses of Equinix Metal's upstream routers, these are the neighbors."peer_as"- The local ASN of the neighbor(s). On Equinix Metal, this will always be65530. This AS is stripped on export to our global peering/transit providers."gateway"- Optional information if you need to set up a static route to the upstream routers.
Pour des exemples d'utilisation de ces métadonnées, voir Route BGP with BIRD et Route BGP with FRR.
Exemple de configuration
- IPv4 Sessions
- IPv6 Sessions
router bgp 65000
bgp router-id 10.66.7.1
neighbor 169.254.255.1 remote-as 65530
neighbor 169.254.255.1 description "Equinix Metal IPv4 BGP Peering"
neighbor 169.254.255.1 timers 5 15
neighbor 169.254.255.1 soft-reconfiguration inbound
neighbor 169.254.255.2 remote-as 65530
neighbor 169.254.255.2 description "Equinix Metal IPv4 BGP Peering"
neighbor 169.254.255.2 timers 5 15
neighbor 169.254.255.2 soft-reconfiguration inbound
!
address-family ipv4
network 147.75.69.232/31
neighbor 169.254.255.1 activate
neighbor 169.254.255.2 activate
exit-address-family
router bgp 65000
bgp router-id 10.66.7.1
neighbor 2604:1380:4091:4f00::1 remote-as 65530
neighbor 2604:1380:4091:4f00::1 description "Equinix Metal IPv6 BGP Peering"
neighbor 2604:1380:4091:4f00::1 timers 5 15
neighbor 2604:1380:4091:4f00::1 soft-reconfiguration inbound
neighbor 2604:1380:4091:4f00::2 remote-as 65530
neighbor 2604:1380:4091:4f00::2 description "Equinix Metal IPv6 BGP Peering"
neighbor 2604:1380:4091:4f00::2 timers 5 15
neighbor 2604:1380:4091:4f00::2 soft-reconfiguration inbound
!
address-family ipv6
network 2604:1380:4091:4f01::/64
neighbor 2604:1380:4091:4f00::1 activate
neighbor 2604:1380:4091:4f00::2 activate
exit-address-family
Limite des préfixes BGP
Equinix Metal applique une limite de 10 préfixes par voisin.
Si vous dépassez la limite, vous devrez ouvrir un [ticket d'assistance (ou envoyer un courriel à support@equinixmetal.com) pour réinitialiser la session BGP. Vous pouvez également contacter le support si vous avez besoin d'augmenter cette limite.