Eu obtiveumservidor web comdois nicsem sub-redes individuais192.168.188.xe192.168.198.x. Este servidor web está conectado a 2 roteadores diferentes (192.168.188.1 e 192.168.198.1) e via Portforwarding uma porta 80 diretamente à internet (cada roteador também possui um endereço IP público próprio).
(external ip) Portforwarding:80 (external ip)
---[ROUTER]---- ---[ROUTER]----
192.168.188.1 Router internal IP 192.168.198.1
| |
| |
| |
| |
+------- 192.168.188.11:80 [WEBSERVER] 192.168.198.11:80 -------+
Eu gostaria de reagir ao servidor na porta 80 porambossub-redes. Infelizmente, ele responde na configuração padrão apenas ao roteador que está definido como gateway padrão, o que é bastante lógico. Mas preciso agir para enviar os pacotes de volta para a interface de onde os pacotes vieram. Como conseguir isso? Não há nenhuma possibilidade de configuração adicional acima do encaminhamento de porta nos roteadores, por exemplo, para nat etc., qualquer coisa precisa ser feita no servidor web, que é o trecho debian.
Lembre-se de que só enfrento problemas de rede uma vez a cada 10 anos, portanto, simplifique. :)
Responder1
Se o seu servidor web estiver configurado corretamente para ouvir 0.0.0.0:80, que você pode verificar, ss -l
então o seu problema não é o problema de configuração do servidor web, mas o problema de roteamento. Apenas uma rota pode ser detectada por vez, mesmo se você tiver duas. A única maneira de conseguir o que deseja é adicionar uma segunda rota padrão e usar o roteamento da política de origem. Se o servidor for Linux isso pode ser feito via iptables. Tentaresseouesse.
Responder2
A solução requer uma configuração complexa de roteamento.
O servidor web deve escutar os endereços (
192.168.188.11
e192.168.198.11
) ou o0.0.0.0
endereço, o que significaall addresses
. Verifique comss -tlnp sport == :80
o comando.Crie uma tabela de roteamento separada para cadapernas:
ip route add 192.168.188.0/24 dev <iface1> table 1
ip route add 0/0 via 192.168.118.1 dev <iface1> table 1
ip route add 192.168.198.0/24 dev <iface2> table 2
ip route add 0/0 via 192.168.198.1 dev <iface2> table 2
- Configure as regras de roteamento para rotear as respostas pela mesma interface, através da qual a solicitação foi recebida:
ip rule add from 192.168.188.11 lookup 1 pref 1000
ip rule add from 192.168.198.11 lookup 2 pref 2000
- Solução de problemas:
- Use o
tcpdump -ni <iface> 'tcp port 80'
para farejar o tráfego. Pelo menos você deve ver as solicitações http de fora. - Confira a rota parasolicitações decom
ip route get <dst> from <src> iif <iface>
. Deve mostrar alocal
rota. Se mostrar outra coisa, verifique o comandorp_filter
withip netconf show dev <iface>
. Deveria estaroff
ou noloose
modo. - Verifique a rota real pararespostaswith
ip route get <dst> from <src-address>
, onde o endereço de destino é o endereço de origem dosolicitações devocê viu natcpdump
saída. - Verifique as regras do firewall com o comando
iptables-save -c
. A configuraçãonão requerqualquer adicionalnaturalregras!