Saltar para o conteúdo
Networks

Bring your own IP

BYOIP na AWS: traga os seus próprios endereços IPv4 para o EC2

BYOIP disponívelEstados UnidosVerificado na documentação da AWS a Traduzido do inglês. Ler o original

Prova que controla o intervalo com um certificado no respetivo registo e um ROA que indica os ASN da AWS, aprovisiona-o num pool de endereços e atribui a partir dele endereços Elastic IP tal como faria com os da própria AWS. Os endereços que traz não pagam a cobrança horária do IPv4 público.

Este guia cobre o EC2 através da AWS CLI. O mesmo intervalo também pode ir para o AWS Global Accelerator, que tem o seu próprio processo, ou passar pelo VPC IP Address Manager (IPAM), que acrescenta uma forma baseada em DNS de provar o controlo e a opção de anunciar a partir do seu próprio ASN.

O que a AWS aceita

Segundo a documentação da AWS, no dia em que a consultámos:

  • Tamanho. O intervalo IPv4 mais específico que pode trazer é um /24.
  • Registo. ARIN, RIPE NCC ou APNIC, e registado em nome de uma empresa ou instituição, nunca de uma pessoa.
  • Historial. A AWS pode verificar a reputação do intervalo e rejeitar um com endereços de mau historial (manter um bloco limpo).
  • Espaço legacy é aceite, mas continua a precisar de um ROA.
  • Uma Região de cada vez por intervalo, e cinco intervalos por Região por defeito; o AWS Support pode aumentar esse limite.
  • Onde. Todas as Regiões comerciais exceto as Regiões da China, e uma lista de Local Zones.
  • Não mexa no registo de encaminhamento. A AWS atualiza ela própria o RADb, e uma alteração manual que inclua o ASN da AWS faz falhar o aprovisionamento.

Antes de começar

Um ROA para os ASN da AWS. Tem de autorizar AS16509 e AS14618, e qualquer ASN que anuncie hoje o intervalo, com o comprimento máximo igual ao tamanho do intervalo que traz. Nas regiões AWS GovCloud (US) o ROA indica antes AS8987, e na AWS European Sovereign Cloud AS16509 e AS214101; através do IPAM, defina-o como /24 para poder dividir o bloco. Se estiver a mudar o intervalo da sua própria rede, crie primeiro o ROA para o seu ASN atual, para que nada do que hoje funciona passe a inválido (RPKI e ROA). Um ROA pode demorar até 24 horas a chegar à AWS.

Um par de chaves e um certificado, gerados com o OpenSSL 1.0.2 ou posterior:

Shell
openssl genpkey -aes256 -algorithm RSA -pkeyopt rsa_keygen_bits:2048 -out private-key.pem
openssl req -new -x509 -key private-key.pem -days 365 | tr -d "\n" > certificate.pem

O certificado no registo, numa só linha, incluindo os marcadores BEGIN e END. O sítio depende do registo, e o campo importa:

RegistoOnde fica o certificado
RIPE NCCUma nova linha descr no objeto inetnum. Não remarks
ARINPublic Comments da rede, não da organização
APNICremarks no objeto inetnum

Pode retirar o certificado depois de o aprovisionamento terminar.

Passo a passo

01Assine a mensagem de autorização. A mensagem indica a sua conta, o intervalo e uma data de expiração:

Shell
text_message="1|aws|123456789012|203.0.113.0/24|20261231|SHA256|RSAPSS"
signed_message=$(echo -n $text_message | openssl dgst -sha256 -sigopt rsa_padding_mode:pss -sigopt rsa_pss_saltlen:-1 -sign private-key.pem -keyform PEM | openssl base64 | tr -- '+=/' '-_~' | tr -d "\n")

02Aprovisione o intervalo na Região onde o vai usar:

Shell
aws ec2 provision-byoip-cidr --cidr 203.0.113.0/24 \
  --cidr-authorization-context Message="$text_message",Signature="$signed_message" \
  --region eu-central-1

03Aguarde. O estado passa de pending-provision para provisioned. A AWS diz que a maioria dos intervalos fica concluída em duas horas e que alguns demoram até uma semana; aws ec2 describe-byoip-cidrs --max-results 5 --region eu-central-1 mostra em que ponto está.

04Prepare e depois mude. Para reduzir o tempo de indisponibilidade, atribua endereços Elastic IP a partir do novo pool e associe-os antes de o intervalo ser anunciado. aws ec2 describe-public-ipv4-pools dá o ID do pool, e aws ec2 allocate-address --public-ipv4-pool <pool-id> retira dele um endereço.

05Anuncie. Deixe de anunciar o intervalo em qualquer outro lado e depois:

Shell
aws ec2 advertise-byoip-cidr --cidr 203.0.113.0/24 --region eu-central-1

A AWS recomenda retirar primeiro o intervalo dos outros locais; enquanto outra pessoa o anunciar, a AWS não pode garantir que o tráfego para ele chegue à sua rede. Tem de anunciar exatamente o intervalo que aprovisionou, nunca uma parte dele.

