Auf openVPN gehen deren Entwickler-Schätzungen für Ressourcen und Performance-Berechnungen in folgende Richtung:
Ich weiss, es ist viel Info / Text, aber ich denke auch, dass sich hier eine Einarbeitung echt lohnt!
Wie gesagt, stammt direkt von der openVPN Entwicklerseite, was die Einschätzungen natürlich sehr nahe der Realität kommen lässt!!
Siehe auch weiter unten: Beispiele & Limitierungen 
Die CPU-Anforderungen sind aufgrund der sehr unterschiedlichen Anforderungen und Anwendungsfälle nur sehr schwer zu spezifizieren. Wenn Sie beispielsweise einen VPN-Server für 500 Personen betreiben, aber alles, was sie tun, ist, ihn zu verwenden, um einen Webserver über den VPN-Server zu erreichen, dann sind die Anforderungen viel geringer als beim Betrieb desselben Servers, aber sie leiten ihren gesamten Internetverkehr über den VPN-Server um. Der Datenverkehr, der über die VPN-Verbindung läuft, beansprucht sowohl auf Client- als auch auf Serverseite CPU-Rechenleistung, da Informationen ver- und entschlüsselt werden müssen.
Wenn Sie eine moderne CPU haben, die AES-NI unterstützt, dann kann das System möglicherweise einen Teil der Last entlasten. Auf älteren Systemen müssen Sie nur Ihre Schätzungen etwa verdoppeln.
Als Faustregel sollte man davon ausgehen, dass man bei einer modernen CPU mit AES-NI-Chipsatz für jedes Megabit pro Sekunde Datenverkehr (in eine Richtung) etwa 20MHz benötigt. Dies ist eine sehr grobe Schätzung, aber es gibt einige Unterschiede in der Art der CPU, AMD oder Intel, AES-NI oder nicht, etc., so dass wir nur eine grobe Schätzung vornehmen können. Wenn Ihre CPU älter ist und keine AES-NI hat, gehen Sie von 40 MHz pro Megabit pro Sekunde Datenverkehr aus.
Es ist möglich, das OpenSSL-Programm zu verwenden, um Verschlüsselungstests durchzuführen, um zu sehen, welche Art von Datenverschlüsselung-Verarbeitungsgeschwindigkeit Sie erwarten können. Dies würde Ihnen dann eine genauere Schätzung geben, wie viel Datenverkehr Sie durch einen OpenVPN-Tunnel transportieren können. Die angegebenen Schätzungen basieren auf Erfahrungswerten und mit den Standardeinstellungen für die Verschlüsselung. Wenn Sie auf der Suche nach einer Leistungssteigerung sind, können Sie eine Senkung der Verschlüsselungseinstellungen in Betracht ziehen, um die Belastung zu verringern und die Dinge zu beschleunigen.
Der Speicherbedarf hängt stark von der Anzahl der angeschlossenen Geräte und dem NAT-Verkehr ab. Als Minimum empfehlen wir, dass Sie mit 1 GB Speicher beginnen sollten. Sie können niedriger gehen, aber Sie können später möglicherweise auf Probleme mit der Speicherauslastung stoßen, weshalb wir es vorziehen, eine Sicherheitsmarge einzuhalten.
Darüber hinaus empfehlen wir, dass Sie, wenn Ihre Benutzer nur auf Ressourcen in Ihrem privaten Netzwerk zugreifen und nicht ihren gesamten Internetverkehr über den Server übertragen, etwa 500 Megabyte Speicher pro 100 angeschlossene Geräte hinzufügen sollten. Für 1000 angeschlossene Geräte wären das also 6 GB Speicher. Wenn Ihre Benutzer den gesamten Internetverkehr über den VPN-Server leiten, verdoppeln Sie diesen auf 1000 Megabyte pro 100 angeschlossene Geräte. Für 1000 angeschlossene Geräte wären das also 11 GB Speicher. Auch dies mag auf der hohen Ebene liegen, aber wir bevorzugen eine Sicherheitsmarge in unseren Schätzungen, um zu vermeiden, dass Sie auf Speicherprobleme stoßen. Du kannst natürlich nach Belieben experimentieren und sehen, was bei dir funktioniert.
Der Bandbreitenbedarf hängt vollständig davon ab, wie viele Daten Sie insgesamt durch die VPN-Tunnel transportieren möchten. Wenn Sie einen Server mit einer 1Gbps-Netzwerkverbindung haben und 100 Geräte daran angeschlossen sind, bleiben 10Mbps pro Benutzer übrig, wenn sie alle gleichzeitig das volle Potenzial nutzen. Normalerweise werden das aber nicht alle gleichzeitig tun, und wenn zum Beispiel nur die Hälfte der Benutzer die Verbindung voll ausnutzt und die andere Hälfte im Leerlauf ist, dann bleiben etwa 20Mbps pro Benutzer übrig. Leider gibt es für uns keine Möglichkeit zu schätzen, wie Ihre Benutzer die Verbindung nutzen werden, Sie müssen diese Schätzung selbst vornehmen.
Die Anforderungen an die Festplatte sind relativ gering. Eine minimale Linux-Installation mit Access Server könnte sogar auf 2 Gigabyte passen. Die meisten Daten werden im Laufe der Zeit von Protokollen verwendet, also beachten Sie dies bitte und lesen Sie unsere Seite mit den Protokollierungs- und Debugging-Optionen für weitere Details, wie Sie die Protokollrotation einrichten, um zu verhindern, dass Ihr Festplattenspeicher voll wird. Wir empfehlen bequeme 16 GB Festplattenspeicher und möglicherweise mehr, wenn Ihre Benutzerkontendatenbank extrem groß sein wird.
Einige Beispiele:
Die unten aufgeführten Beispiele gehen von einem relativ hohen Bandbreitenbedarf und der Aktivität der Benutzer aus. In Wirklichkeit werden Sie oft feststellen, dass die Benutzer viel mehr im Leerlauf sind und die Bandbreitenanforderungen daher viel geringer sind. Aber die Beispiele sind hier, um Ihnen zu zeigen, wie Sie eine fundierte Einschätzung darüber treffen können, welche Art von System Sie benötigen, um ein bestimmtes Ziel zu erreichen. Allerdings haben wir Kunden, die fast 2000 Benutzer auf einem einzigen Access Server auf einem Quad-Core-System betreiben, was sehr gut ist, da ihre Anforderungen an den Datendurchsatz relativ gering und auf bestimmte Dienste beschränkt sind. Ebenso haben wir auch Kunden, die etwa 50 Benutzer auf einem einzigen Access Server ausführen und ihr Octa-Core-Konzept maximieren, weil sie so viel Datenverkehr durch ihn leiten. Es hängt nur davon ab, was Sie brauchen, also ist es für uns sehr schwierig, Ihnen selbst eine genaue Beurteilung zu geben.
Ein ziemlich anspruchsvolles Setup - sagen wir, Sie haben einen modernen dedizierten Server mit AES-NI und benötigen 500 angeschlossene Geräte, und sie leiten ihren gesamten Internetverkehr durch den VPN-Tunnel um, und etwa 50% werden die Verbindung aktiv nutzen und 50% werden jederzeit im Leerlauf sein. Dies wird natürlich variieren, da einige Benutzer eine Webseite öffnen und sie dann für eine Weile lesen, während die Verbindung meist ungenutzt bleibt, während andere Benutzer gleichzeitig ein E-Mail-Programm öffnen und E-Mails abrufen. Mit anderen Worten, eine typische Büroarbeitssituation. Nehmen wir an, Sie wollen sicherstellen, dass jedem aktiven Benutzer 10 Mbit/s zur Verfügung stehen, und nehmen wir an, er hat diese Bandbreite tatsächlich auf seiner Internetverbindung.
250 aktive Benutzer mal 10Mbps ist 2500Mbps oder 2,5Gbps. Server mit 10Gbps-Leitungen sind leicht verfügbar, so dass dies in Bezug auf die Netzwerkbandbreite kein Problem darstellen sollte.
2500Mbps mal 20MHz ist etwa 50000MHz oder 50GHz. Prozessoren mit 3,5 GHz, z.B. im Dual-Octa-Core-Konzept, würden Sie diesen Anforderungen gerecht werden.
Bei 500 angeschlossenen Geräten in diesem Beispiel benötigen Sie ca. 6 GB Speicherplatz auf Ihrem System. Dies ist eine relativ geringe Menge für moderne Systeme, die so einfach zu erreichen ist.
Eine einfachere Einrichtung - nehmen wir an, Sie haben einen alten dedizierten Server ohne AES-NI und benötigen 200 Geräte, die daran angeschlossen sind, aber sie leiten nur den Datenverkehr für einen Webserver und einen Dateiserver in Ihrem privaten Netzwerk weiter, und etwa 50% werden die Verbindung aktiv nutzen und 50% werden zu jeder Zeit im Leerlauf sein. Wie im vorherigen Beispiel wird dies natürlich etwas variieren, da einige Benutzer an anderen Aufgaben arbeiten und diese mit dem Abrufen von Dateien und Daten über den VPN-Tunnel wechseln. Nehmen wir an, Sie wollen sicherstellen, dass jedem aktiven Benutzer 10 Mbit/s zur Verfügung stehen, und nehmen wir noch einmal an, dass er diese Bandbreite tatsächlich auf seiner Internetverbindung hat.
100 aktive Benutzer mal 10Mbps ist 1000Mbps oder 1Gbps. Die meisten Systeme haben dies heutzutage standardmäßig, sogar Server, die mehrere Jahre alt sind.
1000Mbps Zeit 40MHz ist etwa 40000MHz oder 40GHz. Ältere Server mit einem Dual-Octa-Core-Konzept mit 2,5 GHz können Sie diesen Anforderungen gerecht werden.
Bei 200 angeschlossenen Geräten in diesem Beispiel würden Sie etwa 2 GB Speicher benötigen, eine relativ geringe Menge.
Einschränkungen:
Wenn Sie beabsichtigen, den Internetverkehr über den OpenVPN Access Server weiterzuleiten, empfehlen wir, dass Sie pro Access Server-Installation nicht mehr als 1000 Benutzer anmelden. Diese Einschränkung ist eine praktische Einschränkung, die damit zusammenhängt, wie viele Verbindungen ein einzelnes Betriebssystem tatsächlich bewältigen kann, und da alles über den Access Server läuft, können Sie hier auf einige harte Einschränkungen des Betriebssystems stoßen. Wenn Ihre Serverhardware leistungsfähiger ist und Sie das Gefühl haben, dass diese Grenze das Hardwarepotenzial Ihres Servers verschwenden würde, denken Sie bitte daran, dass Sie das System virtualisieren und mehrere Access Server-Installationen nebeneinander auf derselben Hardware ausführen können. Wir bevorzugen ESXi selbst, aber auch HyperV, Proxmox und andere Lösungen sind akzeptabel.
Wenn Sie beabsichtigen, nur begrenzten Datenverkehr über den OpenVPN Access Server zu leiten, können Sie vielleicht mehr als 3000 angeschlossene Geräte über eine einzige Installation laufen lassen, aber über 2000 hinaus empfehlen wir Ihnen, die Dinge in separate Installationen aufzuteilen, um Probleme mit der Betriebssystembegrenzung zu vermeiden. Kurz gesagt, es hängt ganz davon ab, was man damit macht. So nutzt es beispielsweise einer unserer Kunden ausschließlich zur Wartung von Systemen, so dass die Bandbreitenauslastung extrem gering ist und damit auch die Systembelastung, d.h. er kann Tausende von angeschlossenen Geräten auf demselben Access Server problemlos betreiben.
Benutzerkonten auf dem OpenVPN Access Server können viel höher sein als die Anzahl der tatsächlich angeschlossenen Geräte. Zum Beispiel können Sie 50000 Benutzernamen + Passwörter auf dem Access Server gespeichert haben. Wenn nur 500 davon zu einem Zeitpunkt aktiv verbunden sind, gibt es überhaupt kein Problem.
Der OpenVPN Access Server verwendet standardmäßig SQLite-Datenbankdateien. Irgendwann können diese Dateien zu Proportionen wachsen, die die Verwendung ineffizient machen. Wenn Sie Zehntausende von Benutzerkonten und eine Menge Verbindungs-/Trennungsaktivitäten haben, können Sie mit Dateien von gigabyte Größe enden, und SQLite3 ist nicht sehr effizient, wenn es um Dateien dieser Größe geht. Wenn Sie aufgrund der Backend-Datenbanken einmal auf eine Geschwindigkeits- oder Größenbeschränkung stoßen, haben Sie die Wahl, die SQLite3-Datenbanken nach MySQL oder Amazon RDS zu migrieren. Diese Systeme sind für die schnelle Verarbeitung sehr großer Datensätze ausgelegt.