WAN de 20 Mbps limitada a 10 Mbps sobre el túnel IPSec

11

Recientemente actualizamos un sitio remoto de una fibra de 10 / 10Mbps a un enlace de fibra de 20 / 20Mbps (es fibra al sótano, luego VDSL desde el sótano a la oficina, aproximadamente 30 metros). Hay copias regulares de archivos grandes (multi-concierto) entre este sitio y un sitio central, por lo que la teoría era que aumentar el enlace a 20/20 debería reducir a la mitad los tiempos de transferencia.

Para las transferencias para copiar archivos (p. Ej., robocopyPara copiar archivos en cualquier dirección, o la replicación de Veeam Backup and Recovery) se limitan a 10 Mbps.

Antes de la actualización:

ingrese la descripción de la imagen aquí

Después de la actualización ( robocopy):

ingrese la descripción de la imagen aquí

Casi idéntico (ignore la diferencia en el tiempo de la transferencia).

Las transferencias se realizan a través de un túnel IPSec entre un Cisco ASA5520 y un Mikrotik RB2011UiAS-RM .

Primeros pensamientos:

  • QoS - no. Hay reglas de QoS pero ninguna que afecte este flujo. Inhabilité todas las reglas durante unos minutos para verificar de todos modos, y no cambié
  • Límites definidos por software. La mayor parte de este tráfico es Veeam Backup and Recovery envío fuera del sitio, pero no hay límites definidos allí. Además, acabo de hacer una escalera robocopyy vi exactamente las mismas estadísticas.
  • Hardware no capaz. Bueno, las cifras de rendimiento publicadas de un 5520 son 225Mbps de datos 3DES, y Mikrotik no publica números, pero superaría los 10Mbps. El Mikrotik tiene alrededor del 25% -33% de uso de CPU al hacer estas pruebas de transferencia. (Además, hacer una transferencia HTTP a través del túnel IPSec alcanza cerca de 20Mbps)
  • ¿Latencia combinada con el tamaño de la ventana TCP? Bueno, tiene una latencia de 15 ms entre los sitios, por lo que incluso el peor de los casos de 32*0.015un tamaño de ventana de 32 KB es un máximo de 2.1 MB / seg. Además, las transferencias simultáneas múltiples solo suman hasta 10 Mbps, lo que no es compatible con esta teoría
  • ¿Quizás la fuente y el destino son una mierda? Bueno, la fuente puede impulsar lecturas secuenciales sostenidas de 1.6GB / seg, por lo que no es eso. El destino puede realizar escrituras secuenciales sostenidas de 200 MB / s, por lo que tampoco es eso.

Esta es una situación muy extraña. Nunca antes había visto nada manifiesto de esta manera.

¿Dónde más puedo mirar?


En una investigación adicional, confío en señalar el túnel IPSec como el problema. Hice un ejemplo artificial e hice algunas pruebas directamente entre dos direcciones IP públicas en los sitios, y luego hice exactamente la misma prueba usando las direcciones IP internas, y pude replicar 20Mbps a través de Internet sin cifrar, y solo 10Mbps en el IPSec lado.


La versión anterior tenía una pista falsa sobre HTTP. Olvídate de esto, este era un mecanismo de prueba defectuoso.

Según la sugerencia de Xeon y el eco de mi ISP cuando les pedí ayuda, establecí una regla de interrupción para eliminar el MSS para los datos de IPSec a 1422, según este cálculo :

 1422   +  20 + 4 +  4 +   16  +   0     +      1    +     1     +   12
PAYLOAD  IPSEC SPI ESP  ESP-AES ESP (Pad)  Pad Length Next Header ESP-SHA

Para caber dentro del 1480 MTU del ISP. Pero, por desgracia, esto no ha hecho una diferencia efectiva.


Después de comparar las capturas de Wirehark, la sesión TCP negocia un MSS de 1380 en ambos extremos ahora (después de ajustar algunas cosas y agregar un búfer en caso de que mis matemáticas apestan. Sugerencia: probablemente sí). 1380 también es el MSS predeterminado de ASA de todos modos, por lo que puede haber estado negociando esto todo el tiempo de todos modos.


Veo algunos datos extraños en la herramienta dentro del Mikrotik que he estado usando para medir el tráfico. No puede ser nada. No noté esto antes, ya que estaba usando una consulta filtrada, y solo vi esto cuando quité el filtro.

Mark Henderson
fuente
¿Cómo son las MTU?
xeon
Buen punto. Son 9000 en ambos conmutadores en cada extremo, 1500 en el servidor y los propios clientes, y 1480 en la parte VDSL del enlace. Esas son las únicas partes de los enlaces que controlo.
Mark Henderson
ping -t -f -l 1500 (disminución de 20 después de la falla), una vez que esté alrededor de 1300 apuesto a que funcionará, esto debería indicar que necesita ajustar MTU en los túneles ASA / Mikrotik IPsec o puede configurarlo para que no se caigan los fragmentos a grandes.
xeon
1394es la MTU más grande que pude atravesar.
Mark Henderson
Sus datos están fragmentados, por lo que reducir la MTU en el túnel a 1350-1380 debería ayudar a aumentar el rendimiento. La sobrecarga de IPsec es de alrededor de 84 bytes (dependiendo de su encapsulación, etc.), por lo que 1480 - 84 = 1396, cerca de su máximo que vio.
xeon

Respuestas:

3

Aunque la CPU fue la tercera cosa que revisé, y escribí esto:

El Mikrotik tiene alrededor del 25% -33% de uso de CPU al hacer estas pruebas de transferencia

Lo cual es confirmado por el gráfico de la CPU

ingrese la descripción de la imagen aquí

Los recursos externos (es decir, un montón de otros foros y blogs de soporte ) me han confirmado que la mayoría de los enrutadores Mikrotik simplemente no pueden enviar más de 11 Mbps de tráfico IPSec con cifrado 3DES o AES, a menos que obtenga un modelo que tenga descarga de cifrado de hardware .

Parece que esto es solo una limitación de hardware. Debería haberlo captado mucho antes, pero por alguna razón Mikrotik no me indicaba que estaba vinculado a la CPU.

De compras voy.

Mark Henderson
fuente
Me interesaría saber la limitación específica que está imponiendo este límite para el tráfico IPSec. ¿Alguna de sus fuentes externas lo explicó con más profundidad?
luz negra
Lamentablemente no. Encontré algunos hilos en los foros de Mikrotik donde se arrojó 11Mbps como máximo para este enrutador (y parece que he confirmado esto aquí). El blog que vinculé con el chico realizó sus pruebas y obtuvo alrededor de 1 Mbps de tráfico, pero en un enrutador de mucha, mucha menos potencia. El mío debería ser entre 6 y 10 veces más potente y parece que obtengo entre 6 y 10 veces la cantidad de tráfico IPSec, que coincide. No parece un problema vinculado a la CPU, o un problema vinculado a IRQ, o un problema vinculado a la memoria. No tengo idea de lo que realmente está pasando aquí.
Mark Henderson
2

Puedo confirmar que el culpable es la CPU. Aquí comparé un Mikrotik RB750GL y medí 12 Mb / s con tráfico AES-128 (y solo 6.0 Mb / s con 3DES).

Su resultado parece estar perfectamente en línea con lo registrado por mí.

shodanshok
fuente
Parece que la velocidad extra de 200Mhz entre el 750 y el 2011 no ha hecho ninguna diferencia en las velocidades de IPSec. Desearía que Mikrotik publicara estas cifras en alguna parte.
Mark Henderson