FireWalld и локальный адрес трансляции

660
fer.marino

У меня есть сервер с 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.

Теперь я ничего не могу изменить на стороне кота, я просто хочу знать, кто и почему переводит этот адрес, и исправить это.

Спасибо.

1

1 ответ на вопрос

1
fer.marino

for those of you who comes here, it was the masquerading.

firewall-cmd --zone=public --remove-masquerade 

and it works.

Zone public because the configuration described in the question wasn't the active one, and both bond0 and both1 were added to zone public