Seguridad : Dispositivos de seguridad adaptable Cisco ASA de la serie 5500

PIX/ASA 7.x e IOS: fragmentación de VPN

17 Abril 2008 - Traducción manual
Otras Versiones: PDFpdf | Traducción Automática (31 Julio 2013) | Inglés (19 Febrero 2009) | Comentarios

Contenido

Introducción
Requisitos previos
      Requerimientos
      Componentes utilizados
      Diagrama de la red
      Productos relacionados
      Convenciones
Antecedentes
      Problemas de la fragmentación
Tarea principal
      Detección de la fragmentación
      Soluciones a los problemas de fragmentación
Verificación
Resolución de problemas
Discusiones relacionadas de la comunidad de soporte de Cisco

Introducción

Este documento le guía a través de los pasos necesarios para solucionar los problemas que se pueden producir con la fragmentación de un paquete. Un ejemplo de problema de fragmentación es la capacidad de hacer ping a un recurso de red, pero la imposibilidad de conectar con ese mismo recurso mediante una aplicación específica, como el correo electrónico o las bases de datos.

Requisitos previos

Requerimientos

Asegúrese de que cumple estos requerimientos antes de intentar esta configuración:

  • Conectividad entre miembros VPN

Componentes utilizados

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

Diagrama de la red

En este documento se utiliza la siguiente configuración de red:

fragmentation-1.gif

Productos relacionados

Esta configuración también se puede utilizar con las siguientes versiones de hardware y software:

  • Routers IOS

  • Dispositivos de seguridad PIX/ASA

Convenciones

Consulte Convenciones sobre consejos técnicos de Cisco para obtener más información sobre las convenciones del documento.

Antecedentes

IP admite una longitud máxima de 65.536 bytes para un paquete IP, pero la mayoría de protocolos de capa de enlaces de datos admiten una longitud mucho menor, denominada unidad de transmisión máxima (MTU). En función de la MTU admitida, puede ser necesario romper (fragmentar) un paquete IP, con el fin de transmitirlo a través de un tipo determinado de medio de la capa de enlace de datos. A continuación, el destino tiene que reensamblar los fragmentos para obtener de nuevo el original, el paquete IP completo.

fragmentation-2.gif

Cuando se utiliza una VPN para proteger los datos entre dos miembros VPN, se agrega una sobrecarga adicional a los datos originales, lo que puede requerir que se produzca la fragmentación. Esta tabla muestra los campos que es posible que haya que agregar a los datos protegidos para que admitan una conexión VPN. Tenga en cuenta que pueden ser necesarios varios protocolos, lo que aumenta el tamaño del paquete original. Por ejemplo, si utiliza una conexión IPSEC DMVPN L2L entre dos routers de Cisco, donde hay un túnel GRE implementado, es necesaria esta sobrecarga adicional: ESP, GRE y el encabezado IP externo. Si tiene una conexión cliente de software de IPSec a la puerta de enlace de VPN, cuando el tráfico pasa a través de un dispositivo de dirección, es necesaria esta sobrecarga adicional para la traducción de direcciones de red transversal (NAT-T), así como el encabezado IP externo para la conexión del modo de túnel.

Problemas de la fragmentación

Cuando el origen envía un paquete a un destino, coloca un valor en el campo de indicadores de control de los encabezados IP que afecta a la fragmentación del paquete por dispositivos intermedios. El indicador de control tiene una longitud de tres bits, pero sólo se utilizan los dos primeros en la fragmentación. Si el segundo bit se establece en 0, se permite que el paquete se fragmente, si se establece en 1, no se permite que el paquete se fragmente. El segundo bit se denomina habitualmente el bit don't fragment (DF). El tercer bit especifica cuándo se produce la fragmentación, si este paquete fragmentado es el último fragmento (establecido en 0), o bien si hay más fragmentos (establecido en 1) que forman el paquete.

