Obtuveunoservidor web condos nicsen subredes individuales192.168.188.xy192.168.198.x. Este servidor web está conectado a 2 enrutadores diferentes (192.168.188.1 y 192.168.198.1) y a través de un puerto 80 directamente a Internet (cada enrutador también tiene una dirección IP pública propia).
(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 -------+
Me gustaría reaccionar el servidor en el puerto 80 paraambossubredes. Desafortunadamente, responde en la configuración predeterminada solo al enrutador que está configurado como puerta de enlace predeterminada, lo cual es bastante lógico. Pero necesito actuar para enviar los paquetes de regreso a la interfaz, de donde provienen los paquetes. ¿Cómo lograr esto? No hay ninguna posibilidad de configuración adicional por encima del reenvío de puertos en los enrutadores, por ejemplo, para nat, etc., se debe hacer cualquier cosa en el servidor web, que es Debian Stretch.
Tenga en cuenta que solo me enfrento a problemas de red una vez cada 10 años, así que hágalo simple. :)
Respuesta1
Si su servidor web está configurado correctamente para escuchar 0.0.0.0:80, a través del cual puede verificar, ss -l
entonces su problema no es el problema de configuración del servidor web, sino el problema de enrutamiento. Sólo se puede detectar una ruta a la vez, incluso si tienes dos. La única forma de lograr lo que desea es agregar una segunda ruta predeterminada y utilizar el enrutamiento de política de origen. Si el servidor es Linux se puede hacer mediante iptables. Intentaresteoeste.
Respuesta2
La solución requiere una configuración compleja del enrutamiento.
El servidor web debe escuchar ambas direcciones (
192.168.188.11
y192.168.198.11
) o la0.0.0.0
dirección, es decirall addresses
. Compruébalo conss -tlnp sport == :80
el comando.Cree una tabla de enrutamiento separada para cadapiernas:
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 las reglas de ruta para enrutar las respuestas a través de la misma interfaz, a través de la cual se ha recibido la solicitud:
ip rule add from 192.168.188.11 lookup 1 pref 1000
ip rule add from 192.168.198.11 lookup 2 pref 2000
- Solución de problemas:
- Utilice
tcpdump -ni <iface> 'tcp port 80'
para olfatear el tráfico. Al menos deberías ver las solicitudes http desde fuera. - Consulta la ruta parapeticionescon
ip route get <dst> from <src> iif <iface>
. Debería mostrar lalocal
ruta. Si muestra algo más, verifique el comandorp_filter
withip netconf show dev <iface>
. Debería estaroff
o en elloose
modo. - Verifique la ruta real pararespuestascon
ip route get <dst> from <src-address>
, donde la dirección de destino es la dirección de origen delpeticioneshas visto en latcpdump
salida. - Verifique las reglas del firewall con el comando
iptables-save -c
. La configuraciónno requiereAlgo adicionalnat¡normas!