Mudanças entre as edições de "O Minimo que Voce precisa saber sobre IRR"

De Wiki BPF
Ir para: navegação, pesquisa
(finalização)
(Adicionado à Categoria Roteamento)
Linha 202: Linha 202:
  
 
'''Autor:''' [https://www.linkedin.com/in/jrcorazza/ Junior Corazza]
 
'''Autor:''' [https://www.linkedin.com/in/jrcorazza/ Junior Corazza]
 +
[[Categoria:Roteamento]]

Edição das 21h43min de 29 de dezembro de 2019

Introdução

Parte do trabalho de quem administra um sistema autônomo é a configuração de sessões BGP com outro sistema autônomo para trocar informações de roteamento. O BGP tende a enviar e receber tudo por padrão, portanto, não é incomum que os usuários do BGP enviem acidentalmente muito mais rotas para um de seus peers do que pretendiam.

A chave para corrigir isso é a filtragem de prefixos. Ao configurar uma sessão BGP com outra rede, você deve concordar claramente sobre quais prefixos deseja aceitar deles e quais prefixos pretende enviá-los. O problema ao tentar gerenciar esse lista de prefixos acordada manualmente é que isso significa que toda vez que você adiciona um novo bloco de endereços IP à sua rede, é necessário entrar em contato com todos os seus fornecedores para atualizar seus filtros para que eles aceitam de você.

Para ajudar a automatizar essa tarefa, o Internet Routing Registry (IRR) e o Routing Policy Specification Language (RPSL) foram desenvolvidos para permitir que você descreva formalmente sua política de roteamento e publique on-line. Isso é feito por vários bancos de dados de IRR que permitem criar objetos RPSL no banco de dados, que servem para outras pessoas que respondem a consultas whois que geram filtros para o BGP. Através disto, outros sistemas autônomos, como seus fornecedores, podem atualizar seus filtros de forma automática, diminuindo as chances de falhas humanas e reduzindo o tempo de liberação de novos prefixos.

O IRR foi criado em 1995 na época em que os provedores de acesso à Internet do mundo estavam se preparando para o final da atividade do backbone da NSFNET e, comemorando o primeiro aniversário da Internet comercial. Por volta de 1999, haviam os seguintes repositórios: CA*Net, no Canadá, o ANS, CW e RADB nos EEUU e o RIPE na Europa. Os três primeiros eram privativos e os dois últimos, públicos.

Visite: http://www.irr.net/

Por que o IRR é Importante?

  • Imagine uma internet mais segura e onde erros humanos são praticamente impossíveis de ocorrer;
  • Permite definir sua polícia de roteamento em um formato padrão entendido no mundo todo;
  • Prefix-lists geradas automaticamente, sem necessidade de interação humana;
  • Vários operadores nacionais já suportam liberação de prefixos através de IRR;
  • Alguns operadores fazem liberação de prefixos APENAS por IRR, alguns IX usam apenas bases IRR para liberar prefixos em seus route-servers;
  • Liberação de prefixos absurdamente mais rápidas.
  • Alguns provedores de conteúdo vão parar de aceitar prefixos que não estiverem em uma base IRR.

Ggc-new.png

Bases IRR

Estima-se que existem mais de 40 bases IRR descentralizadas, vou demonstrar abaixo apenas as mais conhecidas. Para uma lista mais completa, acesse: http://www.irr.net/docs/list.html

RIRs SP's Terceiros
AFRINIC LEVEL3 RADb
APNIC NTT TC
ARIN BBOI ALTDB
RIPE
LACNIC*

*No dia 09/10 no Lacnic32 foi apresentado a comunidade o IRR do Lacnic, teremos uma versão beta em Dezembro de 2019 e um versão estável em Março de 2020.

Alguns Fatos sobre os IRR

  • LEVEL3 é apenas para clientes Level3.
  • NTT pode ser usada por clientes e cliente de clientes.
  • Dos RIR’s, apenas o LACNIC não tinha uma base IRR.
  • TC (bgp.net.br) é um projeto nacional, também é o mais fácil de se usar.
  • BBOI, ALTDB e TC são grátis.
  • Algumas bases são espelhadas em outras, por exemplo, BBOI e TC são espelhadas com RADb.
  • RADb espelha praticamente todas as bases IRR, por isso é o mais completo
  • RADb é a mais importante, mais conhecido e mais usado.
  • Apesar de serem espelhadas, essas bases não são integradas, cada uma manter o seu SOURCE
  • RADb é pago.
  • IRR disponibilizados pelos RIR são apenas para membros da região e não espelham com nenhum outro IRR
  • Qualquer pessoa no mundo pode fazer uma consulta através do whois.
  • RFC’s: 2622, 2650, 2679 e 7682.

RPSL

A RPSL foi criada em 1999 para substituir a até então atual linguagem de politicas da internet, também conhecida como RIPE-181 ou RFC1786.

Ela foi projetada para que os administradores de ASN's possam ter uma visão da politicas de roteamento de outros ASN's, tudo isso usando um banco de dados distribuído e mantido cooperativamente para melhorar a integridade do roteamento global.

• RPSL é a abreviação de Routing Policy Specification Language

• IRR usa os objetos no formato especificado pela RPSL

• Linguagem única e global

• RFC 2622 define o novo modelo de RPSL (o que usamos atualmente)

Tendo uma alusão ao modelo de computação atual, podemos dizer que o IRR é o base de dados e a RPSL é linguagem de programação do banco de dados usado pelo IRR.

IRR vs RKPI

  • RPKI é uma forma de validar os prefixos na origem através de chaves públicas e privadas.
  • Combina modelo hierárquico de distribuição dos recursos com o uso de certificados.
  • RFC’s 6480 á 6492.
  • Basicamente resolve o problema de hijack de prefixos.
  • Demanda um enorme trabalho dos RIRs.
  • Não é suportado por roteadores mais antigos, mesmo atualmente alguns fabricantes ainda não suportam.

O Ideal seria usarmos o RPKI sobre o IRR.

RPKI é para o futuro.

IRR está pronto e você deve usa-lo agora!

Principais Objetos IRR

  • Maintainer / Person

O objeto maintener é aquele que contem as informações (através de seus respectivos atributos), que qualificam e autenticam um AS. O objeto person serve para qualificar o administrador ou administradores do objeto maintener. Pode haver mais de um objeto person para um mesmo maintener e vários objetos maintener podem possuir um mesmo objeto person. Esses são os únicos objetos que dependem de interação humana do lado do IRR para sua criação, todos os outros são manipulados através de um sistema de e-mails usando a RPSL, exceto se você usar RADb.

Mtner.png
  • Route / Route6

O objeto route especifica uma rota que pode ser anunciada pelo AS e somente por ele. O objeto descreve um endereço IPv4, sua máscara de rede e associa o AS a partir do qual a rota pode se originar (atributo origin). Já o objeto route6 faz a mesma coisa para o IPv6.

Route.png
  • As-set

Define o cone de ASN’s, ou seja, o conjunto de ASN’s que seu ISP vende trânsito. Esse atributo é o mais importante para a liberação automática de prefixos, pois é com base nele que são geradas as prefix-list de forma automática. Por isso é importante que o as-set name seja globalmente único, portanto antes de criar um as-set certifique-se que o nome não tenha sido utilizado por nenhum outro ASN

O as-set deve conter em members todos os ASN’s que participam do seu export para um upstream, para facilitar a gerencia e manter a organização você pode colocar em members outro as-set, como mostra o exemplo abaixo onde o AS262761:AS-CUSTUMERS é um novo as-set que contém outros members.

As-set.png
  • Aut-num

O objeto aut-num descreve as informações sobre um AS e suas políticas de roteamento, tanto sob o ponto de vista dos anúncios, como da aceitação de redes. Ele se aplica tanto ao IPv4 como ao IPv6.

Aut-num.png
  • Objetos via Proxy

Se você não criou seus objetos route/route6, alguém pode ter criado para você. Isso acontece por que alguns upstreans liberam prefixos apenas por IRR, então acaba sendo mais fácil e rápido o upstream criar os objetos route/route6 via proxy do que ele solicitar a todo cone de ASN's a criação dos objetos. Não é um pecado fazer isso, desde que feito da maneira correta.

Proxy.png

Tutorial: Inserindo seus dados numa base IRR

Usaremos a Base IRR BBOI nos exemplos

  • Todo o processo é feito através de e-mail. Use o formato texto sem formatação (plain-text).
  • Processo de criação do maintainer é manual.
  • Para criar o maintainer deve-se enviar um e-mail para [[1]]
  • Depois do maintainer criado, todo o restante é feito por e-mail através do sistema automatizado usando RPSL.
  • As alterações feitas pelo sistema automatizado usa-se o e-mail [[2]]
  • ALTDB funciona da mesma forma, alterando apenas o e-mail para criação do maintainer e o e-mail do sistema automatizado. Respectivamente [[3]] e [[4]]
  • Após o envio de cada e-mail você receberá uma notificação de que sua solicitação foi incluída com sucesso ou se ouve erros.
  • No RADb todo o processo pode ser feito pela web, abstraindo a RPSL. Caso opte em usa-lo você pode seguir o tutorial clicando nesse link

Primeiramente, deve-se criar o maintainer e o person, assim como no e-mail abaixo. Na esquerda temos o modelo de e-mail e na direita as explicações.

Exemplo-mntner.png

Depois do maintainer criado, vamos criar os objetos route e route6. Percebam que a partir de agora usaremos a senha para manutenção em clear-text e não mais em md5.

Route-ex.png

Vamos agora criar o AS-SET, veja abaixo na esquerda o exemplo de e-mail e na direita uma breve explicação.

As-set-ex.png

Por ultimo, podemos criar o nosso AUT-NUM. Veja abaixo na esquerda o exemplo de e-mail e na direita uma breve explicação.

Aut-ex.png

Caso queria deletar um objeto, faça da mesma forma que fez para adiciona-lo porem com um delete assim como mostra o exemplo:

Imagem2.png

Espelhamento entre as bases IRR

È importante entender que uma base pode espelhar a outra, mas o inverso pode não acontecer. Exemplo claro disso é que as bases dos RIRs não espelham nada de nenhum outro IRR, mas o RADb espelha todas as bases IRR dos RIR’s.

Cada IRR gera uma base (texto) populada por seus respectivos objetos. Geralmente leva o nome da base, como por exemplo, radb.db, level3.db, altdb.db, etc. Esse IRR então disponibiliza a URL onde esse arquivos estará disponível.

O whois e/ou ferramentas quando dirigidos a uma base específica, podem não encontrar um objeto pelo fato da base na qual ele foi inserido não existir naquele servidor. Se ela não existe é porque o servidor não espelha aquele IRR e nem armazena a base do IRR (via ftp, p. ex.).

IRRd

IRRd é o daemon usado para se criar um servidor IRR, ele s uporta os padrões RPSL e RPSLng. O pacote IRRd inclui todos os serviços de suporte necessários, incluindo: espelhamento automatizado quase em tempo real de outros bancos de dados de IRR, verificação de sintaxe de atualização, autenticação / segurança e notificação.

http://www.irrd.net/

https://github.com/irrdnet/irrd-legacy

Como fazer consultas em uma base IRR

Usamos o comando whois no Linux para fazer consultas. Os exemplos a seguir são feitos usando o IRR da NTT, mas pode ser usado em qualquer um.

Para consulta do objeto route

  whois -h rr.ntt.net 200.160.0.0/20

Para consulta através do objeto maintainer

   whois -h rr.ntt.net -i mnt-by MAINT-AS22548

Para consulta através do objeto maintainer, usando RADB como source

    whois -h rr.ntt.net -s RADB -i mnt-by MAINT-AS22548

Lista completa dos endereços de whois: http://www.irr.net/docs/list.html

Lista completa das possibilidades do whois: man whois

Fontes

Curso IRR – Julião Braga

https://ii.blog.br/2010/03/18/curso-irr-parte-i-introducao/

The Internet Route Registry and you: a tier 1 network perspective – Brian Foust

https://youtu.be/-_CzlJ_Tx_o

IRR & SCW IRR - Hebert Faleiros

ftp://ftp.registro.br/pub/gter/gter31/03-IRR-SCW.pdf

IRR – Merit

http://www.irr.net/

IRR – BBOI

http://irr.bboi.net/

Autor: Junior Corazza