Hay cuatro áreas que pueden provocar problemas cuando se requiere la fragmentación:

  • Los dos dispositivos que realizan la fragmentación y el reensamblado suponen una sobrecarga adicional en los ciclos del CPU y memoria.

  • Si se descarta un fragmento hacia el destino, el paquete no se puede reensamblar y el paquete completo se tiene que fragmentar y enviar de nuevo. Esto provoca problemas de rendimiento de procesamiento adicionales, especialmente en situaciones en las que el tráfico en cuestión tiene la velocidad limitada y el origen envía tráfico por encima del límite permitido.

  • El filtrado de paquetes y los firewalls con estado pueden tener dificultades al procesar los fragmentos. Cuando se produce la fragmentación, el primer fragmento incluye un encabezado IP externo, el encabezado interno, como TCP, UDP, ESP, entre otros, y parte de la carga útil. Los fragmentos siguientes del paquete original contraen un encabezado IP externo y la continuación de la carga útil. El problema con este proceso es que algunos firewalls necesitan ver la información del encabezado interno de cada paquete para tomar las decisiones de filtrado inteligente; si falta esa información, éstos pueden eliminar involuntariamente todos los fragmentos, excepto el primero.

  • El origen en el encabezado IP del paquete puede establecer el tercer bit de control en don't fragment, lo que significa que, si un dispositivo intermedio recibe el paquete y tiene que fragmentarlo, el dispositivo intermedio no podrá realizar la fragmentación. En su lugar, el dispositivo intermedio eliminará el paquete.

Tarea principal

Detección de la fragmentación

La mayoría de las redes utilizan Ethernet, con un valor de MTU predeterminado de 1.500 bytes, que se utiliza normalmente para los paquetes IP. Para averiguar si la fragmentación se produce o si es necesaria, pero no se puede realizar (está establecido el bit DF), primero active la sesión VPN. A continuación, puede utilizar cualquiera de estos cuatro procedimientos para detectar la fragmentación.

  1. Haga ping a un dispositivo en el otro extremo. En este caso, se asume que está permitido hacer ping a través del túnel. Si funciona correctamente, intente acceder a una aplicación a través del mismo dispositivo; por ejemplo, si hay un servidor de correo electrónico o de escritorio remoto de Microsoft al otro lado del túnel, abra Outlook e intente descargar el correo electrónico, o bien utilizar el escritorio remoto con el servidor. Si esto no funciona y tiene la resolución de nombre correcta, existe una alta probabilidad de que la fragmentación sea el problema.

  2. Desde el dispositivo de Windows, utilice: C:\> ping -f -l tamaño_paquete_en_bytes dirección_IP_destino.

    La opción -f se utiliza para especificar que el paquete no se puede fragmentar. La opción -l se utiliza para especificar la longitud del paquete. Primero, inténtelo con un tamaño de paquete de 1.500. Por ejemplo, haga ping en -f -l 1500 192.168.100. Si la fragmentación es necesaria, pero no se puede realizar, recibirá un mensaje como éste: Packets need to be fragmented but DF set (Los paquetes se tienen que fragmentar, pero DF está establecido).

  3. En los routers de Cisco, ejecute el comando debug ip icmp y utilice el comando extended ping. Si aparece ICMP:dst (x.x.x.x) fragmentation needed and DF set, unreachable sent to y.y.y.y (Fragmentación ICMP:dst (x.x.x.x) necesaria y DF establecido, inalcanzable enviado a y.y.y.y.), donde x.x.x.x es un dispositivo de destino y donde y.y.y.y es el router, un dispositivo intermedio le indica que la fragmentación es necesaria, pero como el bit DF está establecido en la petición de eco, un dispositivo intermedio no puede fragmentarlo para reenviarlo al siguiente salto. En este caso, el tamaño de MTU de los pings disminuye gradualmente hasta que se encuentre uno que funcione.

  4. En los dispositivos de seguridad de Cisco, utilice un filtro de captura.

    • ciscoasa(config)#access-list outside_test permit tcp any host 172.22.1.1 eq 80

      Nota: Cuando se deja el origen como any, se permite que el administrador supervise cualquier traducción de direcciones de red (NAT).

    • ciscoasa(config)#access-list outside_test permit tcp host 172.22.1.1 eq 80 any

      Nota: Cuando se invierte la información de origen y de destino, se permite la captura del tráfico de retorno.

    • ciscoasa(config)# capture outside_interface access-list outside_test interface outside

      Es necesario que el usuario inicie una nueva sesión con la aplicación X. Una vez que el usuario ha iniciado una nueva sesión en la aplicación X, es necesario que el administrador del ASA ejecute el comando show capture outside_interface.

Soluciones a los problemas de fragmentación

