- Funciona: cuelgues alrededor de la 3ra o principio de la 4a carrera.
- Router: 3com 3CRADSL72 de Ya.com. No funciona desde el PC tampoco (usandolo de bridge). Firm SMC 0.85, ADSL 13.9.38
- MK: Backup, aunque juraría que también pasaba en el original. Probaré un original en cuanto lo consiga (lo tiene prestado un amigo)
- Consola: Lite Flasheada. De nuevo juraría que también pasaba con la Lite sin flashear y el MK original. Sin probar en una tocha, aunque lo haré. FlashMe v7 con soporte Lite.
Propongo también que pongamos la configuración del sistema resumida:
- Net Config: net 192.168.3.0/24, Router .1, DS .185
- AP Config: 2Mbps 11b WEP
nota: lo de 192.168.3.0/24 es una abreviación de decir /255.255.255.0 (la mascara de red expresada en numero de bits se puede abreviar. 255.0.0.0 seria /8, 255.255.0.0 /16, etc). La dirección de la red siempre es la .0 (o .0.0, etc), en el 99% de los casos.
Si tenemos mas configs probadas ponedlas tambien.
- Config: net 192.168.3.0/24, Router .1, DS DHCP(.250 asignada), 2Mbps, 11b, WEP
- AP Config: 11Mbps 11b+g WEP
- Notas config: el DHCP del 3CRADSL72 no funciona por un fallo del router - el DHCP que he usado lo servía el PC.
El firmware del SMC no es hackeado, simplemente es el firmware de otro modelo que tiene el mismo hardware. Lo unico que tiene de "hackeado" es que se le cambia el ID para que lo acepte. Eso si, tengo un proyectito algo muerto pero que pienso revivir, de meterle linux a este router. Puede que ayude a clarificar algo.
Para los que usen routers con firmware GPL (Linksys WRT54G me viene a la cabeza), en teoría tiene que ser facil editarlo para ampliar el timeout arp, o meter una entrada ARP forzada en la tabla.
OnekO, si, soy el de la Euskal. Lo probaremos. Evidentemente no podemos probar con el router como router (no tenemos ADSL en la euskal), pero si como punto de acceso WiFi, que para el caso da igual porque he comprobado que con el PC haciendo peticiones ARP tampoco va.
Ahora mismo voy a sacar un router/AP 3com OfficeConnect (router Ethernet+AP, sin ADSL), y voy a probar a ver si pasa lo mismo.
En cuanto al 3com de Ya.com, alguien comentaba que con el ultimo firmware oficial de 3com se arreglaba, con las opciones correctas. Yo paso de cambiarlo que para todo lo demás me va muy bien el SMC, y con mi programa ya no tengo el problema. Supongo que la unica diferencia será que el otro firmware no tiene el timeout del ARP tan corto, aunque igual un dia lo pongo para probar a ver que pasa realmente.
Bien, acabo de probar el 3com 3CRWE50194, que es un router-AP sin ADSL, en modo bridge (ignorando la funcion router). El hardware de este router es totalmente distinto al del 3CRADSL72, que yo sepa. (vamos, la CPU es del mismo fabricante, pero ahi acaban las similtudes).
De entrada, deciros que da el mismo fallo. Asi que directamente:
- Funciona: cuelgues alrededor de la 3ra o principio de la 4a carrera.
- Router: 3com 3CRADSL72 de Ya.com. No funciona desde el PC tampoco (usandolo de bridge). Firm SMC 0.85, ADSL 13.9.38
- AP Wifi: 3com 3CRWE50194, bridge con el 3CRADSL72
- MK: Backup
- Consola: Lite Flasheada.
- Net Config: net 192.168.3.0/24, Router .1, DS .185
- AP Config: 11Mbps 11b OPEN
He hecho capturas de paquetes desde el PC, con la DS conectandose a ambos routers, y el resultado es el mismo. Las capturas estan filtradas para que solo se vea lo interesante, no todo el trafico que va al PC. Las podeis ver con Ethereal/Wireshark, o otro programa que soporte capturas en formato pcap. Son capturas del Ethernet del PC, no del WiFi (eso sera lo siguiente).
Captura 1: El PC tiene la tabla de ARP limpia. El PC esta intentando hacer ping a la DS, y por tanto hace peticiones ARP constantes. En ese momento la DS se conecta a WFC via el 3CRADSL72.
Captura
Vemos como primero el PC pregunta por la DS. La DS al conectarse primero envia un ARP gratuito (una petición de la dirección de si misma, con lo que realmente es un regalo a los demás diciendo eh, yo soy esta y me da igual quien me pida). En ese momento el PC comienza a hacer pings a la dirección que acaba de obtener, pero la DS no contesta (por ahora). La DS hace unos ARPs al router como parte de su proceso de conexión, y hace los test de conexión y autenticación (no se ve en esta captura desde el PC). Entonces la DS hace un ARP al PC (el cual contesta), obtiene su dirección, y empieza a responder a los pings del PC. (estamos en la pantalla de selección de modo, ya dentro del WFC). Notese que en ningun momento ha contestado la DS al ARP del PC, sino que simplemente ha regalado su dirección al principio (cosa que hace sea pedida o no), pero no ha hecho ninguna contestación directa. Entonces, yo limpio la tabla ARP del PC. Se puede ver como los pings se pierden y comienzan los ARPs de nuevo por parte del PC. La DS se queda callada, y el PC no puede hacer ping. Fin de la captura.
Captura 2: El PC tiene la tabla de ARP limpia. El PC esta intentando hacer ping a la DS, y por tanto hace peticiones ARP constantes. En ese momento la DS se conecta a WFC via el 3CRWE50194.
Captura
Resultados: exactamente los mismos que en el anterior. Sin embargo, en este caso, intento reanimar la conexion. Despues de borrar la tabla de ARP al final, la DS magicamente envia una respuesta ARP! ¿como ha ocurrido esto? Muy facil. He entrado en la pantalla de busqueda de jugadores, y he
desenchufado el ethernet del router. La ruedecita se queda parada en la DS, y cuando lo vuelvo a enchufar ¡envia el ARP que necesitamos! (y sigue funcionando). El PC reanuda los pings, y luego el proceso lo repito un par de veces para asegurarme (borrar ARP, desenchufar, enchufar). Esto demuestra que la DS
es capaz de enviar respuestas ARPs, pero en algunos casos (casi siempre en mi caso), no los envia. Causar una pérdida forzada de paquetes hace que se envien los ARPs temporalmente, en mi caso.
Captura 3: Continuación de captura 2, ya en juego. No se ven los datos de juego, solo los broadcasts a la red puesto que la captura es desde el PC y esto es una red switched.
Captura
Este es un ejemplo de como falla la DS al comunicarse con el router en medio de la tercera carrera, visto desde el punto de vista del PC (que no ve los datos DS<->router, sino solo los datos genericos como los ARPs que van broadcast). Proximamente saco la captura WiFi que si incluye todo.
La captura empieza desde el principio de la primera carrera, pero el primer paquete (marcado como el paquete en tiempo 0 en este caso), es una petición ARP que hace el router a la DS ya empezada la tercera carrera. La DS no contesta, aunque por ahora la comunicación continua (el router quizas todavia no ha borrado la entrada correspondiente de la tabla ARP). Despues vienen mas, y despues uno al PC (el cual contesta. Tambien es signo de que el router ha limpiado TODOS los ARP). Poco despues, el router vuelve a preguntar a la DS, sin que ella conteste. Al final, se desata un torrente de peticiones ARP, ya que el router ha perdido la entrada y hace una por cada paquete entrante de los servidores dirigido a la DS. La DS los ignora, y se cuelga la partida. Desenchufar y enchufar el Ethernet no ayuda.
Luego saco las capturas WiFi para tener mas datos.
Sobre lo de que Nintendo nos tire, yo voy a probar con un original pronto. En teoría flashearla no debería cambiar el numero de serie ni nada, aunque el juego por supuesto si está preparado puede detectar el firmware cambiado. Pero aun asi, creo que MKDS salió antes que FlashMe, asi que la unica opción de Nintendo sería hacerlo via codigo de parcheo online (no se si será posible), no creo que hayan previsto esto antes de que se hiciera.
Aun asi, tengo un dump del firmware original al completo (soy previsor), asi que puedo restaurarlo si lo necesito.