Salve, F�bio...
Eu estou postando o script que eu usei para dois gateways. Adapte-o para
suas necessidades.
Tenha em conta o seguinte:
Meu roteador usa o CL8 com as seguintes caracter�sticas:
ppp0: IP vari�vel, gateway vari�vel (conex�o de internet banda larga)
eth0: 172.16.0.0 - rede local de 100mbps (onde est�o pendurados minhas
esta�oes locais wired e o o modem, com pppoe relay - a autentica��o �
feita no linux, para facilitar o repasse de portas -tipo e-mule, http e
vnc-)
eth1: 10.0.0.33, gateway 10.0.0.7 - (conex�o de internet banda m�dia,
via r�dio com ip fixo)
eth2: 10.10.1.0 - rede local de 11Mps (r�dio 'ad-hoc' local, que eu uso
para conectar o notebook e meus HP Jornada)
eth3: 192.168.254.0 - rede local de 10Mbps (eu uso para uma segunda
conex�o ADSL, mas o login � feito no pr�prio modem -speedlink- e est�
fora dessas tabelas que eu estou te passando, pois estou experimentando
um balan�o com uma TERCEIRA conex�o). Como ainda estou testando, vou
passar o que est� testado e funciona perfeitamente:
Ah, sim... acredite se quiser: meu roteador tem 4 dispositivos de rede,
� servidor de impress�o, servidor de r�dio, servidor VNC e X e... � um
486 DX4-100 com 32mb de ram... kkkkkkkkkkk
Bem... Aqui est� o script que voc� precisa, jovem padawan:
########## Inicio do script rc.balanco
#!/bin/bash
# Configura roteamento para duas portas [com diferentes classes de IP],
cada qual com seu pr�prio gateway.
# Author: Rog�rio Batista Ayres, claro..
## ANTES DE MAIS NADA, Defina duas novas tabelas, incluindo seus nomes
## no rodap� de /etc/iproute2/rt_tables, assim:
## 1 tabela1
## 2 tabela2
# Este script dever� ser rodado no final de rc.local ou
# a) em caso de IP fixo: imediatamente ap�s /etc/rc.d/init.d/network;
# b) em caso de ip din�mico, logo ap�s a conex�o PPPoE
# c) diretamente no prompt (basta dar um chmod 755 nele e copiar para /sbin)
echo
echo "Configurando Portas Ethernet duplas:"
TESTE="`/sbin/ifconfig |grep ppp0`"
#route del default
if [ -x $TESTE ] ; then
echo Ihhhh, caramba... a ADSL n�o est� no ar... vou definir uma rota
s� para o r�dio.
echo Verifique se:
echo - o modem est� ligado;
echo - os cabos est�o em ordem;
echo - Se a configura��o de repasse de PPPoE (PPPoE Relay) do
modem est� ok
echo - Se voc� configurou o cliente PPPoE aqui no linux
echo - Se voc� comandou o login, seu man�.
echo - Se voc� pagou a conta da companhia telef�nica, seu
n�-cego! hehehe.
route add default gw 10.0.0.7
else
######
# Interface principal (r�dio) em eth1:
IF0=eth1
NET0=10.0.0.0 # � a classe de IP da cepain (meu provedor via r�dio)
IP0=10.0.0.33 # � o meu IP na cepain
GW0=10.0.0.7 # � o gateway da cepain
echo "NET0=$NET0"
echo "IP0=$IP0"
echo "GW0=$GW0"
######
# Interface secund�ria em ppp0 (Din�mica):
IF1=ppp0
# In�cio da parte cr�tica deste script.
NET1="`/sbin/ifconfig ppp0 | /bin/awk \
/ppp0/'{next}//{split($0,a,":");split(a[3],a," ");print a[1];exit}'`"
IP1="`/sbin/ifconfig ppp0 | /bin/awk \
/ppp0/'{next}//{split($0,a,":");split(a[2],a," ");print a[1];exit}'`"
GW1="`/sbin/ifconfig ppp0 | /bin/awk \
/ppp0/'{next}//{split($0,a,":");split(a[3],a," ");print a[1];exit}'`"
# A linha acima � equivalente a
# GW1=`ifconfig ppp0 | grep "inet end." | cut -d: -f3 | cut -d' ' -f1`
# mas no rc.local costuma dar zica causa da tradu��o nas coxas que
fizeram no bin�rio do ifconfig
if [ -x $NET1 ] ; then
# Bem, aqui deve ter dado algo errado. No caso de autoexecu��o em
/etc/rc.d/rc.local as linhas acima n�o
# fungam. Ent�o, vamos recorrer ao velho e bom GREP e CUT, mas
tendo em conta que a resposta ao comando
# "ipconfig" na inicializa��o � gerada em ingl�s. Assim, a busca
deve ser pela string 'inet addr'.
# Meu... at� eu descobrir isso eu penei, heim?!
NET1=`ifconfig ppp0 |grep "inet addr:"|cut -d: -f3 | cut -d' ' -f1`
IP1=`ifconfig ppp0 |grep "inet addr:"|cut -d: -f2 | cut -d' ' -f1`
GW1=`ifconfig ppp0 |grep "inet addr:"|cut -d: -f3 | cut -d' ' -f1`
fi
## final da parte cr�tica deste script.
echo "NET1=$NET1" # � a classe de ip do PPPoE descoberta pelas linhas
acima
echo "IP1=$IP1" # � o meu IP na PPPoE no momento
echo "GW1=$GW1" # � o gateway do PPPoE
######
#testa se o ip do ppp0 � nulo.
if [ -x $NET1 ] ; then
#Mesmo ap�s todas essas firulas com o bash, o script n�o conseguiu
pegar seu IP...
#A� lascou!! (melhor checar se est� tudo em ordem com o script).
echo
echo "Ihhhh, fodeu!!! N�o consegui pegar o IP da conex�o PPPoE."
echo "Vou criar uma rota default s� para o r�dio."
Echo "Verifique se est� tudo em ordem com a parte cr�tica do script."
route add default gw $GW0
else
#Load balance... nova abordagem, by Doctor_Roger, obvious.
# Para copiar sua pr�pria tabela, copie a tabela 'main', que
naturalmente j� existe
# no seu sistema, a partir do seguinte comando:
# ip route show >minha_tabela
# edite o arquivo 'minha_tabela' para saber como preencher as
tabelas abaixo.
# Vamos l� ent�o. . .
# primeiro vamos copiar as rotas existentes da tabela 'main' para
as duas tabelas
# Come�ando pela tabela1
echo Criando a tabela1
ip route add $GW1 dev ppp0 proto kernel scope link src
$IP1 table tabela1
ip route add 10.0.0.0/24 dev eth1 proto kernel scope link src
10.0.0.33 table tabela1
ip route add 172.16.0.0/24 dev eth0 proto kernel scope link src
172.16.0.254 table tabela1
ip route add 10.10.1.0/24 dev eth2 proto kernel scope link src
10.10.1.254 table tabela1
ip route add 127.0.0.0/8 dev lo scope
link table tabela1
ip route add 10.10.10.0/24 dev eth1 via $GW0 table tabela1
# Agora na tabela2 - mesma coisa; � c�pia fiel. A coisa s� muda
mesmo no que
# diz respeito ao gateway padr�o, sacou?! [Mas isso � mais pra
frente].
echo criando a tabela2
ip route add $GW1 dev ppp0 proto kernel scope link src
$IP1 table tabela1
ip route add 10.0.0.0/24 dev eth1 proto kernel scope link src
10.0.0.33 table tabela2
ip route add 172.16.0.0/24 dev eth0 proto kernel scope link src
172.16.0.254 table tabela2
ip route add 10.10.1.0/24 dev eth2 proto kernel scope link src
10.10.1.254 table tabela2
ip route add 127.0.0.0/8 dev lo scope
link table tabela2
ip route add 10.10.10.0/24 dev eth1 via $GW0 table tabela2
# Assim, temos tr�s tabelas com rotas id�nticas de destino (main
-que � nativa-,
# tabela1 e tabela2). Mas a tabela1 a tabela 2 AINDA N�O TEM
gateway default configurado
###########
# Na tabela1 irei colocar o outro gateway default EXCLUSIVO, que �
o r�dio da cepain [10.0.0.7 em eth1]
ip route add default via $GW0 dev eth1 table tabela1
# Agora iremos adicionar a origem dos ips ou rede que ir�o
respeitar essa tabela1 usando somente
# o novo link de internet [o r�dio da cepain]:
ip rule add from 172.16.0.253 table tabela1 #� a minha Estacao1
[navegar� s� pelo r�dio]
# Os ips e a rede acima ir�o sair para a internet SOMENTE pelo
novo link de internet [10.0.0.7].
###########
# Na tabela2 iremos fazer um load-balance dos 2 links de internet
[o ip da ppp0 e 10.0.0.7]
# com peso igual dos dois:
ip route add default table tabela2 nexthop via $IP1 dev ppp0
weight 1 nexthop via 10.0.0.7 dev eth1 weight 1
# Vamos agora adicionar os ips que fazem parte dessa tabela
[tabela2, balanceada]:
ip rule add from 10.10.1.0/24 table tabela2 #O Notebook e os
dois HP Jornada [via r�dio local]
ip rule add from 172.16.0.100 table tabela2 #A Esta��o do Eduardo
ip rule add from 172.16.0.236 table tabela2 #A Esta��o do F�bio
# Vamos agora adicionar os ips que fazem parte da tabela principal
- n�o balanceada, saindo exclusivamente na ppp0:
#ip rule add from 172.16.0.11 table main #A estacao3 [minha
esta��o sai s� pela ADSL]
# Besteira. N�o precisa, pois na main j� estava definida a rota
default para a ppp0 e eu comentei
# o comando route del default no in�cio deste script [mesmo assim
eu deixei s� para fins did�ticos].
fi
fi
########## Final do script rc.balanco
Finalmente, use o comando iptables normalmente, sem pudor ou cerim�nia...
Quando eu testar o script para TR�S gateways ou mais, eu mando.. fechado?!
Qualquer coisa, � s� perguntar!
Um abra��o do Doctor_Roger.
--
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]