Назад | Перейти на главную страницу

Изменение пула openvpn dhcp

На данный момент у меня есть конфигурация, которая работает почти нормально, пока не подключатся некоторые клиенты, сервер не начнет выгружать клиентов с сервера или что-то в этом роде. Как я проверил, все клиенты получают хороший IP-адрес, и конфликт IP-адресов отсутствует. Клиенты используют разные сертификаты для подключения. Однако я хочу изменить эту конфигурацию, чтобы разделить диапазон dhcp.

Текущая конфигурация сервера такова:

port 1194
proto udp

dev tun

ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh2048.pem

server 10.8.0.0 255.255.255.0
topology subnet

push "route 10.8.0.1 255.255.255.0"
push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

ifconfig-pool-persist ipp.txt

client-config-dir /etc/openvpn/ccd

client-to-client

keepalive 10 300
comp-lzo
user nobody
group nobody

persist-key
persist-tun

status /etc/openvpn/openvpn-status.log
verb 6

Я хотел бы, чтобы динамические IP-адреса были назначены из этого диапазона:
10.8.1.0 - 10.8.1.254

Для этого я хотел бы использовать / 23, поэтому 255.255.254.0

И я назначу статические IP из этого диапазона:
10.8.0.3 - 10.8.1.255 как 0,1 и 0,2 могут быть назначены серверу.

Я буду использовать это, чтобы отправить клиенту статический ip:

ifconfig-push 10.8.0.5 255.255.254.0

Не могли бы вы помочь мне изменить мою конфигурацию для достижения этой цели?

Итак, разделите мой диапазон 10.8.0.0-10.8.1.255 на два:

У меня тоже будут клиенты для Linux и Windows.

Хорошо, наконец, это решено с некоторыми изменениями в файле конфигурации:

port 1194
proto udp
dev tun

ca /etc/openvpn/ca.crt
cert /etc/openvpn/server.crt
key /etc/openvpn/server.key
dh /etc/openvpn/dh2048.pem

mode server
tls-server
topology subnet
push "topology subnet"
ifconfig 10.8.0.1 255.255.254.0
ifconfig-pool 10.8.1.0 10.8.1.253
route-gateway 10.8.0.1
push "route-gateway 10.8.0.1"

client-config-dir /etc/openvpn/ccd

push "dhcp-option DNS 8.8.8.8"
push "dhcp-option DNS 8.8.4.4"

client-to-client

keepalive 10 300
comp-lzo

user nobody
group nobody
persist-key
persist-tun

status /etc/openvpn/openvpn-status.log
verb 6

Чтобы воспользоваться ответом Золтана Сабо и выполнить пояснения, запрошенные в комментариях, вот мой вариант ответа.

Как изменить пул адресов DHCP?

Перво-наперво, ответ на первоначальный вопрос. Наверное, что-то вроде server 10.8.0.0 255.255.255.0 в вашем конфиге. Эта директива автоматически выделяет пул DHCP с ifconfig-pool 10.8.0.4 10.8.0.251. Если вы попытаетесь указать ifconfig-pool сами, OpenVPN будет жаловаться, что вы не можете использовать server и ifconfig-pool все вместе. Теперь есть два способа настроить пул адресов DHCP.

а) Используйте nopool

Существует возможность заставить OpenVPN не выделять пул адресов DHCP. Просто добавьте nopool в конце директивы сервера, и вы можете указать пул самостоятельно.

server 10.8.0.0 255.255.255.0 nopool
ifconfig-pool 10.8.0.100 10.8.0.200

б) Объявите и настройте расширенный server руководить собой

Это решение использовалось Золтаном, и оно немного сложнее, но позвольте вам настроить больше аспектов сервера. В OpenVPN руководство показывает, как server директива расширена. Исходя из этого, вы можете самостоятельно заявить обо всех необходимых вариантах. Это сильно зависит от топологии, и если вы используете dev tun или dev tap.

Я просто добавляю пример, основанный на конфигурации в вопросе (topology subnet и dev tun).

mode server
tls-server
push "topology subnet"
ifconfig 10.8.0.1 255.255.255.0
ifconfig-pool 10.8.0.2 10.8.0.253 255.255.255.0
push "route-gateway 10.8.0.1"
route-gateway 10.8.0.1

См. Примечания ниже и руководство для получения дополнительной информации.

Как назначить клиенту статический IP-адрес?

Вторая часть вопроса касалась присвоения статических IP-адресов. Кажется, что OP понял, что один, и уже есть много из Ресурсы об этой теме в интернете. Тем не менее, я хотел бы добавить небольшой абзац о назначении статических IP-адресов определенным клиентам.

Решение состоит в том, чтобы использовать каталог конфигурации клиента и добавить туда файл для каждого клиента.

Добавьте это в конфигурацию вашего сервера OpenVPN:

client-config-dir /etc/openvpn/ccd

Если вы хотите, например, назначить IP 10.8.0.5 клиенту с общим именем client1, создайте файл /etc/openvpn/ccd/client1 с этим контентом (примечание: это для topology subnet):

ifconfig-push 10.8.0.5 255.255.255.0

Также сохраните примечание в OpenVPN руководство около ifconfig-push в уме. Я не мог найти route в конфигурации, которую Золтан опубликовал в своем ответе.

Не забудьте также включить директиву --route в основной файл конфигурации OpenVPN, который включает в себя local, чтобы ядро ​​знало, как направить его на интерфейс TUN / TAP сервера.

Ноты

На всякий случай, это раздел в OpenVPN руководство о расширении директивы сервера.

Например, --server 10.8.0.0 255.255.255.0 расширяется следующим образом:

mode server
tls-server
push "topology [topology]"
if dev tun AND (topology == net30 OR topology == p2p):
  ifconfig 10.8.0.1 10.8.0.2
  if !nopool:
    ifconfig-pool 10.8.0.4 10.8.0.251
  route 10.8.0.0 255.255.255.0
  if client-to-client:
    push "route 10.8.0.0 255.255.255.0"
  else if topology == net30:
    push "route 10.8.0.1"

if dev tap OR (dev tun AND topology == subnet):
  ifconfig 10.8.0.1 255.255.255.0
  if !nopool:
    ifconfig-pool 10.8.0.2 10.8.0.253 255.255.255.0
  push "route-gateway 10.8.0.1"
  if route-gateway unset:
    route-gateway 10.8.0.2