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

Как настроить OpenVPN для обновления записей Bind9 для локального домена?

Я нашел статью, описывающую, как настроить сервер dhcp3 для обновления зоны Bind9 с именами хостов и назначенными IP-адресами.

Я хочу добиться того же эффекта, но внутри подсети VPN, где каждый VPN-клиент получит IP-адрес, а его имя хоста / имя клиента будет добавлено в зону локального домена.

Однако у OpenVPN, похоже, есть собственный DHCP-сервер, и я не могу найти ничего о его привязке для привязки.

Одним из решений было бы настроить VPN как устройство с ответвлением и связать его с виртуальным сетевым интерфейсом, на котором будет использоваться сервер dhcp3. Но это кажется излишеством.

Есть ли более простое и чистое решение?

ОБНОВИТЬ:

Даже это не работает. Каким-то образом dhcp-сервер видит запрос DHCPDISCOVER как поступающий с MAC-адреса tap0, поэтому, когда он отправляет ответ, VPN-клиент его не получает:

Feb  7 00:41:22 vpn-server1 dhcpd[7601]: DHCPDISCOVER from fe:b4:3f:fe:9d:0e via tap0
Feb  7 00:41:23 vpn-server1 dhcpd[7601]: DHCPOFFER on 172.16.0.2 to fe:b4:3f:fe:9d:0e (vpn-server1) via tap0

ifconfig

tap0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
    inet 172.16.0.1  netmask 255.255.255.0  broadcast 0.0.0.0
    inet6 fe80::5c70:cea0:5619:ac47  prefixlen 64  scopeid 0x20<link>
    ether fe:b4:3f:fe:9d:0e  txqueuelen 100  (Ethernet)
    RX packets 0  bytes 0 (0.0 B)
    RX errors 0  dropped 0  overruns 0  frame 0
    TX packets 95  bytes 14590 (14.2 KiB)
    TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

Журнал OpenVPN Server:

Fri Feb  7 00:41:21 2020 MULTI: no dynamic or static remote --ifconfig address is available for Client-1/192.168.1.105:39069
Fri Feb  7 00:41:23 2020 Client-1/192.168.1.105:39069 PUSH: Received control message: 'PUSH_REQUEST'
Fri Feb  7 00:41:23 2020 Client-1/192.168.1.105:39069 SENT CONTROL [Client-1]: 'PUSH_REPLY,peer-id 1' (status=1)

Я делаю несколько предположений относительно вашего OpenVPN и Bind9 конфигурации, которые упрощают настройку:

  1. Оба сервера работают на одном хосте,
  2. Зона Bind9 позволяет динамические обновления, что, безусловно, имеет место, если ваш dhcpd сервер также обновляет зону.
  3. Клиенты OpenVPN аутентифицируются с помощью сертификатов TLS, которые имеют CN равно DNS-имени, которое вы хотите зарегистрировать, например DN в сертификате DC=com, DC=example, CN=client1.example.com.

Чтобы зарегистрировать адрес вновь подключенного клиента, вам понадобится простой скрипт (назовем его /etc/openvpn/update-dns):

#!/bin/bash

/usr/bin/nsupdate -l <<EOF
del $common_name
add $common_name. 300 IN A $ifconfig_pool_remote_ip
send
EOF

и добавьте его в OpenVPN конфигурация:

script-security 2
learn-address /etc/openvpn/update-dns

PS: Ваша первая попытка использования нажмите интерфейс и настоящий dhcpd для предоставления адресов клиентов также должно работать, например с конфигурацией сервера:

server-bridge
dev tap0
ifconfig 172.16.0.2
# authentication options

и конфигурация клиента:

client
dev tap0
# authentication options

и Bind9 слушая tap0, а dhclient -d tap0 вызываемый клиентом OpenVPN получит адрес. Изменение MAC в DHCP наблюдаемые вами пакеты вызваны OpenVPN действующий как прокси DHCP:

Если –Сервер-мост используется без параметров (моя заметка: или с ногв параметр), он включит режим DHCP-прокси, в котором подключающиеся клиенты OpenVPN будут получать IP-адрес для своего адаптера TAP от DHCP-сервера, работающего в локальной сети на стороне сервера OpenVPN.

Источник: Справочное руководство OpenVPN.

Однако я уверен, что OpenVPNопределение серверной локальной сети.