Resulta que tengo un pc con linux montado como servidor apache+mysql+php y al mismo tiempo lo uso para darme conexion a otro pc con el xp a traves de la conexion compartida que se puede instalar con la mandrake 8.2.
En el pc linux uso 2 tarjetas de red una para el cable modem ono y la otra para conectar el pc xp. Todo va como dios manda excepto que no puedo enviar ficheros por msn, irc,etc
ni crear partidas multijugador. Ademas a veces el pc xp pierde las dns y no resuelve. Sin embargo el edonkey funciona perfecto. He mirado las iptables y parece que todo esta correcto. ¿Alguna idea?
problema de la conexion compartida usando linux
Una cosa es que hagas NAT, es decir, que mediante iptables añadas una regla del estilo a:
# iptables -t nat -A POSTROUTING -o $interfaz_salida -j MASQUERADE". La cual simplemente efectuará traducción de direcciones salientes.
Y otra muy distinta que hagas NAPT, el cual lo que hace es enlazar un puerto de tu "router", en este caso tu linux, a una máquina de red interna, en este caso tu windows XP.
Precisamente los protocolos que nombras funcionan estableciendo un puerto a la escucha en tu XP, y evidentemente este puerto no está levantado en la máquina linux, de tal forma que cuando tu le dices a alguien que conecte a tu IP, se encuentra que ese puerto no está disponbible. Recuerda: desde internet es tu linux el que responde a las peticiones, windows xp queda "tapado" por él.
Como supondrás, la solución es decirle a linux que haga NAPT. ¿Cómo?. Usando iptables:
# iptables -t nat -A PREROUTING -p $protocolo --dport $puertodestino -i $interfaz_entrada -j DNAT --to $ipinterna
$protocolo: TCP/UDP
$puertodestino: Puerto que quieres levantar.
$interfaz_entrada: ethernet conectada al cablemodem.
$ipinterna: IP del pc con windows.
Nota: Los puertos que tienes que levantar para msn no los sé, dado que no uso ningún cliente de mensajeria instantaneo. Para IRC lo único que tienes que decirle a tu cliente ( supongo que mIRC ) es que use unos puertos concretos para establecer las conexiones de DCC, lo haces desde las opciones de DCC, y levantar esos puertos con iptables, como se indica arriba.
Suerte.
FraMe - kernelpanik.org
Para no tener que estar sacando cada puerto no podria ser por protocolos o de una forma mas general para no tener que estar añadiendo protocolos cada vez.
Hay un modulo para cargar en el kernel para solucionar lo del dcc q se llama creo recordar irc_contrackt o algo asi (memoria la mia).
Aunq quiza resulte mas comodo redirigir los puertos con iptables y pasar del modulo.
Tb hay un modulo experimental para netmeeting (protoclo h.323) aunq esta todavia en fase experimental.
Este todavia no lo he probado pero tengo q hacerlo pq me estan pidiendo poder usar netmeeting desd dentro de la red. Si alguien sabe algo de esto, ha probado si funciona o sabe alguna otra forma de hacer rular el netmeeting dentro de una lan agradeceria su ayuda :). Tb he leido algo de openh323proxy pero el ingles y yo no nos llevamos demasiado bien asi q lo tengo q leer un webo veces :P
Lo dicho si alguien sabe algo y quiere compartir su sabiduria lo haga saber.
Un saludo