[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: iptables para directplay



Antonio Arriaga [DTI2] escribió:

----- Original Message ----- From: "Julian Esteban Perconti" <vh1988@yahoo.com.ar>
To: <debian-user-spanish@lists.debian.org>
Sent: Wednesday, January 28, 2009 8:34 PM
Subject: Re: iptables para directplay


Antonio Arriaga [DTI2] escribió:

----- Original Message ----- From: "Julian Esteban Perconti" <vh1988@yahoo.com.ar>
To: "DUS" <debian-user-spanish@lists.debian.org>
Sent: Wednesday, January 28, 2009 7:19 PM
Subject: iptables para directplay


Hola listeros:

Estoy teniendo problemas con iptables, me explico rapidamente:

Para poder jugar a los juegos usan directplay necesito estas reglas (sin contar las de forward):

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2300:2400 -j DNAT --to 192.168.0.2 iptables -t nat -A PREROUTING -i eth0 -p udp --dport 2300:2400 -j DNAT --to 192.168.0.2 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 28800:29000 -j DNAT --to 192.168.0.2 iptables -t nat -A PREROUTING -i eth0 -p udp --dport 28800:29000 -j DNAT --to 192.168.0.2 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 47624 -j DNAT --to 192.168.0.2 iptables -t nat -A PREROUTING -i eth0 -p udp --dport 47624 -j DNAT --to 192.168.0.2 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6073 -j DNAT --to 192.168.0.2 iptables -t nat -A PREROUTING -i eth0 -p udp --dport 6073 -j DNAT --to 192.168.0.2

El problema es que quiero que puedan jugar mas hosts y entonces se me hace una galleta en la cabeza, ya que, si por ejemplo agrego las mismas reglas pero con otro destino, iptables no arroja error.., pero la cosa no funciona:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2300:2400 -j DNAT --to 192.168.0.6 iptables -t nat -A PREROUTING -i eth0 -p udp --dport 2300:2400 -j DNAT --to 192.168.0.6 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 28800:29000 -j DNAT --to 192.168.0.6 iptables -t nat -A PREROUTING -i eth0 -p udp --dport 28800:29000 -j DNAT --to 192.168.0.6 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 47624 -j DNAT --to 192.168.0.6 iptables -t nat -A PREROUTING -i eth0 -p udp --dport 47624 -j DNAT --to 192.168.0.6 iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 6073 -j DNAT --to 192.168.0.6 iptables -t nat -A PREROUTING -i eth0 -p udp --dport 6073 -j DNAT --to 192.168.0.6

Busque bstante en inet y lo mas cercano que econtre fue un modulo para el kernel creo que se llama algo asi como ip_masq_dplay, pero el proyecto murio en 2002.. (pienso yo) aproximadamente, o al menos la ultima version de este modulo se lanzo ese año.., al margen no pude compilarlo.. en fin..

Quisiera saber si es posible hacer esto, es decir, cambiar la direccion de destino de un mismo puerto para varias maquinas.

Desde ya, gracias de antemano.


--
To UNSUBSCRIBE, email to debian-user-spanish-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org



Yo nunca he oído que se pueda hacer eso...
Con el puerto concreto iptables cogería la primera regla que encuentre.
Lo que si se puede hacer es poner un servidor para cada host interno, algo del estilo:

iptables -t nat -A PREROUTING -i eth0 -p tcp -s <servidor1> --dport 2300:2400 -j DNAT --to 192.168.0.2 iptables -t nat -A PREROUTING -i eth0 -p tcp -s <servidor2> --dport 2300:2400 -j DNAT --to 192.168.0.6

esto limitaría el mapeo de los puertos a un único servidor. No creo que te sirva...


==============================================================
Antonio Arriaga


Hola antonio gracias por tu tiempo..
No se muy a que te referis con un servidor para cada host..
a mi lo que se me ocurrió en un momento ( y no se si es esto lo que quisite decirme..) el tomar la ip del servidor, pero en este caso el servidor es el que crea una partida, tendria que pedirle la ip a quien la cree.., pero seria una tarea bastante tediosa.., mas al ser varios hosts lo que jugarian.. no se si hacias referencia a eso..
Gracias.


--
To UNSUBSCRIBE, email to debian-user-spanish-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org




A ver. No se exactamente los servicios que tienes montados, en mi ejemplo, pongamos:

iptables -t nat -A PREROUTING -i eth0 -p tcp -s 66.102.9.99 --dport 2300:2400 -j DNAT --to 192.168.0.2 iptables -t nat -A PREROUTING -i eth0 -p tcp -s 208.117.236.74 --dport 2300:2400 -j DNAT --to 192.168.0.6


La primera regla mapearía los puertos 2300 al 2400 a la IP 192.168.0.2, pero sólo desde la IP 66.102.9.99. Igual con la segunda regla, mapea los puertos 2300 al 2400 a la IP 192.168.0.6, pero sólo desde la IP 208.117.236.74.

Las conexiones que entren a los puertos 2300 a 2400 que no vengas desde ninguno de esos servidores no se mapearían a ningún sitio a nos ser que pongas algo menos restrictivo del estilo:

iptables -t nat -A PREROUTING -i eth0 -p tcp --dport 2300:2400 -j NAT --to 192.168.0.7

No se si habrá aclarado tu duda.

==============================================================
Antonio Arriaga



Hola Antonio, tu explicación es muy clara al igual que los ejemplos.
Ahora bien, el servicio funciona así:
A través de un programa los jugadores entran a un determinado "lobby" que a la vez, estos "lobby's" tienen 99 "room's" cada uno, que la única funcion que cumple es comunicar a los jugadores dentro de ellos; lo cual indica que: en la regla de iptables en donde "--source" es el creador de la partida, es decir, en cada room hay un jugador que hace de "server" y los demas son "clientes" de ese server. Lo que hace que yo deberia consultar la ip a cada creador de partidas, cada partida. Entonces todo se vulve denso, y mas cuando son varias pc las que necesitan jugar. En pocas palabras no hay un servidor estático, cambia en todo momento, en cada partida.

No me quedo claro la regla:
iptables -t nat -A PREROUTING -i eth0 -p tcp  --dport 2300:2400 -j NAT
 --to 192.168.0.7

esto como funcionaria? por nunca usa a "NAT" como target, y creo no haberla visto tampoco.

o fue una simple falta de ortografía?

Gracias.


Reply to: