nslookup over openvpn 不起作用,而其他服务正常运行

Jee*_*Kim 2 networking domain-name-system linux openvpn

我在一个奇怪的情况。

  • 在工作中,我设置了 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)
Run Code Online (Sandbox Code Playgroud)

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 流量是一个问题,但我不确定,我也不知道解决方案。

小智 5

我相信您遇到的问题是 DNSMasq 配置,因为您不断收到;; connection timed out; no servers could be reached错误消息。

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

interface=tun0
Run Code Online (Sandbox Code Playgroud)

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

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

push "dhcp-options DNS 10.x.x.x"
Run Code Online (Sandbox Code Playgroud)

到 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