BGP

IX.br: como conectar seu provedor ao ponto de troca de tráfego

Ponto central de troca de tráfego com raios ligando provedores, CDNs e route servers do IX.br

Entrar no IX.br é um dos primeiros passos de um provedor que acabou de receber o ASN. Boa parte do tráfego dos clientes vai para CDNs, plataformas de vídeo e redes sociais, e muitas delas estão presentes nos pontos de troca. Pelo IX, esse tráfego chega por um caminho mais curto e deixa de ocupar o link de trânsito, que é a parte cara da conta.

Este guia é para quem já tem ASN e blocos próprios e quer ligar a borda ao ponto de troca. Vou passar pelo que é o ATM, pelos requisitos, pelo pedido no meu.ix.br, pelo PeeringDB, pelas regras da porta e pela configuração BGP com os route servers num roteador Huawei VRP. Os endereços e ASNs dos exemplos são de documentação; os reais vêm do próprio IX.br quando a porta é ativada.

Resposta rápida: o caminho até a primeira sessão no IX.br

  1. Tenha ASN e blocos IPv4 e IPv6 próprios, registrados no Registro.br, com ROA e objetos de IRR em dia.
  2. Escolha a localidade e o PIX na página de adesão do IX.br e negocie com o PIX a chegada física: fibra apagada até o local ou transporte contratado de terceiros.
  3. Peça a conexão em meu.ix.br, na opção Ativação, migração ou ampliação, e assine o contrato.
  4. Informe o endereço MAC do roteador. A porta do IX vai aceitar só ele.
  5. Configure a interface com os IPs que o IX.br passar, sem proxy ARP, sem RA e sem protocolos de descoberta de vizinhos.
  6. Feche BGP com todos os route servers (AS26162), em IPv4 e IPv6, anunciando só os seus prefixos.
  7. Cadastre ou atualize a rede no PeeringDB, com contatos de NOC e o AS-SET que os route servers usam no filtro.

O que é um IX e o que é o ATM do IX.br

Um IX, ou PTT (ponto de troca de tráfego), é uma rede de camada 2 onde vários sistemas autônomos ligam seus roteadores e trocam tráfego direto entre si. O IX.br é o projeto do NIC.br que mantém esses pontos no Brasil, com dezenas de localidades. Dentro de cada localidade há um ou mais PIX, os prédios onde ficam os switches do IX e onde a sua fibra precisa chegar.

O ATM (acordo de troca de tráfego multilateral) é o modo padrão de participação. Ele usa uma VLAN compartilhada para IPv4 e outra para IPv6, e cada participante fecha BGP com os route servers da localidade. Com uma única sessão por route server, o seu roteador recebe as rotas de quase todos os participantes e passa a trocar tráfego direto com eles.

O ponto que mais confunde quem chega: o route server só distribui rotas. O tráfego não passa por ele. O próximo salto das rotas recebidas é o IP do roteador do outro participante na LAN do IX, e os pacotes vão de roteador para roteador pelo switch. O route server também não coloca o próprio ASN no AS path, o que tem uma consequência na configuração do Huawei que aparece mais adiante.

ModeloCom quemO que você recebeComo liga
TrânsitoCliente paga a um AS maiorA internet inteiraLink dedicado com a operadora
ATM no IX.brTodos os participantes do ATM na localidadeSó as redes dos outros participantes e dos clientes delesSessões com os route servers
Bilateral no IXDois AS que combinam entre siO que os dois decidirem trocarSessão direta entre os dois roteadores, na VLAN do ATM ou numa VLAN própria
PNIDois AS com tráfego alto entre elesAs redes dos doisCabo ou circuito dedicado, fora da LAN do IX

O peering não substitui o trânsito: pelo IX você alcança só as redes dos participantes. Para revisar a base, veja o que é BGP e como ele funciona.

Topologia do IX.br: roteador do provedor na LAN do PIX, sessões BGP com os route servers e tráfego direto com CDNs e outros provedores
Sessão BGP com os route servers (tracejado) e tráfego direto entre os participantes (linha cheia).

