[Support] Josh.5 Docker Templates


Recommended Posts

On 4/23/2020 at 2:28 PM, Liwanu said:

Does anyone know how to assign additional IPs to this docker? According to the Lancache.net Tuning Guide, you can add multiple IP addresses to the docker to increase download speeds, then you need to Inform lancache-dns of the extra IP’s. 

I have managed to do this but you have to make a few changes to the setup.

 

I use "Host" for the network setting for the docker container rather than giving it its own IP in Bridge mode. This ensures all IP's on your unraid box adapder pass through to it. Downside you cant have 80 443 or 53 listening on these. This mainly effects the unraid web ui which runs on 443 by default. To get round this move the web gui to another port (i used 444) this does mean to access the webui you will need to specify the port e.g. sdjklfhsdjfgh76786sdwe87r5sdf.unraid.net:444

 

Settings -> Identification -> Management Access to change port

 

First step is to assign more IP address' to the unraid network adapter. You need to check on your router for its DHCP range and assign something outside of this range (which is not in use) or put a manual reservation in to a dummy mac address for the IP's your looking to use. (Sorry cant really help more with this so many different types of routers).

 

For example my DHCP range runs 192.168.1.2 - 192.168.1.190

 

192.168.93.5 is assiged to my Unraid box as a manual reservation so its alway the same.

I have decided to use 192.168.1.242 - 192.168.1.248 as the additional IP's as they are outside the DHCP range (so wont be given to something else and I know they are not in use)

 

Now we have the list of IP's we are going to use we need to assign them to the interface. To ensure this percists through a reboot of the unraid box we need to install the User Scripts plugin made by Andrew Zawadzki (Search in the apps store)

 

Once added go to Settings > User scripts (at the bottom under user utilities)

 

New Script and give it a name i picked IPAddresses

 

Click on the Cog next to the script you just made and go edit script

 

Then in my example i entered the following into the script box;

 

#!/bin/bash
ip address add 192.168.1.243/24 dev br0
ip address add 192.168.1.244/24 dev br0
ip address add 192.168.1.245/24 dev br0
ip address add 192.168.1.246/24 dev br0
ip address add 192.168.1.247/24 dev br0
ip address add 192.168.1.248/24 dev br0

 

Note i left out the 192.168.1.5 as it will already be assigned automatically.

 

Your br0 (network adapter) might be different run "ip addr" in the command prompt shell on the server and look for the network adapter that has IP address' that match your local network.

 

Save the script

 

Change the Schedule to First Array start (we only need to apply it once per reboot) and apply the changes. You can also manually run the script to add the ip addreses right now which you will need to do this first time (or reboot).

 

running "ip addr" in the shell prompt should now show all these IP's also linked to that network adaper (this is important!)

 

And you should be able to ping them from your pc!

 

Now we need to tell the dns server in the docker container about these ip addresses.


Edit LAN Cache bundle docker settings

 

Ensure network type is Host (this will fail if you didnt move your Mangement port!)

 

First lets just do a test and remove the IP currently in LANCACHE_IP to one of the new ones

 

e.g. for me 192.168.1.243

image.png.f55401ae587472c57e6c342cd1f77988.png

 

Flush your dns on your PC to make sure

 

Command prompt "ipconfig /flushdns"

and then 

"nslookup update1.dota2.wmsj.cn" this is just an example address that should be overwritten by the steamcache dns we should get that IP address we changed too.

 

Test your cache and make sure it sill working.

 

If so lets put all the addresses in.

 

Edit lancache bundle again

 

For lancache IP put in all the IP addresses seperated by a space e.g;

image.png.3931bc880229062022995da3776f4351.png

 

so i entered them all 

192.168.1.5 192.168.1.243 192.168.1.244 192.168.1.245 192.168.1.246 192.168.1.247 192.168.1.248

 

You can leave DNS_BIND as the single IP

 

Apply the changes.

 

Command prompt "ipconfig /flushdns"

and then 

On the PC in a command prompt run "nslookup update1.dota2.wmsj.cn" this is just an example address that should be overwritten by the steamcache dns. You should get a result including all your extra IP's.

 

Make sure everything is working.

 