Hay diferentes formas de solucionar los problemas de fragmentación. Éstas se tratan en esta sección.

Método 1: Configuración de MTU estática

La configuración de MTU estática puede resolver los problemas de fragmentación.

  1. Cambio de MTU en el router:

    Tenga en cuenta que si establece manualmente la MTU en el dispositivo, indica al dispositivo, que actúa como una puerta de enlace de VPN, que fragmente los paquetes recibidos antes de protegerlos o enviarlos a través del túnel. Esto es preferible a que el router proteja el tráfico y después lo fragmente, es mejor que lo fragmente el dispositivo.

    Advertencia Advertencia: Si se cambia el tamaño de MTU en cualquier interfaz del dispositivo, se provoca que todos los túneles que terminan en esa interfaz se derriben y se vuelvan a construir.

    En los routers de Cisco, utilice el comando ip mtu para ajustar el tamaño de MTU en la interfaz donde termina la VPN:

    router (config)# interface type [slot_#/]	port_#
    
    router (config-if)# ip mtu MTU_size_in_bytes
    
    
  2. Cambio de MTU en ASA/PIX:

    En los dispositivos ASA/PIX, utilice el comando mtu para ajustar el tamaño de MTU en el modo de configuración global. De forma predeterminada, MTU se establece en 1500. Por ejemplo, si tiene una interfaz en el dispositivo de seguridad llamada Outside (donde termina la VPN), y determina (a través de las medidas enumeradas en la sección Detección de la fragmentación) que desea utilizar 1380 como el tamaño de fragmento, utilice este comando:

    security appliance (config)# mtu Outside 1380
    
    

Método 2: Tamaño de segmento máximo de TCP

El tamaño de segmento máximo de TCP puede resolver problemas de fragmentación.

Nota: Esta función sólo funciona con TCP; otros protocolos IP tienen que utilizar otra solución para resolver los problemas de fragmentación IP. Incluso si configura la MTU de IP en el router, esto no afecta a lo que negocian los dos hosts finales dentro de la entrada en contacto triple de TCP con TCP MSS.

  1. Cambio de MSS en el router:

    La fragmentación se produce con el tráfico TCP ya que éste se utiliza normalmente para transportar grandes cantidades de datos. El TCP admite una función denominada tamaño de segmento máximo (MSS) de TCP que permite que los dos dispositivos negocien un tamaño adecuado para el tráfico TCP. El valor de MSS se configura de forma estática en cada dispositivo y representa el tamaño del búfer que se va a utilizar en un paquete esperado. Cuando dos dispositivos establecen conexiones TCP, comparan el valor de MSS local con el valor de la MTU local dentro de la entrada en contacto triple; el que resulte inferior se envía al par remoto. A continuación, los dos pares utilizan el menor de los dos valores intercambiados. Para configurar esta función, realice lo siguiente:

    En los routers de Cisco, utilice el comando tcp adjust-mss en la interfaz en la que termina la VPN.

    router (config)# interface type [slot_#/] port_#
    
    router (config-if)# ip tcp adjust-mss MSS_Size_in_bytes
    
    
  2. Cambio de MSS en ASA/PIX:

    Con el fin de garantizar que el tamaño de segmento máximo de TCP no esté por encima del valor establecido y que este máximo no esté por debajo del tamaño especificado, utilice el comando sysopt connection en el modo de configuración global. Para restaurar la configuración predeterminada, utilice la forma de este comando con no. El valor máximo predeterminado es 1380 bytes. La función mínima se desactiva de forma predeterminada (establecida en 0).

    Para cambiar el límite de MSS máximo predeterminado, realice lo siguiente:

    security appliance (config)# sysopt connection tcp-mss MSS_size_in_bytes
    
    

    Nota: Si establece el tamaño máximo en un valor por encima de 1380, los paquetes se pueden fragmentar, en función del tamaño de la MTU (que es 1500 de forma predeterminada). Las grandes cantidades de fragmentos pueden afectar al rendimiento del dispositivo de seguridad cuando éste utilice la función Frag Guard (Protección de fragmentos). Si se establece el tamaño mínimo, se evita que el servidor TCP envíe muchos paquetes de datos TCP pequeños al cliente y que esto afecte al rendimiento del servidor y de la red.

    Para cambiar el límite de MSS mínimo, realice lo siguiente:

    security appliance (config)# sysopt connection tcp-mss minimum MSS_size_in_bytes

    security appliance (config)# sysopt connection tcp-mss minimum MSS_size_in_bytes

