通过主机名调用 openvpn 服务器

通过主机名调用 openvpn 服务器

我使用带有服务器和一些客户端的 openvpn 基础架构。客户端可以通过其主机名相互调用,但无法以相同的方式访问服务器。目前可以通过其 IP 地址访问服务器。

如何将服务器名称和相应的 IP 地址(v4 和 v6)传输给客户端?

如果可能的话,我不想设置额外的 DNS 服务器

答案1

编辑重新阅读您的问题:

好的,如果没有 DNS 服务器,您可以将服务器的 IP 添加到客户端的 /etc/hosts 文件中:

172.31.0.1 dns.local

不过,我建议使用 DNS 服务器选项,它很简单:

在 openvpn 服务器上安装 bind 或 dnsmasq,并将以下内容添加到其配置中:

push "dhcp-option DOMAIN yourdomain.local"
push "dhcp-option DNS X.X.X.X"

其中 XXXX 是 bind/dnsmasq 监听的 IP。

这些选项执行以下操作:

  1. DNS XXXX -- 设置主域名服务器 IPv4 地址。重复此选项可设置辅助 DNS 服务器地址。
  2. DOMAIN yourdomain.local - 设置连接特定的 DNS

如果 DNS 服务器与 VPN 客户端不在同一网络中,您可能需要使用:

push "redirect-private bypass-dns"

这将创建一条跳过 VPN 的到 DNS 服务器的单独路由。

如果您使用 Bind,那么您的 named.conf 将包含:

zone "local" IN {
    type master;
    allow-update { none; }; 
    notify no;
    file "/etc/bind/local.zone";
};

和 local.zone:

$TTL 600
@       IN      SOA     dns.local. root.local. (
                        2018061001      ; serial
                        12h             ; refresh
                        1h              ; retry
                        2w              ; expire
                        1h              ; minimum
                        )
;
                NS      ns              ; Inet Address of name                         server
                MX      10 mail.local.  ; Primary Mail Exchanger
                MX      20 mail.local.  ; Secondary Mail Exchanger
localhost       IN      A       127.0.0.1
dns             IN      A       172.31.0.1
ns              IN      A       172.31.0.1
mail            IN      A       172.31.0.1
client100       IN      A       172.31.0.100
client101       IN      A       172.31.0.101

如果您是 Bind 新手,请确保它不会响应任何面向 Internet 的 IP。

相关内容