Using this i get 100MB/s - 115MB/s which seems to be the limit of my Gigabit connection between unraid and my pc. When downloading ARMA 2 as an example. (I'm using spinning disks for the cache so they are likely the next limit)

 

 

Edited by dan91
Link to comment

Hey dan91, just setup my first unraid and its working like a charm, however on first download from Blizzard & Origin is extremely slow <1Mpbs & 4Mbps respectively on my 1Gb line. On steam I can get up to ~75Mbps (depending on game) on first download and then cache maxes out my 1Gbp lan connection getting 117Mbps.

Will adding more IPs address improve the first download rate from Blizzard & Origin? I tried before moving to unraid on a virtual machine with different slice sizes which helped improve it slightly but never tried with additional IP address and only ever got it to 4Mbps on Blizzard.

Any help would be greatly appreciated.

Link to comment
7 hours ago, Xploit61 said:

On steam I can get up to ~75Mbps (depending on game) on first download and then cache maxes out my 1Gbp lan connection getting 117Mbps.

 

I'm running a single dedicated IP address on my lancache-bundle at this time and also have a 1Gbps internet connection and seem to have hit a download limit of around 20Mbps through the lancache-bundle server.  But, with that said, when I test network equipment within a 1Gbps network, I look for ~950Mbps throughput, so a 1Gbps network should get better than 117Mbps, that would be a limitation to your lancache-bundle hardware, most likely.

 

From what I understand, adding the additional IP addresses should improve your download performance.  I'd say give it a shot and report back.

Link to comment
1 hour ago, jzawacki said:

 

I'm running a single dedicated IP address on my lancache-bundle at this time and also have a 1Gbps internet connection and seem to have hit a download limit of around 20Mbps through the lancache-bundle server.  But, with that said, when I test network equipment within a 1Gbps network, I look for ~950Mbps throughput, so a 1Gbps network should get better than 117Mbps, that would be a limitation to your lancache-bundle hardware, most likely.

 

From what I understand, adding the additional IP addresses should improve your download performance.  I'd say give it a shot and report back.

Hey jzawacki, thanks for the reply. My apologies messing the stats up here. Downloading on steam I can get ~75MB/s and then once cached 117MB/s. Currently downloading Battlefield 5 @ 5.74MB/s but averages at ~3MB/s and COD MW @ 881.02KB/s

So Origin and Blizzard are extremely slow. Bypassing lancache gets me to ~30MB/s +> I think I added extra IPs as per Dan's post but doesn't seem to be helping too much.

Edited by Xploit61
Link to comment
14 hours ago, Xploit61 said:

Hey jzawacki, thanks for the reply. My apologies messing the stats up here. Downloading on steam I can get ~75MB/s and then once cached 117MB/s. Currently downloading Battlefield 5 @ 5.74MB/s but averages at ~3MB/s and COD MW @ 881.02KB/s

So Origin and Blizzard are extremely slow. Bypassing lancache gets me to ~30MB/s +> I think I added extra IPs as per Dan's post but doesn't seem to be helping too much.

Hi Xploit with a single IP for blizzard i get about 1-3 MB/s on initial download with the amount of IP's from my initial post I mostly max out my download speed 8MB/s.

 

If you remove all the extra IP's and just try 1 extra IP does your cache still work? (basically are the extra IP's functioning correctly) Can you see them in ip addr on the command prompt on unraid and are you using HOST mode for the docker container?

 

Are you downloading to spinning disks or an SSD? If spinning are you able to swap to an SSD just for testing the blizzard download? You may be hitting a limitation on disk access times which may be why increasing your slice size helped. (How you get more througput from one large file than loads of small ones)

Link to comment

Hi All

 

Hope everyone is well.

 

Finally took the time to get lancache docker running.

 

I can see all the dns calls in the log for steam, epic and my web traffic etc with the way i have it setup

 

no files in the cache folder, tried various games with a few providers, i see the data in the log for the cache urls its accessing, such as

 

29-Apr-2020 20:33:27.494 client @0x15358023cda0 192.168.1.1#52049 (steamcdn-a.akamaihd.net): query: steamcdn-a.akamaihd.net IN A + (192.168.1.69)

29-Apr-2020 20:20:05.233 client @0x1533e024b530 192.168.1.1#52049 (cache26-lhr1.steamcontent.com): query: cache26-lhr1.steamcontent.com IN A + (192.168.1.69)

29-Apr-2020 20:20:04.834 client @0x1533e02116f0 192.168.1.1#52049 (lancache.steamcontent.com): query: lancache.steamcontent.com IN A + (192.168.1.69)

 

But no files, only things i see in the docker log that look like are errors are

 

Epic now says trouble connecting not sure if thats related

 

 

proxy_next_upstream error timeout http_404;

 

 

proxy_cache_use_stale error timeout invalid_header updating http_500 http_502 http_503 http_504;

 

There is also something odd when i search for the above domain in the docker log

 

~.*£££.*?#WARNING:Originhasbeenseendownloadinghttpsclientdownloadsonorigin-a.akamaihd.net.Asolutionshouldbeinplacetoforwardhttpstotheoriginserver(egsniproxy) origin;
~.*£££.*?origin-a.akamaihd.net origin;

 

I am out of ideas to be honest.

 

 

Link to comment
47 minutes ago, purplechris said:

Thanks James, i have the outbound working now with the secondary dns

 

Unfortunately, the "secondary DNS" you added is bypassing the lancache-bundle.  Windows doesn't use it as a primary (and if I can't talk to it, use the secondary), it picks whatever IP it wants.

 

What do you get when you try this on the windows computer command prompt:

 

C:\> nslookup

 

Should look like this:

Default Server:  UnKnown
Address:  192.168.1.69

>

 

> google.com

 

Should look like this:

> google.com
Server:  UnKnown
Address:  192.168.1.69

Non-authoritative answer:
Name:    google.com
Addresses:  2607:f8b0:400f:801::200e
          172.217.2.14

 

Then, try this:

 

> steamcontent.com

 

Should look like this:

> steamcontent.com
Server:  [192.168.1.69]
Address:  192.168.1.69

Non-authoritative answer:
Name:    steam.cache.lancache.net
Address:  192.168.1.69
Aliases:  steamcontent.com

 

Link to comment
14 hours ago, jzawacki said:

 

Unfortunately, the "secondary DNS" you added is bypassing the lancache-bundle.  Windows doesn't use it as a primary (and if I can't talk to it, use the secondary), it picks whatever IP it wants.

 

What do you get when you try this on the windows computer command prompt:

 

C:\> nslookup

 

Should look like this:


Default Server:  UnKnown
Address:  192.168.1.69

>

 

> google.com

 

Should look like this:


> google.com
Server:  UnKnown
Address:  192.168.1.69

Non-authoritative answer:
Name:    google.com
Addresses:  2607:f8b0:400f:801::200e
          172.217.2.14

 

