我有一个LAN服务器运行BIND的Linux服务器寻址本地计算机。 当工作站连接到本地networking(没有Internet访问)时,我可以成功地使用主机名称寻址设备,而不会出现任何问题:
$ host server1.local $ server1.local has address 192.168.2.2 $ host 192.168.2.2 $ 2.2.168.192.in-addr.arpa domain name pointer server1.local.
当同一台工作站启用WiFi(或任何辅助接口)并连接到更大的Internet时,机器不能再通过主机名称寻址本地设备。 推测这是因为它使用错误的networking接口的DNS服务器来解决我的设备。
我的BINDconfiguration如下:
$ORIGIN local. $TTL 604800 @ IN SOA server1 admin ( 2008080101 ;serial 04800 ;refresh 86400 ;retry 2419200 ;expire 604800 ;negative cache TTL ) @ IN NS server1 @ IN A 192.168.2.2 server1 IN A 192.168.2.2 workstation1 IN A 192.168.2.44 workstation2 IN A 192.168.2.45
和反向DNS:
$ORIGIN 2.168.192.in-addr.arpa. $TTL 604800 @ IN SOA server1.local. admin.local. ( 2008080101 ;serial 604800 ;refresh 86400 ;retry 2419200 ;expire 604800 ;negative cache TTL ) NS server1.local. 2 IN PTR server1.local. 44 IN PTR workstation1.local. 45 IN PTR workstation2.local.
我如何强制客户端查看正确的networking接口来查找“.local”命名空间中的主机? 是否有可能从BINDconfiguration结束,因为我可能不完全控制个别客户端?
某些版本的OS X为DNS服务器分配首选项。 这可能会导致您的内部DNS服务器按下优先顺序。
尝试运行这个命令来找出哪个服务器正在使用:
scutil --dns | grep nameserver\[[0-9]*\]
资料来源:
连接到另一个networking后检查/etc/resolv.conf ),并确保它包含search .local 。 你也可以尝试在hosts文件里面添加条目(如果有帮助的话)。