我正在尝试使用子网 10 上的私有网络设置集群。一台机器有两个接口,一个用于连接到常规网络,另一个用于连接到子网 10 上的所有节点。这台 CentOS 6 机器(我们称之为“zaza.domain.com”)运行 DHCP、DNS,目前这两者都由 Cobbler 管理,这可能是问题的一部分,也可能不是(尽管禁用它并手动执行所有操作仍然会给我带来问题)。
如果我通过 SSH 进入 zaza,然后尝试从 zaza 通过 SSH 进入 node1,我会收到如下警告消息:
[root@zaza ~]# ssh node1
reverse mapping checking getaddrinfo for node1.cluster.local [10.69.0.1] failed - POSSIBLE BREAK-IN ATTEMPT!
我仍然收到密码提示并且仍然可以登录。
我知道sshd 警告,“可能存在入侵尝试!”,表示反向 DNS 失败和/var/log/secure 中出现“可能存在入侵尝试!”——这是什么意思?经过大量其他搜索,发现导致此错误的原因通常是未设置 PTR 记录。但是,它已设置 - 请考虑以下内容:
[root@zaza ~]# nslookup node1.cluster.local
Server: 10.69.0.69
Address: 10.69.0.69#53
Name: node1.cluster.local
Address: 10.69.0.1
[root@zaza ~]# nslookup 10.69.0.1
Server: 10.69.0.69
Address: 10.69.0.69#53
1.0.69.10.in-addr.arpa name = node1.cluster.local.
10.69.0.69 IP地址是zaza的第二个接口。
如果我尝试使用 dig 等其他工具来实际查看 PTR 记录,我会得到以下输出:
[root@zaza ~]# dig ptr 1.0.69.10.in-addr.arpa
; <<>> DiG 9.8.2rc1-RedHat-9.8.2-0.47.rc1.el6_8.4 <<>> ptr 69.0.69.10.in-addr.arpa
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 29499
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 1
;; QUESTION SECTION:
;1.0.69.10.in-addr.arpa. IN PTR
;; ANSWER SECTION:
1.0.69.10.in-addr.arpa. 300 IN PTR node1.cluster.local.
;; AUTHORITY SECTION:
10.in-addr.arpa. 300 IN NS zaza.cluster.local.
;; ADDITIONAL SECTION: zaza.cluster.local. 300 IN A 10.69.0.69
;; Query time: 0 msec
;; SERVER: 10.69.0.69#53(10.69.0.69)
;; WHEN: Wed Mar 1 17:05:44 2017
;; MSG SIZE rcvd: 110
在我看来,PTR 记录已设置,所以我不知道为什么当我尝试连接到其中一个节点机器时,SSH 会发出嘶嘶声。为了提供所有信息,以下是相关的配置文件,经过剧透以使内容看起来更易读...
/etc/named.conf
[root@zaza ~]# cat /etc/named.conf
options {
listen-on port 53 { any; };
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 { any; }; # was localhost
recursion yes;
# setup DNS forwarding
forwarders {1.2.3.4;}; # Real IP goes in here
};
logging {
channel default_debug {
file "data/named.run";
severity dynamic;
};
};
zone "cluster.local." {
type master;
file "cluster.local";
# these two lines allow DNS querying
allow-update { any; };
notify no;
};
zone "10.in-addr.arpa." {
type master;
file "10";
# these two lines allow DNS querying
allow-update { any; };
notify no;
};
/var/named/cluster.local
[root@zaza ~]# cat /var/named/cluster.local
$TTL 300
@ IN SOA zaza.cluster.local. nobody.example.com. (
2017030100 ; Serial
600 ; Refresh
1800 ; Retry
604800 ; Expire
300 ; TTL
)
IN NS zaza.cluster.local.
zaza IN A 10.69.0.69
node1 IN A 10.69.0.1;
node2 IN A 10.69.0.2;
/var/命名/10
[root@zaza ~]# cat /var/named/10
$TTL 300
@ IN SOA zaza.cluster.local. root.zaza.cluster.local. (
2017030100 ; Serial
600 ; Refresh
1800 ; Retry
604800 ; Expire
300 ; TTL
)
IN NS zaza.cluster.local.
69.0.69 IN PTR zaza.cluster.local.
1.0.69 IN PTR node1.cluster.local.
2.0.69 IN PTR node2.cluster.local.
如果您有任何想法,我们将非常感激!
答案1
这一切都与 Avahi 和 .local 域名有关,与 PTR 记录无关。
我又搜索了一番,发现主机解析成功了,但 FQDN 解析失败了。这最终让我https://superuser.com/questions/704785/ping-cant-resolve-hostname-but-nslookup-can我从中链接到http://www.lowlevelmanager.com/2011/09/fix-linux-dns-issues-with-local.html这为我解决了所有问题。
最终的问题在于,/etc/nsswitch.conf
有一行写着:
hosts: files mdns4_minimal [NOTFOUND=return] dns
通过将其更改为:
hosts: files dns
问题消失了,我不再收到有关可能的入侵尝试的错误。
我测试的另一个解决方案是简单地重命名域,因为此行为特定于 .local 域。通过将 cluster.local 重命名为 cluster.bob,错误消息也消失了。
另一个解决方案是将 Avahi 从 .local 移至 .alocal 之类的名称,这样多播 DNS 就不会应用于 .local 域,并且默认的 nsswitch 配置似乎可以正常工作。我认为删除该[NOTFOUND=return]
参数也可以,因为如果未找到 .local 主机,它将阻止多播 DNS 结束查找,但这可能是一个坏主意。
归根结底,这是一个边缘情况,因为我没有完全理解 .local 域的意义,我只是将其视为内部网络的一个良好约定。