假设一台机器上有 4 个 eth 端口。那么主机名将解析为哪个 eth 端口的 ipaddress?
请向我提供一些文档来支持您的答案,以便我可以在我的项目中使用它们作为证明。
谢谢
答案1
外部到您在其 DNS 区域中为主机名定义的任何 IN A 条目。
本地到您想要主机名解析的任何内容。要查看解析器的工作原理,请查看 /etc/host.conf。默认的 ubuntu host.conf 是:
order hosts,bind
multi on
第一行是旧式表达方式“检查 /etc/hosts 然后查询 dns”,第二行是新式表达方式,同样的意思。
假设您有 eth0:10.0.0.1、eth1:10.0.0.2、eth2:10.0.0.3、eth4:10.0.0.4 和在 /etc/hostname 中定义的“phony”主机名(谈论 ubuntu,其他发行版可能在这里使用不同的配置方案,但我对此表示怀疑)
您可以拥有以下 /etc/hosts 条目:
10.0.0.1 phony
如果 /etc/hosts 中有类似这样的内容,则 phony 将为本地服务解析为 10.0.0.1:
127.0.0.1 phony
phony 将解析为 127.0.0.1
如果在 /etc/hosts 中没有声明 phony,则解析器将查询 /etc/resolv.conf 中定义的 DNS 缓存,使用“域”和“搜索”设置来构建符合 DNS 的记录(主机)名称。
因此,如果您想控制本地服务的主机名解析,请在 /etc/hosts 中定义它。
快速提示:主机名通常只是一个 DNS 标签(即没有“。”)。您的机器的域名通常在 /etc/domainname 中定义
答案2
您没有提及您使用的是哪个品牌的 Linux。
RedHat(以及 Centos,甚至 Fedora)使用 /etc/sysconfig/network 文件来确定主机的名称。然后,使用主机的名称,它使用常规命名系统(如 /etc/resolv.conf 中所示)确定主机的 IP 地址,这实际上意味着您应该在 /etc/hosts 中有一个 IP 到名称的映射。
IP 地址与 /etc/sysconfig/network-scripts/ethX 中的 NIC 相关联,其中 X 是一个整数(在您的情况下为 0、1、2 和 3)。
看http://www.centos.org/docs/5/html/5.2/Deployment_Guide/s2-sysconfig-network.html和http://www.linuxhomenetworking.com/wiki/index.php/Quick_HOWTO_:通道03:_Linux_网络
...和http://www.centos.org/docs/5/html/Deployment_Guide-en-US/ch-networkscripts.html