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
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
~$ 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:
Exemplo de notificação por Email:
Exemplo de notificação por Telegram: