完全启用 IPv6 双栈的网络由从 CentOS 6.7 服务器上的 EPEL 安装的 Nagios 3.5.1 监控。受监控的主机运行 NRPE 代理,所有这些都被配置为使用配置行作为守护进程运行(不是通过 xinetd)
allowed_hosts=bombur.example.com
Nagios 服务器的 FQDN在哪里,bombur.example.com
它在 DNS 中解析为 IPv4 和 IPv6 地址:
% host bombur
bombur.example.com has address 192.0.2.28
bombur.example.com has IPv6 address 2001:db8:f00:ba8::28
这适用于在 2.15 之前运行 NRPE 版本且缺乏 IPv6 支持且仅接受 IPv4 连接的主机。但是在支持 IPv6 的 NRPE 2.15 主机上,来自 Nagios 服务器的连接被拒绝并显示日志消息:
nrpe[21665]: Host 2001:db8:f00:ba8::28 is not allowed to talk to us!
显然,该allowed_hosts=<hostname>
指令只允许给定主机的 IPv4 地址,而不是其 IPv6 地址。
那个扣法正确吗?有没有办法解决这种行为,最好不要在所有 NRPE 代理配置中硬编码数字 IPv6 地址?
似乎当 NRPE 启动时,它会查找
bombur.example.com
并使用第一个(在本例中为 IPv4)地址作为allowed_host
条目。解决此问题的最简单方法是仅使用两个主机名。例如,制作分别只解析为 IPv4 和 IPv6 地址的 bombur4.example.com 和 bombur6.example.com。
如果由于某种原因这不是一个选项,您必须明确列出两个 IP(并希望使用配置管理系统)。