Then, try this:

 

> steamcontent.com

 

Should look like this:


> steamcontent.com
Server:  [192.168.1.69]
Address:  192.168.1.69

Non-authoritative answer:
Name:    steam.cache.lancache.net
Address:  192.168.1.69
Aliases:  steamcontent.com

 

 

Hey Buddy

 

nslookup gives me my router IP of 192.168.1.1

 

Its DNS is set to primary 192.168.1.69 which is lancache and 192.168.1.3 which is pihole

 

Both google and steamcontent.com show my router ip on nslookup too

Link to comment
8 hours ago, purplechris said:

 

Hey Buddy

 

nslookup gives me my router IP of 192.168.1.1

 

Its DNS is set to primary 192.168.1.69 which is lancache and 192.168.1.3 which is pihole

 

Both google and steamcontent.com show my router ip on nslookup too

 

Interesting.  Having both .69 and .13 being used, depending on how your router caches lookups (if it does at all), you may be randomly bypassing the lancache-bundle server.

 

I can't tell you how to setup your network, but I can tell you how I have mine setup, since it sounds like we have similar thoughts.

 

1) DHCP is handing out the IP address of PiHole and a second IP address that is dead on my network.  This keeps Windows from using whatever it wants.  If your router isn't able to provide custom DNS IPs for DHCP, I would suggest switching to a DHCP server that does.  I haven't used it myself, but PiHole includes a DHCP server.

2) PiHole Upstream DNS Servers 1- lancache-bundle IP 2- same fake IP DHCP is handing out.  Again, this forces PiHole to use the lancache-bundle IP.

3) LanCache-Bundle Upstream DNS is OpenDNS IP address only

 

This setup allows me to blacklist sites easily on PiHole as well as allow me to get correct statistics from the interface.  If you have your router asking PiHole, all the statistics will show the requests from the router and not the individual devices.  So, if you have a ton of blocked lookups from a specific device, you will not be able to track it down.

Link to comment

I use pfSense on dedicated hardware and didn't want to have DNS resolution for my whole network reliant on lancache docker, or anything else running on unRAID.

 

You can achieve this and still use lancache-bundle by overriding the DNS Resolver for specific hosts here:

 

pfSense | Services | DNS Resolver

 

Assuming your lancache-bundle docker is using 192.168.1.202 as in the docker example, add this to "Custom Options":


# Configuration for arenanet
local-data: "assetcdn.101.arenanetworks.com. A 192.168.1.202"
local-data: "assetcdn.102.arenanetworks.com. A 192.168.1.202"
local-data: "assetcdn.103.arenanetworks.com. A 192.168.1.202"
local-data: "live.patcher.bladeandsoul.com. A 192.168.1.202"

# Configuration for blizzard
local-data: "dist.blizzard.com. A 192.168.1.202"
local-data: "dist.blizzard.com.edgesuite.net. A 192.168.1.202"
local-data: "llnw.blizzard.com. A 192.168.1.202"
local-data: "edgecast.blizzard.com. A 192.168.1.202"
local-data: "blizzard.vo.llnwd.net. A 192.168.1.202"
local-data: "blzddist1-a.akamaihd.net. A 192.168.1.202"
local-data: "blzddist2-a.akamaihd.net. A 192.168.1.202"
local-data: "blzddist3-a.akamaihd.net. A 192.168.1.202"
local-data: "blzddist4-a.akamaihd.net. A 192.168.1.202"
local-data: "level3.blizzard.com. A 192.168.1.202"
local-data: "nydus.battle.net. A 192.168.1.202"
local-data: "edge.blizzard.top.comcast.net. A 192.168.1.202"
local-data: "cdn.blizzard.com. A 192.168.1.202"
local-zone: "cdn.blizzard.com." redirect
local-data: "cdn.blizzard.com. A 192.168.1.202"

# Configuration for bsg
local-data: "cdn-11.eft-store.com. A 192.168.1.202"
local-data: "cl-453343cd.gcdn.co. A 192.168.1.202"

# Configuration for cityofheroes
local-data: "cdn.homecomingservers.com. A 192.168.1.202"
local-data: "nsa.tools. A 192.168.1.202"

# Configuration for daybreak
local-data: "pls.patch.daybreakgames.com. A 192.168.1.202"

# Configuration for epicgames
local-data: "epicgames-download1.akamaized.net. A 192.168.1.202"
local-data: "download.epicgames.com. A 192.168.1.202"
local-data: "download2.epicgames.com. A 192.168.1.202"
local-data: "download3.epicgames.com. A 192.168.1.202"
local-data: "download4.epicgames.com. A 192.168.1.202"

# Configuration for frontier
local-data: "cdn.zaonce.net. A 192.168.1.202"

# Configuration for hirez
local-data: "hirez.http.internapcdn.net. A 192.168.1.202"

# Configuration for neverwinter
local-data: "level3.nwhttppatch.crypticstudios.com. A 192.168.1.202"

# Configuration for nexusmods
local-data: "filedelivery.nexusmods.com. A 192.168.1.202"