Requisitos antes de pedir a porta

O IX.br exige um contrato de adesão e o cumprimento de alguns requisitos técnicos. Deixe prontos antes do pedido:

ItemOnde resolverPor que importa
ASN próprioRegistro.br (é o caminho para quem está no Brasil)O IX.br aceita qualquer sistema autônomo que queira trocar tráfego na localidade
Blocos IPv4 e IPv6Registro.brSem prefixo próprio não há o que anunciar
ROA e IRRPainel do Registro.br e IRR (TC, RADB ou outro)Os route servers validam RPKI, whois e o AS-SET informado no PeeringDB
Roteador com BGPSeu equipamento de bordaPrecisa aguentar as rotas do IX além das do trânsito
Chegada físicaFibra apagada ou transporte de terceiros até o PIXNegociada com o PIX, não com o IX.br
Contrato e cadastromeu.ix.brContrato de adesão e requisitos técnicos

O ROA e o IRR merecem atenção. Os route servers do IX.br validam a origem dos anúncios por RPKI, pelo whois do Registro.br (para ASNs brasileiros) e pelo AS-SET que você declara no PeeringDB. Um prefixo sem ROA ou fora do AS-SET pode ser marcado e não chegar aos outros participantes. Veja como criar ROA no Registro.br e o post sobre filtros BGP com bgpq4 e IRR antes de pedir a porta.

Quanto custa

Segundo o FAQ do IX.br, nas localidades de São Paulo, Rio de Janeiro e Fortaleza há uma tabela de preços. Nas demais, a porta do IX.br não tem custo para o participante. O PIX, que é a instituição que hospeda o equipamento, pode ter regras e custos próprios, como espaço, energia ou a ponta da fibra. O custo maior costuma ser a chegada física até o PIX.

Passo a passo da adesão ao IX.br

  1. Escolha a localidade. Na página de adesão, selecione a cidade para ver os PIX, os contatos e as condições. Prefira a localidade mais próxima da sua rede; uma regional perto de você costuma valer mais do que uma porta distante em São Paulo.
  2. Negocie a interconexão física com o PIX. Basta um par de fibras. Muitos PIX têm caixa de emenda externa, o que facilita a chegada. Sem fibra própria, há dois caminhos: contratar transporte de terceiros até o PIX ou entrar pela porta de um participante que já está no IX, compartilhando essa porta. O IX.br chama esse segundo modelo de CIX, e a negociação é feita direto com o participante.
  3. Solicite a conexão em meu.ix.br. Use a opção Ativação, migração ou ampliação. É ali que você informa o ASN, a localidade e a porta.
  4. Informe o MAC do roteador. A interface do IX é configurada para filtrar qualquer outro endereço. Confira o MAC da subinterface ou da porta que vai de fato originar o tráfego.
  5. Receba os endereços. O IX.br informa o IPv4 e o IPv6 do seu roteador na LAN do PIX, as VLANs e os endereços dos route servers.
  6. Configure e suba as sessões. Interface, BGP com todos os route servers e, se quiser, a sessão com o looking glass, que é opcional mas recomendada.
Troca de roteador é troca de MAC. Se você substituir o equipamento ou mudar a porta para outra placa, abra chamado com o MAC novo antes da janela. Sem isso, o filtro da porta descarta tudo e as sessões não sobem, mesmo com o link físico em pé.

Boas práticas da porta no IX.br

A LAN do IX é um domínio de broadcast compartilhado com centenas de roteadores. Qualquer pacote estranho que sai da sua porta chega a todos. Por isso o IX.br tem regras claras, publicadas no FAQ:

