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