WAN a 20 Mbps limitato a 10 Mbps sul tunnel IPSec


11

Di recente abbiamo aggiornato un sito remoto da una fibra da 10/10 Mbps a un collegamento in fibra da 20/20 Mbps (è fibra al seminterrato, quindi VDSL dal seminterrato all'ufficio, a circa 30 metri). Esistono regolari copie di file di grandi dimensioni (multi-concerto) tra questo sito e un sito centrale, quindi la teoria era che l'aumento del collegamento a 20/20 avrebbe dimezzato i tempi di trasferimento.

Per i trasferimenti per la copia di file (ad es. Utilizzo robocopyper copiare i file in entrambe le direzioni o per la replica di Veeam Backup and Recovery) sono limitati a 10 Mbps.

Prima dell'aggiornamento:

inserisci qui la descrizione dell'immagine

Dopo l'aggiornamento ( robocopy):

inserisci qui la descrizione dell'immagine

Quasi identico (ignora la differenza di durata del trasferimento).

I trasferimenti vengono effettuati su un tunnel IPSec tra un Cisco ASA5520 e un Mikrotik RB2011UiAS-RM .

Primi pensieri:

  • QoS - no. Esistono regole QoS ma nessuna che dovrebbe influire su questo flusso. Ho disabilitato tutte le regole per alcuni minuti per controllare comunque, e nessuna modifica
  • Limiti definiti dal software. La maggior parte di questo traffico è rappresentato dalla spedizione Veeam Backup and Recovery fuori sede, ma non vi sono limiti definiti. Inoltre, ho appena fatto una scala robocopye ho visto esattamente le stesse statistiche.
  • Hardware non in grado. Bene, i dati sulle prestazioni pubblicati di un 5520 sono 225 Mbps di dati 3DES, e Mikrotik non pubblica numeri ma sarebbe ben più di 10 Mbps. Mikrotik ha circa il 25% -33% di utilizzo della CPU durante questi test di trasferimento. (Inoltre, eseguire un trasferimento HTTP sul tunnel IPSec raggiunge quasi i 20 Mbps)
  • Latenza combinata con le dimensioni della finestra TCP? Beh, è ​​una latenza di 15 ms tra i siti, quindi anche nel caso peggiore una dimensione della finestra di 32 KB 32*0.015è un massimo di 2,1 MB / sec. Inoltre, più trasferimenti simultanei aggiungono solo fino a 10 Mbps, il che non supporta questa teoria
  • Forse la fonte e la destinazione sono entrambe merda? Bene, la fonte può inviare letture sequenziali sostenute da 1,6 GB / sec, quindi non è così. La destinazione può eseguire scritture sequenziali prolungate di 200 MB / sec, quindi non è nemmeno quello.

Questa è una situazione molto strana. Non ho mai visto nulla manifestare in questo modo prima d'ora.

Dove altro posso cercare?


Su ulteriori indagini, sono sicuro di indicare il problema con il tunnel IPSec. Ho fatto un esempio inventato e fatto alcuni test direttamente tra due indirizzi IP pubblici sui siti, e poi fatto lo esatto stesso test utilizzando gli indirizzi IP interni, e sono stato in grado di replicare 20Mbps su internet in chiaro, e solo a 10 Mbps sul IPSec lato.


La versione precedente aveva un'aringa rossa su HTTP. Dimentica questo, questo era un meccanismo di test difettoso.

Secondo il suggerimento di Xeon ed echeggiato dal mio ISP quando ho chiesto loro il supporto, ho impostato una regola mangle per far cadere MSS per i dati IPSec a 1422, sulla base di questo calcolo :

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

Per adattarsi all'interno dell'ISP 1480 MTU. Ma purtroppo questo non ha fatto alcuna differenza.


Dopo aver confrontato le acquisizioni di WireShark, la sessione TCP negozia un MSS di 1380 su entrambe le estremità (dopo aver modificato alcune cose e aggiunto un buffer nel caso in cui la mia matematica faccia schifo. Suggerimento: probabilmente lo fa). 1380 è anche l'MSS predefinito dell'ASA, quindi potrebbe averlo negoziato comunque tutto il tempo.


Sto vedendo alcuni dati strani nello strumento all'interno del Mikrotik che ho usato per misurare il traffico. Potrebbe non essere niente. Non l'avevo notato prima mentre stavo usando una query filtrata e l'ho visto solo quando ho rimosso il filtro.


Che aspetto ha l'MTU?
Xeon,

Buon punto. Sono 9000 su entrambi gli switch alle estremità, 1500 sul server e sui client stessi e 1480 sulla parte VDSL del collegamento. Questa è l'unica parte dei link che controllo.
Mark Henderson,

ping -t -f -l 1500 (diminuisce di 20 in caso di fallimento) destinazione, una volta intorno ai 1300 Scommetto che funzionerà, questo dovrebbe indicare che è necessario regolare MTU sui tunnel ASA / Mikrotik IPsec o potresti essere in grado di impostarlo quindi non rilascia i frammenti in grande.
Xeon,

1394è il più grande MTU che sono stato in grado di superare.
Mark Henderson,

I tuoi dati vengono frammentati, quindi ridurre l'MTU sul tunnel a 1350-1380 dovrebbe aiutare ad aumentare la produttività. Il sovraccarico IPsec è di circa 84 byte (a seconda dell'incapsulamento, ecc.), Quindi 1480 - 84 = 1396, vicino al massimo che hai visto.
Xeon,

Risposte:


3

Anche se la CPU è stata la terza cosa che ho controllato e ho scritto questo:

Mikrotik ha circa il 25% -33% di utilizzo della CPU durante questi test di trasferimento

Ciò è confermato dal grafico della CPU

inserisci qui la descrizione dell'immagine

L'ho confermato da risorse esterne (ad esempio un sacco di altri forum e blog di supporto ) che la maggior parte dei router Mikrotik non è in grado di inviare più di 11 Mbps di traffico IPSec con crittografia 3DES o AES, a meno che non si ottenga un modello con offload della crittografia hardware .

Quindi sembra che questa sia solo una limitazione hardware. Avrei dovuto prenderlo molto prima, ma per qualche ragione Mikrotik non mi stava indicando che era legato alla CPU.

Vado a fare shopping.


Sarei interessato a conoscere la specifica limitazione che impone questo limite per il traffico IPSec. Qualcuno delle tue fonti esterne lo ha spiegato in modo più approfondito?
Blacklight il

Sfortunatamente no. Ho trovato alcuni thread nei forum Mikrotik in cui 11 Mbps sono stati lanciati come il massimo per questo router (e sembra che io abbia confermato questo qui). Il blog che ho collegato al ragazzo ha eseguito i suoi test e ha ottenuto circa 1 Mbps di traffico, ma su un router molto, molto più basso. Il mio dovrebbe essere circa 6-10 volte più potente e mi sembra di ottenere 6-10 volte la quantità di traffico IPSec, che corrisponde. Non sembra un problema associato alla CPU, un problema associato a IRQ o un problema associato alla memoria. Non ho idea di cosa stia succedendo qui.
Mark Henderson,

2

Posso confermare che il colpevole è la CPU. Qui ho confrontato un Mikrotik RB750GL e ho misurato 12 Mb / s con traffico AES-128 (e solo 6,0 Mb / s con 3DES).

Il tuo risultato sembra perfettamente in linea con quanto registrato da me.


Sembra che i 200Mhz in più di velocità tra il 750 e il 2011 non abbiano fatto alcuna differenza rispetto alle velocità IPSec. Vorrei che Mikrotik pubblicasse queste cifre da qualche parte.
Mark Henderson,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.