У меня есть сервер с Red Hat 7.1, который имеет два IP-адреса: публичный, доступный в Интернете на интерфейсе bond1, и частный в корпоративной локальной сети на интерфейсе bond0.
У меня есть Apache 2.4, предлагающий веб-страницы в Интернете, и обратный прокси-сервер, настроенный на нем для пересылки некоторых запросов на сервер Tomcat, работающий на той же машине. На этом сервере Tomcat запущены два приложения, и одно из них принимает соединения только с 127.0.0.1, и эти запросы обычно поступают от другого приложения Tomcat.
Проблема в том, что запросы, которые одно приложение tomcat делает другим, получают частный IP-адрес (тот, что на bond0) и, таким образом, отклоняются tomcat (код ошибки 403). Если я отключаю firewalld с помощью systemctl stop firewalld, все работает так, как и ожидалось.
Я знаю, что адрес преобразуется из 127.0.0.1 в 172.30.xx.xx, потому что я вижу это в логах Tomcat.
Теперь я не могу ничего изменить на стороне tomcat, я просто хочу узнать, кто и зачем переводит этот адрес, и исправить это.
Спасибо.
решение1
Для тех из вас, кто сюда приходит, это был маскарад.
firewall-cmd --zone=public --remove-masquerade
и это работает.
Зона public, поскольку конфигурация, описанная в вопросе, не была активной, и bond0 и both1 были добавлены в зону public