在CentOS 6.7服务器上从EPEL安装的Nagios 3.5.1监控完全支持IPv6双协议栈的networking。 受监控的主机运行NRPE代理程序,所有这些代理程序都被configuration为作为守护程序(不通过xinetd)与configuration行一起运行
allowed_hosts=bombur.example.com
其中bombur.example.com是Nagios服务器的FQDN,它在DNS中parsing为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版本的主机来说很好,它们缺lessIPv6支持,并且接受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代理configuration中硬编码数字IPv6地址?
看起来,当NRPE启动时,它查找bombur.example.com并在allowed_host条目中使用第一个(本例中为IPv4)地址。
最简单的方法就是使用两个主机名。 例如,使bombur4.example.com和bombur6.example.com分别只parsing为IPv4和IPv6地址。
如果由于某种原因,这不是一个选项,你将不得不明确列出两个IP(并希望使用configurationpipe理系统)。