I would like to announce the release of a major project that we’ve been working for the last three weeks or so. GFL now owns its network that will be running in-front of our future game servers! This is by far my most favorite project I’ve worked on, ever. While the last three weeks have been very hectic (exchanging many emails/tickets/paperwork, actively trying to learn BGP routing + BIRD configuration, and so on), I do believe the end result will definitely be worth it, especially for GFL! I can say personally that I am learning a lot from this project and it further advances my knowledge in networking as a whole.
Our New Anycast Network
@Dreae and I decided to build an Anycast network to put in-front of GFL’s game servers. For those that do not know what an Anycast network is, this article by CloudFlare explains it well in my opinion.
Anycast itself will benefit us because we’ll be able to absorb and filter (D)DoS attacks at the PoP server level. This results in overall better (D)DoS protection. With that said, the more PoP servers we have, the more network capacity we’ll contain.
Our Current Setup
As of right now, we have nine PoP (Point Of Presence) servers scattered around the world and plan to add more as time goes on. These locations include:
- Dallas, TX (US South).
- New York City, NY (US East).
- Chicago, IL (US Central).
- Miami, FL (US South).
- Los Angeles, CA (US West).
- Seattle, WA (US West).
- Paris, FR (Europe).
- London, UK (Europe).
- Frankfurt, DE (Europe).
Here’s our Anycast layout. As of right now, we’re using the Vultr setup and don’t have any PoP servers in Tokyo and Singapore. Though, we plan to get PoP servers in these locations in the future. As of right now, the above PoP servers combined cost us $135.00/m.
Our PoP servers run SRCDS packet filtering software made by @dreae which is open-source and can be found here. @Dreae has done a great job with this!
Due to the nature of routing and networking, this new Anycast network will more than likely require active monitoring for sub-optimal routes due to things always changing. This is why we have made the following sub-forum:
In here, we will make a form where users can submit sub-optimal routes they find to our PoP servers via traceroute/MTR. With that said, we will be posting maintenance and outage events in here as well.
@Dreae and I are still exploring the world of BGP routing and BIRD configuration. However, we are making progress by using BGP communities and so on to influence routing to our PoP servers. I hope we can eventually find something better than BGP communities, but it’ll do for now.
Q - Do you plan on making a public guide going over how you’ve done all of this?
A - Yes, @Dreae and I plan to be as transparent as possible. We will be making a public guide in the future explaining everything we had to go through in order to create this network. We are still pretty new to all of this ourselves, but as time goes on and we learn, we will be making our techniques/advice public!
Q - Would you be up to host non-GFL servers via the Anycast network?
A - As of right now, this will be used specifically for GFL only. However, I am considering this in the far future (I’d LOVE to become a hosting provider some day, but A LOT goes into that and I need to gain more knowledge in networking itself before that’s a possibility).
Q - Do you plan to use other providers to host your PoP servers?
A - Yes, this is the plan and overall, this would make our network better since we wouldn’t be relying on one hosting provider to host our PoP servers. However, in order to do this, we will need our own ASN for our IPv4 block. This is a longer process since it requires verification, contracts with at least two transit providers, etc. However, in the next week I will be looking to apply for one through RIPE (our IPv4 blocker provider can sponsor us and we have two transit providers as well).
Our New IPv4 Block
We have leased our very own /24 IPv4 block. This comes with 256 IPs as Anycast only supports a minimum of /24 IPv4 blocks. Thankfully, we were able to get this entire IPv4 block for only $56.00/m, which in my opinion, is a very great deal!
The IPv4 block is 22.214.171.124/24 (usable IPs go from 126.96.36.199 to 188.8.131.52).
While being able to use this with our Anycast network is a benefit of its own. There are also other benefits of owning an IPv4 block. For example, if we were to want to switch physical hosting providers, we can do so without any IP changes as long as it’s a BGP-supported hosting provider. However, since our Anycast network itself forwards traffic from the PoP servers to the physical hosting provider, we won’t need a BGP-supported physical hosting provider. Thankfully, our new physical hosting provider has BGP-support either way. Therefore, if we were to remove our Anycast network for whatever reason, we can still setup a BGP session with them which will result in our IPs still not changing.
Since this IPv4 block was purchased using RIPE, the geo-location of the block was either non-existent or pointing towards somewhere in Europe. We want this to be set to Dallas, TX, US to start. I’ve emailed three of the biggest geo-location database providers (MaxMind, IP2Location, and Neustar). MaxMind has already made this correction last week. I emailed IP2Location last night and they replied wanting further verification which I then provided. Therefore, I am just waiting to hear back from them. Neustar has yet to reply.
I believe the Valve Master Server may use IP2Location (I initially thought they used MaxMind, but I believe I’m wrong). Therefore, our game servers under this IPv4 block may show up late or incorrectly in the Valve server browser based off of the client’s geo location. Once the correction is made through IP2Location, we’ll just have to wait for the Master Server to update their database. As soon as that’s done, we should be good to go!
Acquiring Our Own ASN
The next big process is acquiring our own ASN. As of right now, we have to use a hosting provider’s public ASN (in this case, Vultr’s) since we don’t have our own. Once this is done, we’ll be able to use multiple hosting providers for our PoP servers. This will make our network more stable/better and less costly since we’ll be able to use cheaper and more efficient providers with lesser locations.
Our IPv4 block provider will be able to sponsor us. Therefore, the only other thing I will need is contracts with two transit providers (I believe I have two I can use) and my driver’s license. After I apply for our own ASN, the process itself will take around 2 - 3 weeks.
New Physical Hosting Provider In US
In addition to the above, we have found a new physical hosting provider that will be ran under the new network. We have purchased two machines from this new hosting provider which are the following:
- Intel Xeon E3-1271v3 @ 3.6 GHz.
- 32 GBs of DDR4 RAM.
- 500 GBs SSD.
- 15 TBs bandwidth.
- Dallas, TX, US.
- Status - Active.
- Intel i7-7700K @ 4.2 GHz.
- 64 GBs of DDR4 RAM.
- 500 GBs SSD.
- 15 TBs bandwidth.
- Dallas, TX, US.
- Status - Inactive (still being built).
I was aware that our GS06 machine was very overloaded. Therefore, I decided to purchase two machines from the start to be on the safe side. This hosting provider will be able to setup machines within a reasonable time-frame as well and appears to always have dedicated machines available on the spot.
The first machine will host medium-ranged servers (e.g. <40 slot servers). The second machine will be used to host our bigger servers.
We found that this hosting provider also has pretty decent routing and good support. I believe they’ll work for us in the future! In the end, if they don’t, we’ll be able to switch hosting providers without changing IPs
What Servers Will We Be Running?
With the new physical machines, we will have a lot of room to play with. We will be moving servers over to this new network that aren’t so popular. We will primarily move servers in Garry’s Mod and Rust. Unfortunately, any moved servers will require an IP change. But I’m very hopeful that’ll be the last time we switch IPs
We also plan to setup new servers as well! As soon as our IPv4 block’s geo location is corrected, I believe we’ll be good to go.
As of right now, I don’t have any list of servers we’ll be moving. This will be up to the Division Leaders + Directors. I will say I would like to see our Garry’s Mod servers from GS06 moved along with Rust.
I’ve setup some silly test servers on our first new physical machine. You can find all servers that run under our new IPv4 block on GameTracker here.
Feel free to connect to these servers and see how your connection is from the PoP servers to the new physical hosting provider! Remember, you will be able to submit sub-optimal routes if you have one under the new network forum found here.
Special Thanks To @Dreae!
I just wanted to thank @Dreae again! He has been a big help with this project. He has made the packet filtering software that runs on all of our PoPs, given advice on the network setup itself, altered some needed routing via BGP and BIRD, and more! This project definitely wouldn’t be possible without him.
All in all, this is a BIG addition to GFL. There are going to be required tweaks in the future and there is still a lot for @Dreae and I to learn. But I am confident we’ll do great!
I have yet to see another gaming community that hosts game servers have their own network that runs in-front of their game servers. I believe this will be something special to GFL. I’m hoping the public guides @Dreae and I post publicly will influence other gaming communities to do the same since in my opinion, this is fairly cheap to setup (the entire setup itself is costing us <$200.00/m and we will be able to get that cost down once we acquire our own ASN). It might be hectic at first, but if you’re interested in networking, you’ll definitely enjoy and learn a lot from it You’re basically becoming your own mini-ISP!
If you have any questions, please reply to the thread or post in the GFL Network sub-forum!
Thank you for reading!