25 de agosto de 2017

MTU - Maximum Transmission Unit

Uno de los tantos conceptos en los que no ponemos atención hasta que debemos resolver algún problema relacionado con él es el de MTU: el tamaño máximo de una unidad de transmisión.

Concepto general
En términos generales el MTU es el mayor tamaño posible de una unidad de datos en un protocolo de capa de red (PDU de capa de red) que puede ser utilizado en una comunicación.
Se lo suele encontrar como parámetro de referencia respecto de las interfaces (la MTU de una interfaz) o de un protocolo (el MTU permitido por un protocolo). Y se lo expresa en Bytes u octetos. Por ejemplo, una interfaz con un MTU de 1500 B indica que esa interfaz soporta paquetes (de cualquier protocolo de capa de red) de hasta 1500 Bytes de tamaño (incluye datos + encabezado de capa de transporte + encabezado de capa de red).

MTU = Datos (Bytes) + Encabezado capa 4 (Bytes) + Encabezado capa 3 (Bytes)

No considera el encabezado de la trama (Ethernet, por ejemplo), ni la sobrecarga que pueden generar sistemas de transmisión en capa física. En algunas publicaciones este parámetro recibe la denominación de MTU de capa 3 haciendo referencia clara a que se trata del tamaño máximo del paquete.

El uso del término en la industria
Más allá del concepto general, algunos fabricantes le dan un sesgo particular en la documentación e interfaces de sus productos.
Algunos de esos usos específicos son los siguientes:
  • Dell Force10 utiliza MTU como tamaño máximo de la trama.
  • Hewlett Packard utiliza MTU como tamaño máximo de la trama incluyendo el tag de 802.1Q.
  • Juniper  utiliza MTU de la interfaz física, MTU de la interfaz lógica (coincide con el concepto general) y MTU Máximo.
MTU en dispositivos Cisco
Cisco adhiere en su documentación a la definición de MTU elaborada por la IETF pero al momento de abordar la configuración de sus interfaces permite definir varios parámetros diferentes asociados al mtu, especialmente en IOS-XR.

En Cisco IOS el comando mtu modifica el parámetro de igual nombre en la interfaz correspondiente, pero coincidiendo con la definición general considera solamente el encabezado capa 3 y no el encabezado capa 2. El MTU por defecto de una interfaz es de 1500 Bytes, y es modificable dentro de la configuración de la interfaz, como ya dije, utilizando el comando mtu. 
Cuando se ejecuta un show interface el resultado visible (por defecto) será 1500 B que es lo que corresponde al tamaño máximo del paquete.

RouterIOS#show interfaces Ethernet0
 Ethernet 0 is up, line protocol is up
   Hardware is MCI Ethernet, address is 0000.0c00.750c (bia 0000.0c00.750c)
   Internet address is 131.108.28.8, subnet mask is 255.255.255.0
   MTU 1500 bytes, BW 10000 Kbit... [se omite el resto del comando] 

En el caso de dispositivos IOS-XR es diferente. Se considera un mtu de capa 2 y otro mtu de capa 3.
  • MTU de capa 3.
    Se considera la definición de la IETF de MTU incluyendo solamente en encabezado de capa 3. Sin embargo, a nivel configuración, IOS-XR permite diferentes configuraciones según la red.

    ipv4 mtu = Datos + Encabezado capa 4 + Encabezado IPv4 = 1500 B

    mpls mtu = Datos + Encabezado capa 4 + Encabezado IPv4 + Label = 1504 B
  • MTU de capa 2.
    Incluye en su consideración el encabezado de capa 2 correspondiente. Por lo tanto

    MTU de capa 2 = MTU capa 3 (Bytes) + encabezado capa 2 (Bytes)

    De esta manera, en interfaces Ethernet el MTU será de

    MTU capa 3 + Encabezado Ethernet = MTU interface
       1500 B       +           14 B                 = 1514

    En interfaces PPP o HDLC será de

       1500 B       +            4 B                  = 1504

RP/0/0/CPU0:RouterIOS-XR# show interfaces tenGigE 0/0/0/1 
TenGigE0/0/0/1 is administratively down, line protocol is administratively down 
  Hardware is TenGigE, address is 0800.4539.d909 (bia 0800.4539.d909)
  Description: user defined string
  Internet address is Unknown
  MTU 1514 bytes, BW 10000000 Kbit
     reliability 255/255, txload 0/255, rxload 0/255
     [se omite el resto del comando]

Comandos referidos al MTU
En dispositivos Cisco IOS.
  • Router(config-if)#mtu 1520
    Define el MTU de la interfaz
  • Router(config-if)#mpls mtu 1520
    Define un MTU específico para tramas MPLS. No puede ser superior al MTU de la interfaz.
En dispositivos Cisco IOS-XR:
  • RP/0/RP0/CPU0:Router(config-if)#mtu 1522
    Define el MTU de la interfaz, en este caso incluye el encabezado Ethernet de la trama.
  • RP/0/RP0/CPU0:Router(config-if)#mpls mtu 1508
    Define un MTU específico para tramas MPLS. Si se le suma el encabezado Ethernet, no puede superar el MTU de la interfaz.
  • RP/0/RP0/CPU0:Router(config-if)#ipv4 mtu 1500
    Define un MTU específico para paquetes IPv4. Al sumarle el encabezado Ethernet no puede superar el MTU de la interfaz.
  • RP/0/RP0/CPU0:Router(config-if)#ipv6 mtu 1500
    Define un MTU específico para paquetes IPv6. Al sumarle el encabezado Ethernet no puede superar el MTU de la interfaz.

Enlaces de referencia



Las abreviaturas y siglas utilizadas en este post puede encontrarlas desarrolladas en
que está disponible en la Librería en Línea de EduBooks.


8 comentarios:

  1. Muy clara la explicación Oscar! Podrías incluir el concepto de jumbo frame?
    Gracias!
    Juan

    ResponderBorrar
    Respuestas
    1. Gracias Juan.
      Veré de hacer un post sobre el tema de jumbo frames y otros conceptos semejantes.

      Borrar
  2. Estimado Óscar,
    Podrías hacer un post sobre cómo calcular un mtu óptimo en una red grande, Core/Edge/agregation/access para iBGP, BGP, MPLS, Ethernet, y también la diferencia con el mru y mss, cómo calcularlos y cuando usar jumbos, sería muy interesante, gracias.

    ResponderBorrar
    Respuestas
    1. El cálculo del MTU óptimo es un tema complejo. Veré qué se puede hacer en un post.

      Borrar
    2. Lo sé, por eso sería buena idea que puedas compartirnos en base a tu experiencia o para que vaya poniendome al caso podrías recomendarme algún libro, blog, dónde traten éste tema? Te agradecería mucho.

      Borrar
    3. No tengo un manual o sitio web que referir sobre el tema. Lo mejor sugerencia que se me ocurre son las discusiones sobre el tema que se pueden encontrar en el foro de soporte de Cisco.

      Borrar
  3. Oscar, si en IOS-XR tengo un servicio VPN (VRF), o sea que tiene etiquetado MPLS y con QinQ, el MTU de capa 2 sería 1500 + 14B (Header Ethernet) + 4B (1er dot1q) + 4B (2do dot1q) + 4B (etiquetado MPLS) = 1526B
    Es correcto o no ?

    ResponderBorrar

Gracias por tu comentario.
En este blog los comentarios están moderados, por lo que su publicación está pendiente hasta la revisión del mismo.