Merge branch 'master' into feature/reduce-steam-domains

This commit is contained in:
James Kinsman 2022-07-29 08:30:54 +01:00 committed by GitHub
commit 593765ccd1
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 129 additions and 34 deletions

View file

@ -1,4 +1,3 @@
assetcdn.101.arenanetworks.com
assetcdn.102.arenanetworks.com
assetcdn.103.arenanetworks.com
live.patcher.bladeandsoul.com

View file

@ -1,12 +1,9 @@
dist.blizzard.com
dist.blizzard.com.edgesuite.net
llnw.blizzard.com
edgecast.blizzard.com
blizzard.vo.llnwd.net
blzddist1-a.akamaihd.net
blzddist2-a.akamaihd.net
blzddist3-a.akamaihd.net
blzddist4-a.akamaihd.net
level3.blizzard.com
nydus.battle.net
edge.blizzard.top.comcast.net

View file

@ -35,11 +35,6 @@
"description": "CDN for frontier games",
"domain_files": ["frontier.txt"]
},
{
"name": "hirez",
"description": "CDN for hirez",
"domain_files": ["hirez.txt"]
},
{
"name": "nexusmods",
"description": "Nexus mods / skyrim content",

View file

@ -1 +0,0 @@
hirez.http.internapcdn.net

View file

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

View file

@ -1,16 +1,17 @@
rxmirror.ctgamehosts.uk
eu-ger.hetzner.ctgamehosts.uk
us-chi2.cncirc.net
us-lv2.cncirc.net
us-nj.shockhosting.ctgamehosts.uk
us-va.ovh.ctgamehosts.uk
mirror.us.tyrant.gg
mirror.usa.tyrant.gg
rxp-de1.ts3-server.ch
rxp-lax2.cncfps.com
apac-sg.nexusbytes.ren-x.com
us-la.cncfps.com
us-lv.buyvm.ren-x.com
us-ny.buyvm.ren-x.com
eu-lux.buyvm.ren-x.com
apac-tyo.nexusbytes.ren-x.com
eu-uk.nexusbytes.ren-x.com
apac-sg.nexusbytes.ren-x.com
eu-nl.nexusbytes.ren-x.com
eu-uk.nexusbytes.ren-x.com
us-mia.buyvm.ren-x.com
us-lv.buyvm.renegade-x.com
us-ny.buyvm.renegade-x.com
eu-lux.buyvm.renegade-x.com
us-phx.speedy.ren-x.com
us-dal.boomerhost.ren-x.com
us-chi.racknerd.ren-x.com

114
scripts/create-rpz.sh Executable file
View file

@ -0,0 +1,114 @@
#!/bin/bash
basedir=".."
outputdir="output/rpz"
path="${basedir}/cache_domains.json"
basedomain=${1:-lancache.net}
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 line; do
ip=$(jq ".ips[\"${line}\"]" config.json)
declare "cacheip$line"="$ip"
done <<< $(jq -r '.ips | to_entries[] | .key' config.json)
while read 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}/db.rpz.$basedomain
cat > $outputfile << EOF
\$TTL 60 ; default TTL
\$ORIGIN rpz.$basedomain.
@ SOA ns1.$basedomain. admin.$basedomain. (
$(date +%Y%m%d01) ; serial
604800 ; refresh (1 week)
600 ; retry (10 mins)
600 ; expire (10 mins)
600 ; minimum (10 mins)
)
NS ns1.$basedomain.
NS ns2.$basedomain.
EOF
while read entry; do
unset cacheip
unset cachename
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 fileid; do
while read filename; do
echo "" >> $outputfile
echo "; $(echo $filename | sed -e 's/.txt$//')" >> $outputfile
destfilename=$(echo $filename | sed -e 's/txt/conf/')
while read fileentry; do
# Ignore comments and newlines
if [[ $fileentry == \#* ]] || [[ -z $fileentry ]]; then
continue
fi
parsed=$(echo $fileentry)
if grep -qx "^\"${parsed}\". " $outputfile; then
continue
fi
t=""
for i in ${cacheip}; do
# only one cname per domain is allowed
if [[ ${t} = "CNAME" ]]; then
continue
fi
# for cnames you must use a fqdn with trailing dot
t="CNAME"
if [[ ${i} =~ ^[0-9\.]+$ ]] ; then
t="A"
elif [[ ! ${i} =~ \.$ ]] ; then
i="${i}."
fi
printf "%-50s IN %s %s\n" \
"${parsed}" \
"${t}" \
"${i}" \
>> $outputfile
done
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 include the rpz zone in your bind configuration"
- cp $outputfile /etc/bind
- configure the zone and use it
options {
[...]
response-policy {zone "rpz.$basedomain";};
[...]
}
zone "rpz.$basedomain" {
type master;
file "/etc/bind/db.rpz.$basedomain";
};
EOF

View file

@ -1,6 +1,4 @@
gs2.ww.prod.dl.playstation.net
gs2.sonycoment.loris-e.llnwd.net
pls.patch.station.sony.com
*.gs2.ww.prod.dl.playstation.net
*.gs2.sonycoment.loris-e.llnwd.net
gs2-ww-prod.psn.akadns.net

View file

@ -1,19 +1,16 @@
dl1.wargaming.net
dl2.wargaming.net
wg.gcdn.co
wgusst-na.wargaming.net
wgusst-eu.wargaming.net
update-v4r4h10x.worldofwarships.com
wgus-wotasia.wargaming.net
dl-wot-ak.wargaming.net
dl-wot-gc.wargaming.net
dl-wot-se.wargaming.net
dl-wot-se.wargaming.net
dl-wot-cdx.wargaming.net
dl-wows-ak.wargaming.net
dl-wows-gc.wargaming.net
dl-wows-se.wargaming.net
dl-wows-se.wargaming.net
dl-wows-cdx.wargaming.net
dl-wowp-ak.wargaming.net
dl-wowp-gc.wargaming.net
dl-wowp-se.wargaming.net
dl-wowp-se.wargaming.net
dl-wowp-cdx.wargaming.net
wgus-woteu.wargaming.net

View file

@ -1,5 +1,4 @@
*.windowsupdate.com
windowsupdate.com
*.dl.delivery.mp.microsoft.com
dl.delivery.mp.microsoft.com
*.update.microsoft.com

View file

@ -1,8 +1,5 @@
assets1.xboxlive.com
assets2.xboxlive.com
xboxone.loris.llnwd.net
*.xboxone.loris.llnwd.net
xboxone.vo.llnwd.net
xbox-mbr.xboxlive.com
assets1.xboxlive.com.nsatc.net
xvcf1.xboxlive.com