Ir para o conteúdo principal

Configurando BGP com FRR em um servidor Equinix Metal

FRRouting (FRR) é um conjunto de protocolos de roteamento de internet de código aberto, incluindo BGP, que você pode usar no Equinix Metal. Este é um guia para uma configuração mínima viável para anunciar um endereço IP do seu servidor via BGP.

Você encontrará alguns scripts iniciais criados Equinix Metal no repositório GitHub packethost/network-helpers que podem você a automatizar o processo de extrair as informações BGP você dos metadados BGP do seu servidor e gravá-las no arquivo de configuração FRR.

Como Começar

Se você estiver configurando o BGP pela primeira vez, o documento BGP no Equinix Metal contém uma visão geral de alto nível sobre como habilitar e usar o BGP na plataforma.

Neste exemplo, configuramos o BGP local para anunciar um endereço IPv4 público reservado para o nosso projeto Equinix Metal: 10.99.200.138/32. Neste exemplo, configuramos o BGP no Equinix Metal sem senha.

Atualizando a interface de rede

Faça login no seu servidor via SSH e atualize as interfaces de rede do servidor com uma interface de loopback virtual.

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

Em seguida, abra a interface.

ifup lo:0

Instalando o FRR e habilitando o BGP

Então instale o FRR.

apt -y update && apt -y install frr

Após a instalação, precisamos habilitar o BGP na configuração do FRR. Abra o arquivo /etc/frr/daemons e altere bgpd=no para bgpd=yes.

Reunindo informações sobre seus vizinhos

O FRR vem com um arquivo de configuração mínima ao qual adicionaremos algumas coisas para que a funcionalidade básica de "anunciar um endereço IP" funcione.

As informações de que você precisa são encontradas nos metadados BGP do seu servidor, depois de habilitar o BGP tanto no seu projeto quanto no seu servidor, conforme descrito nos guias BGP no Equinix Metal e BGP local.

Para obter informações sobre o vizinho do seu servidor, faça SSH no servidor e use cURL para acesso o ponto de extremidade de metadados.

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

Este comando retornará um blob de informações BGP relevantes.

{
"customer_ip": "10.67.50.3",
"customer_as": 65000,
"multihop": true,
"peer_ips": [
"169.254.255.1",
"169.254.255.2"
],
"peer_as": 65530
}

Você também precisará configurar rotas estáticas na sua configuração, para acesso o ponto de extremidade de metadados novamente para o endereço IP privado do gateway para os roteadores upstream.

curl https://metadata.platformequinix.com/metadata | jq -r '.network.addresses[] | select(.public == false and .address_family == 4) | { gateway: .gateway }'

Em resposta, você obtém o endereço de gateway IPv4 do seu servidor.

{
"gateway": "10.67.50.2"
}

Preenchendo o arquivo de configuração do FRR

Uma vez que o FRR esteja instalado, seu arquivo de configuração será encontrado em /etc/frr/frr.conf. Temos um arquivo de configuração de exemplo para você começar.

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
!

Os metadados para mapeamentos de campo são os seguintes:

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

Você também precisa configurar rotas estáticas do seu servidor para os roteadores do Metal, que são as duas linhas ip route na configuração, usando o endereço do gateway obtido dos metadados.

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

Em seguida, informe ao FRR com qual interface de rede trabalhar:

route-map EXPORT permit 1
match interface lo

Por fim, verifique se a configuração parece correta e reinicie o FRR:

systemctl restart frr

Verificando a configuração do FRR

Você pode verificar a sessão BGP iniciando o shell vtysh.

vtysh

Em seguida, use o comando show bgp summary.

show bgp summary

Os resultados devem refletir as informações no seu arquivo de configuração .

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

Para verificar se o seu servidor está acessível no endereço IP anunciado, você pode usar o comando ping na linha de comando. Se você estiver anunciando um endereço IPv4 ou IPv6 público, você pingar de qualquer servidor. No entanto, se você anunciando um endereço IPv4 privado, você precisará estar conectado à rede privada e, portanto, só você pingar de um servidor no mesmo projeto e área metropolitana (ou apenas do mesmo projeto, caso você o Backend Transfer habilitado).

Conclusão

Depois de você o BGP no host, o Equinix Metal fornece monitoramento para suas sessões BGP . Mais informações estão disponíveis na página Monitoramento de BGP.

Para um exemplo diferente do mesmo processo, mas usando o BIRD para gerenciar a sessão BGP do servidor, também temos um guia Configurando BGP com BIRD em um servidor Equinix Metal .

O FRR também pode ser implantado automaticamente via Docker. Veja mais sobre [implantação do FRR com Docker.

Esta página foi útil?