Escolar Documentos
Profissional Documentos
Cultura Documentos
Neste artigo iremos mostrar quais os passos necessários para criar ROAs (Route Origin Authorisation) dos prefixos de seu
ASN.
Antes de começarmos, se você leu o artigo que deixei o link, você deve ter entendido que todo AS que ainda não criou
ROAs de seus prefixos ou ainda não criou o CA para seu ASN, seus prefixos são conhecidos na internet como "unknown"
ou "desconhecidos" e com isso seus prefixos ainda serão roteados pela internet, então não se preocupe com isso, esse
artigo vai apenas ensinar a você deixar seus prefixos como "valid".
Quero também enfatizar que RPKI é algo muito importante e devemos tomar cuidado com o que fazemos, sempre que
fizermos qualquer alteração em algum ROA, verifique se está correto para não ter problemas, pois, redes que descartam
RPKIs inválidos podem parar de rotear seus prefixos que erradamente você não autorizou e pode gerar dor de cabeça (ex.:
intermitência ou perda total de comunicação com redes que dropam RPKI inválido), por isso, antes de continuar tenha
certeza que vai cuidar direitinho do seus ROAs. PAZ!
Neste artigo será utilizado o Krill para ativarmos o RPKI no seu ASN.
Índice
Instalação
Configuração
Habilitando RPKI e Autorizando os ROAs
Validando ROAs
Instalação
Instalação e Configuração do Krill.
Primeiramente você precisa de uma máquina virtual rodando linux Debian ou Ubuntu, com isso iremos prosseguir para os
passos de instalação:
mkdir -p /opt/krill/
cd /opt/krill
touch krill.conf
Agora vamos compilar/instalar o Krill, logo no primeiro comando ele irá fazer uma pergunta, apenas aperte ENTER e siga
para os próximos comandos:
Execute o seguinte comando: krill -V e se o resultado for algo assim: Krill 0.6.2 o Krill foi instalado com sucesso.
ln -s /root/.cargo/bin/krill /usr/bin
ln -s /root/.cargo/bin/krillc /usr/bin
Vamos agora criar a config inicial do Krill, e criar uma senha/token seguro para o Krill, copie todas as linhas e cole no
terminal:
Configuração
Enfim, nosso Krill já está pronto para ser usado, antes precisamos iniciar o daemon do Krill, mas ainda, infelizmente o
Krill não vem com script para iniciar e parar, a NTLabs disponibilizou dois scripts que podemos usar para iniciar e parar o
daemon:
Para iniciar (copiar todas as linhas abaixo e colar no terminal do seu Linux):
Para parar (copiar todas as linhas abaixo e colar no terminal do seu Linux):
Esse último comando gerou um XML chamado child_request, com ele conseguiremos gerar o parent_response no site do
registro.br, então copie o XML.
Agora vou facilitar para você criar um arquivo com o conteúdo do parent_response dentro do seu Linux, copie o comando
abaixo e cole no seu Editor de Texto preferido e substitua no indicado com o XML gerado e execute todo o comando no
terminal do linux.
Aqui como meu SO é Windows, optei pelo Bloco de Notas, segue um exemplo do comando preenchido:
Vamos então gerar os ROAs de seus prefixos para protegê-los e prevenir que sofram hijack.
Mas antes vamos ativar para que o Krill faça publicação remota no registro.br, volte ao terminal do seu linux.
O comando anterior gerou um XML chamado publisher_request, com ele copiado volte ao registro.br onde você ativou o
RPKI e logo abaixo do Parent response, tem um link "Configurar publicação remota", clique nele, no campo que apareceu
cole o XML e clique em HABILITAR PUBLICAÇÃO REMOTA.
Agora que temos o arquivo xml criado no Linux, vamos autorizar em nosso Krill:
E, finalmente podemos criar os ROAs deu seus prefixos, para isso vamos criar um arquivo, mas antes de mais nada, abra
seu Editor de Texto preferido e cole o seguinte comando:
Irei utilizar como exemplo o ASN 65535, substituir pelo seu ASN e seus prefixos.
Após o meus_roas.txt, na segunda linha, vamos adicionar os ROAs que queremos que sejam válidos, eu vou explanar
antes como funciona isso e depois você pode brincar um pouco.
Você pode adicionar "A" ou remover "R" um ROA sempre que quiser e é bem simples, no arquivo que vamos utilizar para
publicar os ROAs você pode fazer o seguinte:
Exemplo:
Note que coloquei 22-24 para IPv4 e 32-48 para IPv6, ou seja, estamos dizendo que seus prefixos dentro desse range serão
válidos para serem exportados! Outro caso:
Nesse caso, estamos dizendo que os blocos /24 são os únicos válidos, ou seja, quando algum provedor for exportar seus
blocos, e por algum motivo ele tentar exportar seu prefixo /23 para um AS que valide os prefixos por RPKI, esse AS vai
aceitar somente os prefixos /24 pois você não validou o /23 e com isso o prefixo é descartado e não será roteado por esse
AS.
Vamos para outro exemplo, vamos supor que você fez o primeiro exemplo de validar os prefixo 22 até 24, e você resolveu
que não quer mais assim e quer somente validar os prefixos /22 e /23, para isso você abre o seu arquivo de roas, apague
tudo e faça o seguinte:
Salve o arquivo e atualize seus ROAs, e agora abra denovo o arquivo e faça o seguinte:
E agora pode atualizar novamente seus ROAs, nesse momento, todos os AS que fazem drop de RPKI invalid, não irão mais
aceitar prefixos /24 do seu AS originados por qualquer AS, e perceberam que toda vez que quero mudar alguma coisa eu
tenho que apagar o que fiz anteriormente e "R"emover ou "A"adicionar? Entenderam a mecânica?
Bom, agora que você entendeu como funciona, vamos aos comandos para atualizar e autorizar os ROAs.
Validando ROAs
Para saber se tudo funcionou, vamos fazer um whois no BGPmon.net:
ou
Outros lugares que você pode validar seu ASN se está protegido com RPKI:
[1] https://sg-pub.ripe.net/jasper/rpki-web-test/
[2] https://rpki-validator.ripe.net/roas
[3] https://rpki.cloudflare.com/
Esse é o primeiro passo, agora que você tem seu ASN protegido com RPKI, o próximo passo é você também validar
prefixos de outros ASs e dropar prefixos inválidos direto no seu BGP utilizando Routinator para validação, mas isso vai
ficar para outro artigo.
IMPORTANTE: Manter seu Krill sempre atualizado, rodando, ligado e nunca pare o daemon.
Disponível em "https://wiki.brasilpeeringforum.org/index.php?title=Protegendo_seu_ASN_com_RPKI&oldid=2499"
Esta página foi modificada pela última vez em 30 de maio de 2020, às 23h48min