Docker中的Nagios – NRPE isue的源IP SNAT

Nagios服务器在Docker容器中运行。 它正在通过在networking中的各种主机上运行的NRPE来进行主机检查。

docker主机是10.10.100.100

Iptables只允许来自10.10.100.100的tcp 5666入站,用于入站NRPE检查

来自Nagios的nrpe检查成功通过了防火墙。 这将certificate数据包源地址确实是10.10.100.100

NRPEconfiguration有:

server_port=5666 allowed_hosts=10.10.100.100 

在进行nrpe调用时,NRPE syslog指出:

 Oct 20 18:42:32 dockerz01 nrpe[13382]: Allowing connections from: 10.10.100.100 Oct 20 18:42:59 dockerz01 nrpe[13411]: Host 172.20.0.2 is not allowed to talk to us! 

这意味着发送给NRPE的数据包将具有源地址172.20.0.2(这是Docker桥接networking内的Docker容器IP)。 如果是这样,它将如何通过防火墙?

这不太合理,我有点难过

当然,通过在NRPEconfigurationallowed_hosts=172.20.0.2中设置allowed_hosts=172.20.0.2可以解决这个问题,但这并不是allowed_hosts=172.20.0.2的,并不能真正解决这个问题。

Nagios是否发送它认为是NRPE数据包中的“源”IP,这就是NRPE判断“源”地址的来源? 如果是这样,那怎么能改变呢? 我在这里错过了什么? 我的目标是把Docker主机作为allowed_host,因为我知道这是静态的,不会改变。

在具有多个地址的主机上,可以通过-b选项select从哪个主机发送check_nrpe请求。

在你的情况下, -b 10.10.100.100

除此之外,它只是遵循路由规则。