Avant d’envisager de changer de chiffrement, il faut déterminer si c’est bien le CPU qui limite d’un côté ou de l’autre du VPN. Pour cela il suffit d’observer la charge CPU des deux noeuds à débit max dans chaque sens pendant assez longtemps.
Quand on empile toutes les couches, ça commence à faire :
IPv4 = 20 octets
UDP = 8 octets
OpenVPN = ?
IPv6 = 40 octets
TCP = 20 octets
L’encapsulation peut augmenter la taille des paquets au-delà de la MTU du chemin du tunnel, ce qui peut provoquer de la fragmentation. Deux cas :
-
si la MTU du tunnel n’est pas diminuée en conséquence, le tunnel fragmente après l’encapsulation (le paquet encapsulé n’est pas fragmenté, donc le paquet encapsulant est trop gros et doit être fragmenté)
-
si la MTU du tunnel est diminuée en conséquence, le tunnel fragmente avant l’encapsulation (le paquet encapsulé est trop gros et doit être fragmenté, chaque fragment est transporté dans un paquet encapsulant non fragmenté) ; quand tout se passe bien, TCP devrait s’adapter et limiter la taille des paquets pour éviter la fragmentation.
Dans les deux cas, la fragmentation résulte en l’envoi d’un fragment de taille maximum et d’un fragment de petite taille pour transmettre un paquet complet, ce qui fait chuter le débit effectif sans parler de la charge CPU pour gérer la fragmentation et le réassemblage à l’arrivée.