我正在尝试使用子网 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/named/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.
如果您有任何想法,将不胜感激!
这完全是关于 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 域的重要性,我只是将其视为内部网络的一个很好的约定。