Redes de Windows MS

Ajuste de IP MTU, TCP MSS y PMTUD en los sistemas Windows y Sun

24 Agosto 2015 - Traducción Automática
Otras Versiones: PDFpdf | Inglés (22 Abril 2015) | Comentarios


Contenido


Introducción

Este documento proporciona ejemplos sobre los nodos de configuración para ajustar la Unidad de Transferencia Máxima IP (MTU), el Tamaño Máximo de Segmento de TCP (MSS), y Detección de MTU de Trayectoria IP (PMTUD) en Solaris 10 (y versiones anteriores), HP-UX 9.x, 10.x, 11.x, IBM AIX, Linux, Windows 95/98/ME, Windows NT 3.1/3.51, Windows NT 4.0 y Windows 2000/XP.

prerrequisitos

Requisitos

Quienes lean este documento deben tener conocimiento de los siguientes temas:

Componentes Utilizados

Este documento no tiene restricciones específicas en cuanto a versiones de software y de hardware.

Convenciones

Para obtener más información sobre las convenciones del documento, consulte las Convenciones de Consejos Técnicos de Cisco.

Antecedentes

Debido al malfuncionamiento del hardware de red, la configuración incorrecta, o los defectos del software, puede observar que las transferencias pequeñas de datos de TCP funcionan sin problema. Pero las transferencias de datos grandes, aquellas con paquetes de longitud total, se cuelgan y luego se agota su tiempo de espera. Una solución alternativa es configurar los nodos de envío para hacer una o ambas acciones:

  • Inhabilitar PMTUD.

  • Reduzca el TCP MSS o la MTU de IP para reducir los tamaños máximos de paquetes.

Descripción de problemas y causas posibles

A veces, en algunas trayectorias IP, un nodo TCP/IP puede enviar una cantidad muy pequeña de datos (habitualmente menos de 1500 bytes) sin problemas, pero los intentos de transmisión con una mayor cantidad de datos se cuelgan, y luego finaliza su tiempo de espera. En general, esto se observa como un problema unidireccional en el que las transferencias de datos amplias se logran en una dirección pero se caen en la otra dirección. Es probable que este problema este causado por el valor TCP MSS, por una falla PMTUD, diferentes tipos de medios LAN o links defectuosos. Estas subdivisiones describen los problemas:

Valor TCP (Protocolo de control de transmisión) MSS

El valor TCP MSS especifica la cantidad máxima de datos de TCP en un solo datagrama IP que el sistema local puede validar (re ensamblado). El datagrama IP se puede fragmentar en varios paquetes cuando se envía. Teóricamente, este valor puede ser tan grande como 65495, pero un valor tan grande nunca se utiliza. Habitualmente, un sistema extremo utiliza la “interfaz saliente MTU” menos 40 como su MSS informado. Por ejemplo, un valor de Ethernet MSS es 1460 (1500 - 40 = 1460).

Falla del PMTUD

PMTUD es un algoritmo descrito en el RFC 1191 y se implementa en las stacks TCP/IP recientes.leavingcisco.com Este algoritmo intenta descubrir el datagrama IP más amplio que se puede enviar sin fragmentación a través de una trayectoria IP y aumenta el rendimiento de la transferencia de datos.

PMTUD se implementa si el remitente IP recibió el indicador "No fragmentar" (DF) en el encabezado IP. Si un paquete IP con este conjunto de indicadores alcanza un router cuyo link de siguiente salto tiene un MTU demasiado pequeño para enviar el paquete sin la fragmentación, ese router descarta el paquete y envía el error ICMP "Fragmentation needed but DF set" al remitente IP. Cuando el remitente IP recibe este mensaje del Internet Control Message Protocol (ICMP), aprende a utilizar un IP MTU más pequeño para los paquetes enviados a este destino, y los paquetes posteriores pueden llegar a destino.

Varios problemas pueden hacer que el algoritmo PMTUD falle. El remitente IP nunca aprende la MTU de trayectoria más pequeña pero continúa, sin éxito, la retransmisión el paquete de gran tamaño, hasta que finaliza el tiempo de espera. Algunos problemas incluyen:

  • El router con la trayectoria del salto siguiente no puede generar el mensaje de error ICMP necesario.

  • Un router en la trayectoria inversa entre el router de MTU pequeña y el remitente IP descarta el mensaje de error ICMP antes de que pueda alcanzar el remitente IP.

  • Confusión en el stack del remitente IP en el cual ignora el mensaje de error ICMP recibido.

