J'ai en fait fait cela, même avec "seulement" quelques centaines de connexions à distance derrière des routeurs DSL. Je ne peux pas trop commenter les problèmes de rekeying, mais j'ai appris quelques choses pratiques en chemin :
1) Lors du déploiement des clients, assurez-vous de spécifier plusieurs serveurs VPN dans le fichier de configuration du client, vpn1.example.com, vpn2.example.com, vpn3... Même si vous n'en fournissez qu'un ou deux maintenant, vous vous donnez de la marge de manoeuvre. Configurés correctement, les clients continueront à les réessayer au hasard jusqu'à ce qu'ils en trouvent un qui fonctionne.
2) Nous utilisons une image de serveur VPN AWS personnalisée et pouvons augmenter la capacité supplémentaire à la demande, et Amazon DNS (R53) gère la partie DNS. Il est complètement détaché du reste de notre infrastructure.
3) À l'extrémité du(des) serveur(s), utilisez soigneusement le masque réseau pour limiter le nombre de clients potentiels. Cela devrait forcer les clients à utiliser un serveur alternatif, atténuant les problèmes de CPU. Je pense que nous limitons nos serveurs à environ 300 clients. Ce choix était quelque peu arbitraire de notre part - une intuition, si vous préférez.
4) Également à l'extrémité du serveur, utilisez soigneusement les pare-feu. En termes simples, nous avons configuré le nôtre de telle sorte que les clients puissent se connecter en VPN, mais que les serveurs interdisent strictement toutes les connexions entrantes SSH sauf d'une adresse IP connue. Nous pouvons nous connecter en SSH aux clients si nous en avons occasionnellement besoin, mais ils ne peuvent pas se connecter en SSH à nous.
5) Ne comptez pas sur OpenVPN pour reconnecter automatiquement le client. 9 fois sur 10, il le fera, mais parfois il reste bloqué. Ayez un processus séparé pour réinitialiser/redémarrer OpenVPN régulièrement au niveau du client.
6) Vous avez besoin d'un moyen de générer des clés uniques pour les clients pour pouvoir les désavouer parfois. Nous générons celles-ci en interne avec notre processus de construction de serveur (PXEboot). Cela ne nous est jamais arrivé, mais nous savons que nous pouvons le faire.
7) Vous aurez besoin d'outils de gestion, de scripts pour surveiller efficacement les connexions de votre serveur VPN.
Il n'y a malheureusement pas beaucoup de ressources sur la manière de faire cela, mais c'est possible avec une configuration soignée.