如何配置 OpenVPN 以更新本地域的 Bind9 條目?
我發現一篇文章描述瞭如何配置 dhcp3 伺服器以使用主機名和分配的 IP 地址更新 Bind9 區域。
我想達到同樣的效果,但是在一個 VPN 子網中,每個 VPN 客戶端都會收到一個 IP 地址,並且它的主機名/客戶端名稱將被添加到本地域區域。
但是,OpenVPN 似乎有自己的 dhcp 伺服器,我找不到任何關於將其連結到綁定的資訊。
一種解決方案是將 VPN 配置為分路設備,並將其橋接到虛擬網路介面,在該介面上使用 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)
我對您的OpenVPN和Bind9配置做了幾個假設,以簡化配置:
- 兩台伺服器都在同一台主機上執行,
- Bind9 的區域允許動態更新,如果您的dhcpd伺服器也在更新該區域,情況肯定是這樣。
- 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:您最初嘗試使用Tap界面和真實的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 代理引起的:如果**–server-bridge不帶任何參數(*我的註釋:或使用nogw**參數*)使用,它將啟用 DHCP 代理模式,其中連接的 OpenVPN 客戶端將從上執行的 DHCP 伺服器接收其 TAP 適配器的 IP 地址OpenVPN 伺服器端區域網路。
資料來源:OpenVPN 參考手冊。
但是我注意到OpenVPN對伺服器端 LAN 的定義是什麼。