选项 1:重新配置 pfSense

选项 1:重新配置 pfSense

我在 Mac OS X 10.8.2 (Mountain Lion) 上使用 Tunnelblick 3.3beta21b 连接到 pfSense/OpenVPN 虚拟专用网络。连接到 VPN 后,我可以访问我们数据中心的机器。这是 pfSense 2.0.1。

数据中心中的机器运行的是 Ubuntu 12.04 Precise。当我在数据中心的一台机器上时,我可以用短(非完全限定)主机名 ping 其他机器:

web1:~  $ ping web2
PING web2 (10.10.160.6) 56(84) bytes of data.
64 bytes from web2 (10.10.160.6): icmp_req=1 ttl=64 time=0.380 ms

数据中心中任何一台 Ubuntu 机器上的 resolv.conf 文件如下所示:

web1:~  $ cat /etc/resolv.conf 
nameserver 10.10.160.2
nameserver 10.10.160.45

不幸的是,当我在家里通过 TunnelBlick/OpenVPN 连接时,短名称在我的 Mac 上不起作用:

mac:~  $ ping web2
ping: cannot resolve web2: Unknown host

但是,nslookup 返回“web2”的正确 IP 地址,如果我使用尾随点进行 ping,它就可以工作:

mac:~  $ ping web2.
PING web2 (10.10.160.6) 56(84) bytes of data.
64 bytes from web2 (10.10.160.6): icmp_req=1 ttl=64 time=0.380 ms

通过 Tunnelblick 连接时,我的 Mac 的 resolv.conf 如下所示。请注意,Tunnelblick 添加了“搜索”行;当我断开与 VPN 的连接时,该行不存在:

#
# Mac OS X Notice
#
# This file is not used by the host name and address resolution
# or the DNS query routing mechanisms used by most processes on
# this Mac OS X system.
#
# This file is automatically generated.
#
search company.com
nameserver 10.10.160.45
nameserver 8.8.8.8

如何配置 Mac OS X 或 Pfsense/OpenVPN 或 Tunnelblick 以便可以使用 Mac 上的短主机名?

答案1

选项 1:重新配置 pfSense

在 pfSense 中配置 OpenVPN 时,“DNS 默认域”字段将作为“搜索”域传递给客户端。如果未选中该字段或将其留空,OpenVPN 将传递“dhcp-option DOMAIN openvpn”,这会导致 resolv.conf 如下所示,这无济于事:

search openvpn
nameserver 10.10.160.45
nameserver 8.8.8.8

我们的解决方案是将“DNS默认域”设置为简单的点:“。”。

pfSense 中 DNS 默认域字段设置为点的屏幕截图

这导致 resolv.conf 看起来像这样,有效!

search .
nameserver 10.10.160.45
nameserver 8.8.8.8

我现在可以使用短主机名进行 ping 操作。

mac:~  $ ping web2
PING web2 (10.10.160.6) 56(84) bytes of data.
64 bytes from web2 (10.10.160.6): icmp_req=1 ttl=64 time=0.380 ms

这是一个简单的解决方案,因为它不需要重新配置每个客户端。

选项 2:重新配置 Mac OS X

我还没有尝试过,但也许可以重新配置 Apple 的 DNS 解析器以不附加搜索域,我认为它的行为更像 Ubuntu。似乎 Lion 或 Mountain Lion 发生了一些变化,导致MAC OS X DNS 无法按预期工作

选项 3:重新配置 OpenVPN

它出现pfSense 只是将“DNS 默认域”字段传递给 OpenVPN,将其添加为推送配置选项,如下所示:

dhcp-option DOMAIN company.com

如果 DOMAIN 未设置,OpenVPN 会将其设置为“openvpn”。这不是 pfSense 的问题。

在我看来,如果可以配置 OpenVPN(或者我可以学习如何配置它)以不强制设置 DOMAIN,那就太好了。理论上,这将导致搜索域在 resolv.conf 中保持未设置状态,并允许使用短主机名。

相关内容