Compare commits

...

10 Commits

Author SHA1 Message Date
Kevin Brierly
b4da1c73b7
Merge 56a6d2f00f into e7fc17ae5b 2025-07-18 23:08:06 +10:00
Amir Zarrinkafsh
e7fc17ae5b
fix(wsus): add missing domains (#269)
This change looks to address some missing domains that seem to be included in the [11notes/windows-update-cache](https://github.com/11notes/docker-windows-update-cache/blob/main/rootfs/etc/nginx/.default/nginx.conf) project.

Closes #231.
2025-07-18 14:08:04 +01:00
Amir Zarrinkafsh
914630b45b
fix(nintendo): remove obsolete entry (#266)
The domain in question is already covered by a wildcard defined further in the list. In AdGuard Home this was causing said domain to have a round-robin DNS entry with the same IP twice.
2025-07-18 10:04:48 +01:00
Amir Zarrinkafsh
0fb55395bb
fix: explicitly specify ipv4 addresses in adguard script (#265)
* fix: explicitly specify ipv4 addresses

This change fixes the AdGuard Home generation script by disabling the return of ipv6 addresses. This would have been causing issues for users who are running dual stack with the addresses that accept both ipv4 and ipv6 traffic.

* fix: explicitly block returning on ipv6 queries
2025-07-18 09:39:48 +01:00
Robert Pendell
8d958802a5
Fix line endings so that scripts generate correctly. (#264) 2025-07-17 07:49:50 +01:00
James Kinsman
490f1d2c23
Merge pull request #263 from uklans/test
Add new test CDN

When a network is using lancache-dns individual service configuration can be tested using nslookup <service>.cache.lancache.net however if a network is using the generator configs these lancache domains don't exist. This PR adds a new test service for ease of memory for diagnostics
2025-07-16 21:07:19 +01:00
James Kinsman
46712eff2c
Update test.txt
missing blank line
2025-07-16 20:18:56 +01:00
James Kinsman
6c12ed6be5
Add new test CDN
Add new test cdn for the use in testing and diagnostics. Assuming the test service is enabled test.cache.lancache.net and canary.uklans.net will respond with a lancache IP
2025-07-16 20:11:18 +01:00
Kevin Brierly
56a6d2f00f
Update create-blocky.sh 2022-11-13 21:21:13 -06:00
Kevin Brierly
dec3811066
Create create-blocky.sh
Add create script for blocky custom dns yaml configuration
2022-11-13 20:54:52 -06:00
6 changed files with 103 additions and 2 deletions

View File

@ -126,6 +126,11 @@
"name": "xboxlive", "name": "xboxlive",
"description": "CDN for xboxlive", "description": "CDN for xboxlive",
"domain_files": ["xboxlive.txt"] "domain_files": ["xboxlive.txt"]
},
{
"name": "test",
"description": "Test CDN, recommended to enable for additional diagnostics",
"domain_files": ["test.txt"]
} }
] ]
} }

View File

@ -1,4 +1,3 @@
ccs.cdn.wup.shop.nintendo.net
ccs.cdn.wup.shop.nintendo.net.edgesuite.net ccs.cdn.wup.shop.nintendo.net.edgesuite.net
geisha-wup.cdn.nintendo.net geisha-wup.cdn.nintendo.net
geisha-wup.cdn.nintendo.net.edgekey.net geisha-wup.cdn.nintendo.net.edgekey.net

View File

@ -60,6 +60,7 @@ while read entry; do
fi fi
for i in ${cacheip}; do for i in ${cacheip}; do
echo "${domainprefix}${parsed}^\$dnsrewrite=${i}" >> ${outputfile} echo "${domainprefix}${parsed}^\$dnsrewrite=${i}" >> ${outputfile}
echo "${domainprefix}${parsed}^\$dnstype=AAAA" >> ${outputfile}
done done
done <<< $(cat ${basedir}/$filename | sort); done <<< $(cat ${basedir}/$filename | sort);
done <<< $(jq -r ".cache_domains[${entry}].domain_files[${fileid}]" ${path}) done <<< $(jq -r ".cache_domains[${entry}].domain_files[${fileid}]" ${path})

88
scripts/create-blocky.sh Normal file
View File

@ -0,0 +1,88 @@
#!/bin/bash
basedir=".."
outputdir="output/blocky"
path="${basedir}/cache_domains.json"
export IFS=' '
test=$(which jq);
out=$?
if [ $out -gt 0 ] ; then
echo "This script requires jq to be installed."
echo "Your package manager should be able to find it"
exit 1
fi
cachenamedefault="disabled"
while read -r line; do
ip=$(jq ".ips[\"${line}\"]" config.json)
declare "cacheip${line}"="${ip}"
done <<< $(jq -r '.ips | to_entries[] | .key' config.json)
while read -r line; do
name=$(jq -r ".cache_domains[\"${line}\"]" config.json)
declare "cachename${line}"="${name}"
done <<< $(jq -r '.cache_domains | to_entries[] | .key' config.json)
rm -rf ${outputdir}
mkdir -p ${outputdir}
outputfile=${outputdir}/custom_dns.yml
cat > $outputfile << EOF
customDNS:
customTTL: 1h
filterUnmappedTypes: true
mapping:
EOF
while read -r entry; do
unset cacheip
unset cachename
unset cacheip_count
unset ciplist
key=$(jq -r ".cache_domains[$entry].name" $path)
cachename="cachename${key}"
if [ -z "${!cachename}" ]; then
cachename="cachenamedefault"
fi
if [[ ${!cachename} == "disabled" ]]; then
continue;
fi
cacheipname="cacheip${!cachename}"
cacheip=$(jq -r 'if type == "array" then .[] else . end' <<< ${!cacheipname} | xargs)
while read -r fileid; do
while read -r filename; do
while read -r fileentry; do
# Ignore comments, newlines and wildcards
if [[ ${fileentry} == \#* ]] || [[ -z ${fileentry} ]]; then
continue
fi
parsed=$(echo ${fileentry} | sed -e "s/^\*\.//")
cacheip_count=1
for i in ${cacheip}; do
if [ $cacheip_count -gt 1 ]
then
ciplist="${ciplist}, ${i}"
else
ciplist="${i}"
fi
cacheip_count=$((cacheip_count+1))
done
if grep -qx " ${parsed}: ${ciplist}" "${outputfile}"; then
continue
fi
echo " ${parsed}: ${ciplist}" >> "${outputfile}"
done <<< $(cat ${basedir}/${filename} | sort);
done <<< $(jq -r ".cache_domains[${entry}].domain_files[$fileid]" ${path})
done <<< $(jq -r ".cache_domains[${entry}].domain_files | to_entries[] | .key" ${path})
done <<< $(jq -r '.cache_domains | to_entries[] | .key' ${path})
cat << EOF
Configuration generation completed.
Please copy output/blocky/custom_dns.yml to your blocky config directory, or integrate
it into your main config.yml
EOF

6
test.txt Normal file
View File

@ -0,0 +1,6 @@
canary.uklans.net
litmus.uklans.net
trigger.uklans.net
canary.lancache.net
litmus.lancache.net
trigger.lancache.net

View File

@ -9,3 +9,5 @@ amupdatedl2.microsoft.com
amupdatedl3.microsoft.com amupdatedl3.microsoft.com
amupdatedl4.microsoft.com amupdatedl4.microsoft.com
amupdatedl5.microsoft.com amupdatedl5.microsoft.com
officecdn.microsoft.com
officecdn.microsoft.com.edgesuite.net