O Minimo que Voce precisa saber sobre IRR

De Wiki BPF
Revisão de 15h52min de 23 de dezembro de 2019 por Fernando.frediani (discussão | contribs) (Ajustes na formatação dos subtítulos)
Ir para: navegação, pesquisa

Introdução

O IRR (Internet Routing Registry) é um repositório de políticas de roteamento. Os dados do IRR podem ser usados por qualquer pessoa com o objetivo de obter informações para depurar, configurar e planejar endereçamento e política de roteamento. Resumidamente, o IRR e ferramentas associadas:

  • Facilitam a validação do conteúdo de mensagens dos anúncios BGP;
  • Permitem mapear um ASN em suas respectivas redes;
  • Permitem a definição de políticas de roteamento bem mais amplas do que através de filtros, nos roteadores;
  • Geram configurações para roteadores.

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 só liberam prefixos por IRR;
  • 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.
  • RABd 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 uma chave publica.
  • 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

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, os ASN’s que vende transito. Nesse atributo você deve definir um nome globalmente unico. O AS-SET deve contem em members o ASN do ISP e de todos que esse vende transito. Para facilitar o uso, você pode inserir em members outro AS-SET.

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çã
  • 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

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