Steam, Origin, etc. Content Networks - A list



  • Because I love optimizing, and because I can't find it anywhere on Google, here's a list of content networks for game downloads that I've come across with Steam and Origin, from forums and from my own snapshots of TCP connections:

    Edit: Thanks to LanCache, this list is now a LOT more inclusive and specific, where I'm no longer using large /24 blocks at all. For your convenience, a download of these aliases complete with descriptions is attached, along with several game-related ports. I even went ahead and made a quick script to resolve and sort all the a###.hsar.steampowered.com.edgesuite.net and valve###.cs.steampowered.com IPs, since many of these aliases contain duplicate IPs from other aliases, making it a lot less than ~400 addresses.

    
    cs.steampowered.com content1.steampowered.com content2.steampowered.com content3.steampowered.com content4.steampowered.com content5.steampowered.com content6.steampowered.com content7.steampowered.com content8.steampowered.com clientconfig.akamai.steamstatic.com l3cdn.riotgames.com dist.blizzard.com.edgesuite.net llnw.blizzard.com dist.blizzard.com hirez.http.internapcdn.net akamai.cdn.ea.com pls.patch.station.sony.com 23.67.244.168/30 23.67.244.176/30 23.67.244.184/30 23.67.244.192/30 23.67.244.200/30 23.67.244.208/30 23.67.244.216/31 lvlt.cdn.ea.com 103.10.124.8/32 103.10.125.15/32 103.10.125.18/31 103.28.54.12/32 103.28.54.8/31 146.66.153.250/32 146.66.156.12/31 173.167.56.174/32 173.245.194.50/32 173.245.216.194/31 173.245.216.196/32 173.245.218.194/31 173.245.218.196/32 185.25.180.12/31 185.25.183.10/31 194.124.229.17/32 195.50.121.122/32 195.50.91.238/32 199.229.227.122/32 199.229.227.158/32 203.131.243.66/32 205.171.40.174/32 205.185.194.10/32 205.185.220.130/31 205.185.220.132/32 205.196.6.130/31 208.64.200.7/31 208.64.200.9/32 208.64.202.252/32 208.64.203.16/32 208.64.203.26/32 209.197.10.85/31 209.197.18.147/31 209.197.20.100/30 209.197.26.242/31 209.197.26.246/32 209.197.29.194/32 209.197.29.219/32 209.197.30.34/31 209.197.6.230/31 209.197.6.232/32 212.162.11.102/32 212.162.11.54/32 212.162.17.202/32 212.162.17.214/32 212.162.18.102/32 212.162.25.34/32 212.187.192.14/32 212.187.192.158/32 212.187.192.162/32 212.3.238.162/32 212.72.47.42/32 212.73.200.186/32 212.73.203.62/32 212.73.205.178/32 212.73.248.14/32 212.73.249.22/32 213.242.108.38/32 213.242.110.94/32 213.242.110.98/32 213.248.98.82/32 213.248.98.86/32 4.26.35.154/32 4.28.130.22/32 4.28.130.42/32 4.28.151.210/32 4.28.20.42/32 4.28.56.74/32 4.30.21.122/32 4.31.28.74/32 4.31.8.238/32 4.53.114.118/32 4.53.114.174/32 4.53.202.10/32 4.59.90.42/32 4.71.126.2/32 4.71.136.118/32 4.71.183.242/32 4.71.22.214/32 4.71.244.170/32 4.78.132.198/32 4.78.155.50/32 4.79.238.62/32 49.143.234.14/32 49.143.234.18/32 49.143.234.6/32 50.242.151.22/32 50.242.151.26/32 62.115.11.250/32 62.115.37.66/32 62.115.37.70/32 62.115.37.74/32 62.115.37.78/32 62.140.24.122/32 63.145.224.22/32 63.148.172.214/32 63.149.72.158/32 63.156.205.54/32 63.231.204.94/32 63.234.91.158/32 65.112.64.246/32 65.113.32.98/32 65.113.48.90/32 65.113.64.122/32 65.115.96.210/32 65.115.96.238/32 65.119.212.110/32 65.119.212.126/32 65.126.30.70/32 67.131.239.46/32 74.209.135.131/32 77.67.107.102/32 77.67.56.162/32 77.67.56.170/32 77.67.56.178/32 77.67.56.186/32 77.67.60.130/32 77.67.60.154/32 77.67.60.34/32 77.67.60.42/32 77.67.60.50/32 77.67.60.58/32 77.67.61.234/32 79.141.161.11/32 79.141.165.3/32 79.141.166.2/32 79.141.173.15/32 80.239.130.254/32 80.239.160.42/32 80.239.194.134/32 80.239.194.138/32 80.239.194.142/32 80.239.194.146/32 80.239.194.150/32 80.239.194.154/32 80.239.194.158/32 80.239.194.162/32 80.239.196.234/32 80.239.196.238/32 80.239.196.242/32 80.239.196.246/32 81.171.106.194/32 81.171.115.11/31 81.171.115.13/32 81.171.68.194/31 81.171.70.194/32 81.171.70.221/31 95.141.27.2/32 8.27.243.253/32 23.0.160.222/32 2.16.216.185/31 184.31.120.26/32
    
    

    As you may or may not know, both Steam and Origin now use HTTP to deliver content, so the 'ol "download ports" don't really work very well except to throttle stuff like map downloads.

    It's relatively easy to find the addresses:

    • Start a big download
    • Go to Diagnostics->pfTop
    • Sort by Expiry
    • Look for packets with source port of 80 (HTTP) and high amounts of bytes, almost always in state 4:4. Steam tends to use local ports >20000, while Origin tends to use local ports >30000, but that's not a hard-fast rule.

    Hopefully we can make a nice list together for gaming households with limited bandwidth (and/or if you want to use a specific CDN).
    aliases-gaming.xml.txt



  • I have been trying to determine servers of steam for a while now. I have even asked people in this forum for traffic shaping purposes.

    I highly doubt that these servers are steam's permanent download servers. I have checked steam's download ip's to track original server ip's with no luck. I have always found ip's like 8.0.0.0/8 which relates Tier1 network providers which are NOT steam servers per se.

    I'm really interested in finding out those server ip's but these ip's are subject to change imho, I'm also interested in hearing your argument too.



  • This might be interesting read:
    http://blog.multiplay.co.uk/2014/04/lancache-dynamically-caching-game-installs-at-lans-using-nginx/
    They don't want to block it but need a way to get all the destinations which they have to cache likewise.



  • @GruensFroeschli:

    This might be interesting read:
    http://blog.multiplay.co.uk/2014/04/lancache-dynamically-caching-game-installs-at-lans-using-nginx/
    They don't want to block it but need a way to get all the destinations which they have to cache likewise.

    Ah excellent find! Now I can get rid of the ubiquitous /24 blocks and I even made a quick script to resolve and sort all those ".hsar.steampowered.com.edgesuite.net" and ".cs.steampowered.com" entries that LanCache/nginx was setup to use, which turned out to be ~100 unique IPs or sets of IPs.

    I've since edited my post, along with an attachment of my aliases.

    @denizv:

    I have been trying to determine servers of steam for a while now. I have even asked people in this forum for traffic shaping purposes.

    I highly doubt that these servers are steam's permanent download servers. I have checked steam's download ip's to track original server ip's with no luck. I have always found ip's like 8.0.0.0/8 which relates Tier1 network providers which are NOT steam servers per se.

    I'm really interested in finding out those server ip's but these ip's are subject to change imho, I'm also interested in hearing your argument too.

    I don't think the IPs will necessarily change, but any one individual will only see a fraction of these IPs, since they are for content delivery networks that are designed to contain bandwidth usage in as close to the individual as possible. For example the aXXX.hsar.steampowered.com.edgesuite.net (Akamai) and valveXXX.cs.steampowered.com addresses, which are about 150 unique IPs, represent the actual CDNs scattered across the world on different ISPs; however, even if an IP for the Internet is located halfway across the world, it still has to be unique.



  • I immedietaly tested your settings I just copied the "xWANIPxGameDownloadProviders" section to my alias'.

    I created a rule to match (actually i use pass for a reason) a new queue and prepared my bench system and started to download a free game from steam.

    Unfortunetely your ip's is not the whole ip's for steam. You may know steam can use 5-10 different ip's or connections when it downloads something.Furthermore, ip's can be changed every minute of the download by closing a connection and establishing a new one

    I watched carefully and some ip's are matched to alias and did go to newly created queue, rest of them did go to my usual 80 port rule's queue. Chances of going to right queue is 50/50

    But I think you are on the right track, you may discover new hostnames that could cover 10's or 100's of ip's, instead of writing pages of individual ip's



  • @denizv:

    I immedietaly tested your settings I just copied the "xWANIPxGameDownloadProviders" section to my alias'.

    I created a rule to match (actually i use pass for a reason) a new queue and prepared my bench system and started to download a free game from steam.

    Unfortunetely your ip's is not the whole ip's for steam. You may know steam can use 5-10 different ip's or connections when it downloads something.Furthermore, ip's can be changed every minute of the download by closing a connection and establishing a new one

    I watched carefully and some ip's are matched to alias and did go to newly created queue, rest of them did go to my usual 80 port rule's queue. Chances of going to right queue is 50/50

    But I think you are on the right track, you may discover new hostnames that could cover 10's or 100's of ip's, instead of writing pages of individual ip's

    Well I expected eventually I'd find someone somewhere who didn't connect to the same servers, which is why I very much consider this list an on-going process. I also plan on looking into more deeply inspecting packets and see if I can route them that way; but the big problem with games is that for every 1 well-coded game, there's like 10 badly-coded games.

    And yeah I wish there was one hostname which covered a bunch of IPs, but it looks like Steam specifically doesn't use a nameserver to determine how to resolve a single hostname with a crapton of IPs, instead having a crapton of aliases which resolve to only ~2 IPs on average, which can overlap with other aliases:

    aXXX.hsar.steampowered.com.edgesuite.net –- this is an Akamai-based CDN which starts ~a500 and goes all the way up to ~a700 (~200 different aliases!). They are all aliases to aXXX.d.akamai.com, and use Akamai's nameservers.

    valveXXX.cs.steampowered.com go from valve1.cs.steampowered.com to about valve220.cs.steampowered.com and seem to be from blocks from different ISPs and they all use Valve's nameservers. Each alias contains an average of 1.5 IPs (many are just 1 IP), up to 4 IPs, and again can overlap, but not as much as the previous block of aliases.

    Now LanCache also has "content1.steampowered.com", "content2.steampowered.com", etc., which each one uses a different ISP, so maybe those might resolve differently based on location? If you have a Linux box or Cygwin, you can use my script if you want to check everything:

    
    #!/bin/sh
    # Get a bunch of hosts.
    
    # $# means number of arguments.
    if [ ! $# -eq 4 ]; then
            echo "Usage: ${0##*/} [start] [end] [prefix] [addr]"
            echo ""
            echo 'Example: Log addresses for valve1 to valve198 for valveXXX.cs.steampowered.com.'
            echo "$0 1 198 valve cs.steampowered.com"
            exit 1
    fi
    
    num=$1
    prefix=$3
    addr=$4
    rm $addr.txt && touch $addr.txt
    while [ $num -le $2 ]; do
            host $prefix$num.$addr >> $addr.txt
            num=`expr $num + 1`
    done
    
    grep -v SERVFAIL $addr.txt > ${addr}_pruned.txt
    grep -v "alias for" ${addr}_pruned.txt > ${addr}_pruned.txt.tmp && mv ${addr}_pruned.txt.tmp ${addr}_pruned.txt
    sed -n 's#[a-zA-Z]*[0-9]*\.[^[:space:]]* has address \([0-9.]*\)#\1#p' ${addr}_pruned.txt > ${addr}_pruned.txt.tmp && mv ${addr}_pruned.txt.tmp ${addr}_pruned.txt
    sort ${addr}_pruned.txt > ${addr}_pruned.txt.tmp && mv ${addr}_pruned.txt.tmp ${addr}_pruned.txt
    uniq ${addr}_pruned.txt > ${addr}_pruned.txt.tmp && mv ${addr}_pruned.txt.tmp ${addr}_pruned.txt
    
    


  • Ok, i ran your script for 3 different nameservers. I'm addind the results as an attachement

    Why not add all names one by one like a001,a002 to the aliases. It takes time but it should work if they are all of them

    cs.steampowered.com.txt
    hsar.steampowered.com.edgesuite.net.txt
    steampowered.com.txt


Log in to reply