Una solución alternativa para estos problemas es configurar el remitente IP para inhabilitar la PMTUD. Esto hace que el emisor IP envíe sus datagramas sin el indicador DF. Cuando los paquetes grandes llegan al router MTU pequeño, ese router fragmenta los paquetes en varios paquetes más chicos. Los datos fragmentados más pequeños alcanzan el destino donde se reagrupan en el paquete grande original.

Distintos tipos de medios LAN

Dos hosts en la misma red ruteada, pero en diferentes tipos de medios LAN (Ethernet en comparación con Token Ring y Fiber Distributed Data Interface [FDDI]) pueden actuar de formas diferentes. Los sistemas conectados por Ethernet pueden funcionar correctamente mientras que los sistemas conectados por Token Ring y FDDI pueden fallar. La razón de esta falla es que el sistema Ethernet informa un valor MSS de 1460 mientras que los sistemas conectados por Token Ring y FDDI informan un valor MSS de alrededor de 4400. Puesto que el servidor remoto no puede exceder el valor MSS reportado del otro extremo, cuando se comunica con el sistema conectado por Ethernet puede utilizar paquetes más pequeños que cuando lo hace con el sistema conectado por Token Ring y FDDI.

Topología de red "Dumbbell

Los problemas de PMTUD a menudo se ven en una topología de red "dumbbell" (por ejemplo, una topología en la que la MTU de un link interno en el trayecto de la red es menor a aquélla de las interfaces de los host que se comunican). Por ejemplo, si usa un túnel IP (encapsulación de ruteo genérica [GRE]), la MTU de la interfaz del túnel es menor que aquella de la interfaz física correspondiente. Si la PMTUD falla debido al filtrado de ICMP o a los problemas del stack del host, los paquetes grandes no pueden atravesar el túnel. Una solución alternativa en Cisco IOS Software Releases con ID de bug Cisco CSCdk15279 (sólo clientes registrados) integrada es aumentar la MTU de IP del túnel a 1500B.

links defectuosos

A veces, un router tiene un link con una MTU grande (1500 bytes), pero el router no puede entregar un datagrama de ese tamaño en ese link. Ese router no devuelve error de ICMP "Fragmentation needed but DF" al remitente, porque el link realmente no tiene una MTU pequeña Sin embargo, los datagramas grandes no pueden atravesar el link. Por lo tanto, la PMTUD no ayuda y todos los intentos de transmisión del paquete grande a través de este link fallan.

Esto se debe a un problema de capa inferior con el link, como un circuito de Frame Relay con una MTU demasiado pequeña y un buffering demasiado pequeño, una unidad de servicio de canal/unidad de servicio de datos (CSU/DSU) o repetidor que no funcionan correctamente, un cable del fuera de la especificación, o un defecto de software o de firmware.

Esta lista muestra los defectos relacionados con el software.

Otro problema de capa inferior con el link es provocado por el uso de un bridge FDDI a Ethernet de calidad inferior que no puede realizar la fragmentación de la capa IP. Una solución alternativa potencial es configurar una MTU más pequeña en las interfaces del router asociadas al link problemático. Sin embargo, esto posiblemente no sea una opción y quizá no sea completamente efectivo. Es posible que desee configurar una MTU más pequeña, por ejemplo, 1500, en los nodos extremos IP, como se describe en la siguiente sección.

Cómo desactivar PMTUD y configurar un MTU/MSS más pequeño en un nodo extremo

En estos ejemplos se usó una IP MTU de 1500 o un TCP MSS de 1460 para Solaris 10 (y versiones anteriores), HP-UX 9.x, 10.x, y 11.x, IBM AIX, Linux, Windows 95/98/ME, el Windows NT 3.1/3.51, Windows NT 4.0 y Windows 2000/XP. Cuando se establece un valor de MTU de IP de 1500 y un valor TCP MSS de 1460, generalmente se produce el mismo efecto porque un segmento TCP viene normalmente en 40 bytes de un encabezado IP/TCP.

Nota: Si cambia la interfaz de MTU (router o nodo extremo), todos los sistemas conectados con el mismo dominio de broadcast (cable y hub) deben ejecutar la misma MTU. Si dos sistemas del mismo dominio de broadcast no utilizan el mismo valor MTU, tendrán problemas de comunicación al enviar los paquetes (más grandes que la MTU pequeña pero más pequeños que la MTU grande) del sistema con la MTU más grande al sistema con la MTU más pequeña.

