lancachenet / lancache-dns

DNS Docker service for a lancache.
https://hub.docker.com/r/lancachenet/lancache-dns/
MIT License
282 stars 74 forks source link

Steam cant connect to steam servers #79

Closed spencerskinner99 closed 5 years ago

spencerskinner99 commented 5 years ago

Issue Description: My steam client is unable to connect to the servers when trying to download a game for the first time. To give context to my network structure:

SteamCacheDNS->PiHole->pfSenseSquid->Internet

Ive tried skipping the PiHole stage and also disabling the Squid Proxy both of which didnt change the issue. I am still able to connect to any other website, I just cant connect to the steam UK download servers.

Here are the logs from my Steamcache DNS

17-Apr-2019 23:08:41.313 client @0x55c578fd5540 192.168.2.30#62396 (cache8-lhr1.steamcontent.com): query: cache8-lhr1.steamcontent.com IN A + (172.20.0.2),
17-Apr-2019 23:08:41.371 client @0x55c578fd5540 192.168.2.30#50976 (cache35-lhr1.steamcontent.com): query: cache35-lhr1.steamcontent.com IN A + (172.20.0.2),
17-Apr-2019 23:08:41.271 client @0x55c578fd5540 192.168.2.30#53983 (cache11-lhr1.steamcontent.com): query: cache11-lhr1.steamcontent.com IN A + (172.20.0.2),
17-Apr-2019 23:08:41.222 client @0x55c578fd5540 192.168.2.30#62799 (cache31-lhr1.steamcontent.com): query: cache31-lhr1.steamcontent.com IN A + (172.20.0.2),
17-Apr-2019 23:08:41.121 client @0x55c578fd5540 192.168.2.30#65225 (cache31-lhr1.steamcontent.com): query: cache31-lhr1.steamcontent.com IN A + (172.20.0.2),
17-Apr-2019 23:08:40.971 client @0x55c578fd5540 192.168.2.30#62201 (cache6-lhr1.steamcontent.com): query: cache6-lhr1.steamcontent.com IN A + (172.20.0.2),
17-Apr-2019 23:08:40.471 client @0x55c578a2d0e0 192.168.2.30#49966 (valve423.steamcontent.com): query: valve423.steamcontent.com IN A + (172.20.0.2),
17-Apr-2019 23:08:40.672 client @0x55c578fd5540 192.168.2.30#59857 (cache11-lhr1.steamcontent.com): query: cache11-lhr1.steamcontent.com IN A + (172.20.0.2),
17-Apr-2019 23:08:40.571 client @0x55c578a2d0e0 192.168.2.30#62892 (valve423.steamcontent.com): query: valve423.steamcontent.com IN A + (172.20.0.2)

Here are the logs from my Steamcache

2019-04-17 22:41:57,465 CRIT Set uid to user 0,
Executing hook /hooks/entrypoint-pre.d/10_setup.sh,
Executing hook /hooks/entrypoint-pre.d/19_doc_root_setup,
/var/www/html already exists.,
Setting document root to /var/www/html,
Executing hook /hooks/entrypoint-pre.d/20_perms_check.sh,
Checking permissions (This may take a long time if the permissions are incorrect on large caches)...,
Permisions ok,
Executing hook /hooks/entrypoint-pre.d/20_ssl_setup,
Not enabling SSL as neither key nor cert provided.,
Executing hook /hooks/supervisord-pre.d/20_test_files_setup,
Checking if /var/www/html is empty - Directory not empty.. don't touch content,
Executing hook /hooks/supervisord-pre.d/21_cleanup_log_files,
Cleaning up log files older than 3560 days,
Executing hook /hooks/supervisord-pre.d/99_config_check.sh,
Checking nginx config,
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok,
nginx: configuration file /etc/nginx/nginx.conf test is successful,
Config check successful,
2019-04-17 22:52:54,254 CRIT Set uid to user 0

Docker Compose:

version: '2'
services:
  cache-dns:
    image: steamcache/steamcache-dns
    container_name: cache-dns
    ports:
      - 192.168.2.16:53:53/udp
    environment:
      STEAMCACHE_IP: 192.168.2.16
      UPSTREAM_DNS: 192.168.2.5
  steam-cache:
    image: steamcache/generic
    container_name: steam-cache
    ports:
      - 192.168.2.16:80:80
    volumes:
      - /media/VMRoot/VMDocker/Docker_Configs/Cache-Server/Steam/data:/data/cache 
      - /media/VMRoot/VMDocker/Docker_Configs/Cache-Server/Steam/logs:/data/logs 

I'm current unsure as to whats causing the issue, whether its a bug or its bad config on my part.

spencerskinner99 commented 5 years ago

Update -

I've started a test bench VM with only steamcache and steamcache dns on it with them both running on a secondary static IP, I've had success with the test bench but cant work out how to implement this on my main system.

On a side note I noticed some performance issues which brought the first time download speed down to 200KBs from 8MBs, although I've seen this is a common issue, so I'll just have to find tune it

spencerskinner99 commented 5 years ago

Update 2 -

So the test bench runs on two IPs, 192.168.2.17 and 192.168.2.18. When the test bench receives a DNS request on 192.168.2.18 it will send it to my Pi-Hole on 192.168.2.5 and the reply is sent back to 192.168.2.18.

Where as on the actual server im trying to deploy on has also got two IPs 192.168.2.13 and 192.168.2.16. Ive setup the cache server to run on 192.168.2.16, it will receive the DNS request on 192.168.2.16 and then it will send it to Pi-Hole on 192.168.2.13 for some reason (as opposed to sending it on 192.168.2.16), as a result Pi-Hole replies on 192.168.2.13 not 192.168.2.16. As a result I dont think its using the cache properly. Its able to resolve all other domains, just not steam ones.

Any ideas whats causing this?

spencerskinner99 commented 5 years ago

Update 3 -

Problem solved, so it seemed to be a combination of issues, the first one was some kind of port conflict which was an error on my part. The other was I hadn't given adequate permission to the cache container to write to the specified location, although the container never thew out any errors. Seems to be all working now, just need to fine tune the performance for first time downloads and sort out the mac cache size and age.