Итак, у нас есть несколько клиентов, у которых есть собственные экземпляры VPS, которые мы размещаем через Proxmox. Все серверы клиентов находятся за брандмауэром NAT, и мы перенаправляем порты по запросу клиента на различные общедоступные IP-адреса. Я знаю, что это не совсем похоже на большинство услуг хостинга VPS, поскольку обычно вы получаете свой собственный выделенный общедоступный IP-адрес, но мы делаем это из соображений безопасности, и в большинстве случаев мы все равно управляем клиентскими VPS, поскольку у них обычно нет ИТ персонал (малый / средний бизнес).
Нам необходимо настроить OpenVPN, чтобы позволить некоторым из наших клиентов напрямую подключаться к некоторым из своих сервисов, которые не являются общедоступными. Мы хотим настроить это на наших серверах шлюзов Linux, которые предоставляют NAT, DHCP и т. Д. Для наших различных клиентских серверов. У каждого клиента есть собственная выделенная VLAN с уникальной подсетью / 20. Итак, мы хотим, чтобы OpenVPN подключал каждого пользователя к их правильной VLAN / подсети. Для этого нам понадобится другой мост TAP для каждой VLAN, и это нормально, поскольку каждый клиент уже имеет свой собственный интерфейс на шлюзе, который обеспечивает NAT, DHCP и т. Д. Для своих серверов.
Что я хочу знать, так это как перенаправить каждого клиента на их правильное устройство TAP. Поддерживает ли OpenVPN эту функцию, или мне придется запускать несколько экземпляров OpenVPN, по одному для каждого устройства TAP? Конечно, слушаю на разных портах. Если возможно, я хотел бы передать имя устройства TAP через LDAP, и OpenVPN будет использовать это устройство.
Мы хотели бы, чтобы DHCP-сервер обрабатывал аренду, а IP-таблицы - NAT, а не OpenVPN. Вот почему мы хотим использовать устройства TAP.
После долгих исследований, проб и ошибок оказалось, что это довольно легко сделать. Вам нужно запустить несколько экземпляров, по одному на мост, чтобы изолировать всех пользователей от их соответствующих сетей. Вы просто добавляете новый файл .conf для каждого экземпляра, и Debian автоматически создает новый экземпляр для каждого файла .conf. Просто убедитесь, что вы используете разные порты! Другие распространенные дистрибутивы, похоже, справляются с этим аналогичным образом.