# Configuration for nintendo
local-data: "ccs.cdn.wup.shop.nintendo.com. A 192.168.1.202"
local-data: "ccs.cdn.wup.shop.nintendo.net.edgesuite.net. A 192.168.1.202"
local-data: "geisha-wup.cdn.nintendo.net. A 192.168.1.202"
local-data: "geisha-wup.cdn.nintendo.net.edgekey.net. A 192.168.1.202"
local-data: "idbe-wup.cdn.nintendo.net. A 192.168.1.202"
local-data: "idbe-wup.cdn.nintendo.net.edgekey.net. A 192.168.1.202"
local-data: "ecs-lp1.hac.shop.nintendo.net. A 192.168.1.202"
local-data: "receive-lp1.dg.srv.nintendo.net. A 192.168.1.202"
local-zone: "wup.shop.nintendo.net." redirect
local-data: "wup.shop.nintendo.net. A 192.168.1.202"
local-zone: "wup.eshop.nintendo.net." redirect
local-data: "wup.eshop.nintendo.net. A 192.168.1.202"
local-zone: "hac.lp1.d4c.nintendo.net." redirect
local-data: "hac.lp1.d4c.nintendo.net. A 192.168.1.202"
local-zone: "hac.lp1.eshop.nintendo.net." redirect
local-data: "hac.lp1.eshop.nintendo.net. A 192.168.1.202"

# Configuration for origin
local-data: "origin-a.akamaihd.net. A 192.168.1.202"
local-data: "lvlt.cdn.ea.com. A 192.168.1.202"

# Configuration for renegadex
local-data: "rxp-lv.cncirc.net. A 192.168.1.202"
local-data: "cronub.fairplayinc.uk. A 192.168.1.202"
local-data: "amirror.tyrant.gg. A 192.168.1.202"
local-data: "mirror.usa.tyrant.gg. A 192.168.1.202"
local-data: "renx.b-cdn.net. A 192.168.1.202"

# Configuration for riot
local-data: "l3cdn.riotgames.com. A 192.168.1.202"
local-data: "worldwide.l3cdn.riotgames.com. A 192.168.1.202"
local-data: "riotgamespatcher-a.akamaihd.net. A 192.168.1.202"
local-data: "riotgamespatcher-a.akamaihd.net.edgesuite.net. A 192.168.1.202"
local-zone: "dyn.riotcdn.net." redirect
local-data: "dyn.riotcdn.net. A 192.168.1.202"

# Configuration for rockstar
local-data: "patches.rockstargames.com. A 192.168.1.202"

# Configuration for sony
local-data: "gs2.ww.prod.dl.playstation.net. A 192.168.1.202"
local-data: "gs2.sonycoment.loris-e.llnwd.net. A 192.168.1.202"

# Configuration for steam
local-zone: "content.steampowered.com." redirect
local-data: "content.steampowered.com. A 192.168.1.202"
local-data: "content1.steampowered.com. A 192.168.1.202"
local-data: "content2.steampowered.com. A 192.168.1.202"
local-data: "content3.steampowered.com. A 192.168.1.202"
local-data: "content4.steampowered.com. A 192.168.1.202"
local-data: "content5.steampowered.com. A 192.168.1.202"
local-data: "content6.steampowered.com. A 192.168.1.202"
local-data: "content7.steampowered.com. A 192.168.1.202"
local-data: "content8.steampowered.com. A 192.168.1.202"
local-data: "cs.steampowered.com. A 192.168.1.202"
local-data: "steamcontent.com. A 192.168.1.202"
local-data: "client-download.steampowered.com. A 192.168.1.202"
local-zone: "hsar.steampowered.com.edgesuite.net." redirect
local-data: "hsar.steampowered.com.edgesuite.net. A 192.168.1.202"
local-zone: "akamai.steamstatic.com." redirect
local-data: "akamai.steamstatic.com. A 192.168.1.202"
local-data: "content-origin.steampowered.com. A 192.168.1.202"
local-data: "clientconfig.akamai.steamtransparent.com. A 192.168.1.202"
local-data: "steampipe.akamaized.net. A 192.168.1.202"
local-data: "edgecast.steamstatic.com. A 192.168.1.202"
local-data: "steam.apac.qtlglb.com.mwcloudcdn.com. A 192.168.1.202"
local-zone: "cs.steampowered.com." redirect
local-data: "cs.steampowered.com. A 192.168.1.202"
local-zone: "cm.steampowered.com." redirect
local-data: "cm.steampowered.com. A 192.168.1.202"
local-zone: "edgecast.steamstatic.com." redirect
local-data: "edgecast.steamstatic.com. A 192.168.1.202"
local-zone: "steamcontent.com." redirect
local-data: "steamcontent.com. A 192.168.1.202"
local-data: "cdn1-sea1.valve.net. A 192.168.1.202"
local-data: "cdn2-sea1.valve.net. A 192.168.1.202"
local-zone: "steam-content-dnld-1.apac-1-cdn.cqloud.com." redirect
local-data: "steam-content-dnld-1.apac-1-cdn.cqloud.com. A 192.168.1.202"
local-zone: "steam-content-dnld-1.eu-c1-cdn.cqloud.com." redirect
local-data: "steam-content-dnld-1.eu-c1-cdn.cqloud.com. A 192.168.1.202"
local-data: "steam.apac.qtlglb.com. A 192.168.1.202"
local-data: "edge.steam-dns.top.comcast.net. A 192.168.1.202"
local-data: "edge.steam-dns-2.top.comcast.net. A 192.168.1.202"
local-data: "steam.naeu.qtlglb.com. A 192.168.1.202"
local-data: "steampipe-kr.akamaized.net. A 192.168.1.202"
local-data: "steam.ix.asn.au. A 192.168.1.202"
local-data: "steam.eca.qtlglb.com. A 192.168.1.202"
local-data: "steam.cdn.on.net. A 192.168.1.202"
local-data: "update5.dota2.wmsj.cn. A 192.168.1.202"
local-data: "update2.dota2.wmsj.cn. A 192.168.1.202"
local-data: "update6.dota2.wmsj.cn. A 192.168.1.202"
local-data: "update3.dota2.wmsj.cn. A 192.168.1.202"
local-data: "update1.dota2.wmsj.cn. A 192.168.1.202"
local-data: "update4.dota2.wmsj.cn. A 192.168.1.202"
local-data: "update5.csgo.wmsj.cn. A 192.168.1.202"
local-data: "update2.csgo.wmsj.cn. A 192.168.1.202"
local-data: "update4.csgo.wmsj.cn. A 192.168.1.202"
local-data: "update3.csgo.wmsj.cn. A 192.168.1.202"
local-data: "update6.csgo.wmsj.cn. A 192.168.1.202"
local-data: "update1.csgo.wmsj.cn. A 192.168.1.202"
local-data: "st.dl.bscstorage.net. A 192.168.1.202"
local-data: "cdn.mileweb.cs.steampowered.com.8686c.com. A 192.168.1.202"