RegraPor quê
Um MAC por portaO IX.br filtra qualquer MAC diferente do informado no chamado
Proxy ARP desligadoCom proxy ARP, o roteador responde ARP por IPs que não são dele e atrai tráfego dos outros participantes
VLAN IPv4: só IPv4 e ARPSem multicast e sem broadcast, exceto o broadcast do próprio ARP
VLAN IPv6: só unicastMulticast IPv6 só para descoberta de vizinhos (ND)
Router Advertisement desligadoUm RA na LAN do IX pode fazer outros roteadores configurarem rota ou endereço a partir do seu
Protocolos de descoberta de vizinhos (CDP, MNDP, LLDP) desligadosProtocolos de descoberta entre roteadores não podem circular na LAN do IX
Até 100 prefixos por padrãoAcima disso, o filtro padrão barra; peça aumento pelo chamado

Configuração da interface no Huawei

Exemplo com a LAN do PIX em 198.51.100.0/24 e 2001:db8:ffff::/64. Use os endereços e a máscara que o IX.br passar para a sua localidade.

interface GigabitEthernet0/1/0
 description IXBR-PIX-EXEMPLO
 ip address 198.51.100.50 255.255.255.0
 ipv6 enable
 ipv6 address 2001:DB8:FFFF::50/64
 undo arp-proxy enable
 arp expire-time 14400
 ipv6 nd ra halt
 quit
  • ip address e ipv6 address: os endereços recebidos na ativação. O ipv6 enable vem antes, porque sem ele a interface não aceita o endereço IPv6.
  • undo arp-proxy enable: no VRP o proxy ARP já vem desligado por padrão. Deixar a linha explícita evita que alguém o ligue na interface errada sem perceber.
  • arp expire-time 14400: o padrão do VRP é 1200 segundos (20 minutos). Com centenas de vizinhos na mesma LAN, renovar todas as entradas com tanta frequência gera ARP à toa. Quatro horas é o valor sugerido pelo Brasil Peering Forum para portas de IX.
  • ipv6 nd ra halt: também é o padrão no VRP. Fica escrito para não sumir numa reconfiguração.

Os protocolos de descoberta (LLDP no Huawei, CDP na Cisco, MNDP no Mikrotik) não podem sair pela porta do IX. O comando para desligar varia com o modelo e a versão; confira se o seu roteador está mandando LLDP nessa interface e desligue antes de ativar a porta. Para os ajustes de ARP em outros fabricantes, a wiki do Brasil Peering Forum tem a página Ajustes de ARP cache para o IX.

Sessões BGP com os route servers

Cada localidade do IX.br tem dois ou mais route servers, todos no AS26162. O IX.br pede sessão com todos eles, em IPv4 e em IPv6. Com um só, a manutenção desse route server derruba o seu peering inteiro na localidade. A configuração tem três partes: listas de prefixos, políticas de entrada e saída e o BGP.

1. Listas de prefixos

ip ip-prefix NOSSOS index 10 permit 203.0.113.0 24
ip ip-prefix NOSSOS-QUALQUER index 10 permit 203.0.113.0 24 less-equal 32
ip ip-prefix LAN-IX index 10 permit 198.51.100.0 24 less-equal 32
ip ip-prefix MAIS-ESPECIFICAS index 10 permit 0.0.0.0 0 greater-equal 25
ip ipv6-prefix NOSSOS6 index 10 permit 2001:DB8:100:: 40
ip ipv6-prefix NOSSOS6-SUB index 10 permit 2001:DB8:100:: 40 less-equal 128
ip ipv6-prefix MAIS-ESPECIFICAS6 index 10 permit :: 0 greater-equal 49

NOSSOS é o que você anuncia, no tamanho exato. NOSSOS-QUALQUER pega os seus blocos em qualquer tamanho, para recusar quem tente anunciar um pedaço deles para você. LAN-IX é a rede do próprio PIX, que não deve ser aprendida por BGP. MAIS-ESPECIFICAS separa tudo que for mais específico que /24 em IPv4 (de /25 a /32) e que /48 em IPv6 (de /49 a /128).

2. Políticas de entrada e saída

route-policy IX-IN deny node 10
 if-match ip-prefix NOSSOS-QUALQUER
 quit
route-policy IX-IN deny node 20
 if-match ip-prefix LAN-IX
 quit
route-policy IX-IN deny node 30
 if-match ip-prefix MAIS-ESPECIFICAS
 quit
route-policy IX-IN permit node 100
 apply local-preference 200
 quit
route-policy IX-OUT permit node 10
 if-match ip-prefix NOSSOS
 quit
route-policy IX-OUT deny node 100
 quit
route-policy IX6-IN deny node 10
 if-match ipv6 address prefix-list NOSSOS6-SUB
 quit
route-policy IX6-IN deny node 20
 if-match ipv6 address prefix-list MAIS-ESPECIFICAS6
 quit
route-policy IX6-IN permit node 100
 apply local-preference 200
 quit
route-policy IX6-OUT permit node 10
 if-match ipv6 address prefix-list NOSSOS6
 quit
route-policy IX6-OUT deny node 100
 quit
  • Nos nós deny com if-match, a rota que casa é recusada e a que não casa segue para o próximo nó.
  • O nó 100 da entrada aceita o resto com local-preference 200. Como o trânsito costuma ficar no padrão 100, o roteador passa a preferir o caminho pelo IX quando o mesmo prefixo chega pelos dois.
  • A saída só deixa passar os seus blocos. Rota de trânsito ou de outro peer vazando para o IX é o tipo de erro que vira assunto em lista de discussão no mesmo dia.

Os route servers do IX.br também filtram (RPKI, IRR, bogons, tamanho de prefixo), mas isso não dispensa o seu filtro de entrada. Os bilaterais não passam pelos route servers. Se quiser descartar rotas inválidas no seu roteador, o post de validação RPKI no Huawei mostra como fazer.

3. O BGP

bgp 64500
 undo check-first-as
 peer 198.51.100.253 as-number 26162
 peer 198.51.100.253 description IXBR-RS1
 peer 198.51.100.254 as-number 26162
 peer 198.51.100.254 description IXBR-RS2
 peer 2001:DB8:FFFF::253 as-number 26162
 peer 2001:DB8:FFFF::253 description IXBR-RS1-V6
 peer 2001:DB8:FFFF::254 as-number 26162
 peer 2001:DB8:FFFF::254 description IXBR-RS2-V6
 ipv4-family unicast
  peer 198.51.100.253 enable
  peer 198.51.100.253 route-policy IX-IN import
  peer 198.51.100.253 route-policy IX-OUT export
  peer 198.51.100.253 advertise-community
  peer 198.51.100.253 route-limit 300000 alert-only
  peer 198.51.100.254 enable
  peer 198.51.100.254 route-policy IX-IN import
  peer 198.51.100.254 route-policy IX-OUT export
  peer 198.51.100.254 advertise-community
  peer 198.51.100.254 route-limit 300000 alert-only
  quit
 ipv6-family unicast
  peer 2001:DB8:FFFF::253 enable
  peer 2001:DB8:FFFF::253 route-policy IX6-IN import
  peer 2001:DB8:FFFF::253 route-policy IX6-OUT export
  peer 2001:DB8:FFFF::253 advertise-community
  peer 2001:DB8:FFFF::254 enable
  peer 2001:DB8:FFFF::254 route-policy IX6-IN import
  peer 2001:DB8:FFFF::254 route-policy IX6-OUT export
  peer 2001:DB8:FFFF::254 advertise-community
  quit
 quit
  • undo check-first-as: por padrão o VRP confere se o primeiro AS do AS path é o AS do vizinho e, se não for, recusa a atualização e derruba a sessão. Como o route server não põe o AS26162 no caminho, as rotas chegam com o AS do participante na frente. Sem essa linha, a sessão cai logo depois de estabelecer. O comando no bgp vale para todos os vizinhos eBGP, inclusive o trânsito, e a Huawei avisa que desligar a checagem aumenta o risco de loop. Se a sua versão aceitar a forma por peer (NetEngine com VRP V8, por exemplo), prefira peer 198.51.100.253 check-first-as disable em cada route server e deixe a checagem global ligada.
  • peer ... as-number 26162 e description: uma entrada por route server, separando IPv4 e IPv6.
  • advertise-community: o VRP não envia communities por padrão. Sem isso, as communities de engenharia de tráfego do IX.br não chegam ao route server.
  • route-limit 300000 alert-only: só avisa no log quando o número de rotas passa do limite. Ajuste ao volume real da sua localidade depois de ver quantas rotas chegam.
  • As sessões IPv6 ficam só dentro do ipv6-family unicast, com as políticas IX6.

