为了安装一些集群产品,我必须设置一个内部 DNS 服务器。我运行的是 CentOS 和 bind9。我的目标是域名“mydomain.local”,运行 DNS 服务器的机器是“master”(172.16.154.10)。集群中的其他机器是“node1”(.11)和“node2(.12)。
DNS 配置似乎没有问题,正如我所见host master
,host node1
或者host node2
从任何机器来看,答案似乎都没有问题。
现在,安装脚本会查询机器名称(以一种我无法控制的方式),并且由于某种原因出现了例如 node1.mydomain.local.localdomain
。请注意,额外的.localdomain
部分恰好是您在诸如/etc/resolv.conf
和类似的文件中找到的默认部分。
确实,一开始,像hostname
或 这样的命令domainname
会分别返回localhost.localdomain
和localdomain
。所以我改变了这些命令(使用这些命令的设置版本例如 domainname mydomain.local
),但无济于事。
知道这些是从哪里来的吗?我应该补充一下,这些机器都是在 VMware Fusion 中运行的虚拟机。
解析.conf:
# Generated by NetworkManager
domain mydomain.local
search mydomain.local
nameserver 172.16.154.10 # <-- my 'master' machine
nameserver 172.16.154.2 # <-- NAT address of my VMware Fusion host
命名的.conf:
//
// named.conf
//
// Provided by Red Hat bind package to configure the ISC BIND named(8) DNS
// server as a caching only nameserver (as a localhost DNS resolver only).
//
// See /usr/share/doc/bind*/sample/ for example named configuration files.
//
options {
// listen-on port 53 { 127.0.0.1; };
// listen-on-v6 port 53 { ::1; };
directory "/var/named";
dump-file "/var/named/data/cache_dump.db";
statistics-file "/var/named/data/named_stats.txt";
memstatistics-file "/var/named/data/named_mem_stats.txt";
// allow-query { localhost; };
allow-query { any; };
recursion yes;
dnssec-enable yes;
dnssec-validation yes;
dnssec-lookaside auto;
/* Path to ISC DLV key */
bindkeys-file "/etc/named.iscdlv.key";
managed-keys-directory "/var/named/dynamic";
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "." IN {
type hint;
file "named.ca";
};
zone "mydomain.local" {
type master;
file "mydomain.local.fwd";
};
// 172.16.154.10
zone "154.16.172.in-addr.arpa" {
type master;
file "mydomain.local.rev";
};
include "/etc/named.rfc1912.zones";
include "/etc/named.root.key";
我的域名.local.rev:
$ORIGIN 154.16.172.in-addr.arpa.
$TTL 3D
@ SOA master.mydomain.local. root.mydomain.local. (12 4h 1h 1w 1h)
@ IN NS master.mydomain.local.
10 IN PTR master.mydomain.local.
11 IN PTR node1.mydomain.local.
12 IN PTR node2.mydomain.local.
mydomain.local.fwd:
$ORIGIN mydomain.local.
$TTL 3D
@ SOA master.mydomain.local. root.mydomain.local. (12 4h 1h 1w 1h)
@ IN NS master.mydomain.local.
master.mydomain.local. IN A 172.16.154.10
node1.mydomain.local. IN A 172.16.154.11
node2.mydomain.local. IN A 172.16.154.12
答案1
我不知道,但你可以使用localdomain
/etc 中的递归 grep 来找到自己。例如,使用 ack-grep:
% sudo ack-grep localdomain /etc
[result here]
您将发现哪个文件仍然包含字符串localdomain
。