# Configuration for teso
local-data: "live.patcher.elderscrollsonline.com. A 192.168.1.202"

# Configuration for twitch
local-data: "d3rmjivj4k4f0t.cloudfront.net. A 192.168.1.202"
local-data: "addons.forgesvc.net. A 192.168.1.202"
local-data: "media.forgecdn.net. A 192.168.1.202"
local-data: "files.forgecdn.net. A 192.168.1.202"

# Configuration for uplay
local-zone: "cdn.ubi.com." redirect
local-data: "cdn.ubi.com. A 192.168.1.202"

# Configuration for warframe
local-data: "content.warframe.com. A 192.168.1.202"

# Configuration for wargaming

# Configuration for xboxlive
local-data: "assets1.xboxlive.com. A 192.168.1.202"
local-data: "assets2.xboxlive.com. A 192.168.1.202"
local-data: "dlassets.xboxlive.com. A 192.168.1.202"
local-data: "xboxone.loris.llnwd.net. A 192.168.1.202"
local-zone: "xboxone.loris.llnwd.net." redirect
local-data: "xboxone.loris.llnwd.net. A 192.168.1.202"
local-data: "xboxone.vo.llnwd.net. A 192.168.1.202"
local-data: "xbox-mbr.xboxlive.com. A 192.168.1.202"
local-data: "assets1.xboxlive.com.nsatc.net. A 192.168.1.202"

# Configuration for windowsupdates
local-zone: "windowsupdate.com." redirect
local-data: "windowsupdate.com. A 192.168.1.202"
local-data: "windowsupdate.com. A 192.168.1.202"
local-zone: "dl.delivery.mp.microsoft.com." redirect
local-data: "dl.delivery.mp.microsoft.com. A 192.168.1.202"
local-data: "dl.delivery.mp.microsoft.com. A 192.168.1.202"
local-zone: "update.microsoft.com." redirect
local-data: "update.microsoft.com. A 192.168.1.202"
local-zone: "do.dsp.mp.microsoft.com." redirect
local-data: "do.dsp.mp.microsoft.com. A 192.168.1.202"
local-zone: "microsoft.com.edgesuite.net." redirect
local-data: "microsoft.com.edgesuite.net. A 192.168.1.202"
local-data: "amupdatedl.microsoft.com. A 192.168.1.202"
local-data: "amupdatedl2.microsoft.com. A 192.168.1.202"
local-data: "amupdatedl3.microsoft.com. A 192.168.1.202"
local-data: "amupdatedl4.microsoft.com. A 192.168.1.202"
local-data: "amupdatedl5.microsoft.com. A 192.168.1.202"

edit: If you do this, make sure your lancache-docker isn't using your pfSense for the UPSTREAM_DNS resolver!  Use a public DNS resolver like 9.9.9.9 or 1.1.1.1

 

You can generate your own list using this:

https://github.com/zeropingheroes/lancache-dns-pfsense

 

If you do this and get "error: local-data in redirect zone must reside at top of zone" when loading into pfesense, just remove the entry it's complaining about as there is a parent domain redirect entry which makes it unnecessary anyway.

Edited by ConnectivIT
  • Like 1
Link to comment
On 5/8/2020 at 3:34 PM, ConnectivIT said:

I use pfSense on dedicated hardware and didn't want to have DNS resolution for my whole network reliant on lancache docker, or anything else running on unRAID.

 

You can achieve this and still use lancache-bundle by overriding the DNS Resolver for specific hosts here:

 

pfSense | Services | DNS Resolver

 

Assuming your lancache-bundle docker is using 192.168.1.202 as in the docker example, add this to "Custom Options":



# Configuration for arenanet
local-data: "assetcdn.101.arenanetworks.com. A 192.168.1.202"
local-data: "assetcdn.102.arenanetworks.com. A 192.168.1.202"
local-data: "assetcdn.103.arenanetworks.com. A 192.168.1.202"
local-data: "live.patcher.bladeandsoul.com. A 192.168.1.202"

