![选项 1:重新配置 pfSense](https://linux22.com/image/605285/%E9%80%89%E9%A1%B9%201%EF%BC%9A%E9%87%8D%E6%96%B0%E9%85%8D%E7%BD%AE%20pfSense.png)
我在 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默认域”设置为简单的点:“。”。
这导致 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 中保持未设置状态,并允许使用短主机名。