Como habilitar un PC para salir por un enlace distinto...

Pedro Silva pedro.se en gmail.com
Jue Mayo 7 12:21:28 CLT 2009


El 6 de mayo de 2009 12:57, Miguel Oyarzo O. <admin en aim.cl> escribió:

>
>
>
>> He hecho lo siguiente:
>>
>> /sbin/iptables -t mangle -A PREROUTING -i eth1 -s 192.168.0.14/32 -p tcp
>> --dport 1:65535 -j MARK --set-mark 1
>>
>
>
> el "-p tcp --dport 1:65535"  esta demas,
> solo con "-s 192.168.0.14"  es suficente (even sin la mask  /32)
>
> echo 200 enlace2 >> /etc/iproute2/rt_tables
>>
> ok (una sola vez y al arranque de la maquina)
>
> /sbin/ip rule add fwmark 1 table enlace2
>>
>
> ok (una sola vez y al arranque de la maquina)
>
> /sbin/ip route add default dev eth2 table enlace2
>>
>
> Aqui esta tu error, no le indicas el gateway. Debes poner algo como:
>
> ip route default dev eth2 via IP_gateway_de_ISP1 table enlace2
>
>  Con eso los paquetes marcados sabran por donde irse.
>
> Hola sigo con el problema a pesar de haber hecho los cambios ...

Asi esta /etc/iproute2/rt_tables

255     local
254     main
253     default
0       unspec
# esta fue la agregada
200     facultad
1       inr.ruhep

Antes de todo, defino el default gateway del otro ISP:

route add default gw 216.x.x.x


Luego cargo el siguiente script:

IPT=/sbin/iptables
IP=/sbin/ip

echo 1 > /proc/sys/net/ipv4/ip_forward
$IPT -F
$IPT -Z
$IPT -X
$IPT -F -t nat
$IPT -Z -t nat
$IPT -X -t nat

$IPT -P INPUT ACCEPT
$IPT -P OUTPUT ACCEPT
$IPT -P FORWARD ACCEPT

# Aqui marco y redirecciono el trafico
$IPT -t mangle -A PREROUTING -i eth1 -s 192.168.0.7 -j MARK --set-mark 1
$IP rule add fwmark 1 table facultad
$IP route add default dev eth2 via 200.x.x.x table facultad

# Masquerade y proxy transparanete
$IPT -t nat -A POSTROUTING -o eth0 -j MASQUERADE
$IPT -A INPUT -i eth1 -j ACCEPT
$IPT -t nat -A PREROUTING -i eth1 -p tcp --dport 80 -j REDIRECT --to-port
3128

Aqui algunas pruebas hechas...

iptables -t mangle -nvL
Chain PREROUTING (policy ACCEPT 1175K packets, 568M bytes)
 pkts bytes target     prot opt in     out     source
destination
  324 46730 MARK       all  --  eth1   *       192.168.0.7
0.0.0.0/0           MARK set 0x1

[root en server sbin]# /sbin/ip rule list
0:      from all lookup 255
32765:  from all fwmark 0x1 lookup facultad
32766:  from all lookup main
32767:  from all lookup default

[root en server sbin]# /sbin/ip route show table facultad
default via 200.x.x.x dev eth2

Que podra ser ?




Saludos.
-- 
Pedro S


Más información sobre la lista de distribución Linux