All pastes #588430 Raw Edit

Unnamed

public text v1 · immutable
#588430 ·published 2007-06-25 14:52 UTC
rendered paste body
#!/bin/bash

IP=`which ip`
IPTABLES=`which iptables`

# Configurao de rede.
P0_NET=192.168.0.0/24
IF0=eth0
IP0=192.168.0.100

# Link 1
P1_NET=100.100.100.0/24
IF1=eth1
IP1=100.100.100.100
P1=100.100.100.1

# Link 2
P2_NET=255.255.255.0
IF2=eth2
IP2=200.200.200.200
P2=200.200.200.2

echo "[+] Limpando todo garbage..."
$IP route flush all
$IP route flush table link1
$IP route flush table link2 
echo "[*] OK!"

echo "[+] Adicionando rotas para tabela principal..."
$IP route add $P0_NET dev $IF0 src $IP0
$IP route add $P1_NET dev $IF1 src $IP1
$IP route add $P2_NET dev $IF2 src $IP2
echo "[*] OK!"

echo "[+] Configurando Link 1..."
$IP route add $P1_NET dev $IF1 src $IP1 table link1
$IP route add default via $P1 table link1
echo "[*] OK!"

echo "[+] Configurando Link 2..."
$IP route add $P2_NET dev $IF2 src $IP2 table link2
$IP route add default via $P2 table link2
echo "[*] OK!"

#echo "[+] Adicionando rota preferida..."
#$IP route add default via $P2
#echo "[*] OK!"

echo "[+] Adicionando regras das rotas..."
$IP rule del from $IP1 table link1
$IP rule add from $IP1 table link1
$IP rule del from $IP2 table link2
$IP rule add from $IP2 table link2
echo "[*] OK!"

echo "[+] Adicionando rede local na tabela do link1..."
$IP route add $P0_NET     dev $IF0 table link1
$IP route add $P2_NET     dev $IF2 table link1
$IP route add 127.0.0.0/8 dev lo   table link1
echo "[*] OK!"

echo "[+] Adicionando rede local na tabela do link2..."
$IP route add $P0_NET     dev $IF0 table link2
$IP route add $P1_NET     dev $IF1 table link2
$IP route add 127.0.0.0/8 dev lo   table link2 
echo "[*] OK!"                                     

echo "[+] Adicionando rede local na tabela do link3..."
$IP route add $P0_NET     dev $IF0 table link3
$IP route add $P1_NET     dev $IF1 table link3
$IP route add $P2_NET     dev $IF2 table link3
$IP route add 127.0.0.0/8 dev lo   table link3
echo "[*] OK!"                                     

echo "[+] Habilitando forwarding do kernel..."
echo "1" > /proc/sys/net/ipv4/ip_forward
echo "[*] OK!"

echo "[+] Desabilitando filtro de pacotes reverso..."
for i in `ls /proc/sys/net/ipv4/conf`; do 
        echo "0" > /proc/sys/net/ipv4/conf/$i/rp_filter 
done
echo "[*] OK!"

echo "[+] Balanceando links..."
echo "2" > /proc/sys/net/ipv4/route/gc_interval
echo "2" > /proc/sys/net/ipv4/route/gc_timeout
$IP route add default scope global equalize nexthop via $P1 dev $IF1 weight 3 nexthop via $P2 dev $IF2 weight 1
# nexthop via $P3 dev $IF3 weight 1
echo "[*] OK! Load Balance concludo com sucesso!!! =)"

echo "[+] Flush routes..."
$IP route flush cache
echo "[*] OK!"