# Configuration for blizzard
local-data: "dist.blizzard.com. A 192.168.1.202"
local-data: "dist.blizzard.com.edgesuite.net. A 192.168.1.202"
local-data: "llnw.blizzard.com. A 192.168.1.202"
local-data: "edgecast.blizzard.com. A 192.168.1.202"
local-data: "blizzard.vo.llnwd.net. A 192.168.1.202"
local-data: "blzddist1-a.akamaihd.net. A 192.168.1.202"
local-data: "blzddist2-a.akamaihd.net. A 192.168.1.202"
local-data: "blzddist3-a.akamaihd.net. A 192.168.1.202"
local-data: "blzddist4-a.akamaihd.net. A 192.168.1.202"
local-data: "level3.blizzard.com. A 192.168.1.202"
local-data: "nydus.battle.net. A 192.168.1.202"
local-data: "edge.blizzard.top.comcast.net. A 192.168.1.202"
local-data: "cdn.blizzard.com. A 192.168.1.202"
local-zone: "cdn.blizzard.com." redirect
local-data: "cdn.blizzard.com. A 192.168.1.202"

# Configuration for bsg
local-data: "cdn-11.eft-store.com. A 192.168.1.202"
local-data: "cl-453343cd.gcdn.co. A 192.168.1.202"

# Configuration for cityofheroes
local-data: "cdn.homecomingservers.com. A 192.168.1.202"
local-data: "nsa.tools. A 192.168.1.202"

# Configuration for daybreak
local-data: "pls.patch.daybreakgames.com. A 192.168.1.202"

# Configuration for epicgames
local-data: "epicgames-download1.akamaized.net. A 192.168.1.202"
local-data: "download.epicgames.com. A 192.168.1.202"
local-data: "download2.epicgames.com. A 192.168.1.202"
local-data: "download3.epicgames.com. A 192.168.1.202"
local-data: "download4.epicgames.com. A 192.168.1.202"

# Configuration for frontier
local-data: "cdn.zaonce.net. A 192.168.1.202"

# Configuration for hirez
local-data: "hirez.http.internapcdn.net. A 192.168.1.202"

# Configuration for neverwinter
local-data: "level3.nwhttppatch.crypticstudios.com. A 192.168.1.202"

# Configuration for nexusmods
local-data: "filedelivery.nexusmods.com. A 192.168.1.202"

# Configuration for nintendo
local-data: "ccs.cdn.wup.shop.nintendo.com. A 192.168.1.202"
local-data: "ccs.cdn.wup.shop.nintendo.net.edgesuite.net. A 192.168.1.202"
local-data: "geisha-wup.cdn.nintendo.net. A 192.168.1.202"
local-data: "geisha-wup.cdn.nintendo.net.edgekey.net. A 192.168.1.202"
local-data: "idbe-wup.cdn.nintendo.net. A 192.168.1.202"
local-data: "idbe-wup.cdn.nintendo.net.edgekey.net. A 192.168.1.202"
local-data: "ecs-lp1.hac.shop.nintendo.net. A 192.168.1.202"
local-data: "receive-lp1.dg.srv.nintendo.net. A 192.168.1.202"
local-zone: "wup.shop.nintendo.net." redirect
local-data: "wup.shop.nintendo.net. A 192.168.1.202"
local-zone: "wup.eshop.nintendo.net." redirect
local-data: "wup.eshop.nintendo.net. A 192.168.1.202"
local-zone: "hac.lp1.d4c.nintendo.net." redirect
local-data: "hac.lp1.d4c.nintendo.net. A 192.168.1.202"
local-zone: "hac.lp1.eshop.nintendo.net." redirect
local-data: "hac.lp1.eshop.nintendo.net. A 192.168.1.202"

# Configuration for origin
local-data: "origin-a.akamaihd.net. A 192.168.1.202"
local-data: "lvlt.cdn.ea.com. A 192.168.1.202"

# Configuration for renegadex
local-data: "rxp-lv.cncirc.net. A 192.168.1.202"
local-data: "cronub.fairplayinc.uk. A 192.168.1.202"
local-data: "amirror.tyrant.gg. A 192.168.1.202"
local-data: "mirror.usa.tyrant.gg. A 192.168.1.202"
local-data: "renx.b-cdn.net. A 192.168.1.202"

# Configuration for riot
local-data: "l3cdn.riotgames.com. A 192.168.1.202"
local-data: "worldwide.l3cdn.riotgames.com. A 192.168.1.202"
local-data: "riotgamespatcher-a.akamaihd.net. A 192.168.1.202"
local-data: "riotgamespatcher-a.akamaihd.net.edgesuite.net. A 192.168.1.202"
local-zone: "dyn.riotcdn.net." redirect
local-data: "dyn.riotcdn.net. A 192.168.1.202"

# Configuration for rockstar
local-data: "patches.rockstargames.com. A 192.168.1.202"

# Configuration for sony
local-data: "gs2.ww.prod.dl.playstation.net. A 192.168.1.202"
local-data: "gs2.sonycoment.loris-e.llnwd.net. A 192.168.1.202"

# Configuration for steam
local-zone: "content.steampowered.com." redirect
local-data: "content.steampowered.com. A 192.168.1.202"
local-data: "content1.steampowered.com. A 192.168.1.202"
local-data: "content2.steampowered.com. A 192.168.1.202"
local-data: "content3.steampowered.com. A 192.168.1.202"
local-data: "content4.steampowered.com. A 192.168.1.202"
local-data: "content5.steampowered.com. A 192.168.1.202"
local-data: "content6.steampowered.com. A 192.168.1.202"
local-data: "content7.steampowered.com. A 192.168.1.202"
local-data: "content8.steampowered.com. A 192.168.1.202"
local-data: "cs.steampowered.com. A 192.168.1.202"
local-data: "steamcontent.com. A 192.168.1.202"
local-data: "client-download.steampowered.com. A 192.168.1.202"
local-zone: "hsar.steampowered.com.edgesuite.net." redirect
local-data: "hsar.steampowered.com.edgesuite.net. A 192.168.1.202"
local-zone: "akamai.steamstatic.com." redirect
local-data: "akamai.steamstatic.com. A 192.168.1.202"
local-data: "content-origin.steampowered.com. A 192.168.1.202"
local-data: "clientconfig.akamai.steamtransparent.com. A 192.168.1.202"
local-data: "steampipe.akamaized.net. A 192.168.1.202"
local-data: "edgecast.steamstatic.com. A 192.168.1.202"
local-data: "steam.apac.qtlglb.com.mwcloudcdn.com. A 192.168.1.202"
local-zone: "cs.steampowered.com." redirect
local-data: "cs.steampowered.com. A 192.168.1.202"
local-zone: "cm.steampowered.com." redirect
local-data: "cm.steampowered.com. A 192.168.1.202"
local-zone: "edgecast.steamstatic.com." redirect
local-data: "edgecast.steamstatic.com. A 192.168.1.202"
local-zone: "steamcontent.com." redirect
local-data: "steamcontent.com. A 192.168.1.202"
local-data: "cdn1-sea1.valve.net. A 192.168.1.202"
local-data: "cdn2-sea1.valve.net. A 192.168.1.202"
local-zone: "steam-content-dnld-1.apac-1-cdn.cqloud.com." redirect
local-data: "steam-content-dnld-1.apac-1-cdn.cqloud.com. A 192.168.1.202"
local-zone: "steam-content-dnld-1.eu-c1-cdn.cqloud.com." redirect
local-data: "steam-content-dnld-1.eu-c1-cdn.cqloud.com. A 192.168.1.202"
local-data: "steam.apac.qtlglb.com. A 192.168.1.202"
local-data: "edge.steam-dns.top.comcast.net. A 192.168.1.202"
local-data: "edge.steam-dns-2.top.comcast.net. A 192.168.1.202"
local-data: "steam.naeu.qtlglb.com. A 192.168.1.202"
local-data: "steampipe-kr.akamaized.net. A 192.168.1.202"
local-data: "steam.ix.asn.au. A 192.168.1.202"
local-data: "steam.eca.qtlglb.com. A 192.168.1.202"
local-data: "steam.cdn.on.net. A 192.168.1.202"
local-data: "update5.dota2.wmsj.cn. A 192.168.1.202"
local-data: "update2.dota2.wmsj.cn. A 192.168.1.202"
local-data: "update6.dota2.wmsj.cn. A 192.168.1.202"
local-data: "update3.dota2.wmsj.cn. A 192.168.1.202"
local-data: "update1.dota2.wmsj.cn. A 192.168.1.202"
local-data: "update4.dota2.wmsj.cn. A 192.168.1.202"
local-data: "update5.csgo.wmsj.cn. A 192.168.1.202"
local-data: "update2.csgo.wmsj.cn. A 192.168.1.202"
local-data: "update4.csgo.wmsj.cn. A 192.168.1.202"
local-data: "update3.csgo.wmsj.cn. A 192.168.1.202"
local-data: "update6.csgo.wmsj.cn. A 192.168.1.202"
local-data: "update1.csgo.wmsj.cn. A 192.168.1.202"
local-data: "st.dl.bscstorage.net. A 192.168.1.202"
local-data: "cdn.mileweb.cs.steampowered.com.8686c.com. A 192.168.1.202"

# Configuration for teso
local-data: "live.patcher.elderscrollsonline.com. A 192.168.1.202"

# Configuration for twitch
local-data: "d3rmjivj4k4f0t.cloudfront.net. A 192.168.1.202"
local-data: "addons.forgesvc.net. A 192.168.1.202"
local-data: "media.forgecdn.net. A 192.168.1.202"
local-data: "files.forgecdn.net. A 192.168.1.202"

# Configuration for uplay
local-zone: "cdn.ubi.com." redirect
local-data: "cdn.ubi.com. A 192.168.1.202"

# Configuration for warframe
local-data: "content.warframe.com. A 192.168.1.202"

# Configuration for wargaming

# Configuration for xboxlive
local-data: "assets1.xboxlive.com. A 192.168.1.202"
local-data: "assets2.xboxlive.com. A 192.168.1.202"
local-data: "dlassets.xboxlive.com. A 192.168.1.202"
local-data: "xboxone.loris.llnwd.net. A 192.168.1.202"
local-zone: "xboxone.loris.llnwd.net." redirect
local-data: "xboxone.loris.llnwd.net. A 192.168.1.202"
local-data: "xboxone.vo.llnwd.net. A 192.168.1.202"
local-data: "xbox-mbr.xboxlive.com. A 192.168.1.202"
local-data: "assets1.xboxlive.com.nsatc.net. A 192.168.1.202"

# Configuration for windowsupdates
local-zone: "windowsupdate.com." redirect
local-data: "windowsupdate.com. A 192.168.1.202"
local-data: "windowsupdate.com. A 192.168.1.202"
local-zone: "dl.delivery.mp.microsoft.com." redirect
local-data: "dl.delivery.mp.microsoft.com. A 192.168.1.202"
local-data: "dl.delivery.mp.microsoft.com. A 192.168.1.202"
local-zone: "update.microsoft.com." redirect
local-data: "update.microsoft.com. A 192.168.1.202"
local-zone: "do.dsp.mp.microsoft.com." redirect
local-data: "do.dsp.mp.microsoft.com. A 192.168.1.202"
local-zone: "microsoft.com.edgesuite.net." redirect
local-data: "microsoft.com.edgesuite.net. A 192.168.1.202"
local-data: "amupdatedl.microsoft.com. A 192.168.1.202"
local-data: "amupdatedl2.microsoft.com. A 192.168.1.202"
local-data: "amupdatedl3.microsoft.com. A 192.168.1.202"
local-data: "amupdatedl4.microsoft.com. A 192.168.1.202"
local-data: "amupdatedl5.microsoft.com. A 192.168.1.202"

