cache-domains

hotplug script to dynamically configure the local DNS (dnsmasq) to redirect game content servers to a LAN cache. Definitive list dynamically obtained from https://github.com/uklans/cache-domains.

Configuration

The configuration file (/etc/cache-domains.json) follows the same syntax as the upsteam file. The key for each cache_domains member matches the name of one of the .txt files in the upstream root directory, except for the default key which matches the all the unreferenced .txt files. The value of each cache_domains member maps to one of the keys of the ips members, Thus mapping a cached domain to a list of IP addresses/LAN cache server.

{
	"ips": {
		"server1":	["10.10.3.10", "10.10.3.11"],
		"server2":	"10.10.3.12",
		"server3":	"10.10.3.13"
	},
	"cache_domains": {
		"default":	"server1",
		"blizzard":	"server1",
		"origin":	"server1",
		"steam":	"server2",
		"wsus":		"server3",
		"xboxlive":	"server3"
	}
}

Configure/Cleanup

/usr/bin/cache-domains configure will configure the local DNS (dnsmasq) to redirect the configured cache domains. /usr/bin/cache-domains cleanup will cleanup redirection. The hotplug script calls /usr/bin/cache-domains configure when the WAN interface is brought up.

Testing

After configuring with the above example configuration, running nslookup lancache.steamcontent.com would return 10.10.3.12