Найти в Дзене

Выдача адресов клиентам в OpenVPN

OpenVPN – классическое, пользующееся заслуженной популярностью решение для создания корпоративных сетей. И поэтому вопрос распределения адресного пространства является актуальным. По умолчанию, если не указано иных настроек, OpenVPN выдает адреса динамически из диапазона совпадающего с подсетью сервера, указанной в директиве: server 10.8.0.0 255.255.255.0 В данном случае сервер возьмет себе первый адрес в сети – 10.8.0.1, а клиенты будут получать адреса из диапазона 10.8.0.2 – 10.8.0.254. Если такой вариант нас не устраивает, то мы можем задать диапазон выделяемых IP-адресов явно, добавив в конфигурационный файл сервера опцию: ifconfig-pool 10.8.0.100 10.8.0.199 Теперь адреса клиентов будут выдаваться из указанного диапазона. Но как быть, если мы хотим выдать клиенту постоянный IP-адрес? Можно воспользоваться файлом CCD (Client Configuration Directory), где хранятся персональные инструкции для подключившегося клиента, добавьте туда: ifconfig-push 10.8. 0.5 255.255.255.0 После

Выдача адресов клиентам в OpenVPN

OpenVPN – классическое, пользующееся заслуженной популярностью решение для создания корпоративных сетей. И поэтому вопрос распределения адресного пространства является актуальным.

По умолчанию, если не указано иных настроек, OpenVPN выдает адреса динамически из диапазона совпадающего с подсетью сервера, указанной в директиве:

server 10.8.0.0 255.255.255.0

В данном случае сервер возьмет себе первый адрес в сети – 10.8.0.1, а клиенты будут получать адреса из диапазона 10.8.0.210.8.0.254.

Если такой вариант нас не устраивает, то мы можем задать диапазон выделяемых IP-адресов явно, добавив в конфигурационный файл сервера опцию:

ifconfig-pool 10.8.0.100 10.8.0.199

Теперь адреса клиентов будут выдаваться из указанного диапазона.

Но как быть, если мы хотим выдать клиенту постоянный IP-адрес? Можно воспользоваться файлом CCD (Client Configuration Directory), где хранятся персональные инструкции для подключившегося клиента, добавьте туда:

ifconfig-push 10.8. 0.5 255.255.255.0

После чего подключившийся клиент получит адрес 10.8. 0.5. Таким образом вы можете раздать части клиентов выделенные адреса, а остальные продолжат их получать динамически.

Все это хорошо, но если клиентов много, то добавляется достаточно ручной работы. Можно ли сделать проще? Да, если конкретного требования к адресам нет, то можно воспользоваться технологией IP Pool Persist, которая сохраняет привязки между именами клиентов и назначенными им IP-адресами.

Чтобы ее активировать добавьте в конфигурационный файл сервера опцию:

ifconfig-pool-persist ipp.txt

Теперь при каждом подключении клиента OpenVPN считывает его имя – поле CN в сертификате и просматривает файл ipp.txt на предмет наличия записи с указанным CN.

Если запись найдена, клиент получает указанный в ней адрес. Если нет, то берется первый свободный адрес из пула и выдается клиенту, после чего в файл вносится новая запись, закрепляющая этот адрес за клиентом.

Таким образом мы получаем автоматическое выделение адресов с одновременным закреплением их за клиентами. И просто, и удобно.

Можно ли самостоятельно редактировать этот файл? Можно, но только предварительно остановив службу во избежание конфликтов. Вы можете изменить закрепление адресов или добавить новые записи с нужными вам адресами, не дожидаясь пока это будет сделано автоматически.

Если рассматривать оба приведенных нами способа, то следует помнить, что CCD имеет более высокий приоритет и клиенту будет присвоен адрес, указанный в CCD-файле даже если у него есть уже привязка в ipp.txt.

И вот здесь нужно быть крайне осторожным, чтобы избежать конфликтов и неоднозначных ситуаций, если адреса в CCD-файлах и ipp.txt пересекаются.

Что будет, если указанный в CCD адрес уже занят? OpenVPN выдаст первый свободный и занесет запись в ipp.txt. А если окажется занят адрес, указанный в ipp.txt, то поиск по файлу продолжится и если там есть вторая запись, то будет выдан указанные в ней адрес. Нет – снова первый свободный с созданием дубля записи.

Впоследствии это может приводить к тому, что клиент начнет получать разные адреса в зависимости от условий подключения. Поэтому при появлении в ipp.txt дублирующихся записей следует внимательно изучить конфигурации клиентов.