edit: If you do this, make sure your lancache-docker isn't using your pfSense for the UPSTREAM_DNS resolver!  Use a public DNS resolver like 9.9.9.9 or 1.1.1.1

 

You can generate your own list using this:

https://github.com/zeropingheroes/lancache-dns-pfsense

 

If you do this and get "error: local-data in redirect zone must reside at top of zone" when loading into pfesense, just remove the entry it's complaining about as there is a parent domain redirect entry which makes it unnecessary anyway.

Finally have this working, thanks all, took me a while ;-)

 

It makes me wonder if its possible to add an additional list of domains perhaps with shorter custom cache times, could be useful in some situations.

Link to comment
  • 2 weeks later...

Wondering if the lancache files can be copied to another server with lancache installed?

 

Mate is setting up his own Unraid server and wants to run lancache too but has very poor internet speeds and small download limit. Am I able to copy my cached downloads to USB and copy to his server?

 

Had a bit of a search but couldn't find an answer. Apologies if its been asked before.

Link to comment

I have got to be going crazy.. But after 4 hours I really need some advise...

Moved over to pfsense running on a vm in my unraid box with a dedicated nic.

 

Before this with my old eh router, assigning a br0 ip address would just pop it up in the router no issues.

pfsense i get nothing. doesn't show at all. and in the log i get "2020/05/25 03:17:13 [emerg] 2202#2202: bind() to 0.0.0.0:80 failed (98: Address already in use)"

 

while running pfsense even if i set the DNS to the unraid set br0 ip address for the lancache, it doesn't work.

Old router, works like a charm.

*pulls hair out* Any ideas...?

Link to comment
On 5/25/2020 at 5:08 AM, ampm-it said:

I have got to be going crazy.. But after 4 hours I really need some advise...

Moved over to pfsense running on a vm in my unraid box with a dedicated nic.

 

Before this with my old eh router, assigning a br0 ip address would just pop it up in the router no issues.

pfsense i get nothing. doesn't show at all. and in the log i get "2020/05/25 03:17:13 [emerg] 2202#2202: bind() to 0.0.0.0:80 failed (98: Address already in use)"

 

while running pfsense even if i set the DNS to the unraid set br0 ip address for the lancache, it doesn't work.

Old router, works like a charm.

*pulls hair out* Any ideas...?

Not what you want to hear, but dedicated hardware for pfsense?  I'm all for the consolidation that unRAID brings, but you want your network/internet to "just work" and ideally not go offline just because you have to bring down your unRAID array for some reason.

Link to comment
2 hours ago, ConnectivIT said:

Not what you want to hear, but dedicated hardware for pfsense?  I'm all for the consolidation that unRAID brings, but you want your network/internet to "just work" and ideally not go offline just because you have to bring down your unRAID array for some reason.

I was thinking the same thing, but if all of your DNS servers are running on unRaid anyway, you are basically taking the internet down with unRaid anyway.  With that said, I'm still running pfsense on dedicated hardware because I don't trust a docker to not be compromised and your firewall is something important enough to care a little more about than standard dockers.  Your firewall is there to protect your network and you would be putting an interface on unRaid directly on the internet.  Not really a good idea, IMO.

Link to comment

If anyone could help with the issues I'm having with lancache that would be brilliant. 

Whenever I download a game it starts fine at my internet speed for either a few seconds or a few minutes and then it slows down until it gets to bytes a second and then it completely stops.

It's adding files to my cache all the time it's working before completely dying.

Any help on how to debug this would be greatly appreciated.

Link to comment
  • 3 weeks later...

Have install the lancache-bundle this evening, DNS is working fine.

 

When we try and download a game on Steam, all cpu cores go straight to 100% on unraid and nothing actually downloads.

 

The cache directory is empty and steam says downloading with no progress. Cancelling the download, the cpu goes back to idle.

Link to comment

Hello,

I have the lancache docker running on unraid and a pihole on a raspberrypi.

The Pihole works as dhcp server and has the lancache as upstream dns.

If i download a game it doesnt get cached, i see logs filling, i see that in ressource monitor the steam.exe/origin.exe (tested with these both) downloads from my lancache ip adress but its not caching.

nslookup steamcontent.com gives me the ip from the lancache aswell.

I tried skipping the pihole and setting the dns directly to the lancache ip but that doesnt work either.

The cache folder just stays empty.

Hope you can help me

Link to comment

So I finally have my lancache server working and have successfully cached several ps4 games and am able to pull them from the cache as required. I have issue with one particular game (Horizon Zero Dawn) I believe one of the cache slices is corrupted as I am unable to install the update successfully from the lancache but it works perfectly fine when downloaded directly from the internet. My question is how to remove this corrupt element from the cache without wiping all existing data already stored in the cache. I found a post on github regarding purging elements of the cache using the following; ./nginx-cache-purge nameoffile /some/path/tofile. How would I do this in the case of the lancache-bundle docker?

Link to comment

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.