Pular para o conteúdo

Adicionando rotas de forma massiva a partir de um arquivo

Dica publicada em Linux / Redes
Sergei Martao sergeimartao
Hits: 4.475 Categoria: Linux Subcategoria: Redes
  • Indicar
  • Impressora
  • Denunciar
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

Adicionando rotas de forma massiva a partir de um arquivo

Às vezes precisamos desviar o tráfego de um determinado serviço para um segundo link de internet menos utilizado.
A forma mais comum é criar uma rota para um host de destino apontando para o segundo gateway, porém algumas empresas têm tantos hosts que se torna quase inviável fazer isso de forma manual, alguns exemplos são:
Contudo existe uma forma de automatizar esse processo, nessas ocasiões o comando "for" salva várias horas de digitação.

1 - Criei um arquivo para adicionar as redes e hosts que precisam ter o tráfego desviado:

# vim /tmp/redes

2 - Adicionei as redes e hosts, exemplo:

31.13.64.51
50.92.225.64/27
50.133.94.46
62.62.198.204/30
O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.

3 - Usando de exemplo o IP do Gateway de internet é 200.200.200.1 e a interface de saída eth0, podemos usar os seguintes comandos para adicionar as rotas.

Adicionado hosts:

# for i in `cat /tmp/redes | grep -v [/]`; do route add -host $i gw 200.200.200.1 dev eth0; done

Adicionando redes:

# for i in `cat /tmp/redes | grep [/]`; do route add -net $i gw 200.200.200.1 dev eth0; done

Detalhando:

for i in `cat /tmp/redes | grep -v [/]`;
  • O for é responsável por ler o arquivo e jogar o valor de cada linha na variável "i".
  • O "grep -v [/]" traz tudo que não contiver barra, ou seja, apenas os host.
  • O "grep [/]" traz apenas o que contiver barra, apenas as redes.

do route add -host $i gw 200.200.200.1 dev eth0;

Inicia a repetição do "for", assim o conteúdo da variável $i se torna o conteúdo do arquivo e adiciona rota para todos os hosts e redes.

O "done" finaliza o for.

A saída dos comandos será:

route add -host 31.13.64.51 gw 200.200.200.1 dev eth0
route add -host 50.133.94.46 gw 200.200.200.1 dev eth0
route add -net 50.92.225.64/27 gw 200.200.200.1 dev eth0
route add -net 62.62.198.204/30 gw 200.200.200.1 dev eth0


O Viva o Linux depende da receita de anúncios para se manter. Ative os cookies aqui para nos patrocinar.
Não conseguimos carregar os anúncios. Se usa bloqueador, considere liberar o Viva o Linux para nos patrocinar.
Nenhuma dica encontrada.

Instalando agente do Zabbix em servidores Linux

Como acessar SSH pelo Thunar

IPERF - Diagnosticar sua rede

Como instalar driver wireless das placas broadcom b43

Como mapear unidade de rede no Linux

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.