На самом деле я сделал это, хотя и с «всего лишь» несколькими сотнями удаленных подключений, аналогично DSL-маршрутизаторам. Я не могу комментировать слишком много вопросов о повторной покупке, но несколько практических вещей, которые я узнал по пути:
1) При развертывании клиентов убедитесь, что вы указали несколько VPN-серверов в клиентском conf, vpn1.example.com, vpn2.example.com, vpn3 ..... Даже если вы предоставляете только один или два из них сейчас, вы даете сам запас При правильной настройке клиенты будут повторять их наугад, пока не найдут тот, который работает.
2) Мы используем настраиваемый образ сервера AWS VPN и можем наращивать дополнительную емкость по требованию, а Amazon DNS (R53) обрабатывает аспекты DNS. Он полностью отделен от остальной части нашей инфраструктуры.
3) На стороне сервера (ов) тщательно используйте маску сети, чтобы ограничить число потенциальных клиентов. Это должно заставить клиентов перейти на альтернативный сервер, уменьшая проблемы с процессором. Я думаю, что мы ограничиваем наши серверы до 300 или около того клиентов. Этот выбор был несколько произвольным с нашей стороны - «чутье», если хотите.
4) Также на стороне сервера вы должны осторожно использовать брандмауэры. Проще говоря, наши настроены так, что клиенты могут подключаться к VPN, но серверы строго запрещают все входящие соединения ssh, кроме как с известного IP-адреса. Мы можем SSH для клиентов, если нам иногда это нужно, они не могут SSH для нас.
5) Не надейтесь, что OpenVPN выполнит переподключение за вас на стороне клиента. 9 раз из 10 так и будет, но иногда застревает. Отдельный процесс для регулярного сброса / перезапуска openVPN на стороне клиента.
6) Вам нужен способ генерирования уникальных ключей для клиентов, чтобы вы могли иногда дезавуировать их. Мы создаем их внутренне с помощью нашего процесса сборки сервера (PXEboot). Никогда с нами не бывало, но мы знаем, что можем это сделать.
7) Вам понадобятся некоторые инструменты управления, сценарии для эффективного мониторинга подключений к вашему VPN-серверу.
К сожалению, не так много материала о том, как это сделать, но это возможно при тщательной настройке.