06Verifique do exterior. whois -r -h whois.ripe.net 203.0.113.0/24 | grep descr deve mostrar o certificado, e o validador do RIPEstat deve considerar o intervalo válido para AS16509: curl "https://stat.ripe.net/data/rpki-validation/data.json?resource=16509&prefix=203.0.113.0/24".

Erros que custam um dia

  • O certificado no campo errado. No RIPE NCC, a AWS lê descr e explicitamente não remarks. O Azure quer o contrário, por isso um bloco que passa de uma cloud para a outra obriga a alterar o registo.
  • Um ROA com o comprimento máximo errado. A AWS exige que seja igual ao tamanho do intervalo que traz, ou /24 através do IPAM. Um comprimento máximo mais específico do que o intervalo que traz convida a sequestros de subprefixos, e a AWS reserva-se o direito de deixar de anunciar um intervalo cujos ROA não sigam as suas regras.
  • Anunciar parte do intervalo. A AWS anuncia exatamente o que aprovisionou. Para usar um intervalo mais pequeno, desaprovisione e aprovisione de novo.
  • Duas redes a anunciar ao mesmo tempo. O tráfego divide-se entre elas, e a AWS não resolve o problema.

O seu próprio ASN

Através do VPC IPAM, a AWS pode anunciar o seu intervalo a partir do seu próprio ASN em vez do dela. Acrescenta o mesmo certificado ao registo do seu ASN (no RIPE NCC, como uma linha descr no aut-num), cria um segundo ROA que indica o seu ASN, e a AWS recomenda um objeto ASPA que liste AS16509 e AS14618 como os seus fornecedores; sem eles, as rotas que a AWS propaga por si falham a validação ASPA. Pode voltar a pôr a origem no ASN da AWS a qualquer momento, e no seu no máximo uma vez por hora.

Se alugar o bloco

O espaço alugado funciona, desde que o registo o mostre detido por uma organização. O titular trata do lado do registo: o certificado no registo inetnum, que só o maintainer do titular pode editar, e o ROA para AS16509 e AS14618. O resto faz a partir da sua conta AWS.

Onde entra a RTM Networks

Alugamos /24 e maiores a partir do nosso próprio espaço de endereçamento do RIPE NCC, e vendemos blocos nas regiões RIPE NCC, ARIN e APNIC. No espaço que lhe alugamos, acrescentamos o seu certificado AWS ao registo e criamos o ROA para os ASN da AWS, pelo que o aprovisionamento é o único passo que lhe resta (alugar IPv4). Se precisar de menos de 256 endereços numa instância EC2, podemos entregá-los por um túnel (túneis GRE e WireGuard). Como soma a cobrança horária do IPv4, e quando compensa trazer o seu: o custo real do IPv4 na cloud. Outros fornecedores: guias BYOIP.

Contacto

Vai trazer o seu próprio IP para a AWS?

Indique o fornecedor, a região e de quantos endereços precisa. Alugamos /24 e maiores com o trabalho de registo para o seu fornecedor feito, vendemos blocos em definitivo, ou entregamos menos endereços através de um túnel. Normalmente respondemos em 1 a 3 horas úteis.

Contacte-nos

Perguntas frequentes

BYOIP na AWS: perguntas

A AWS cobra pelos endereços BYOIP?

Não. A AWS cobra 0,005 USD por hora por cada endereço IPv4 público que fornece, em uso ou inativo, e a sua página de preços diz que os endereços trazidos com BYOIP não são cobrados. As instâncias, o tráfego e os outros serviços custam o mesmo de sempre.

Quanto tempo demora o BYOIP na AWS?

A AWS diz que a maior parte dos aprovisionamentos termina em duas horas e prevê até uma semana para intervalos anunciáveis publicamente. O ROA pode demorar até 24 horas a chegar à AWS, e um registo alterado à mão através de um LIR pode demorar dias.

Posso usar o mesmo bloco em várias Regiões da AWS?

Cada intervalo vai para uma Região de cada vez, mas um bloco maior pode ser dividido em /24 e levado para Regiões diferentes com um único ROA e um único registo. Através do IPAM, defina o comprimento máximo do ROA como /24 para que o bloco possa ser dividido.

A AWS pode anunciar o meu intervalo BYOIP a partir do meu próprio ASN?

Sim, através da opção bring-your-own-ASN do VPC IPAM. Precisa então de um segundo ROA para o seu ASN e do certificado no registo do seu ASN, e a AWS recomenda um objeto ASPA que indique AS16509 e AS14618 como os seus fornecedores.

Posso levar espaço alugado para a AWS?

Sim, se estiver registado em nome de uma organização e não de uma pessoa. O titular acrescenta o seu certificado ao registo e cria o ROA para os ASN da AWS; no espaço alugado a nós, fazemos ambas as coisas.