
Ambiente
- Ubuntu 18.04.3 LTS
- ZeroTier 1.4.6 (último paquete estable)
- Wine 4.17 (último paquete de desarrollo)
Estoy intentando organizar una sesión LAN de Red Alert 3 (usando Wine) en mi sistema y me gustaría usar Zerotier ya que estoy detrás de una configuración CGNAT.
Zerotier funciona perfectamente en cuanto a conectarse con otros sistemas en la misma red (zerotier). Pero no puedo ver a otros jugadores en el lobby de la red. Usando Wireshark pude descubrir que los paquetes udp que RA3 requiere para funcionar correctamente se transmitían solo en la interfaz LAN y no se reenviaban a la interfaz de red de nivel cero en absoluto.
Mi siguiente intento fue usar una herramienta para obligar a Wine a usar la interfaz de nivel cero.
- pequeño programa de enlace en C que puedes cargar usando LD_PRELOAD
- usar un script para crear espacios de nombres y vincular interfaces a él
-
Razones por las que fallaron en el mismo orden:
Porque no era compatible con udp.
- Esto funcionó inicialmente. Pero no era estable ni consistente. A veces, el otro jugador me veía en el lobby pero yo no podía verlos. Y otras veces fue todo lo contrario. Además, tuve que ejecutar esto como root, lo cual no es bueno cuando uso Wine. Entonces esta opción no ayudó, pero me ayudó a comprender algunas cosas.
- Pudo vincularme a esa interfaz, pero desafortunadamente no pude usar la misma IP (genera otra IP en la misma subred) y no obtuve un resultado como cuando usé la opción n.° 2. Incluso intenté agregar la dirección IP a la interfaz de red de nivel cero desde
my.zerotier.com
la interfaz de usuario. No ayudó.
Además de esto, estuve probando muchas configuraciones de iptables pero eso no ayudó. También habilité el reenvío de ipv4 a través de sysctl. Sigo pensando que esto se puede resolver mediante iptables.Estees el último intento que tengo hasta ahora (en forma de script bash)