MTU/MSS Values¶
MTU (Maximum Transmission Unit) y MSS (Maximum Segment Size) son parámetros críticos en redes TCP/IP que afectan el rendimiento y la eficiencia de la transmisión de datos.
Conceptos Básicos¶
MTU (Maximum Transmission Unit)¶
La MTU es el tamaño máximo de paquete que puede transmitirse en una interfaz de red sin fragmentación.
Fórmula básica:
MTU = Payload + Headers
MSS (Maximum Segment Size)¶
El MSS es el tamaño máximo de datos en un segmento TCP, excluyendo los headers TCP/IP.
Relación con MTU:
MSS = MTU - (IP Header + TCP Header)
MSS = MTU - 40 bytes (IPv4) o 60 bytes (IPv6 con opciones)
Valores MTU por Tecnología¶
Ethernet¶
| Estándar | MTU | Notas |
|---|---|---|
| Ethernet II | 1500 | Estándar más común |
| IEEE 802.3 | 1492 | Con LLC/SNAP |
| Jumbo Frames | 9000 | Frames grandes |
| Super Jumbo | 16000+ | Para storage networks |
Tecnologías WAN¶
| Tecnología | MTU Típico | Overhead | Notas |
|---|---|---|---|
| PPPoE | 1492 | 8 bytes | DSL común |
| PPTP | 1460 | 40 bytes | VPN Microsoft |
| L2TP | 1460 | 40 bytes | VPN estándar |
| GRE | 1476 | 24 bytes | Tunneling |
| IPsec | 1380-1420 | 50-90 bytes | VPN cifrado |
| MPLS | 1500 | Variable | Provider dependent |
Tecnologías Inalámbricas¶
| Tecnología | MTU | Notas |
|---|---|---|
| Wi-Fi (802.11) | 1500 | Igual que Ethernet |
| Wi-Fi (802.11n/ac) | 2304 | Con agregación |
| LTE/4G | 1428 | Dependiente del operador |
| 5G | 1428+ | Mayor en algunas implementaciones |
Tecnologías de Storage¶
| Tecnología | MTU | Uso |
|---|---|---|
| iSCSI | 9000 | Jumbo frames recomendado |
| NFS | 9000 | Mejor rendimiento |
| Fibre Channel over IP | 2400+ | Dependiente de FC |
Cálculo de MSS¶
IPv4¶
Headers mínimos: - IP Header: 20 bytes - TCP Header: 20 bytes - Total overhead: 40 bytes
MSS = MTU - 40
Ejemplos: - MTU 1500: MSS = 1460 - MTU 1492 (PPPoE): MSS = 1452 - MTU 9000 (Jumbo): MSS = 8960
IPv6¶
Headers mínimos: - IPv6 Header: 40 bytes - TCP Header: 20 bytes - Total overhead: 60 bytes
MSS = MTU - 60
Con extensiones: - Fragment Header: +8 bytes - Routing Header: +8-24 bytes - Total puede llegar a 100+ bytes
TCP con Opciones¶
Opciones comunes: - Timestamp: +12 bytes - SACK: +variable - Window Scaling: +4 bytes
MSS efectivo:
MSS_Efectivo = MSS - Opciones_TCP
Configuración en Sistemas¶
Linux¶
Ver MTU actual¶
ip link show dev eth0
ip addr show dev eth0
Configurar MTU¶
# Temporal
ip link set dev eth0 mtu 9000
# Permanente (Ubuntu/Debian)
# /etc/network/interfaces
iface eth0 inet static
address 192.168.1.100
netmask 255.255.255.0
mtu 9000
# Permanente (systemd-networkd)
# /etc/systemd/network/10-eth0.network
[Match]
Name=eth0
[Network]
Address=192.168.1.100/24
MTUBytes=9000
TCP MSS clamping¶
# Ver MSS actual
ip route show
# Configurar MSS clamping
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1452
Windows¶
Ver MTU¶
netsh interface ipv4 show interfaces
netsh interface ipv4 show subinterfaces
Configurar MTU¶
netsh interface ipv4 set subinterface "Ethernet" mtu=9000 store=persistent
PowerShell¶
Get-NetAdapter | Select Name, MtuSize
Set-NetAdapterAdvancedProperty -Name "Ethernet" -RegistryKeyword "*MTU" -RegistryValue 9000
Cisco IOS¶
! Ver MTU
show interfaces GigabitEthernet 0/0
! Configurar MTU
interface GigabitEthernet 0/0
mtu 9000
ip mtu 9000 ! Para IPv4
ipv6 mtu 9000 ! Para IPv6
! MSS clamping
ip tcp mss 1452
Juniper JunOS¶
# Ver MTU
show interfaces ge-0/0/0
# Configurar MTU
set interfaces ge-0/0/0 mtu 9000
# MSS clamping
set security flow tcp-mss all-tcp mss 1452
Problemas de MTU y Solución¶
Síntomas de MTU Baja¶
- Pérdida de paquetes grandes
- Rendimiento lento en descargas
- Problemas con VPN
- Errores de fragmentación
Diagnóstico¶
Herramientas de prueba¶
# Ping con tamaño específico
ping -M do -s 1472 192.168.1.1 # 1500 - 28 = 1472
# Descubrir MTU path
tracepath example.com
# MTR con MTU
mtr --mtu example.com
Script de discovery MTU¶
#!/bin/bash
# Descubrir MTU path
TARGET=$1
MTU=1500
echo "Descubriendo MTU path a $TARGET..."
while [ $MTU -gt 0 ]; do
if ping -M do -s $((MTU-28)) -c 1 $TARGET >/dev/null 2>&1; then
echo "MTU path: $MTU"
break
fi
MTU=$((MTU-10))
done
Problemas Comunes y Soluciones¶
1. PPPoE Overhead¶
Problema: MTU 1500 en enlace PPPoE (MTU real 1492)
Solución:
# Linux
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1452
# Router
ip tcp mss 1452
2. VPN Overhead¶
Problema: IPSec/GRE añade overhead
Solución:
# Calcular MSS correcto
# Para IPSec: MTU - 50-90 bytes
iptables -t mangle -A FORWARD -p tcp --tcp-flags SYN,RST SYN -j TCPMSS --set-mss 1380
3. Jumbo Frames¶
Problema: No todos los dispositivos soportan jumbo frames
Solución: - Verificar compatibilidad de todos los dispositivos - Usar VLANs separadas para jumbo frames - Configurar MTU por interfaz
Rendimiento y Optimización¶
Beneficios de MTU Alta¶
- Menos overhead: Menos headers por byte de datos
- Mejor throughput: Menos interrupciones de CPU
- Eficiencia: Mejor para transferencias grandes
Jumbo Frames en Práctica¶
Configuración recomendada¶
# Servidor de archivos
ip link set dev eth0 mtu 9000
# Verificar soporte
ethtool -i eth0 # Ver driver
ethtool eth0 # Ver capacidades
Casos de uso¶
- Storage: iSCSI, NFS sobre Ethernet
- Backup: Transferencias grandes
- Virtualización: Tráfico entre VMs
- Data centers: Redes de alta velocidad
Consideraciones de Seguridad¶
Fragmentación y Seguridad¶
- PMTU Discovery: Ataques de fragmentación
- ICMP blocking: Puede causar problemas de MTU
- VPN: MTU afecta rendimiento de túneles
Mejores Prácticas¶
- Monitoreo: Alertas de cambios de MTU
- Documentación: Registrar MTU por segmento
- Testing: Verificar compatibilidad antes de cambiar
- Backup: Plan de rollback
Valores de Referencia¶
MTU por Tipo de Red¶
| Tipo de Red | MTU Recomendado | Notas |
|---|---|---|
| LAN Ethernet | 1500 | Estándar |
| LAN Gigabit | 1500-9000 | Jumbo si soportado |
| WAN PPPoE | 1492 | Overhead PPPoE |
| WAN MPLS | 1500 | Provider dependent |
| VPN IPSec | 1380-1420 | Overhead cifrado |
| Wireless | 1500 | Igual que Ethernet |
| Storage | 9000 | Jumbo frames |
MSS por Escenario¶
| Escenario | MTU | MSS IPv4 | MSS IPv6 |
|---|---|---|---|
| Ethernet estándar | 1500 | 1460 | 1440 |
| PPPoE | 1492 | 1452 | 1432 |
| IPSec tunnel | 1420 | 1380 | 1360 |
| PPTP | 1460 | 1420 | 1400 |
| Jumbo frames | 9000 | 8960 | 8940 |
Referencias¶
- RFC 1191: Path MTU Discovery
- RFC 1981: Path MTU Discovery for IPv6
- RFC 2923: TCP Problems with Path MTU Discovery
- RFC 879: The TCP Maximum Segment Size and Related Topics
- IEEE 802.3: Ethernet Standards