Adicionando rotas de forma massiva a partir de um arquivo

Publicado por Sergei Martao em 06/11/2015

[ Hits: 2.197 ]

 


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

Substituindo o FirewallD pelo Iptables no CentOS 7

Erro: NT_STATUS_OBJECT_NAME_NOT_FOUND - Samba 4.3.9 no Ubuntu Server 16.04 [Resolvido]

NTFS + Samba com o SELinux ativado

Como descobrir a velocidade de sua placa de rede via linha de comando

Instalando agente do Zabbix em servidores Linux

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário