• Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Search
  • Register
  • Login
Netgate Discussion Forum
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Search
  • Register
  • Login

Improve Custom refresh pattern

Cache/Proxy
27
111
46.0k
Loading More Posts
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • D
    doktornotor Banned
    last edited by Feb 16, 2017, 12:32 PM

    I would strongly urge everyone to ditch the pointless idea of trying to cache dynamic sites. It doesn't work in like 99% of cases, plus breaks Squid. And please ditch ALL those antivirus patterns. None of them works. The AVs are streaming updates with new sigs to clients every couple of minutes these days. There's nothing to cache.

    1 Reply Last reply Reply Quote 0
    • S
      saluto
      last edited by Feb 16, 2017, 2:26 PM

      So why use squid? Because most sites are changing to https.

      Various web content are in videos, overloading the network.

      1 Reply Last reply Reply Quote 0
      • K
        KOM
        last edited by Feb 16, 2017, 2:45 PM

        So why use squid?

        I use it as a filtering platform for squidguard.

        Various web content are in videos

        Caching videos is pointless unless everyone is watching the same ones.

        I have seen commercial products that take squid and heavily modify it with all kinds of custom stuff, and they claim they can cache almost everything.

        1 Reply Last reply Reply Quote 0
        • V
          Valeriy
          last edited by Feb 16, 2017, 2:55 PM

          I use squid for caching, it saves bandwidth for Microsoft Updates and Apple updates + SquidGuard as Ad+Malware+porn filter

          1 Reply Last reply Reply Quote 0
          • K
            KOM
            last edited by Feb 16, 2017, 3:18 PM

            it saves bandwidth for Microsoft Updates

            I have yet to see a working config with squid and WU.  Most people give up and use WSUS.

            1 Reply Last reply Reply Quote 0
            • V
              Valeriy
              last edited by Feb 16, 2017, 3:20 PM

              I cannt use WSUS, PCs are not under my control.

              1 Reply Last reply Reply Quote 0
              • K
                KOM
                last edited by Feb 16, 2017, 3:53 PM

                If you have a working squid config that caches WU for Win7-10 clients, I'd love to see it.

                J 1 Reply Last reply Aug 14, 2022, 6:46 PM Reply Quote 0
                • D
                  danbak365
                  last edited by Feb 16, 2017, 8:33 PM

                  These refresh pattern made a big difference on my WI-fi network.
                  Since I started using it my clients have been very happy with the speed.
                  Even though, now it seems like they need some update, I still appreciate this well done job.
                  Thanks

                  1 Reply Last reply Reply Quote 0
                  • A
                    aGeekhere
                    last edited by Feb 16, 2017, 9:52 PM

                    You can use squidlite to check if the refresh pattens are improving the hit rate. I have found that the comodo antivirus updates were caching ( cannot retest at the moment) and so did window updates. The best thing is to test if the hit ratio is improving.

                    Never Fear, A Geek is Here!

                    1 Reply Last reply Reply Quote 0
                    • S
                      saluto
                      last edited by Feb 20, 2017, 9:02 PM Feb 20, 2017, 4:49 PM

                      How did he do that?
                      https://www.youtube.com/watch?v=18QSf6jb1eM

                      1 Reply Last reply Reply Quote 0
                      • V
                        Valeriy
                        last edited by Feb 21, 2017, 3:41 PM

                        @KOM

                        Here are changes made to squid.conf (or through GUI on pfsense in corresponding custom fields)
                        that allows caching of Windows Update for me:

                        
                        acl Windows_Update dstdomain windowsupdate.microsoft.com
                        acl Windows_Update dstdomain .update.microsoft.com
                        acl Windows_Update dstdomain download.windowsupdate.com
                        acl Windows_Update dstdomain www.download.windowsupdate.com
                        acl Windows_Update dstdomain au.download.windowsupdate.com
                        acl Windows_Update dstdomain bg.v4.pr.dl.ws.microsoft.com
                        range_offset_limit 200 MB Windows_Update
                        quick_abort_min 1000 KB
                        quick_abort_max 5000 KB
                        quick_abort_pct 80
                        request_body_max_size 0 KB
                        
                        refresh_pattern -i .*windowsupdate.com/.*\.(cab|exe)                     259200 100% 259200 ignore-no-store ignore-reload reload-into-ims
                        refresh_pattern -i .*update.microsoft.com/.*\.(cab|exe|dll|msi|psf)                  259200 100% 259200 ignore-no-store ignore-reload reload-into-ims
                        refresh_pattern -i windows.com/.*\.(cab|exe|ms[i|u|f]|[ap]sf|wm[v|a]|dat|zip) 4320 80% 43200 reload-into-ims
                        refresh_pattern windowsupdate.com/.*\.(cab|exe|dll|msi|psf) 10080 100% 43200 reload-into-ims
                        refresh_pattern download.microsoft.com/.*\.(cab|exe|dll|msi|psf) 10080 100% 43200 reload-into-ims
                        refresh_pattern www.microsoft.com/.*\.(cab|exe|dll|msi|psf) 10080 100% 43200 reload-into-ims
                        refresh_pattern au.download.windowsupdate.com/.*\.(cab|exe|dll|msi|psf) 4320 100% 43200 reload-into-ims
                        refresh_pattern bg.v4.pr.dl.ws.microsoft.com/.*\.(cab|exe|dll|msi|psf) 4320 100% 43200 reload-into-ims
                        
                        cache_mem 15000 MB 
                        # Should be less than 50% of avail. RAM
                        
                        maximum_object_size_in_memory 5000000 KB 
                        #should be less than cache_mem 
                        
                        memory_replacement_policy heap LFUDA
                        cache_replacement_policy heap LFUDA
                        
                        minimum_object_size 1000 KB
                        #Do not store very small object on disk
                        
                        maximum_object_size 5000 MB 
                        #should be less or equal to maximum_object_size_in_memory
                        
                        

                        Here is output for today access.log of squid (number of HITS):
                        cat  /var/squid/logs/access.log | grep HIT | grep windowsupdate -c
                        2860
                        cat /var/squid/logs/access.log | grep HIT | grep microsoft.com -c
                        19128

                        Here is output for today access.log of squid (number of MISSes):
                        cat /var/squid/logs/access.log | grep MISS | grep windowsupdate -c
                        61834
                        cat /var/squid/logs/access.log | grep MISS | grep microsoft.com -c
                        55567

                        I had to rebuild my disk cache 2 days ago, so I assume not everything is cached yet. Or some of my settings needs improvement…

                        It might not be ideal setup.
                        If you have some comments, improvements, please let me know.

                        Regards,

                        Valeriy

                        1 Reply Last reply Reply Quote 0
                        • S
                          saluto
                          last edited by Feb 23, 2017, 8:07 PM

                          How did your dynamic cache get now?

                          1 Reply Last reply Reply Quote 0
                          • V
                            Valeriy
                            last edited by Feb 24, 2017, 9:28 AM

                            @saluto:

                            How did your dynamic cache get now?

                            It is good.
                            This is result for yesterday:

                            
                            [2.3.3-DEVELOPMENT]/var/squid/logs: cat /var/squid/logs/access.log.2 | grep MISS | grep microsoft.com -c
                            96270
                            [2.3.3-DEVELOPMENT]/var/squid/logs: cat /var/squid/logs/access.log.2 | grep HIT | grep microsoft.com -c
                            21177
                            (18% HITS vs. 82% MISS)
                            [2.3.3-DEVELOPMENT]/var/squid/logs: cat /var/squid/logs/access.log.2 | grep HIT | grep windowsupdate -c
                            8352
                            [2.3.3-DEVELOPMENT]/var/squid/logs: cat /var/squid/logs/access.log.2 | grep MISS | grep windowsupdate -c
                            34794
                            (19% HITS vs. 81% MISS)
                            
                            
                            1 Reply Last reply Reply Quote 0
                            • K
                              KOM
                              last edited by Feb 24, 2017, 1:59 PM

                              :o

                              81% miss rate seems awfully high for something that's supposedly working good.

                              1 Reply Last reply Reply Quote 0
                              • A
                                aGeekhere
                                last edited by Feb 24, 2017, 10:40 PM

                                Should look at the hit/miss ratio of file sizes. If you miss 99% of 1kB files it does not matter however it can through your ratio out.

                                Never Fear, A Geek is Here!

                                1 Reply Last reply Reply Quote 0
                                • S
                                  saluto
                                  last edited by Feb 27, 2017, 4:54 PM Feb 27, 2017, 3:34 AM

                                  Has any colleague been able to implement this dynamic cache, Squid-3.5 in PFSense?
                                  https://github.com/hscbrasil/hsc-dynamic-cache
                                  http://comastnet.blogspot.com.br/2016/06/squid-youtube-cache-2016-terbaru-suport.html

                                  1 Reply Last reply Reply Quote 0
                                  • S
                                    SaschaITM
                                    last edited by Feb 28, 2017, 12:14 AM

                                    KOM: "19% hit rate seems awfully high for something that's supposedly not working at all." (;

                                    Even 19 % hit rate is a benefit if you have to work with a slow/congested line. I think hit rate can be optimized by setting up a machine that will download updates before the standard time frame windows is using to check for/download updates, so that updates are already cached when other machines check for them (I'm going to implement this on one of the systems I'm managing as soon as I find the time). Also, like aGeekHere said, you'd have to look at the byte ratio to be able to see how effective this form of caching actually is. Not sure how this could be done, maybe with a tool like Calamaris and a pre-filtered Squid log file?

                                    Bottom line: caching Windows updates does indeed work, and is actually useful for (at least) some people.

                                    1 Reply Last reply Reply Quote 0
                                    • K
                                      KOM
                                      last edited by Feb 28, 2017, 2:05 PM

                                      Bottom line: caching Windows updates does indeed work

                                      I still have yet to see any evidence to back this claim.  A 19% hit rate for WU is crap.  And no, there aren't a zillion little 1K files skewing the ratio.

                                      Here is a proper test:

                                      take two Windows 7 clients that you installed fresh and put them both behind the proxy, leaving only 1 powered on.
                                      Install all updates until there are none left
                                      Power on the second unit and then do all the same updates
                                      Once complete, on pfSense run:

                                      squidclient -h LAN_IP -p 3128 mgr:info
                                      

                                      and post the output.  That will give a lot more detail about the recent session.

                                      1 Reply Last reply Reply Quote 0
                                      • A
                                        aGeekhere
                                        last edited by Mar 3, 2017, 12:16 AM

                                        updated, thanks to Valeriy

                                        if there are any mistakes in the refresh pattern let me know

                                        Never Fear, A Geek is Here!

                                        1 Reply Last reply Reply Quote 0
                                        • V
                                          Valeriy
                                          last edited by Apr 11, 2017, 7:43 AM Mar 7, 2017, 12:35 PM

                                          KOM was right, in fact it was not working properly. Also, the results of bare counting of MISSes/HITs from not fully populated cache was not good measurement. Right now, any windowsupdate downloaded file (even partial) is fetched from cache, verified manually and monitored in access.log.

                                          Few days ago I have made some improvements to utilize store_rewrite module.
                                          They were tested, as suggested above by KOM, successfully.

                                          Indeed, some of WU were not cached properly since they were received from different CDN hosts.

                                          Config files are below (squid.conf is only part that is related to this issue)

                                          Apple and Symantec updates are cached well, too.

                                          Steam/Xbox (cs.steampowered.com / llnwd.net respective CDN) are not confirmed yet.

                                          The rest of refresh patterns and URL rewrites are still in experimental mode. Needs a lot of testing and research in order to make it done properly.

                                          Attached is screenshot from Lightsquid, you can clearly see changes after 3rd of March.

                                          P.S. Questions:

                                          • not quite sure if I need to list all possible domains under acl dstdomain directive, or just first level domain will be good enough?

                                          Comments:

                                          • I have total 1.3TB of swap available and 32GB on server running Pfsense+Squid+SquidGuard+Snort+PfBlocker. Configuration is optimized for ~2000 hosts on LAN.

                                          Current byte/hit rate is 20-45%

                                          /usr/local/etc/squid/squid.conf

                                          
                                          .......
                                          # No range offset limit for windowsupdate sites
                                          acl Windows_Update dstdomain windowsupdate.microsoft.com
                                          acl Windows_Update dstdomain update.microsoft.com
                                          acl Windows_Update dstdomain download.windowsupdate.com
                                          acl Windows_Update dstdomain windowsupdate.com
                                          acl Windows_Update dstdomain au.download.windowsupdate.com
                                          acl Windows_Update dstdomain bg.v4.pr.dl.ws.microsoft.com
                                          acl Windows_Update dstdomain wsus.ds.download.windowsupdate.com
                                          acl Windows_Update dstdomain au.b1.download.windowsupdate.com
                                          range_offset_limit -1  Windows_Update
                                          
                                          # Storeid_rewrite configuration
                                          
                                          acl updatesites dstdom_regex "/usr/local/etc/squid/updatesites.txt"
                                          
                                          store_id_access allow updatesites
                                          store_id_access deny all
                                          store_id_program /usr/local/libexec/squid/storeid_file_rewrite /usr/local/etc/squid/storeid_rewrite.conf
                                          store_id_children 200 startup=60 idle=1 concurrency=0
                                          
                                          # Refresh patterns
                                          # 525600 min is one year
                                          
                                          # Gaming CDN
                                          
                                          refresh_pattern -i \.llnwd.net 525600 100% 525600 reload-into-ims ignore-reload override-expire override-lastmod ignore-no-store ignore-private ignore-auth
                                          
                                          refresh_pattern -i \.cs.steampowered.com 525600 100% 525600 reload-into-ims ignore-reload override-expire override-lastmod ignore-no-store ignore-private ignore-auth
                                          
                                          #windows update
                                          
                                          refresh_pattern -i \.update.microsoft.com/.*\.(cab|exe|ms[i|u|f]|[ap]sf|wm[v|a]|dat|zip) 525600 100% 525600 reload-into-ims ignore-reload override-expire override-lastmod ignore-no-store ignore-private ignore-auth
                                          
                                          refresh_pattern -i \.windowsupdate.com/.*\.(cab|exe|ms[i|u|f]|[ap]sf|wm[v|a]|dat|zip) 525600 100% 525600 reload-into-ims ignore-reload override-expire override-lastmod ignore-no-store ignore-private ignore-auth
                                          
                                          refresh_pattern -i \.download.microsoft.com/.*\.(cab|exe|ms[i|u|f]|[ap]sf|wm[v|a]|dat|zip) 525600 100% 525600 reload-into-ims ignore-reload override-expire override-lastmod ignore-no-store ignore-private ignore-auth
                                          
                                          refresh_pattern -i \.ws.microsoft.com/.*\.(cab|exe|ms[i|u|f]|[ap]sf|wm[v|a]|dat|zip) 525600 100% 525600 reload-into-ims ignore-reload override-expire override-lastmod ignore-no-store ignore-private ignore-auth
                                          
                                          # Symantec Updates
                                          # Only reload-into-ims works properly, other flags break update process 
                                          
                                          refresh_pattern -i \.symantecliveupdate.com/.*\.(zip|exe|z7)          525600 100% 525600 reload-into-ims
                                          
                                          

                                          /usr/local/etc/squid/updatesites.txt

                                          
                                          \.adobe.com
                                          \.java.com
                                          \.sun.com
                                          \.oracle.com
                                          \.apple.com
                                          \.microsoft.com
                                          \.windowsupdate.com
                                          \.ubuntu.com
                                          \.steampowered.com
                                          \.llnwd.net
                                          \.symantecliveupdate.com
                                          
                                          

                                          /usr/local/etc/squid/storeid_rewrite.conf

                                          
                                          ^http:\/\/.+?\.microsoft\.com\/.+?_([0-9a-z]{40})\.(cab|exe|ms[i|u|f]|asf|wm[v|a]|dat|zip|psf|appx)     http://wupdate.squid.local/$1
                                          ^http:\/\/.+?\.windowsupdate\.com\/.+?_([0-9a-z]{40})\.(cab|exe|ms[i|u|f]|asf|wm[v|a]|dat|zip|psf|appx) http://wupdate.squid.local/$1
                                          ^http:\/\/.+?\.cs\.steampowered\.com\/(.*)      http://steamupdates.squid.internal/$1
                                          ^http:\/\/.+?\.apple\.com\/(.*) http://appupdates.apple.squid.internal/$1
                                          ^http:\/\/.+?\.llnwd\.net\/(.*)                 http://llnwd.net.squid.internal/$1
                                          
                                          

                                          Regards,

                                          Valeriy

                                          1 Reply Last reply Reply Quote 0
                                          22 out of 111
                                          • First post
                                            22/111
                                            Last post
                                          Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.