NRPE守护进程将:: 1转换为52.0.0.0/14子网

我在debugging模式下configuration了NRPE守护进程( /usr/local/nagios/etc/nrpe.cfg ),因为有一些启动问题,我意识到在allowed_hosts指令中默认发现::1

 allowed_hosts=127.0.0.1,::1,10.252.1.134 

神奇地变成52.0.0.0/14根据日志:

 Sep 6 08:56:44 myhost nrpe[30830]: Warning: Cannot open log file '/usr/local/nagios/var/nrpe.log' for writing Sep 6 08:56:44 myhost nrpe[30830]: parse_allowed_hosts: parsing the allowed host string >127.0.0.1,::1,10.252.1.134< to add to ACL list Sep 6 08:56:44 myhost nrpe[30830]: add_ipv4_to_acl: checking ip-address >127.0.0.1< Sep 6 08:56:44 myhost nrpe[30830]: add_ipv4_to_acl: ip-address >127.0.0.1< correct, adding. Sep 6 08:56:44 myhost nrpe[30830]: add_ipv4_to_acl: checking ip-address >10.252.1.134< Sep 6 08:56:44 myhost nrpe[30830]: add_ipv4_to_acl: ip-address >10.252.1.134< correct, adding. Sep 6 08:56:44 myhost nrpe[30830]: Showing ACL lists for both IP and DOMAIN acl's: Sep 6 08:56:44 myhost nrpe[30830]: IP ACL: 127.0.0.1/32 16777343 Sep 6 08:56:44 myhost nrpe[30830]: IP ACL: 52.0.0.0/14 52 Sep 6 08:56:44 myhost nrpe[30830]: IP ACL: 10.252.1.134/32 4269145354 Sep 6 08:56:44 myhost nrpe[30830]: INFO: SSL/TLS initialized. All network traffic will be encrypted. Sep 6 08:56:44 myhost nrpe[30830]: Starting up daemon 

有什么解释吗?

NRPE版本是3.2.0

快速浏览源代码( acl.c )后,我发现两个问题:

  1. add_ipv4_to_acl函数不同, add_ipv6_to_acl很难在debugging模式下显示消息,因为缺less对logit()函数的调用。 当IPv6地址被接受时, add_ipv6_to_acl函数没有调用logit() ,类似如下:

     if(debug == TRUE) logit(LOG_INFO, "add_ipv4_to_acl: ip-address >%s< correct, adding.", ipv4); 

    注意 :显示的这些行是add_ipv4_to_acl函数中的最后add_ipv4_to_acl

    这就是为什么没有行报告>::1< correct, adding. 在logindebugging模式下。

  2. 显示IP地址列表的函数show_acl_lists()使用inet_ntoa()调用。 但是,根据手册页面 , 该function处理IPv4地址,而不是IPv6地址

     while (ip_acl_curr != NULL) { logit(LOG_INFO, " IP ACL: %s/%u %u\n", inet_ntoa(ip_acl_curr->addr), prefix_from_mask(ip_acl_curr->mask), ip_acl_curr->addr.s_addr); ip_acl_curr = ip_acl_curr->next; } 

因此,我猜这里的问题是当使用IPv6地址结构而不是IPv4地址结构时, 52.0.0.0/14inet_ntoa()函数的输出。

但是我还没有比较两种结构。

更新1

在其他节点安装NRPE并在allowed_hosts指令中有4个IP寻址之后,显示为::1的ACL列表条目不同 – 现在为0.0.0.0/20

 Showing ACL lists for both IP and DOMAIN acl's: IP ACL: 127.0.0.1/32 16777343 IP ACL: 0.0.0.0/20 0 IP ACL: 10.252.1.134/32 4269145354 IP ACL: 10.252.1.135/32 896662794