Desajuste de MTU (solo desaparecen los paquetes grandes) MTU black hole
ID de la causa dc-mtu · Responsable principal Infraestructura de red (Equipo de infraestructura) · También Infraestructura de servidores (Equipo de infraestructura), Desarrollo de servidor (Equipo de desarrollo)
Si la MTU (el tamaño máximo que se puede enviar de una vez) se reduce en un tramo intermedio y los avisos de tamaño excedido están bloqueados, solo los paquetes grandes desaparecen una y otra vez.
Por qué La MTU se reduce en un tramo con túnel o VPN → Efecto Un firewall bloquea los avisos de tamaño excedido (ICMP) y el emisor no se entera → En pantalla Congelamiento y luego desconexión solo al abrir pantallas grandes, como el inventario o la lista de personajes
Al hacer ciertas acciones, Al conectar o tras un mantenimiento
Responsable
Responsable principal Infraestructura de red (Equipo de infraestructura) · También Infraestructura de servidores (Equipo de infraestructura), Desarrollo de servidor (Equipo de desarrollo)
Tareas (Equipo de desarrollo)
Para bajarlo directamente desde el servidor, configurar en el socket el tamaño máximo de segmento con TCP_MAXSEG (partir los mensajes en trozos más pequeños en el código del juego no basta para evitarlo), mantener los paquetes UDP en 1,200 bytes o menos.
Tareas (Equipo de infraestructura)
Red: reducir el tamaño de los paquetes TCP en los tramos con túnel (ajuste del MSS), permitir los avisos de tamaño excedido (ICMP) en los firewalls y las ACL de red en la nube. Servidores/SO: permitir también los avisos de tamaño excedido (ICMP) en los firewalls de los servidores y los grupos de seguridad en la nube, activar la detección de MTU en el kernel del servidor (tcp_mtu_probing=1), una última red de seguridad que solo actúa después de que la conexión pase unos segundos detenida.
Cifras de referencia
Normalmente es de 1,500 bytes, y al pasar por un túnel baja a unos 1,400.
En el gráfico
Alto solo en algunos · Desconexiones por región/ISP, respuestas grandes fallidas
Dónde mirar
Desde la computadora del jugador afectado, enviar al servidor pings con la marca de no fragmentar (DF) variando el tamaño. En Windows, ping /f /l 1472 SERVER_IP; en Linux, ping -M do -s 1472 SERVER_IP (1,472 es la MTU de 1,500 menos los 20 bytes de la cabecera IP y los 8 bytes de la cabecera ICMP). Bajar el tamaño poco a poco hasta encontrar el máximo que pasa, y comprobar si los grupos de seguridad y firewalls del lado del servidor permiten los avisos ICMP de tamaño excedido (Fragmentation Needed)
Se confirma si
Los pings pequeños pasan, pero el ping DF de 1,472 bytes falla (sin respuesta o con un error de que hace falta fragmentar), y el tamaño máximo que pasa es pequeño, de unos 1,400. Los jugadores de una misma región se congelan solo al abrir pantallas grandes
Se descarta si
Si el ping DF de 1,472 bytes también pasa, no es un problema de MTU de la ruta. Si ni siquiera pasan los pings pequeños, el ICMP está bloqueado del todo y este método no sirve para saberlo
Se verifica con
En el entorno del jugador
Fuentes
RFC 2923: TCP Problems with Path MTU DiscoveryIETF Si un firewall bloquea el ICMP (Fragmentation Needed), la detección de la MTU de la ruta falla y solo los paquetes grandes siguen desapareciendo (agujero negro); el ping y los mensajes pequeños funcionan, lo que dificulta el diagnóstico
IP SysctlLinux kernel tcp_mtu_probing=1 está normalmente apagado y activa la detección de MTU de la ruta en TCP solo cuando detecta un agujero negro ICMP
ping(8) — Linux manual pageiputils -M do activa la marca DF y rechaza los paquetes más grandes que la MTU de la ruta; -s fija el tamaño de los datos (56 bytes por defecto, más 8 bytes de cabecera ICMP)
pingMicrosoft /f activa la marca DF y sirve para encontrar problemas de MTU de la ruta; /l fija el tamaño de los datos