openvpn 上的 nslookup 不起作用,而其他服务可以正常运行

openvpn 上的 nslookup 不起作用,而其他服务可以正常运行

我处在一个奇怪的情况。

  • 在工作中,我已经设置了OpenVPN + DNSMasq DNS服务器。
  • 10.0.0.100是VPN服务器的内部IP。
  • 10.0.0.200是DNS服务器的内部IP。

如果我从外部网络连接到 VPN 服务器,一切就都正常了 - 我可以通过 ip 地址 ping 和 ssh 到本地机器。

但是,出于某种原因,我无法访问 DNS 服务。我可以 ssh 进入10.0.0.200。所以我尝试了nslookup HOSTNAME 10.0.0.200,但我只得到;; connection timed out; no servers could be reached。内部和外部域名都会发生这种情况。

当 OpenVPN 运行时,如果我通过 ssh 进入局域网中的任何一台机器并运行nslookup HOSTNAME 10.0.0.200,它就会按预期工作。此外,我甚至可以 telnet 到机器的端口 53 10.0.0.200

为了调试问题,我尝试了其他一些方法。我为 DNS 服务器提供了一个外部 IP,10.0.0.200例如1.2.3.4。在外部网络中,我可以运行nslookup HOSTNAME 1.2.3.4,命令按预期执行 - 它解析内部和外部域名。

但是,当我在客户端机器上启动 Openvpn 客户端并运行时nslookup HOSTNAME 1.2.3.4,它没有执行,并显示相同的connection timed out;错误消息。

traceroute to 1.2.3.4 (1.2.3.4), 30 hops max, 60 byte packets
 1  5.5.0.1 (5.5.0.1)  25.705 ms  25.714 ms  25.790 ms
 2  * * *
 3  * * *
 4  * * *
 5  * * *
 6  * * *
 7  * * *
 8  * * *
 9  * * *
10  * * *
11  * * as7065.xe-1-0-6.ar1.pao1.us.nlayer.net (69.22.130.86)  25.742 ms
12  tengig4-3.cr1.lsatca11.sonic.net (69.12.211.6)  25.658 ms  33.069 ms  33.067 ms
13  po2.cr1.colaca01.sonic.net (70.36.205.65)  33.075 ms  33.009 ms  37.902 ms
14  gig1-1-1.gw.snfcca01.sonic.net (70.36.228.102)  40.420 ms  40.332 ms  40.364 ms
15  * * *
16 ...(and go on)

5.5.0.1是OpenVPN创建的虚拟接口的网关。

此时,我还注意到这 Wed May 18 22:32:44 2011 /sbin/route add -net 1.2.3.4 netmask 255.255.255.255 gw 5.5.0.1 metric 101是在 openvpn 客户端的启动消息中。

因此,我怀疑通过 OpenVPN 路由 DNS 查询流量在某种程度上导致了问题。但是,我不知道

这是很多零散的信息,有很多不确定性。总结一下:

  • 问题:我无法通过 VPN 正确访问本地网络中的 DNS 服务器,尽管其他一切似乎都运行正常。
  • 我怀疑通过 OpenVPN 路由 DNS 流量存在问题,但我不确定,而且我也不知道解决方案。

答案1

我认为您的问题出在 DNSMasq 配置上,因为您一直收到;; connection timed out; no servers could be reached错误消息。

我在使用 OpenVPN 配置 DD-WRT 时遇到了同样的问题,并通过添加以下内容修复了该问题:

interface=tun0

到我的dnsmasq.conf(服务 | 来自 DD-WRT HTTP 接口的附加 DNSMasq 选项) [1]

然后,您可以通过添加以下内容将正确的 DNS 服务器推送给客户端:

push "dhcp-options DNS 10.x.x.x"

到 OpenVPN 配置 [2],但这只在 Windows 上“开箱即用” [3]。在 Ubuntu 客户端上,我只需手动设置内部 DNS 服务器,而无需编写脚本来解析参数foreign_option_n

  1. http://www.dd-wrt.com/phpBB2/viewtopic.php?p=680573
  2. OpenVPN 和 DNS。如何使用?
  3. http://openvpn.net/archive/openvpn-users/2006-06/msg00097.html

答案2

如果您发布配置文件,将非常有帮助/etc/openvpn/server.conf。特别是,检查您是否正在将路由和 DNS 服务器推送到客户端:

# give clients access to the whole work network, not just the server.
push "route 192.168.10.0 255.255.255.0"
# tell clients to use your internal dns server
push "dhcp-option DNS 10.8.15.1"
push "dhcp-option DOMAIN inside.example.com"

看看我的openvpn 设置方法了解更多详情。还请检查您的 DNS 服务器是否配置为允许远程客户端访问,以及 VPN 服务器上的防火墙是否允许 DNS 流量通过。

答案3

您需要配置您的 VPN 客户端机器,以便在连接到 VPN 时使用 10.0.0.200 作为其解析器。

http://openvpn.net/index.php/open-source/documentation/howto.html#dhcp

您可以通过编辑 /etc/resolv.conf(或您的操作系统等效文件)并发出 DNS 查询来手动尝试此操作。

为了进一步排除故障,请提供:

  • VPN 客户端的操作系统和 DNS 配置
  • 10.0.0.200 的 DNS 服务器的 DNS 配置(递归、权威、防火墙、默认路由等)

相关内容