Guías técnicas

FortiOS / FortiAP: optimizar el rendimiento de la red evitando la fragmentación de paquetes IP en túneles CAPWAP

Un problema habitual en las redes WiFi basadas en controladores es una reducción del rendimiento en términos de caudal cursado debido a la fragmentación de paquetes IP en los túneles CAPWAP (https://en.wikipedia.org/wiki/CAPWAP ), siendo éste el protocolo estándar de interoperatividad en red que permite a un central wireless LAN Access Controller (AC) gestionar un conjunto de Wireless Termination Points (WTPs), más conocidos como puntos de acceso inalámbricos.

Como en cualquier otro protocolo de encapsulamiento o cifrado, la fragmentación puede ocurrir debido a que la “envoltura” del túnel CAPWAP aumenta el tamaño del paquete IP a transmitir. Si los paquetes de clientes inalámbricos originales están cerca del tamaño de la unidad de transmisión máxima (Maximum Transmission Unit – MTU) para la red (generalmente 1500 bytes para redes ethernet, a menos que se utilicen jumbo frames), los paquetes CAPWAP resultantes pueden ser mayores que la MTU, lo que provoca que los paquetes tengan que ser fragmentados. Esta fragmentación puede provocar pérdida de datos, jitter y una reducción en el tráfico efectivo transmitido.

La solución de FortiOS / FortiAP para este problema en despliegues como los de acceso remoto con Remote WLAN Access Point (cuyo mini-howto está disponible en este mismo boletín:https://fortixpert.blogspot.com/2015/01/mini-how-to-acceso-remoto-con-remote.html) es configurar los enlaces con los clientes inalámbricos para que estos envíen paquetes más pequeños a los dispositivos FortiAP, lo que da como resultado paquetes CAPWAP de 1500 bytes que pueden ser cursados sin fragmentación. Las siguientes opciones configuran el control de fragmentación de CAPWAP IP:

config wireless-controller wtp-profle
  edit FAP-default
    set ip-fragment-preventing {tcp-mss-adjust | icmp-unreachable}
    set tun-mtu-uplink {0 | 576 | 1500}
    set tun-mtu-downlink {0 | 576 | 1500}
  end
end
Por defecto, tcp-mss-adjust está habilitado, icmp-unreachable está deshabilitado, y tun-mtu-uplink y tun-mtu-downlink están establecidos a 0.

Para configurar tun-mtu-uplink y tun-mtu-downlink se recomienda utilizar el valor de MTU TCP habitual de 1500. Esta configuración evitará la fragmentación de paquetes, porque el FortiAP limitará el tamaño de los paquetes TCP recibidos de los clientes inalámbricos, de forma que los paquetes no tengan que ser fragmentados antes de la encapsulación CAPWAP.

La opción tcp-mss-adjust permite que el FortiAP limite el tamaño máximo de segmento (Maximum Segment Size – MSS) de los paquetes TCP enviados por los clientes inalámbricos. FortiAP lo consigue agregando un valor de MSS reducido a los paquetes SYN enviados cuando negocia con un cliente inalámbrico el establecimiento de una sesión. Esto provoca que el cliente inalámbrico envíe paquetes que son más pequeños que la configuracióntun-mtu-uplink, de modo que cuando se agregan las cabeceras CAPWAP, los paquetes CAPWAP tienen una MTU que coincide con el tamaño de tun-mtu-uplink.

La opción icmp-unreachable afecta todo el tráfico (UDP y TCP) entre los clientes inalámbricos y el FortiAP. Esta opción hace que la unidad FortiAP descarte los paquetes que tienen el bit “No fragmentar” establecido en su cabecera IP y que son lo suficientemente grandes como para causar la fragmentación, enviando después un paquete ICMP de tipo 3 “Destino ICMP inalcanzable” con el código 4 La “fragmentación necesaria y se había establecido la ‘no fragmentación'” hacia el controlador inalámbrico. Esto debería provocar que el cliente inalámbrico envíe paquetes TCP y UDP más pequeños.

Sobrescribiendo la configuración de ‘IP fragmentation’ en un FortiAP

Si la configuración del perfil global para la fragmentación de IP no es adecuada para un FortiAP en particular, se puede anular la configuración en ese AP concreto sobreescribiéndola por otra específica:

config wireless-controller wtp
  edit FAP422Exxxxxxxxxx <- S/N del FortiAP a configurar
    set override-ip-fragment enable
    set ip-fragment-preventing {tcp-mss-adjust | icmp-unreachable}
    set tun-mtu-uplink {0 | 576 | 1500}
    set tun-mtu-downlink {0 | 576 | 1500}
  end
end

Tags

Contenidos relacionados

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *