Roteamento avançado com IPRoute2

1. Roteamento avançado com IPRoute2

Ronaldo Osowski
ronaldoo

(usa Slackware)

Enviado em 22/03/2010 - 14:26h

Boa tarde pessoal, estou tentando adicionar este script no Fedora pra poder alternar entre um gateway de internet e outro usando um comando apenas no console, mas não estou conseguindo colocá-lo em prática. Segue o que tenho em mãos, que foi baseado em outro que peguei na internet... Obrigado por qualquer palpite! Abraços.


#! /bin/bash
# advrouting Alterna entre links com operadoras
#
# chkconfig: 2345 90 60
# description: Com este script voce pode alternar entre \
# links de varias operadoras diferentes.
# processname: advrouting
# config: /etc/advrouting
# pidfile: /var/run/advrouting.pid

# roteamento avancado com IPRoute2.

# FUNCOES

brt(){
for I in $BLOCO_BrT $BLOCO_RedeInterna ; do
/sbin/ip rule del from $I table 20
/sbin/ip rule del from $I table 22
/sbin/ip rule add from $I table 20
done
}

cte(){
for I in $BLOCO_RedeInterna ; do
/sbin/ip rule del from $I table 20
/sbin/ip rule add from $I table 22
done
}

# CONSTANTES

# Gateways e Redes dos Roteadores dos Links

GW_BrT="10.1.1.1" # Link ADSL da BrT
GW_CTE="192.168.100.1" # Link da CTE
GW_RedeInterna="192.168.12.1" # Rede interna

BLOCO_BrT="10.1.1.0/24"
BLOCO_CTE="192.168.100.0/30"
BLOCO_RedeInterna="192.168.12.0/24"

IF_BrT="eth2"
IF_CTE="eth0"
IF_RedeInterna="eth1"

for I in "del" "add" ; do
/sbin/ip route $I to $BLOCO_BrT via $GW_BrT table local
/sbin/ip route $I to $BLOCO_CTE via $GW_CTE table local
/sbin/ip route $I to $BLOCO_RedeInterna via $GW_RedeInterna table local
done

# GWs default de cada link de cada operadora.

# table 20 = Brasil Telecom
# table 22 = CTE Internet

# GW default table 20 - Brasil Telecom
/sbin/ip route del default via $GW_BrT dev $IF_BrT table 20
/sbin/ip route add default via $GW_BrT dev $IF_BrT table 20

# GW default table 22 - CTE Internet
/sbin/ip route del default via $GW_CTE dev $IF_CTE table 22
/sbin/ip route add default via $GW_CTE dev $IF_CTE table 22

# Regras (rules)
# blocos

for I in $BLOCO_CTE ; do
/sbin/ip rule del from $I table 22
/sbin/ip rule add from $I table 22
done


# blocos envolvidos diretamente com os roteadores (declarados no inicio do script)

for I in "del" "add" ; do
/sbin/ip rule $I from $BLOCO_BrT table 20
/sbin/ip rule $I from $BLOCO_CTE table 22
done

######

case "$1" in
'cte')
cte
;;
'brt')
brt
;;
*)
echo "O uso correto é: $0 cte|brt !"
esac


  






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts