Closed Travis-Snoozy closed 1 year ago
Note that an alternate approach -- setting the AAAA record to a nominal "NULL address" (the words of the dsmasq man page) via address=/lancache.steamcontent.com/::
-- was tested. While it does work for the Windows Steam client, it does not work for the Linux steam client.
The behavior of dnsmasq changed in version 2.86 -- before then, if a record was set for a domain name with dnsmasq, and a record for a type not specified for that domain was requested, dnsmasq would indicate no data existed for that record type. After 2.86, record types that are not specified are instead passed upstream. The latter behavior causes problems for the Steam client, which will disregard a correctly set A-record for lancache.steamcontent.com, if no AAAA is set with dnsmasq and dnsmasq passes the AAAA query upstream. The documentation for dnsmasq indicates the correct way to restore the old behavior is to use the local=/host/ syntax -- emit this syntax for each of our lancache-hosted DNS entries.
What CDN does this PR relate to
Steam
Does this require running via sniproxy
N/A (create-dnsmasq.sh update)
Capture method
N/A (create-dnsmasq.sh update)
Testing Scenario
Home network, Linux, Windows, Steamdeck clients; OpenWRT (dnsmasq-based) router serving DNS. Deleted prior dnsmasq config, ran create-dnsmasq.sh, copied the generated output/dnsmasq/steam.conf file to the router's configuration directory for dnsmasq (/tmp/dnsmasq.d/), restarted dnsmasq on the router, and verified no AAAA record is served. Restarted Steam on each of the platforms, monitored the lancache access log, verified all three types of client access the cache correctly.
Testing Configuration
Sniproxy output
N/A