Ubuntu 14.4 LTS 上的 DNS 解析问题

Ubuntu 14.4 LTS 上的 DNS 解析问题

我有一台运行 VirtualBox 的 Windows 8 主机和一台运行 Ubuntu 14.4 LTS 虚拟机的 Windows 8 主机。

在 Ubuntu VM 中,我可以访问和解析每个外部站点的 DNS(例如:www.google.com),并且可以通过名字解析内联网站点,例如:anothermachine。

如果我使用在 Windows 上有效的完整限定域名(例如 anothermachine.mywindowsdomain.local),则该名称无法在 Ubuntu VM 内部解析。

这个盒子是由 vagrant 创建的。

此框正在使用 NetworkManager。

我用它ping来检查主机名是否正在解析。执行pingmybox 有效,执行 ping mybox.mydomain.local 无效。这两种方法都适用于同一网络上的任何其他机器。

解析配置文件

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 10.0.2.3

nsswitch.conf

# /etc/nsswitch.conf
#
# Example configuration of GNU Name Service Switch functionality.
# If you have the `glibc-doc-reference' and `info' packages installed, try:
# `info libc "Name Service Switch"' for information about this file.

passwd:         compat
group:          compat
shadow:         compat

hosts:          files mdns4_minimal [NOTFOUND=return] dns
networks:       files

protocols:      db files
services:       db files
ethers:         db files
rpc:            db files

答案1

在我看来,它是无法解析本地网络中的 Windows 域

.local由 mDNS(Avahi 或 Bonjour)在尝试使用常规 DNS 服务器之前进行处理。mDNS 应该以 的形式解析名称,machinename.local如果没有得到,则返回NOT FOUND

您正在使用的是anothermachine.mywindowsdomain.local.这是应使用 DNS 解析的.local完整限定域名的一部分。mywindowsdomain.local

  • 将名称解析优先级列表更改/etc/nsswitch.conf为:

    hosts:          files dns mdns4_minimal [NOTFOUND=return]
    
  • 否则,将 MS 域名更改为其他域名,例如:mywindowsdomain.loc

参考: 修复 MS 域上 .local 地址的 Linux DNS 问题

相关内容