À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
Nenhum comentário foi encontrado.