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.474 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.

Atualização do Zabbix 3.2 para 3.4 no Debian

Desabilitando IPV6 no Debian 8 e Ubuntu Server 16.04

Como quebrar senha usando john the ripper

Ingressar (join) CentOS 7 em domínio Samba 4 + SSH + sudo

Instalando agente do Zabbix em servidores Linux

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.