Objetivos

  • Aprender a montar uma rede simulada de roteadores virtuais
  • Analisar funcionamento do RIP em diferentes topologias
  • Entender limitações do protocolo
  • Configurar o RIP de forma segura

Histórico

Routing Information Protocol (RIP) é um protocolo de roteamento, baseado no algoritmo Vetor-Distância, projetado para ser usado como um Interior Gate Protocol em redes de tamanho moderado com diâmetro máximo de 15 saltos. Este número foi escolhido para equilibrar o tamanho da rede com a velocidade de convergência, caso ocorra a contagem ao infinito. A primeira versão do RIP foi descrita em 1988, no RFC 1058.

Alguns anos após o lançamento do RIPv1 (1991), surgiram IGPs mais robustos. No entanto, a quantidade de implementações RIP era bastante superior naquela época, pois os novos protocolos ainda não tinham sido adotados amplamente. Ademais, o RIP tinha algumas vatagens em relação aos novos protocolos. Motivado por estes fatores, a segunda versão do RIP, descrita no RFC (RFC 1388), foi lançada em 1993.

Revisões subsequentes desta versão (RFC 1723, RFC 2453 e RFC 4822) acrescentaram novas medidas de segurança, como suporte para Cryptographic Authentication. Também existe uma versão deste protocolo para o IPv6 (RIPng - RFC 2080)

RIPv1RIPv2OSPF
Distance Vector (Bellman-Ford)Distance Vector (Bellman-Ford)Link State (Dijkstra)
ClassfulClasslessClassless
Configuração fácilConfiguração fácilConfiguração difícil
Convergência LentaConvergência LentaConvergência Rápida
Protocolo UDPProtocolo UDPProtocolo IP
BroadcastMulticastMulticast
Sem AutenticaçãoAutenticação MD5Autenticação MD5
Métrica: Saltos (limitado a 15)Métrica: Saltos (limitado a 15)Métrica: Largura de Banda


RIPv1

Segundo a Akamai, houve um série de reflection DDoS attacks usando o RIPv1 em 2015, e nesse mesmo ano foi detectado (pela Akamai) que 53,693 roteadores estavam usando RIPv1. Para realizar o ataque, os pacotes RIP são maliciosamente construídos de forma que o campo IP seja definido como o alvo do ataque para que simule um Request deste IP. Um único pacote Request comporta até 25 destinos diferentes.

Para prevenir este tipo de ataque, se recomenda usar Acess List Control para restringir o acesso à porta UDP 520 e atualizar o protocolo para a versão RIPv2

rip_1

RIPv2

rip_2

RIPng

rip_6

Contagem ao Infinito

O RIP implementa técnicas clássicas que ajudam a evitar a ocorrência da contagem ao infinito. Abaixo é ilustrado um cenário, no qual o protocolo não implementa técnicas as Split Horizon, S.H. + Poisoned Reverse e Triggered Updates.

intro_0

Roteador C perde conexão com a Rede 4

intro_1

Antes que o roteador C enviei seu novo vetor com métrica 16 para B, C recebe o vetor de B e atualiza sua tabela de rotas

intro_2

Como B aprendeu a rota para a Rede 4 por C, o valor dessa rota será sobreescrito quando C enviar seu vetor para B, causando um incremento recíproco até atingir o valor máximo 16.

Split Horizon & Poisoned Reverse

Agora vamos supor que o RIP implemente as técnicas de Split Horizon & Poisoned Reverse:

mikrotik_12

Para induzir o erro: roteador A perde a conexão com a rede do seu endereço DHCP. A próxima mensagem RIP de A para B e C vai conter a rota para essa rede com métrica de 16 saltos. Antes que essa atualização chegue em B e C, o roteador C deve atualizar B com uma rota para a rede do DHCP passando por B. Após a perda de conexão da rede DHCP, a ordem dos eventos deve ser:

  1. B recebe atualização da tabela de rotas de C
  2. C recebe atualização da tabela de rotas de A e B recebe atualização da tabela de rotas de A
  3. A recebe atualização da tabela de rotas de B

Triggered Updates

Esta técnica envia atualizações imediatamente após a ocorrência de um evento como perda de conexão.

Roteador C perde conexão com a Rede 4 e imediatamente após este evento, C envia seu vetor atualizado para B

intro_1