Redirigir parte del tráfico específico a una puerta de enlace diferente

Redirigir parte del tráfico específico a una puerta de enlace diferente

Tengo dos puertas de enlace con diferentes ISP, uno de ellos definido como predeterminado para el usuario de LAN y el otro ISP utilizado como predeterminado para los servidores y el tráfico VPN. Esto se hace utilizando tablas de enrutamiento regulares configuradas con DHCP.

Ahora quiero que se instale Google Drive y algún otro tráfico de software en las computadoras portátiles de los usuarios de LAN que utilizan mucha carga para usar siempre el otro ISP que no está definido como su gw predeterminado. ¿Cómo puedo lograr eso?

Mis pensamientos iniciales son usar IPTABLES o calamares.

He estado intentando con esto

iptables -t nat -A PREROUTING -d GOOGLE_IP -j DNAT --to-destination MY_SECOND_ISP
iptables -t nat -A POSTROUTING -s MY_SECOND_ISP -j SNAT --to-source GOOGLE_IP
iptables -t nat -A POSTROUTING -s MY_SECOND_ISP  -j MASQUERADE

Pero no funciona. Cuando lo pruebo, el tráfico va al gw predeterminado.

¿Alguna idea de cómo hacerlo usando iptables,shorewall o squid?

Respuesta1

Suponiendo que la IP de la LAN predeterminada del GW (GW1) de la LAN es 192.168.1.1 y la IP de la LAN predeterminada del GW (GW2) del servidor es 192.168.1.2, es decir, la LAN ve ambos enrutadores en el mismo segmento.

Puede configurar una ruta estática en GW1 que dirija el tráfico cuyo destino es GOOGLE_IP a la dirección IP LAN de GW2 del siguiente salto.

Si el GW1 es Cisco: ruta ip GOOGLE_IP 255.255.255.255 GW2_LAN_IP

Si el GW1 es Linux: ruta ip agregue GOOGLE_IP/32 gw GW2_LAN_IP

De esta manera, cuando cualquier host de la LAN envíe tráfico a GOOGLE_IP, el tráfico irá a GW1.

Luego, la ruta estática en GW1 reenviará el tráfico a GW2.

Luego, GW2 reenviará el tráfico fuera de su interfaz WAN.

El tráfico de retorno proveniente de Internet a GW2 se reenviará a la LAN y llegará a los hosts.

De esta manera, crea la ruta una vez en GW1, para que funcione para todos los hosts LAN.

Respuesta2

Dado que servicios como Google Drive están en la nube y sus IP pueden cambiar en cualquier momento, creo que su enfoque, tarde o temprano, dejará de funcionar.

Existe otro método para diferenciar el tráfico de las aplicaciones que desea realizando el marcado DSCP en el nivel del sistema operativo invitado.

Las marcas DSCP se "adjuntarán" a los paquetes para que pueda hacer coincidir esos paquetes con iptables en su enrutador y enrutarlos a través de la VPN o cualquier otra puerta de enlace que desee.

De esa manera estás diciendo que, por ejemplo, googledrive.exe (o cualquier aplicación que desees) siempre se enrutará a través de la VPN sin importar dónde intente conectarse.

Aquí hay algunas instrucciones sobre cómo configurar marcas DSCP personalizadas usando Windows https://support.timso.com/index.php?/Knowledgebase/Article/View/24/3/windows-7-and-implementing-qos

Puede hacer coincidir las marcas dscp con la opción de coincidencia --dscp de iptables.
http://www.iptables.info/en/iptables-matches.html#DSCPMATCH

Por supuesto, todo lo anterior no responde a su pregunta original. Aún necesitará hacer que funcione el enrutamiento de políticas.

información relacionada