Re: Como habilitar un PC para salir por un enlace distinto...
On Wed, 2009-05-06 at 18:57 +0200, Miguel Oyarzo O. wrote: Pedro Silva escribió: Tengo el siguiente problema: un servidor tiene 3 tarjetas de red, una para LAN y dos para ISPs, como puedo habilitar el trafico de un pc de la LAN que pueda salir por uno de los enlaces y todos los demas por el otro enlace. El esquema seria como el que sigue: La idea es que solo un par de equipos de la LAN puedan tener acceso mediante el enlace ISP1 y los demas por el ISP2 Viendo creo que la solución va por iproute2 e iptables, he visto algunos howtos y no doy con la solución al problema, me pueden ayudar por favor. Hay mas de una forma de hacerlo (lamentablemente?). Lo puedes hacer solo con iproute: # ip rule add from 192.168.1.100 table 500 # ip rule add from 192.168.1.101 table 500 # ip rule add from 192.168.1.102 table 500 # ip route add table 500 default via 192.168.1.50 192.168.1.100-102 son los tarros, 192.168.1.50 es el gateway al otro enlace. El 500 lo puedes reemplazar por un nombre si lo agregas en /etc/iproute2/rt_tables. Hay ayuda si escribes help despues del comando. Ejemplo: # ip rule help # ip route help Hoy casi el 90% de trafico es http, asi que otra opcion es poner un squid transparente (ganas en mejor respuesta)... -- Aldrin Martoq amar...@dcc.uchile.cl http://aldrin.martoq.cl/
Re: Como habilitar un PC para salir por un enlace distinto...
El 6 de mayo de 2009 12:57, Miguel Oyarzo O. ad...@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 [r...@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 [r...@server sbin]# /sbin/ip route show table facultad default via 200.x.x.x dev eth2 Que podra ser ? Saludos. -- Pedro S
Re: Como habilitar un PC para salir por un enlace distinto...
El 7 de mayo de 2009 12:13, Aldrin Martoq amar...@dcc.uchile.cl escribió: On Wed, 2009-05-06 at 18:57 +0200, Miguel Oyarzo O. wrote: Pedro Silva escribió: Tengo el siguiente problema: un servidor tiene 3 tarjetas de red, una para LAN y dos para ISPs, como puedo habilitar el trafico de un pc de la LAN que pueda salir por uno de los enlaces y todos los demas por el otro enlace. El esquema seria como el que sigue: La idea es que solo un par de equipos de la LAN puedan tener acceso mediante el enlace ISP1 y los demas por el ISP2 Viendo creo que la solución va por iproute2 e iptables, he visto algunos howtos y no doy con la solución al problema, me pueden ayudar por favor. Hay mas de una forma de hacerlo (lamentablemente?). Lo puedes hacer solo con iproute: # ip rule add from 192.168.1.100 table 500 # ip rule add from 192.168.1.101 table 500 # ip rule add from 192.168.1.102 table 500 # ip route add table 500 default via 192.168.1.50 192.168.1.100-102 son los tarros, 192.168.1.50 es el gateway al otro enlace. El 500 lo puedes reemplazar por un nombre si lo agregas en /etc/iproute2/rt_tables. Hay ayuda si escribes help despues del comando. Ejemplo: # ip rule help # ip route help Hola: He hecho tambien lo que me explicas y tampoco pasa nada, no tendre que cargar algun modulo o compilar algo en el kernel, que crees que pueda ser? Hice lo que me explicas e hice pruebas, pero no logro hacer que funcione. Saludos. -- Pedro S.
Como habilitar un PC para salir por un enlace distinto...
Buenas lista... Tengo el siguiente problema: un servidor tiene 3 tarjetas de red, una para LAN y dos para ISPs, como puedo habilitar el trafico de un pc de la LAN que pueda salir por uno de los enlaces y todos los demas por el otro enlace. El esquema seria como el que sigue: --ISP 1 | | eth2| LAN ---eth1Linux Server ---Internet eth0 | || --ISP 2 - La idea es que solo un par de equipos de la LAN puedan tener acceso mediante el enlace ISP1 y los demas por el ISP2 Viendo creo que la solución va por iproute2 e iptables, he visto algunos howtos y no doy con la solución al problema, me pueden ayudar por favor. 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 echo 200 enlace2 /etc/iproute2/rt_tables /sbin/ip rule add fwmark 1 table enlace2 /sbin/ip route add default dev eth2 table enlace2 Saludos. -- Pedro S
Re: Como habilitar un PC para salir por un enlace distinto...
2009/5/6 Pedro Silva pedro...@gmail.com Tengo el siguiente problema: un servidor tiene 3 tarjetas de red, una para LAN y dos para ISPs, como puedo habilitar el trafico de un pc de la LAN que pueda salir por uno de los enlaces y todos los demas por el otro enlace. El esquema seria como el que sigue: Pedro: Este asunto se soluciona con dos tablas de ruta diferente. Lo que se hace es que con iptables se marcan los paquetes y con esa marca se selecciona la tabla de ruta a utilizar. Mira esto: http://www.linuxhorizon.ro/iproute2.html Suerte -- Atte, Juan Cristóbal Olivares חואנכרי == Renovarse o morir: Mi PC de los sesenta tenía veinte mil militantes. Y mi PC del siglo XXI tiene cuarenta gigabytes.
Re: Como habilitar un PC para salir por un enlace distinto...
Pedro Silva escribió: Buenas lista... Tengo el siguiente problema: un servidor tiene 3 tarjetas de red, una para LAN y dos para ISPs, como puedo habilitar el trafico de un pc de la LAN que pueda salir por uno de los enlaces y todos los demas por el otro enlace. El esquema seria como el que sigue: La idea es que solo un par de equipos de la LAN puedan tener acceso mediante el enlace ISP1 y los demas por el ISP2 Viendo creo que la solución va por iproute2 e iptables, he visto algunos howtos y no doy con la solución al problema, me pueden ayudar por favor. 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. Salu2, = Miguel A. Oyarzo O. Ingeniería en Redes y Comunicaciones Linux User: # 483188 - counter.li.org Austro Internet S.A. INALAMBRICA S.A. Teléfono: [+05661] 710030 Punta Arenas - Chile =