Balanceo de Carga y Persistencia.



  • Hola a tod@s,

    ESCENARIO. Les expongo mi escenario:

    Tengo un pfSense con 3 interfaces WAN (WAN1, WAN2, WAN3) y 1 LAN (LAN0).

    En cada una de las WAN tengo conectado un router de un Operador.

    La WAN1 la tengo establecida como Default Gateway.

    Tengo creado un Gateway Group para realizar Load Balancing y Failover.

    RT-GRP1 (WAN2-Tier1 / WAN3-Tier1 / WAN1-Tier2)

    Es decir, hago Balanceo de Carga por WAN2 y WAN3, y si caen, hago Failover hacia la WAN1.

    Sobre la LAN tengo creadas sub-interfaces (LAN0.10, LAN0.20, LAN...) que le dan servicio a distintas VLAN que tengo creadas.

    Sobre la LAN0 tengo establecidas algunas reglas que fuerzo cierto tráfico proveniente de la LAN0 a salir por las WAN1.

    Al final de la lista de reglas de la LAN0 tengo una regla definiendo que el resto del tráfico, no "matcheado" hasta el momento, por ejemplo HTTP, me lo saque por el RT-GRP1.

    POBLEMAS:

    • El tráfico en la lista de reglas de la LAN nunca llega a la regla DROP, evidentemente, porque, como último recurso, siempre "matchea" con la regla del RT-GRP1. Me imagino que tendría que granular más esta regla definiendo tráfico específico hacia el RT-GRP1 y que el resto me llegue a la regla DROP.

    • Desde la LAN0, si un equipo intenta hacer Ping hacia equipos de las distintas VLAN, no llega, salvo que cree una regla en la LAN0 especificando como Gateway el Default Gateway definido en el pfSense en vez del RT-GRP1. Me imagino que, aunque son redes directamente conectadas al pfSense, este lo está forzando a salir por el RT-GRP1.

    • En cuanto a la Persistencia. Cuando el tráfico de un equipo llega al RT-GRP1, lo va alternando entre las 2 WAN con Tier1 definidos en el Gateway Group, es decir, si abro una página, por ejemplo, la de Cual es mi IP, y voy refrescando, me va alternando entre las IP de la WAN2 y la WAN3, vamos, que hace un Round-Robin puro y duro.

    Para una navegación normal, no hay problemas, pero, como sabemos, hay servicios (Banca, Administración Pública, etc...) que, al detectar que el tráfico de una sesión le llega por IP distinta, te tira la sesión, es decir, necesitan Persistencia. ¿No hay forma de establecer está persistencia, que el tráfico de un equipo al llegar al RT-GRP1 y lo tire, por ejemplo, por la WAN3, todo el tráfico lo siga tirando por esa WAN3 hasta que pase un tiempo o en base hasta otro parámetro?.

    ¿Algunas recomendaciones que puedan mejorar esta configuración, basados en el escenario comentado y según su experiencia, o todo pasaría por una definición de la lista reglas más granular?. Claro, el problema estaría en que no se conoce, en muchas ocasiones, las IP de los Sistemas Destino o son un Pool de IP.

    Saludos y gracias,

    Ramsés



  • Buenas tardes,

    ¿Nadie tiene otra idea de cómo solucionar los inconvenientes que me encuentro con esta configuración?

    Gracias y disculpen la insistencia.



  • Yo quiero hacer algo parecido para intentar sumar los anchos de banda o mejorarlo de las 2 wan.

    pudiste avanzar algo?



  • Documentación de Netgate: Using Multiple IPv4 WAN Connections

    Un enlace de youtube de este año: Pfsense Balance de carga IMESAD



  • @ramses-sevilla Saludos, habilita la opción de "Sticky connections" en System ---> Advanced ---> Miscellaneous - Load balancing

    Saludos



  • @adeluna muchas gracias, creo que es lo que andaba buscando...

    Tirando del hilo, a partir de tu respuesta, me he topado con este hilo que explica perfectamente la implementación de Load Balancing con Multi-WAN y hacen referencia a la acivación de la opción "System -> Advanced -> Miscellaneous -> Load Balancing -> Use sticky connections" que tú me has comentado y que en la mayoría de los sitios que hablan de la configuración Multi-WAN no comentan.

    https://turbofuture.com/computers/Dual-Wan-Router-How-To-Build-One-On-a-Budget

    @adeluna, ¿tú tienes implementada esta opción?, ¿alguna recomendación sobre el Timeout de esta opción, si dejarla a 0 o subirla?

    Saludos y gracias de nuevo,

    Ramses



  • @ramses-sevilla Si he activado la función, no he modificado el timeout, hasta el momento no he tenido problema.

    Saludos



  • @adeluna buenos días,

    Tengo montado esto:

    • Creados 3 Gateways (GW01 / GW02 / GW03)
    • Añadidos a un Grupo de Gateways (GRP_GW_01).
    • GW01 / GW02 con la Priority Tier 1 y GW03 con la Priority Tier 2.
    • Creada una regla para que todo el tráfico HTTP / HTTPS lo mande por el Gateway GRP_GW_01.

    Con idea de que el tráfico HTTP / HTTPS se veya balanceando entre los GW01 y GW02, y en caso de caída, que saque el tráfico por GW03.

    Toda la red funcionando correctamente de esta forma, salvo los problemillas con algúnas páginas HTTPS que creo que estaban provocados por la falta de persistencia, que se generaba un Certificado con una IP y se intentaba usar con otra.

    Bien, desde la página "http://cualesmiip.es" voy refrescando y me va cambiando la IP Pública entre GW01 y GW02. Hasta ahí, funcionando correctamente.

    He activado la opción "System -> Advanced -> Miscellaneous -> Load Balancing -> Use sticky connections". Sólo eso, activarla y aplicar los cambios, no he reiniciado ningún Servicio ni he tocado ninguna otra opción, no sé si tendré que hacer algo más a parte de activar la opción y aplicar los cambios.

    Pruebo desde la página "http://cualesmiip.es" voy refrescando y sigue alternando la IP Pública entre GW01 y GW02, cuando supuestamente se debería de mantener en uno de los GW hasta que expiren los timeouts.

    ¿Me falta algo por hacer?

    ¿Sabes cuales son esos Timeouts?, por si le tengo que cambiar el valor del Timeout a la opción "sticky connections".

    Saludos y gracias,

    Ramses


Log in to reply