我在Mac OS X 10.8.2(Mountain Lion)上使用Tunnelblick 3.3beta21b连接到pfSense / OpenVPN虚拟专用networking。 当连接到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添加了“search”行; 当我从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
我如何configurationMac OS X或Pfsense / OpenVPN或Tunnelblick,以便我可以使用我的Mac上的短主机名?
在pfSense中configurationOpenVPN时,“DNS默认域”字段作为“search”域传递给客户端。 如果这个字段没有被选中或者留空,OpenVPN会传递“dhcp-option DOMAIN openvpn”,这会导致resolv.conf看起来像这样,这没有帮助:
search openvpn nameserver 10.10.160.45 nameserver 8.8.8.8
我们的解决scheme是将“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
这是一个简单的解决scheme,因为它不需要重新configuration每个客户端。
我还没有尝试过,但可能会重新configuration苹果的DNSparsing器,以避免追加search域 ,导致我认为它更像Ubuntu。 看来Lion或Mountain Lion发生了一些变化,导致MAC OS X DNS无法正常工作 。
看起来pfSense只是简单地将“DNS默认域”字段传递给OpenVPN , OpenVPN将其添加为这样的推送configuration选项:
dhcp-option DOMAIN company.com
如果未设置DOMAIN,则OpenVPN会将其设置为“openvpn”。 这不是一个pfSense问题。
国际海事组织,这将是很好,如果OpenVPN可以configuration(或者我可以学习如何configuration它)不强制DOMAIN设置。 理论上,这会导致search域在resolv.conf中保持不变,并允许使用短主机名。