Skip to main content

Configuration de BGP avec FRR sur un serveur Metal d'Equinix

FRRouting (FRR) est un ensemble de protocoles de routage internet open source, notamment BGP, que vous pouvez utiliser sur le Metal d'Equinix. Il s'agit d'un guide pour une configuration minimale viable permettant d'annoncer une adresse IP à partir de votre serveur via BGP.

Vous trouverez dans le dépôt GitHub packethost/network-helpers des scripts de démarrage créés par Equinix Metal qui peuvent vous aider à automatiser le processus d'extraction des informations BGP dont vous avez besoin à partir des métadonnées BGP de votre serveur et à les écrire dans le fichier de configuration FRR.

Pour commencer

Si vous configurez BGP pour la première fois, le document BGP on Equinix Metal contient un aperçu de haut niveau de l'activation et de l'utilisation de BGP sur la plateforme.

Pour l'exemple ici, nous avons configuré Local BGP pour annoncer une adresse IPv4 publique réservée à notre projet Equinix Metal : 10.99.200.138/32. Dans cet exemple, nous avons configuré BGP sur Equinix Metal sans mot de passe.

Mise à jour de l'interface réseau

Connectez-vous en SSH à votre serveur et mettez à jour les interfaces réseau du serveur avec une interface de bouclage virtuelle.

cat >>/etc/network/interfaces <<EOF
auto lo:0
iface lo:0 inet static
address 10.99.200.138
netmask 255.255.255.255
EOF

Faites ensuite apparaître l'interface.

ifup lo:0

Installation de FRR et activation de BGP

Installez ensuite le FRR.

apt -y update && apt -y install frr

Une fois installé, nous devons activer BGP dans la configuration de FRR. Ouvrez le fichier /etc/frr/daemons et remplacez bgpd=no par bgpd=yes.

Collecte d'informations sur vos voisins

FRR est livré avec un fichier de configuration minimal auquel nous allons ajouter quelques éléments afin de mettre en place la fonctionnalité de base "annoncer une adresse IP".

Les informations dont vous avez besoin se trouvent dans les métadonnées BGP de votre serveur une fois que vous avez activé BGP sur votre projet et votre serveur, comme décrit dans les guides BGP sur Equinix Metal et BGP local.

Pour obtenir les informations de voisinage de votre serveur, connectez-vous en SSH au serveur et utilisez cURL pour accéder au point de terminaison des métadonnées.

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 }'

Cette commande renvoie un bloc d'informations BGP pertinentes.

{
"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 devrez également mettre en place des routes statiques dans votre configuration, donc accédez à nouveau au point de terminaison des métadonnées pour obtenir l'adresse IP privée de la passerelle vers les routeurs en amont.

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 la passerelle IPv4 de votre serveur.

{
"gateway": "10.67.50.2"
}

Remplir le fichier de configuration du FRR

Une fois FRR installé, son fichier de configuration se trouve dans /etc/frr/frr.conf. Nous vous proposons un exemple de fichier de configuration pour commencer.

frr defaults traditional
log syslog informational
ipv6 forwarding
service integrated-vtysh-config
!
ip route 169.254.255.1/32 10.67.50.2
ip route 169.254.255.2/32 10.67.50.2
!
router bgp 65000
bgp ebgp-requires-policy
neighbor V4 peer-group
neighbor V4 remote-as 65530
neighbor V4 ebgp-multihop 5
neighbor 169.254.255.1 peer-group V4
neighbor 169.254.255.2 peer-group V4
!
address-family ipv4 unicast
redistribute connected
neighbor V4 route-map IMPORT in
neighbor V4 route-map EXPORT out
exit-address-family
!
route-map EXPORT deny 100
!
route-map EXPORT permit 1
match interface lo
!
route-map IMPORT deny 1
!
line vty
!

Les correspondances entre les métadonnées et les champs sont les suivantes :

frr.confmetadatavalue
router bgpcustomer_as65000
neighbor V4 remote-aspeer_as65530
neighbor V4 ebgp-multihop 5multihopif the metadata shows multihop as true then you need to add multihop to FRR
neighbor IP peer-group V4peer_ips169.254.255.1 and 169.254.255.2

Vous devez également configurer des routes statiques de votre serveur vers les routeurs de Metal, qui sont les deux lignes ip route dans la configuration, en utilisant l'adresse de la passerelle tirée des métadonnées.

ip route <peer_ips_1>/32 <gateway>
ip route <peer_ips_2>/32 <gateway>

Indiquez ensuite à FRR l'interface réseau avec laquelle il doit travailler :

route-map EXPORT permit 1
match interface lo

Enfin, vérifiez que la configuration semble correcte, puis redémarrez le FRR :

systemctl restart frr

Vérification de la configuration FRR

Vous pouvez vérifier la session BGP en démarrant le shell vtysh.

vtysh

Utilisez ensuite la commande show bgp summary.

show bgp summary

Les résultats doivent refléter les informations contenues dans votre fichier de configuration.

IPv4 Unicast Summary (VRF default):
BGP router identifier 147.75.109.216, local AS number 65000 vrf-id 0
BGP table version 3
RIB entries 5, using 920 bytes of memory
Peers 2, using 1446 KiB of memory
Peer groups 1, using 64 bytes of memory

Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd PfxSnt Desc
169.254.255.1 4 65530 6 6 0 0 0 00:02:15 0 1 N/A
169.254.255.2 4 65530 8 7 0 0 0 00:03:15 0 1 N/A

Total number of neighbors 2

Pour vérifier si votre serveur est désormais accessible à l'adresse IP annoncée, vous pouvez effectuer un ping de l'adresse IP dans une ligne de commande. Si vous annoncez une adresse IPv4 ou IPv6 publique, vous devriez pouvoir faire un ping à partir de n'importe quel serveur. En revanche, si vous annoncez une adresse IPv4 privée, vous devrez être connecté au réseau privé, de sorte que vous ne pourrez envoyer une requête ping qu'à partir d'un serveur du même projet et du même métro (ou seulement du même projet si vous avez activé Backend Transfer).

Synthèse

Une fois que vous avez configuré BGP sur l'hôte, Equinix Metal assure la surveillance de vos sessions BGP. Vous trouverez de plus amples informations sur la page Monitoring BGP.

Pour un exemple différent du même processus, mais utilisant BIRD pour gérer la session BGP du serveur, nous avons également un guide Configuring BGP with BIRD on an Equinix Metal Server.

FRR peut également être déployé automatiquement via Docker. Pour en savoir plus sur [le déploiement de FRR avec Docker.

Cette page vous a-t-elle été utile ?