Solaris 10 (y Versiones Anteriores)

Inhabilite PMTUD:

$ ndd -set /dev/ip ip_path_mtu_discovery 0

Establecer MSS máximo en 1460:

$ ndd -set /dev/tcp tcp_mss_max 1460

Fuente: Ilustración del TCP/IP: The Protocols, Vol. 1, Apéndice E, de W. Richard Stevens y Gary R. Wright.

HP-UX 9.x, 10.x y 11.x

Inhabilite PMTUD:

El HP-UX 9.X no soporta la detección de MTU de la Trayectoria.

Los HP-UX 10.00, 10.01, 10.10, 10.20, y 10.30 soportan la detección de MTU de la Trayectoria. Está encendido (1) de forma predeterminada para el TCP, y apagado (0) de forma predeterminada para el UDP. Encendido/Apagado puede alternarse con el comando nettune.

# nettune -s tcp_pmtu 0
   
# nettune -s udp_pmtu 0

El HP-UX 11 soporta la detección PMTU y la habilita de forma predeterminada. Ésta es controlada a través del comando ndd setting ip_pmtu_strategy.

# ndd -h ip_pmtu_strategy 0

Establezca la estrategia Path MTU Discovery (Ddetección de MTU del trayecto): 0 inhabilita la Detección de MTU de la Trayectoria; 1 habilita la Estrategia 1; 2 habilita la Estrategia 2. Para obtener más información, use el comando ndd - h en un sistema HP-UX 11.

Fuente: Hewlett Packard leavingcisco.com

Establecer MSS máximo en 1460:

HP-UX 10.x:

# lanadmin -M 1460 <NetMgmtID> 
/usr/sbin/lanadmin [-a] [-A station_addr] [-m] [-M mtu_size] 
[-R] [-s] [-S speed] NetMgmtID -M mtu_size

Establezca el nuevo tamaño de MTU de la interfaz que corresponde a NetMgmtID. El valor de mtu_size debe encontrarse dentro del rango específico del link, y debe tener privilegios de superusuario.

Fuente: La página de man para HP-UX en la versión 10.2

HP-UX 11.x:

# ndd -set /dev/tcp tcp_mss_max 1460

Para obtener más información, consulte la página de man para el ndd en un sistema HP-UX 11.

IBM AIX Unix

Inhabilite PMTUD:

Detección de trayecto MTU se agregó al AIX 4.2.1, predeterminado = apagado De AIX 4.3.3 predeterminado = encendido.

# no -o tcp_pmtu_discover=0

Fuente: IBM leavingcisco.com

Configure el MMS máximo:

Para el AIX 4.2.1 o posterior, tcp_mssdflt se utiliza solamente si la detección MTU de trayectoria no se habilita o la detección MTU de trayectoria no puede detectar una MTU de trayectoria. Predeterminado: 512 bytes; Rango: 1 a 1448.

# no -o tcp_mssdflt=1440

Solamente un valor puede configurarse incluso si hay varios adaptadores con diversos tamaños de la MTU. Este cambio es un cambio en el sistema.

Fuente: IBM leavingcisco.com

Linux

Inhabilite PMTUD:

La Detección de MTU de la Trayectoria puede ser habilitada o habilitada cuando cambia el contenido del archivo ip_no_pmtu_disc a "0" o "1", respectivamente. Para inhabilitar la PMTUD, utilice el comando:

# echo  1  >/proc/sys/net/ipv4/ip_no_pmtu_disc

Establezca la MTU de Interfaz:

El valor MTU de la interfaz puede ser modificado cuando edita el archivo del ifcfg-<name> y cambia el parámetro “MTU”, donde <name> hace referencia al nombre del dispositivo que controla el archivo de configuración. Por ejemplo, para modificar la configuración para la interfaz de Ethernet, modifique el archivo con el nombre "ifcfg-eth0". Este archivo controla la primera tarjeta de interfaz de red (NIC) en el sistema

Fuente: Manual de Redhat Linux leavingcisco.com

Windows 95/98/ME

Nota: Para modificar los parámetros de Windows 95 TCP/IP, debe editar el registro. Sólo los administradores de sistema con experiencia deben intentar hacerlo ya que los errores pueden hacer que el sistema no se reinicie. Después de que se realizan estos cambios de registro, reinicie para aplicar los cambios.

Inhabilite PMTUD:

Agregue este valor de registro a la clave:

Hkey_Local_Machine\System\CurrentControlSet\Services\VxD\MSTCP
 
