In realtà l'ho fatto, anche se con "solo" alcune centinaia di connessioni remote analogamente dietro router DSL. Non posso commentare troppo i problemi di rekey, ma alcune cose pratiche che ho imparato lungo la strada:
1) Quando si distribuiscono client, assicurarsi di specificare più server VPN nel client conf, vpn1.example.com, vpn2.example.com, vpn3 ..... Anche se si forniscono solo uno o due di questi ora, si dà te stesso headroom. Configurati correttamente, i client continueranno a riprovarli a caso fino a quando non ne troveranno uno che funziona.
2) Utilizziamo un'immagine del server VPN AWS personalizzata e possiamo aumentare la capacità aggiuntiva su richiesta e Amazon DNS (R53) gestisce il lato DNS delle cose. È completamente staccato dal resto della nostra infrastruttura.
3) Sul lato server (s), fare un uso attento della maschera di rete per limitare il numero di potenziali client. Ciò dovrebbe forzare i client su un server alternativo, mitigando i problemi della CPU. Penso che limitiamo i nostri server a circa 300 client. Questa scelta è stata in qualche modo arbitraria da parte nostra: "sentirsi bene" se vuoi.
4) Inoltre, sul lato server, è necessario utilizzare con attenzione i firewall. In termini semplici, abbiamo configurato il nostro in modo tale che i client possano connettersi tramite VPN, ma i server non consentono rigorosamente tutte le connessioni SSH in entrata tranne che da un indirizzo IP noto. Possiamo SSH per i clienti se occasionalmente ne abbiamo bisogno, loro non possono SSH per noi.
5) Non fare affidamento sul fatto che OpenVPN esegua la riconnessione per te alla fine del client. Sarà 9 volte su 10, ma a volte si blocca. Avere un processo separato per reimpostare / riavviare openVPN sul lato client regolarmente.
6) È necessario un modo per generare chiavi univoche per i client in modo da poterle negare a volte. Li generiamo internamente con il nostro processo di build server (PXEboot). Non ci è mai successo, ma sappiamo di poterlo fare.
7) Avrai bisogno di alcuni strumenti di gestione, script per monitorare efficacemente le connessioni del tuo server VPN.
Sfortunatamente non c'è molto materiale su come farlo, ma è possibile, con un'attenta configurazione.