Tenho um servidor com red hat 7.1 que possui dois endereços IP, um público disponível na internet na interface bond1 e um privado na lan corporativa na interface bond0.
Eu tenho o Apache 2.4 oferecendo páginas da web na internet e um proxy reverso configurado para encaminhar algumas solicitações para um servidor Tomcat rodando na mesma máquina. Este servidor Tomcat possui dois aplicativos em execução e um deles aceita conexões apenas de 127.0.0.1, e essas solicitações geralmente vêm do outro aplicativo Tomcat.
O problema é que as solicitações que um aplicativo Tomcat faz aos outros obtêm o endereço IP privado (aquele em bond0) e, portanto, são rejeitadas pelo Tomcat (código de erro 403). Se eu desabilitar o firewalld com systemctl stop firewalld, tudo funcionará conforme o esperado.
Eu sei que o endereço é traduzido de 127.0.0.1 para 172.30.xx.xx porque vejo nos logs do Tomcat.
Agora não posso mudar nada do lado do tomcat, só quero saber quem e por que está traduzindo esse endereço e consertar.
Obrigado.
Responder1
para vocês que vêm aqui, foi o disfarce.
firewall-cmd --zone=public --remove-masquerade
e funciona.
Zona pública porque a configuração descrita na pergunta não era a ativa e ambos bond0 e ambos1 foram adicionados à zona pública