PMTUDiscovery = 0 or 1 
 
Data Type: DWORD

Este valor especifica si Microsoft TCP/IP intentará realizar la detección de MTU de la trayectoria como se especifica en el RFC 1191 .leavingcisco.com Un "1" habilita la detección mientras que un "0" la inhabilita. El valor por defecto es 1.

Nota: En Windows 98, el tipo de datos es un valor de la cadena.

Configure la interfaz de MTU (Unidad de transmisión máxima) en 1500:

Las entradas en esta sección se deben agregar a esta clave de registro, donde “n” representa la unión determinada del adaptador TCP/IP-a-red.

Hkey_Local_Machine\System\CurrentControlSet\Services\Class\netTrans\000n
 
MaxMTU = 16-bit integer
 
Data Type: String

Esta clave de registro especifica el IP del datagrama de tamaño máximo que puede trasladarse a un media driver. El Subnetwork Access Protocol (SNAP) y los encabezados del ruteo de origen (si se usa en los medios) no se incluyen en este valor. Por ejemplo, en una red Ethernet, el MaxMTU predeterminado es 1500. El valor real utilizado es el valor mínimo especificado con este parámetro y los tamaños informados por el media driver. El valor predeterminado es el tamaño informado por el programa piloto de medios.

Fuente: Artículo de Base de Conocimientos de Microsoft Q158474 leavingcisco.com

Windows NT 3.1/3.51

Nota: Para modificar los parámetros de Windows NT TCP/IP, debe editar el registro. Sólo los administradores de sistema con experiencia deben intentar hacerlo ya que los errores pueden hacer que el sistema no se reinicie. Una vez que se realizaron los cambios de registro, reinicie para aplicar los cambios.

Inhabilite PMTUD:

La detección de PMTU se habilita de forma predeterminada, pero puede ser controlada con la adición de este valor al registro:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\tcpip\parameters
\EnablePMTUDiscovery
 
PMTU Discovery:  0 or 1 (Default = 1)
 
Data Type:   DWORD

Un "1" habilita la detección mientras que un "0" la inhabilita. Cuando se inhabilita la detección de PMTU, una MTU de 576 bytes se utiliza para todas las direcciones IP de destino no locales. El TCP MSS = 536.

Fuente: Artículo de Base de Conocimientos de Microsoft Q136970 leavingcisco.com

Configure la interfaz de MTU (Unidad de transmisión máxima) en 1500:

Estos parámetros para TCP/IP son específicos de las tarjetas adaptadoras de red individuales. Éstos aparecen debajo de la trayectoria de Registro, donde el “adapterID” hace referencia a la subclave de Servicios para la tarjeta adaptadora específica:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\adapterID\Parameters\Tcpip
 
MTU: REG_DWORD (Number in octets)
 
Default: 0 (That is, use the value supplied by the adapter.)

Este valor especifica el tamaño de MTU de una interfaz. Cada interfaz utilizada por el TCP/IP puede tener un valor MTU especificado diferente. La MTU se determina generalmente a través de la negociación con el driver inferior. Sin embargo, el uso del valor más bajo de los drivers puede ser invalidado.

RouterMTU REG_DWORD Number in octets
 
Default: 0 (That is, use the value supplied by the lower interface.)

Este valor especifica el tamaño de la MTU que debe utilizarse cuando la dirección IP de destino está en una subred diferente. Cada interfaz utilizada por el TCP/IP puede tener un valor de RouterMTU especificado diferente. En muchas implementaciones, el valor de RouterMTU se establece en 576 octetos. Este es el tamaño mínimo que debe admitir todo nodo de IP. Debido a que los routers más nuevos en general pueden administrar MTU superiores a 576 octetos, el valor predeterminado para este parámetro es el mismo valor que el utilizado por la MTU.

Fuente: Artículo de Base de Conocimientos de Microsoft Q102973 leavingcisco.com

Windows NT 4.0

Nota: Para modificar los parámetros de Windows NT TCP/IP, debe editar el registro. Sólo los administradores de sistema con experiencia deben intentar hacerlo ya que los errores pueden hacer que el sistema no se reinicie. Una vez que se realizaron los cambios de registro, reinicie para aplicar los cambios.

Inhabilite PMTUD:

La detección de PMTU se habilita de forma predeterminada, pero puede ser controlada con la adición de este valor al registro:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters
\EnablePMTUDiscovery 
 
PMTU Discovery: 0 or 1 (Default = 1) 
 
Data Type:  DWORD

