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

2009-05-07 Por tema Aldrin Martoq
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...

2009-05-07 Por tema Pedro Silva
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...

2009-05-07 Por tema Pedro Silva
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...

2009-05-06 Por tema Pedro Silva
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-05-06 Por tema Juan C. Olivares
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...

2009-05-06 Por tema Miguel Oyarzo O.



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
=