从 VPN 客户端解析本地主机名

从 VPN 客户端解析本地主机名

当我连接到 openvpn 服务器时,我无法解析 LAN 中的本地主机。我可以 ping IP 并 ssh 到 IP。/etc/reslov.conf连接到 openvpn 时:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 172.16.10.1
nameserver 10.0.10.1
search company.domain local.domain

我当然可以解析公司中的任何主机,但不能解析我的 LAN 中的主机,尽管我的本地名称服务器已在 中列出/etc/resolv.conf。现在我正在使用/etc/hosts它,这很好,因为它们只有 10 个主机。有时我需要从公司连接到我的 openvpn 服务器,如果我想在其中一个主机上执行任何任务,我必须断开连接,因为无法解析 LAN 中的主机,我无法将大约 3000 个主机添加到我的 中/etc/hosts/etc/rresolv.conf然后看起来像这样:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 10.0.10.1
nameserver 172.16.10.1
search local.domain company.domain

有什么方法可以解决这个问题,而不使用本地dnsmasq实例并且不使用/etc/hosts

谢谢

答案1

仅使用 libc 内置解析器无法做到这一点。无论你以何种方式排列名称服务器,如果第一个名称服务器响应“没有这样的域”,解析器将不会尝试另一个。

你并不特别需要 dnsmasq,但是你需要某种辅助 DNS 解析器,它可以跟踪每个域的名称服务器。常见的替代方案是 Unbound 和 systemd-resolved。

最简单的选择可能是 systemd-resolved(使用 DNSSEC=no),因为它提供了 resolvconf 的替代方案来自动导入配置,并与 NetworkManager 集成(如果您将其用于 VPN)。

相关内容