Un "1" habilita la detección mientras que un "0" la inhabilita. Cuando se inhabilita la detección de PMTU, una MTU de 576 bytes se utiliza para todas las direcciones IP de destino no locales. El TCP MSS = 536.

Cuando establece este parámetro a 1 (Verdadero), hace que el TCP intente detectar la Unidad Máxima de Transmisión (MTU o tamaño de paquetes más grande) sobre la trayectoria a un host remoto. Con la detección de MTU de la Trayectoria y la limitación de los segmentos TCP a estos tamaños, el TCP puede eliminar la fragmentación en los routers a lo largo de la trayectoria que conectan las redes con diferentes MTU. La fragmentación afecta de forma negativa el rendimiento de TCP y a la congestión de red.

Configure la interfaz de MTU (Unidad de transmisión máxima) en 1500:

Estos parámetros para TCP/IP son específicos de las tarjetas adaptadoras de red individuales. Estos parámetros aparecen debajo de la trayectoria de Registro, donde “adapterID” hace referencia a la subclave de los Servicios para la tarjeta adaptadora específica:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\AdapterID\Tcpip\Parameters
 
MTU: Set it to equal the required MTU size in decimal (default 1500)
 
Data Type: DWORD

Este parámetro anula la MTU predeterminada para una interfaz de red. La MTU es el tamaño máximo del paquete en bytes que el transporte transmite sobre la red subyacente. El tamaño incluye el encabezado de transporte Un datagrama IP puede atravesar varios paquetes. Los valores superiores al valor predeterminado para la red subyacente hacen que el transporte utilice la MTU predeterminada de la red. Los valores inferiores a 68 hacen que el transporte utilice una MTU de 68.

Fuente: Artículo de Base de Conocimientos de Microsoft Q120642 leavingcisco.com

Windows 2000/XP

Nota: Para modificar los parámetros de Windows NT TCP/IP, debe editar el registro. Sólo los administradores de sistema con experiencia deben intentar hacerlo ya que los errores pueden hacer que el sistema no se reinicie. Una vez que se realizaron los cambios de registro, reinicie para aplicar los cambios.

Inhabilite PMTUD:

La detección de PMTU se habilita de forma predeterminada, pero puede ser controlada con la adición de este valor al registro:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters
\EnablePMTUDiscovery
  
PMTU Discovery:  0 or 1 (Default = 1)
 
Data Type:  DWORD

Un "1" habilita la detección mientras que un "0" la inhabilita. Cuando se inhabilita la detección de PMTU, una MTU de 576 bytes se utiliza para todas las direcciones IP de destino no locales. El TCP MSS = 536.

Cuando establece este parámetro a 1 (Verdadero), hace que el TCP intente detectar la Unidad Máxima de Transmisión (MTU o tamaño de paquetes más grande) sobre la trayectoria a un host remoto. Con la detección de MTU de la Trayectoria y la limitación de los segmentos TCP a estos tamaños, el TCP puede eliminar la fragmentación en los routers a lo largo de la trayectoria que conectan las redes con diferentes MTU. La fragmentación afecta de forma negativa el rendimiento de TCP y a la congestión de red.

Configure la interfaz de MTU (Unidad de transmisión máxima) en 1500:

Estos parámetros para TCP/IP son específicos de las tarjetas adaptadoras de red individuales. Éstos aparecen debajo de esta Trayectoria de registro, donde la “ID del adaptador” hace referencia a la subclave de Servicios para la tarjeta adaptadora específica:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Tcpip\Parameters\ 
Interfaces\[Adapter ID] 
 
MTU: Set it to equal the required MTU size in decimal (default 1500)
 
Data Type:  DWORD

Este parámetro anula la MTU predeterminada para una interfaz de red. La MTU es el tamaño máximo del paquete en bytes que el transporte transmite sobre la red subyacente. El tamaño incluye el encabezado de transporte Observe que un datagrama IP puede abarcar varios paquetes. Los valores superiores al valor predeterminado para la red subyacente hacen que el transporte utilice la MTU predeterminada de la red. Los valores inferiores a 68 hacen que el transporte utilice una MTU de 68.

Fuente: Artículo de Base de Conocimientos de Microsoft Q314053 leavingcisco.com

Discusiones relacionadas de la comunidad de soporte de Cisco

La Comunidad de Soporte de Cisco es un foro donde usted puede preguntar y responder, ofrecer sugerencias y colaborar con colegas.


Información Relacionada


Document ID: 13709