Método 3: Detección de la MTU del trayecto (PMTUD)

PMTUD puede resolver los problemas de la fragmentación.

El problema principal con TCP MSS es que el administrador tiene que conocer el valor que va a configurar en el router para evitar que se produzca la fragmentación. Esto puede ser un problema si existe más de una ruta entre usted y la ubicación VPN remota, o bien si al realizar la consulta inicial, encuentra que la segunda o tercera MTU de menor tamaño, en lugar de la más pequeña, está basada en la decisión de enrutamiento utilizada en la consulta inicial. Con PMTUD, puede determinar un valor de MTU para los paquetes IP que evite la fragmentación. Si un router bloquea los mensajes ICMP, la MTU del trayecto se rompe y los paquetes con el bit DF se descartan. Utilice el comando set ip df para borrar el bit DF y permitir que el paquete se fragmente y se envíe. La fragmentación puede ralentizar la velocidad de reenvío del paquete en la red, pero se pueden utilizar listas de acceso para limitar el número de paquetes en los que se borra el bit DF.

  1. Existen tres problemas que pueden impedir el funcionamiento de PMTUD:

    • Un router intermedio puede eliminar el paquete y no responder con un mensaje ICMP. Esto no es muy habitual en Internet, pero puede serlo en una red en la que los routers estén configurados para no responder con mensajes ICMP de inalcanzable.

    • Un router intermedio puede responder con un mensaje ICMP de inalcanzable, pero en el flujo de retorno, un firewall bloquea este mensaje. Esto es más frecuente.

    • El mensaje ICMP de inalcanzable regresa al origen, pero el origen ignora el mensaje de fragmentación. Éste es el menos frecuente de los tres problemas.

    Si se le presenta el primer problema, puede borrar el bit DF del encabezado IP que el origen ubicó ahí o ajustar manualmente el tamaño de TCP MSS. Para borrar el bit DF, un router intermedio tiene que cambiar el valor de 1 a 0. Normalmente, esto lo realiza el router en la red antes de que el paquete salga de ésta. A continuación, se muestra una configuración de código simple que realiza este proceso en un router basado en IOS:

    Router (config) # access-list ACL_# permit tcp any any
    Router (config) # route-map route_map_name permit seq#
    
    Router (config-route-map) # match ip address ACL_#
    
    Router (config-route-map) # set ip df 0
    
    Router (config-route-map) # exit
    Router (config) # interface type [slot#/]port #
    
    Router (config-if) # ip policy router-map route_map_name
    
    
  2. PMTUD y túneles GRE

    • De forma predeterminada, un router no realiza la PMTUD en paquetes del túnel GRE, que él mismo genera. Con el fin de activar la PMTUD en interfaces del túnel GRE y hacer que el router participe en el proceso de ajuste de la MTU para dispositivos de origen/destino, para el tráfico que atraviesa el túnel, utilice esta configuración:

      • Router (config) # interface tunnel tunnel_#

      • Router (config-if) # tunnel path-mtu-discovery

        El comando tunnel path-mtu-discovery activa la PMTUD de la interfaz del túnel GRE de un router. El parámetro temporizador de edad opcional especifica la cantidad de minutos a partir de la cual la interfaz del túnel restablece el tamaño de la MTU detectado, menos 24 bytes del encabezado de GRE. Si especifica infinite (infinito) en el temporizador, éste no se utiliza. El parámetro min-mtu especifica el número de bytes que incluye el valor de MTU.

Nota: Si sigue experimentando problemas de fragmentación y paquetes eliminados, si lo desea, puede ajustar manualmente el tamaño de la MTU con el comando ip mtu tunnel interface. En este caso, el router fragmenta el paquete antes de protegerlo. Este comando se puede utilizar con PMTUD o TCP MSS.

Verificación

Actualmente, no hay ningún procedimiento de verificación disponible para esta configuración.

La herramienta Output Interpreter (Intérprete de resultados) (OIT) (sólo para clientes registrados) admite determinados comandos show. Utilice la OIT para ver un análisis del resultado del comando show.

Resolución de problemas

Actualmente, no hay información específica disponible sobre resolución de problemas para esta configuración.


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.


Document ID: 82444