Squid MultiWan (salida hacia internet, outbound traffic)



  • Los servicios que corren localmente en pfSense emplean únicamente la tabla de ruteo. Ello significa que saldrán por la WAN primaria a menos que se definan rutas estáticas para su tráfico. Esto es aplicable sólo para los servicios que inician conexiones hacia internet, tales como dnsmasq (DNS Forwarder) y otros paquetes como Squid (servicio proxy).

    Outbound traffic to the Internet

    All services running locally on pfSense will strictly obey the system's routing table. This means they go out the primary WAN unless static routes are defined that match the traffic. This only applies to services which initiate connections to the Internet, such as the DNS forwarder, and several packages such as squid.

    https://doc.pfsense.org/index.php/Multi-WAN_and_Compatibility#Outbound_traffic_to_the_Internet

    No hay, pues, una manera clara de aprovechar el agrupamiento de puertas usando el servicio de proxy Squid.

    Se recomienda montar dos pfSense. Un primero, dedicado a tareas de cortafuegos y proxy con una sola WAN. Y un segundo dedicado a balancear el tráfico saliente mediante agrupamiento de puertas (varias WAN). Recordar que los pfSense pueden ser físicos o virtuales (virtualbox, vmware…)



  • Mediante las opciones random (a partir de squid 3.2) y  tcp_outgoing_address parece que se puede hacer un balanceo saliente sin failover.

    Sería poner en Custom Options algo como…

    Para dos WAN iguales, 192.168.1.2 y 192.168.2.2

    acl mitad_de_todo random 0.5
    tcp_outgoing_address 192.168.1.2 mitad_de_todo
    tcp_outgoing_address 192.168.2.2
    

    Para tres WAN iguales, 192.168.1.2, 192.168.2.2 y 192.168.3.2

    acl un_tercio_de_todo random 0.33
    acl mitad_dos_tercios_restantes random 0.5
    tcp_outgoing_address 192.168.1.2 un_tercio_de_todo
    tcp_outgoing_address 192.168.2.2 mitad_dos_tercios_restantes
    tcp_outgoing_address 192.168.3.2
    

    No tengo la situación para probarlo. Si alguien se anima que publique resultados. ¡Gracias!

    Sacado de https://forum.pfsense.org/index.php?topic=66822.msg374832#msg374832



  • Hola Bellera

    lo probe en la version 2.1.5 con el squid3-dev y el squid no cambia la ruta de salida, adicional a eso con las reglas en las LAN  utulizando agrupacion de GW, estoy probando el 2.2.2  con el squid3, apenas termine las pruebas te cuento

    Saludos



  • @bellera:

    Los servicios salen siempre según la tabla de rutas, https://doc.pfsense.org/index.php/Multi-WAN_and_Compatibility#Outbound_traffic_to_the_Internet

    En cambio, el balanceo saliente (agrupamiento de puertas) emplea el filtro route-to del cortafuegos Packet Filter, http://www.openbsd.org/faq/pf/pools.html#outgoing

    PF + Sense = pfSense
    pfSense 2.2 = FreeBSD 10.1 tuneado
    https://www.freebsd.org/doc/en/books/handbook/firewalls-pf.html

    Hubo un tiempo que había una solución por Floating Rules pero no la probé. Aunque llegara a funcionar parece que con 2.1 y 2.2 no funciona, según lo que encontré por ahí, Google squid multiwan floating rules



  • Hola bellera, he estado probando y parece que la cosa sigue igual, squid manda todo por el gateway por defecto.

    Yo he metido las reglas en la opción Customs ACLS (After_Auth). No sé si esto es correcto.

    Pero he encontrado buscando por internet lo siguiente:

    En servidores con muchas IPs publicas se le puede configurar un proxy para salir con una cualquiera. A continuación veremos como hacerlo con squid:

    Para configurar a que IP escucha las conexiones se especifica mediante http_port:

    http_port 10.10.10.90:6969

    Para indicar que IP use para realizar conexiones hacia el exterior se usa tcp_outgoing_address:

    tcp_outgoing_address 213.21.24.9

    También se puede usar una IP diferente en función del origen del trafico mediante ACLs. Primero se definen los rangos origen:

    acl lusers src 10.1.0.0/16
    acl admins src 10.255.255.0/24

    Y luego se indica según la ACL con que IP va a salir:

    tcp_outgoing_address 213.21.24.7 lusers
    tcp_outgoing_address 213.21.24.8 admins
    tcp_outgoing_address 213.21.24.9

    Debemos tener en cuenta que para los casos que los rangos se solapen va a usar la IP de la primera regla que coincida.

    Si esto funciona por lo menos se podría manda por un gateway ciertas ip's y otras por el otro y aliviar un poco el tráfico.



  • Sí, efectivamente, esa es una solución. Pero pedía que alguien con squid 3.2 como mínimo pruebe con random a fin de hacer balanceo.

    @bellera:

    Mediante las opciones random (a partir de squid 3.2) y  tcp_outgoing_address parece que se puede hacer un balanceo saliente sin failover.

    Sería poner en Custom Options algo como…

    Para dos WAN iguales, 192.168.1.2 y 192.168.2.2

    acl mitad_de_todo random 0.5
    tcp_outgoing_address 192.168.1.2 mitad_de_todo
    tcp_outgoing_address 192.168.2.2
    

    Para tres WAN iguales, 192.168.1.2, 192.168.2.2 y 192.168.3.2

    acl un_tercio_de_todo random 0.33
    acl mitad_dos_tercios_restantes random 0.5
    tcp_outgoing_address 192.168.1.2 un_tercio_de_todo
    tcp_outgoing_address 192.168.2.2 mitad_dos_tercios_restantes
    tcp_outgoing_address 192.168.3.2
    

    No tengo la situación para probarlo. Si alguien se anima que publique resultados. ¡Gracias!

    Sacado de https://forum.pfsense.org/index.php?topic=66822.msg374832#msg374832



  • Yo he probado con squid 3.2 y las ACL's que nos has dado sin resultado, sigue saliendo todo por el gateway por defecto.



  • ¡Lástima!

    Curioso porque hay posts en la sección en inglés del foro donde dicen que les funciona.

    Bueno… seguiremos con lo de siempre...

    @bellera:

    Se recomienda montar dos pfSense. Un primero, dedicado a tareas de cortafuegos y proxy con una sola WAN. Y un segundo dedicado a balancear el tráfico saliente mediante agrupamiento de puertas (varias WAN). Recordar que los pfSense pueden ser físicos o virtuales (virtualbox, vmware…)



  • Bellera

    Pasame los link de la pagina que mencionas porfa



  • @bellera:

    Mediante las opciones random (a partir de squid 3.2) y  tcp_outgoing_address parece que se puede hacer un balanceo saliente sin failover.

    Sacado de https://forum.pfsense.org/index.php?topic=66822.msg374832#msg374832

    También Google squid random tcp_outgoing_address



  • He configurado en custom options de proxy server (AfterAuth) la regla siguiente:

    acl wireless 172.26.1.0/24
    tcp_outgoing_address 192.168.1.2 wireless

    Monitoreando con el visor gráfico de pfSense me doy cuenta que sigue saliendo todo el tráfico por el mismo gateway >:( >:( >:(

    Estoy probando que aun sin poder hacer balanceo con squid y multiwan, por lo menos el tráfico de la red wireless lo encamine por un gateway determinado y no hay forma.

    O yo hago algo mal o esto no funciona correctamente.





  • Cuales fueron las ACls adicionales que colocaste?