如何在 Windows 网络中获取 Ubuntu 机器的 DHCP 控制的 DNS 域名?

如何在 Windows 网络中获取 Ubuntu 机器的 DHCP 控制的 DNS 域名?

我一直在绕圈子试图弄清楚这一点。我在 Windows 网络上有许多 Ubuntu 机器(一些是虚拟的)。从 Windows 机器,我可以pingnslookupUbuntu 机器,但不能反过来,除非 Ubuntu 机器指定完全限定的 DNS 名称。但我似乎无法从 Ubuntu 环境中获取限定后缀。

举个例子可以解释一下发生了什么。假设 Windows 机器名为Win1,Ubuntu 机器名为Ubu1,网络后缀为.notlocalatall

On Win1:
$ echo %USERDNSDOMAINNAME%
notlocalatall
$ nslookup Ubu1
[...]
Name:    Ubu1.notlocalatall
Address: 131.132.32.14
$ nslookup Ubu1.notlocalatall
[...]
Name:    Ubu1.notlocalatall
Address: 131.132.32.14
$ ping Ubu1
[works normally, with 0% packet loss]
$ ping Ubu1.notlocalatall
[works normally, with 0% packet loss]

On Ubu1:
$ hostname -d
[blank]
$ nslookup Win1
[...]
** server can't find Win1: SERVFAIL
$ nslookup Win1.notlocalatall
[...]
Name:    Win1.notlocalatall
Address: 131.132.32.167
$ ping Win1
ping: unknown host Win1
$ ping Win1.notlocalatall
[works normally, with 0% packet loss]

出于ssh目的,我可以忍受指定 DNS 后缀,但我需要从某些命令或脚本中获取它。

不,解决方案不是编辑/etc/hosts,因为整个过程在 DHCP 下运行。

Ubu1正在运行 Ubuntu 12.04.5 LTS,并且网络控制面板的选项:IPv4 参数设置为“自动(DHCP)”。

答案1

您需要配置 DHCP 服务器,以便它在 DHCP 客户端上设置域搜索

http://linux.die.net/man/5/dhcp-options

选项域搜索域列表;域搜索选项指定客户端用来查找非完全合格域名的域名“搜索列表”。此选项与历史上用于相同目的的域名选项的区别在于,此选项在线路上以 RFC1035 压缩标签进行编码。例如:

选项域搜索“example.com”、“sales.example.com”、“eng.example.com”;

这样,当您执行 nslookup 时,它将尝试所有指定的域,直到找到有效的响应(或直到循环遍历所有域)。

因此,如果你执行nslookup server1if 将尝试查询 DNS

  1. server1.example.com
  2. 服务器1.sales.example.com
  3. eng.example.com

相关内容