Nagios Server работает в докер-контейнере. Он обращается для проверки хоста через NRPE, работающий на различных хостах в сети.
Хост докера - 10.10.100.100
Iptables разрешает входящий трафик только на TCP 5666 с 10.10.100.100 для входящих проверок NRPE
Проверка nrpe, поступающая от Nagios, успешно проходит через брандмауэр. Это докажет, что адрес источника пакета действительно 10.10.100.100.
Конфигурация NRPE включает:
server_port=5666
allowed_hosts=10.10.100.100
При выполнении вызова nrpe системный журнал NRPE сообщает:
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 (который является IP-адресом контейнера Docker в сети моста докеров). Если да, то как он сможет пройти через брандмауэр ?!
Это не совсем понятно, и я немного озадачен
Конечно, установив allowed_hosts=172.20.0.2
в конфигурации NRPE обходит проблему, но это не является постоянным и действительно не решает проблему здесь.
Присылает ли Nagios что?думает'является IP-адресом «источника» в пакете NRPE, и по нему NRPE определяет адрес «источника»? Если да, то как это можно изменить? Что мне здесь не хватает? Моя цель - сделать хост Docker в качестве allowed_host, поскольку я знаю, что он статичен и не изменится.
На хосте с несколькими адресами вы можете выбрать, какой из них отправлять check_nrpe
запросы от через -b
вариант.
В твоем случае, -b 10.10.100.100
В остальном он просто следует правилам маршрутизации.