BGP no Equinix Metal
O Equinix Metal™ suporta o Border Gateway Protocol (BGP) para anunciar rotas para seus servidores Equinix Metal . Oferecemos suporte ao roteamento para anunciar endereços IPv4 e IPv6. Este documento contém uma visão geral de alto nível sobre como usar o BGP no Equinix Metal.
Etapa 1. Habilitar BGP no projeto
O primeiro passo é habilitar o BGP no seu projeto, o que habilita sessões BGP e o rastreamento de sessões BGP . Ao você o BGP em um projeto, você escolhe entre usar o BGP local e o BGP global.
BGP local vs. BGP global
O principal caso de uso para o BGP Local é realizar failover ou mobilidade de endereço IP entre um conjunto de servidores. Você escolhe um dos endereços IP disponíveis para o seu projeto Equinix Metal para anunciar a partir de um dos seus servidores usando BGP. Instruções detalhadas sobre como configurar o BGP Local estão na página Usando o BGP Local.
O BGP Global serve para anunciar seus próprios endereços IP de sub-redes que você possui, para o programa BYOIP (Bring Your Own IP Address) da Equinix Metal. Isso requer que você tenha um ASN (Australian Network System) e um espaço de endereços IP registrados. Instruções detalhadas sobre como configurar o BGP Global estão na página BYOIP Using Global BGP.
Observação: se você quiser usar BYOIP e também usar o BGP local, escolha habilitar o BGP global. Se você selecionar BGP global e usar um AS público, também você usar as sessões BGP para anunciar IPs privados para clustering interno com o BGP local.
Etapa 2. Iniciar uma sessão BGP
Cria sessões BGP para os hosts e roteadores upstream.
Visão geral do roteamento
Os roteadores Equinix Metal aprenderão as rotas que você está anunciando e enviarão o tráfego adequadamente para seus servidores.
Observe que o Equinix Metal não suporte à divulgação da tabela BGP completa para os clientes. Nossos roteadores não exportam rotas de volta para você. Nós apenas aprendemos as rotas que você anuncia e as enviamos para o upstream.
As sessões BGP são gerenciadas através da rede de gerenciamento IPv4 privada 10.x.x.x. É um requisito para o BGP que a rede e o endereço IP atribuído a ela existam em seu servidor.
O peering é configurado com dois roteadores de topo de rack. Para peering IPv4, os IDs dos roteadores serão os endereços locais 169.254.255.1/32 e 169.254.255.2/32. Para peering IPv6, os IDs dos roteadores serão os endereços fc00::e/128 e fc00::f/128. Como estes não estão diretamente conectados ao host, você ser necessário configurar o BGP multihop de volta para o endereço do gateway IPv4 privado para suas sessões.
Mais importante ainda, todas as informações de roteamento você específicas para o seu servidor estão disponíveis no endpoint de metadados do seu servidor (#bgp-metadata) depois de você ter habilitado o BGP.
Etapa 3. Configurar BGP no host
Configurar o BGP no host anuncia os endereços IP e estabelece rotas BGP .
Para concluir a configuração do BGP, você precisa primeiro adicionar o endereço IP à interface de rede do seu servidor e configurar um cliente de roteamento com suporte a BGP no servidor, como BIRD, FRR ou ExaBGP. O cliente de roteamento controlará os anúncios de endereço IP na sessão BGP para os roteadores upstream da Equinix Metal.
Atualizando a interface de rede do host
Adicione o endereço IP que você está anunciando à interface de loopback em /etc/network/interfaces. O endereço de exemplo é 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
Em seguida, abra a interface de loopback.
ifup lo:0
Metadados BGP
As informações você para configurar o BGP estão disponíveis através do serviço de metadados do Equinix Metal, assim que o BGP for habilitado no Projeto e uma sessão BGP for iniciada.
Acesse o servidor via SSH e curl o endpoint de metadados.
- 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 }'
Em resposta, você obtém um objeto com as informações BGP específicas daquele servidor para uma sessão para anunciar endereços 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
}
Você também pode precisar de um endereço IP de gateway para uma configuração de próximo salto ou multi-salto para rotas estáticas.
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 privado do seu servidor.
{
"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 }'
Em resposta, você obtém um objeto com as informações BGP específicas daquele servidor para uma sessão para anunciar endereços 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
}
Você também pode precisar de um endereço IP de gateway para uma configuração de próximo salto ou multi-salto para rotas estáticas.
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 privado do seu servidor.
{
"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.
Para alguns exemplos de como esses metadados são usados, veja Rota BGP com BIRD e Rota BGP com FRR.
Configuração de exemplo
- 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 de prefixo BGP
O Equinix Metal impõe um limite de prefixo de 10 prefixos por vizinho.
Se você exceder o limite, você necessário abrir um ticket de suporte (ou e-mail para suporte) para redefinir a sessão BGP . Você também pode alcance em contato com o suporte se você aumentar esse limite.