Antonio Arriaga [DTI2] escribió:
----- Original Message ----- From: "Julian Esteban Perconti"
<[email protected]>
To: <[email protected]>
Sent: Wednesday, January 28, 2009 8:34 PM
Subject: Re: iptables para directplay
Antonio Arriaga [DTI2] escribió:
----- Original Message ----- From: "Julian Esteban Perconti"
<[email protected]>
To: "DUS" <[email protected]>
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 [email protected]
with a subject of "unsubscribe". Trouble? Contact
[email protected]
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 [email protected]
with a subject of "unsubscribe". Trouble? Contact
[email protected]
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.
--
To UNSUBSCRIBE, email to [email protected]
with a subject of "unsubscribe". Trouble? Contact [email protected]