Communities do IX.br para engenharia de tráfego

Os route servers do IX.br aceitam communities que mudam como o seu prefixo é distribuído. As mais usadas, pela política de communities publicada pelo IX.br:

CommunityEfeito
65000:ASNNão anuncia o prefixo para o ASN indicado
65001:ASNAnuncia só para o ASN indicado
64601:ASN, 64602:ASN, 64603:ASNUm, dois ou três prepends ao anunciar para o ASN indicado
26162:666Marca colocada pelo route server num blackhole confirmado (/32 ou /128)

Exemplo: para não anunciar o seu bloco para o AS64511 (um participante fictício), acrescente a community no nó de saída:

route-policy IX-OUT permit node 10
 if-match ip-prefix NOSSOS
 apply community 65000:64511 additive
 quit

Use isso como último recurso. O post de BGP communities no Huawei mostra como organizar communities na borda. A lista completa, com filtros por RTT, perda de pacote e região, está na política de communities do IX.br.

Mesmo prefixo no regional e em São Paulo

Quem está em mais de uma localidade deve anunciar o mesmo tamanho de prefixo em todas. Se o regional recebe o /22 e São Paulo recebe os /24, o tráfego de volta prefere São Paulo, porque o mais específico ganha. Para puxar a entrada para o regional, use MED menor ali (por exemplo, 10 no regional e 70 em São Paulo) e uma local-preference igual ou um pouco maior na saída.

PeeringDB: o cadastro que os outros vão consultar

O PeeringDB é o banco público onde as redes publicam onde estão, como fazem peering e como falar com o NOC. O IX.br usa o AS-SET informado ali no filtro de IRR dos route servers, e outros participantes o consultam antes de aceitar um bilateral.

  1. Crie o usuário com o mesmo e-mail que aparece no whois do Registro.br. A afiliação ao ASN fica mais simples assim.
  2. Peça a afiliação ao ASN e à organização. A aprovação libera a edição do registro da rede.
  3. Preencha o registro da rede: nome, site, tipo (provedor de acesso), quantidade de prefixos IPv4 e IPv6, perfil de tráfego e política de peering.
  4. Informe o AS-SET no campo de IRR. O formato preferido é SOURCE::AS-SET, como RADB::AS64500:AS-CLIENTES, para indicar em qual base procurar.
  5. Cadastre os contatos de NOC e abuse com e-mail e telefone que alguém atende.
  6. Adicione a conexão ao IX: localidade, IPv4, IPv6, velocidade e a marcação de que usa route server.

Verificação depois de subir as sessões

display bgp peer
display bgp ipv6 peer
display bgp routing-table peer 198.51.100.253 advertised-routes
display arp interface GigabitEthernet0/1/0

Saída resumida do primeiro comando, com valores de exemplo:

 BGP local router ID : 192.0.2.1
 Local AS number : 64500
 Total number of peers : 2          Peers in established state : 2

  Peer           V    AS  MsgRcvd MsgSent OutQ Up/Down  State      PrefRcv
  198.51.100.253 4 26162    48211     913    0 6d02h    Established  48102
  198.51.100.254 4 26162    48190     911    0 6d02h    Established  48097
  • display bgp peer e display bgp ipv6 peer: todas as sessões com os route servers em Established e recebendo prefixos.
  • advertised-routes: confirme que só os seus blocos saem para o IX.
  • display arp interface: com o tráfego passando, a tabela ARP da porta cresce com os roteadores dos outros participantes.

Depois confira de fora. O looking glass do IX.br, em lg.ix.br, mostra se as sessões estão de pé e se os seus prefixos foram aceitos ou marcados por algum filtro. Um traceroute a partir do looking glass de outro participante confirma que a volta também vem pelo IX.

Erros comuns na conexão ao IX.br

  • Sessão sobe e cai em seguida no Huawei. Falta o undo check-first-as. O log mostra a atualização recusada pelo primeiro AS do caminho.
  • Sessão nem sobe, link físico em pé. MAC diferente do informado no chamado, VLAN errada no transporte ou IP digitado errado. Teste com ping para o IP do route server.
  • Prefixo aceito pela sessão, mas ninguém o recebe. ROA ausente, prefixo fora do AS-SET no PeeringDB ou menor que /24. O looking glass mostra a community de marcação.
  • Mais de 100 prefixos. Quem anuncia blocos de clientes BGP passa do limite padrão. Peça o aumento pelo chamado antes de anunciar.
  • Vazamento de rotas. Política de saída permitindo tudo ou nenhuma política no peer. Sempre termine a política de saída com um deny.

Perguntas frequentes

Preciso ter ASN próprio para entrar no IX.br?

Sim. A participação é aberta a qualquer sistema autônomo, e quem ainda não tem pode pedir ASN e blocos IPv4 e IPv6 ao Registro.br. Sem ASN, a alternativa é comprar trânsito de quem já está no IX.

Quanto custa a porta no IX.br?

Pelo FAQ do IX.br, São Paulo, Rio de Janeiro e Fortaleza têm tabela de preços; nas demais localidades a porta não tem custo para o participante. O PIX pode cobrar pela hospedagem, e a fibra ou o transporte até ele é por sua conta.

Qual a diferença entre ATM e acordo bilateral?

No ATM você fecha BGP com os route servers e troca tráfego com todos os participantes desse modo. No bilateral, dois AS combinam a troca entre si e fecham uma sessão direta. Os dois podem coexistir na mesma porta.

O tráfego passa pelo route server?

Não. O route server só distribui as rotas, e o próximo salto continua sendo o roteador do outro participante. Os pacotes vão direto pela LAN do PIX.

Por que a sessão com o route server cai no roteador Huawei?

Porque o VRP confere o primeiro AS do caminho e o route server não coloca o AS26162 nele. Configure undo check-first-as no BGP ou, se a versão aceitar, peer IP-DO-RS check-first-as disable só nos route servers.

Posso entrar em mais de uma localidade do IX.br?

Pode, e muitos provedores ficam numa regional e em São Paulo. Anuncie o mesmo tamanho de prefixo nas duas e use MED e local-preference para escolher por onde o tráfego entra e sai.

Conclusão

Conectar o provedor ao IX.br é mais papelada e cuidado do que configuração. Resolva antes ASN, ROA, IRR e PeeringDB, negocie a fibra com o PIX e peça a porta no meu.ix.br. Na porta, um MAC, nada de proxy ARP, RA ou LLDP. No BGP, sessão com todos os route servers nas duas famílias, filtro de entrada, saída só com os seus blocos e, no Huawei, o undo check-first-as.

Leitura recomendada: Participação em IX regionais, da wiki do Brasil Peering Forum (CC BY-NC 4.0).

Compartilhar:

Sobre o autor

Ivan Alves

Especialista em redes de provedores (ISP)

Ivan Alves trabalha há mais de 15 anos com redes de provedores de internet, do NOC ao backbone e à borda BGP. Coordena infraestrutura e tecnologia em um provedor regional e escreve aqui os tutoriais que gostaria de ter encontrado quando começou: comandos testados, cenário explicado e o porquê de cada linha.

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *