5.1.1. 主机名解析
主机名解析,目前也是由 NSS (名字服务转换 Name Service Switch) 机制来支持。这个解析的流程如下。
“
/etc/nsswitch.conf
“ 文件里的 “hosts: files dns
“ 这段规定主机名解析顺序。 (代替 “/etc/host.conf
“ 文件里的”order
“ 这段原有的功能。)files
方式首先被调用。如果主机名在 “/etc/hosts
“ 文件里面发现,则返回所有有效地址并退出。 ( “/etc/host.conf
“ 文件包含 “multi on
“.)dns
方式被调用。如果主机名通过查询 “/etc/resolv.conf
“ 文件里面写的 互联网域名系统 Domain Name System (DNS) 来找到,则返回所有有效地址并退出。
例如, “/etc/hosts
“ 看起来如下。
127.0.0.1 localhost
127.0.1.1 <host_name>
# The following lines are desirable for IPv6 capable hosts
::1 ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts
在这个例子的第二行 127.0.1.1
IP 地址也许不会在其它类 Unix 系统发现。Debian Installer 为没有永久 IP 地址的系统创建这个条目,作为某些软件(如 GNOME)的一个变通方法,见文档 bug #719621.
<host_name> 匹配在”/etc/hostname
“里定义的主机名。
对于有永久 IP 地址的系统,这个永久 IP 地址应当代替这里的 127.0.1.1
。
对于有永久 IP 地址和有 域名系统 Domain Name System (DNS)提供完全资格域名 fully qualified domain name (FQDN) 的系统,规范名 <host_name>.<domain_name> 应当被用来代替 <host_name>.
如果 resolvconf
软件包没有安装,”/etc/resolv.conf
“ 是一个静态文件。如果安装了,它是一个符号链接。此外,它包含有解析策略的初始化信息。如 DNS 是 IP=”192.168.11.1
“,则包含如下。
nameserver 192.168.11.1
resolvconf
软件包使这个 “/etc/resolv.conf
“ 文件成为一个符号链接,并通过钩子脚本自动管理其内容。
对于典型 adhoc 局域网环境下的 PC 工作站,除了基本的 files
和 dns
方式之外,主机名还能够通过组播 DNS (mDNS, 零配置网络 Zeroconf)进行解析。
Avahi) 提供 Debian 下的组播 DNS 发现框架。
libnss-mdns
插件包提供 mDNS 的主机名解析,GNU C 库 (glibc)的 GNU 名字服务转换 Name Service Switch (NSS) 功能支持 mDNS。“
/etc/nsswitch.conf
“ 文件应当有像 “hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4
“ 这样的一段.“.local”结尾的主机名,使用 pseudo-top-level domain (TLD) 来解析.
mDNS IPv4 本地连接组播地址 “
224.0.0.251
“ 或它相应的 IPv6 地址 “FF02::FB
“ 被用来作为 “.local
“ 结尾名字的 DNS 查询。
较老的 Windows 系统安装 winbind
软件包来提供旧的 NETBios over TCP/IP 主机名解析。为启用这个功能,”/etc/nsswitch.conf
“ 文件应当有这样的一段: “hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4 wins
“。 (现代 Windows 系统通常使用 dns
方式来进行主机名解析。)
注意 | |
---|---|
域名系统 Domain Name System 中的扩展通用顶级域名 expansion of generic Top-Level Domains (gTLD) 还在进行中。在局域网内,选择一个域名时,请提防名字冲突 name collision。 |