Skip to content

evandroalves28/RoutingLoopCheck

Repository files navigation

RoutingLoopCheck

Este é um script em Shell, que verifica possíveis loops de roteamento
em sub-redes e retorna uma lista de hosts que podem estar com loop,
analisando do ponto de vista da rede de origem de execução do script.
O script verifica através do comando fping, se os hosts de uma determinada rede
apresentam resposta do tipo **ICMP Time Exceeded** e gera uma lista contendo estes hosts.
A partir desta lista, o script pode gerar um log e notificações via email e/ou telegram.
OBS: Para enviar a notificação por email, você precisará do pacote **mailutils** instalado.

^$ apt install mailutils

Como utilizar o script:

1 - Defina seus parâmetros no arquivo de configuração routingloopcheck.conf

2 - Você pode definir um texto padrão que será enviado no corpo do email de notificação
Há disponível neste repositório, um texto elaborado por mim que explica de forma clara
como resolver o problema de loop de roteamento.

3 - Você pode executar o script manualmente ou criar um agendamento no cron para executar periodicamente.
Minha sugestão é a execução uma vez por semana.
Para isso, adicione estas linhas no final do arquivo /etc/crontab, onde **65535** é o seu ASN

#RoutingLoopCheck
0 2 * * 1 root /etc/routingloopcheck.sh 65535 >/dev/null 2>&1

ou

#RoutingLoopCheck
0 2 * * 1 root /etc/routingloopcheck.sh -c 65535 >/dev/null 2>&1

Em seguida, reinicie o cronjob:

~$ systemctl restart cron

Para verificar os CIDR de um ASN específico, execute o script, informando o ASN a ser verificado

~$ routingloopcheck.sh 65535

Utilizando este comando, o script irá realizar uma consulta no whois.nic.br, coletar quais os CIDR IPv4
alocados para este AS e verificar se há loops de roteamento nas sub-redes deste CIDR.

Você pode realizar uma análise em lotes, informando vários ASNs.

~$ routingloopcheck.sh 65535 65534 65533

Utilizando o comando abaixo:

~$ routingloopcheck.sh -c 65535

O script irá consultar a política de roteamento AS-in cadastrada no nic.br, verificar quem são os AS que estão no cone
de downstream, coletar quais são os CIDR alocados aos mesmos e verificar se há loop de roteamento.
O script irá considerar como cone de downstream, as políticas de roteamento definidas como accept AS65535, como no exemplo
da imagem abaixo:

Alt text

Exemplo de notificação por Email:

Alt text

Exemplo de notificação por Telegram:

Alt text