如何配置 OpenVPN 以更新本地域的 Bind9 条目?

如何配置 OpenVPN 以更新本地域的 Bind9 条目?

我找到了一篇文章,描述了如何配置 dhcp3 服务器以使用主机名和分配的 IP 地址更新 Bind9 区域。

我想要实现相同的效果,但在 VPN 子网内,每个 VPN 客户端将接收一个 IP 地址,并且其主机名/客户端名称将被添加到本地域区域。

但是,OpenVPN 似乎有自己的 dhcp 服务器,我找不到任何关于将其链接到 bind 的信息。

一种解决方案是将 VPN 配置为 TAP 设备,并将其桥接到虚拟网络接口,在该接口上使用 dhcp3 服务器。但这似乎有点过头了。

有没有更简单、更干净的解决方案?

更新:

即使这样也行不通。不知何故,dhcp 服务器认为 DHCPDISCOVER 请求来自 tap0 MAC 地址,因此当它发送响应时,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

是否配置

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 服务器日志:

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)

答案1

我对你做了一些假设OpenVPNBind9配置,从而简化配置:

  1. 两台服务器都在同一主机上运行,
  2. Bind9 的区域允许动态更新,如果你的DHCP服务器服务器也正在更新该区域。
  3. OpenVPN 客户端使用 TLS 证书进行身份验证,该证书具有中国等于您要注册的 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

附言:您首次尝试使用轻敲界面和真实的DHCP服务器提供客户端地址也应该有效,例如服务器配置为:

server-bridge
dev tap0
ifconfig 172.16.0.2
# authentication options

以及客户端配置:

client
dev tap0
# authentication options

Bind9监听tap0dhclient -d tap0OpenVPN 客户端上的调用将获得一个地址。苹果您观察到的数据包DHCP是由OpenVPN充当 DHCP 代理:

如果–服务器桥不带任何参数使用(我的注释:或者使用诺格范围),它将启用 DHCP 代理模式,连接时的 OpenVPN 客户端将从在 OpenVPN 服务器端 LAN 上运行的 DHCP 服务器接收其 TAP 适配器的 IP 地址。

来源:OpenVPN 参考手册

然而我不确定是什么OpenVPN对服务器端局域网的定义。

相关内容