Adicionando rotas de forma massiva a partir de um arquivo

Publicado por Sergei Martao em 06/11/2015

[ Hits: 3.759 ]

 


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

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


Outras dicas deste autor
Nenhuma dica encontrada.
Leitura recomendada

Como mudar o nome da interface de rede padrão do Ubuntu

Ferramentas para administradores de redes

Acesso remoto gráfico (servidor e cliente) pelo Gnome

Desativando IPV6 no Ubuntu Server/Desktop [18.04/20.0/22.04]

Traceroute - como escolher qual gateway ou interface de rede será usado

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts