O Minimo que Voce precisa saber sobre IRR
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.
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
- 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.
- 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.
- 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.
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.
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.
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.
Vamos agora criar o AS-SET, veja abaixo na esquerda o exemplo de e-mail e na direita uma breve explicação.
Por ultimo, podemos criar o nosso AUT-NUM. Veja abaixo na esquerda o exemplo de e-mail e na direita uma breve explicação.
Caso queria deletar um objeto, faça da mesma forma que fez para adiciona-lo porem com um delete assim como mostra o exemplo:
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
IRR & SCW IRR - Hebert Faleiros
[[5]]
IRR – Merit
IRR – BBOI
Autor: Junior Corazza