Skip to main content

Configuration de BGP avec FRR sur un serveur Equinix Metal

FRRouting (FRR) est un ensemble de protocoles de routage Internet open source, incluant BGP, utilisables sur Equinix Metal. Ce guide décrit une configuration minimale pour annoncer une adresse IP depuis votre serveur via BGP.

Vous trouverez dans le référentiel GitHub packethost/network-helpers quelques 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 de leur écriture dans le fichier de configuration FRR.

Pour commencer

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

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

Mise à jour de l'interface réseau

Connectez-vous à votre serveur via SSH 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

Ensuite, ouvrez l'interface.

ifup lo:0

Installation de FRR et activation de BGP

Ensuite, installez FRR.

apt -y update && apt -y install frr

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

Recueillir des informations sur votre voisin

FRR est livré avec un fichier de configuration minimal auquel nous allons ajouter quelques éléments afin d'obtenir 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 sur les voisins de votre serveur, connectez-vous au serveur via SSH 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 renverra un blob 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 configurer des routes statiques dans votre configuration, afin d'accéder à nouveau au point de terminaison des métadonnées pour 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 passerelle IPv4 de votre serveur.

{
"gateway": "10.67.50.2"
}

Remplir le fichier de configuration FRR

Une fois que FRR est installé, son fichier de configuration se trouve dans /etc/frr/frr.conf. Nous vous offrons un exemple de fichier de configuration pour vous aider à démarrer.

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 métadonnées des mappages de 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 extraite des métadonnées.

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

Ensuite, indiquez à FRR avec quelle interface réseau travailler:

route-map EXPORT permit 1
match interface lo

Enfin, vérifiez que la configuration semble correcte, puis redémarrez 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 de 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 maintenant accessible à l'adresse IP que vous avez annoncée, vous pouvez faire un ping à partir de la ligne de commande. Si vous annoncez une adresse IPv4 ou IPv6 publique, vous devriez pouvoir faire un ping depuis n'importe quel serveur. En revanche, si vous annoncez une adresse IPv4 privée, vous devrez être connecté au réseau privé ; vous ne pourrez donc effectuer un ping que depuis un serveur appartenant au même projet et au même réseau (ou au même projet si le transfert vers le serveur distant est activé).

Conclure

Une fois que BGP est configuré sur l'hôte, Equinix Metal surveille vos sessions BGP. Pour plus d'informations, consultez la page Surveillance BGP.

Pour un autre exemple du même processus, mais utilisant BIRD pour gérer la session BGP du serveur, nous avons aussi un guide Configuration de BGP avec BIRD sur un serveur Equinix Metal.

FRR peut aussi être déployé automatiquement par Docker. Voir plus d'informations sur [le déploiement de FRR avec Docker.

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