Can you use Starlink to create your Datacenter or ISP?
You may be thinking, if you can get your hands on a Starlink Dishy, you can use your home lab equipment or the spare server at your office to create your own datacenter or regional ISP, with this satellite based internet service, but is this possible?
The short answer is “Yes”, but the process is not that straightforward and you need some software and hardware to make it happen. It’s not a plug and play, install some app and configure it scenario. If you want to host your website on your Raspberry Pi or home server or share internet with your neighbors and you want to know if this is a good decision, continue reading this article and also subscribe on our YouTube channel for future updates and tutorials!
The CGNAT issue
Right now, Starlink is using a carrier grade NAT on its network. This means that the end users will not get a valid public IP address lease from the DHCP server. So, you cannot point your fully qualified domain name (FQDN) to your home server or create port forwarding rules on your home router. You can use a very fast internet, but your home server will not be accessible to the outside world, at least very easily!
What about dynamic DNS providers?
No, they are not going to help you either. When you want to access the outside world, for example youtube.com using your Starlink internet, a network address translation or NAT service translates your private IP address lease to the Public IP of the Starlink Internet. Starlink Routers keep a track of all the translations and route the reply packets to the recipients. But a user outside of the Starlink network cannot initiate a connection to your home lab server, because they don’t know your private IP address and the corresponding port number that your application or web server is listening to, and Starlink routers do not perform port forwarding for you!
So, is it not possible?
In a partnership with SpaceX, Microsoft plans to use Starlink to connect their Azure Modular Datacenter or the datacenter in a box to internet in remote areas. They may also use it as a backup link in other datacenter location. So, how are they going to do this?
Well, they are a corporate user with all the required tools and they can come up with new hardware or software if one is needed. They can also spend big and if required, a quick phone call to Elon Musk will solve much of their problems!
But what you as an end user can do to tackle this issue?
The Datacenter Scenario
Using a tunnel to connect to a VPS or Cloud Server which has a static public IP address can solve the CGNAT problem. You don’t need a fancy server, a $5 droplet from DigitalOcean will do the job. Because a lightweight Linux server distro does not need a powerful hardware. There are a lot of VPN solutions like OpenVPN and WireGuard that you can use. Your home server should connect to the VPS as a VPN client and you should install a VPN server on your VPS. The more close the VPS is to your end users, the better, so choose the server location wisely. Based on your traffic, you can order a more powerful cloud server. If you need a $100, 60-day credit from DigitalOcean to test their cloud offerings, you can use this link.
Once you connect to this VPS, you will be part of a virtual private network and will receive a private IP address which is accessible on the server. Then you can do port forwarding on the VPS and map all the ports to their destination in your home server. You can do this in the Linux firewall (iptables), or, you can use another solution that is becoming very popular and offers you more features like load balancing and SSL termination.
It’s called HAProxy and the installation and configuration is very easy and there are a ton of resources out there. You can do port forwarding with iptables too, but HAProxy makes things a lot simpler. You only have to deal with one configuration file instead of working with chains and tables and commands. In this scenario your home server will act as a reverse proxy.
One of the cool things that you can do with HAProxy is using multiple Starlink Dishies to enjoy a higher bandwidth with load balancing. You can use a layer 4 or a layer 7 load balancing with round robin to send packets to your server using different dishies and if one of them fails, it will be totally fine, the rest of them will keep the system up and running. This way, your server will be highly available. That’s why it’s called HAProxy.
With a layer 7 load balancer, you can do a lot of fancy things like caching and TLS termination.
You can also use Nginx as a layer 7 load balancer. You can review all these solutions and choose one that works best for you.
If you look at the speed benchmarks, you can see that the upload speed does not get near the download rate, but it’s decent. If you use multiple Starlink Receivers you can handle more connections and enjoy a higher overall bandwidth.
Elon Musk said the internet speed of its space-based Starlink service will double to 300Mbps and they aim to provide cheaper web. As time goes by and they add more satellites, you will enjoy a higher bandwidth.
So, you may not create the fastest datacenter right now, but as time goes by, you can handle more users. Creating a reliable datacenter is another issue and besides the internet, you should care about a lot of other things, redundancy, emergency power source, physical security, off site backups and lots of other things. You definitely don’t want your data to fly to clouds up in the sky!
With Starlink, you can create an offsite backup infrastructure, use your home server as a testing and development platform, host your sensitive data in your home or office fully encrypted or even run a bitcoin node in a remote area!
The ISP Scenario
To create a regional ISP, first you should plan on how to share the internet with your subscribers and how to bill them with an accounting software and limit their upload and download speed if you don’t want to let them use all the available bandwidth.
You can go wireless and install wireless access points or buy CAT5/CAT6 wires or even fiber optics to create a network between your infrastructure and your subscribers. It all depends on your situation and you can adopt to a hybrid solution.
If you are going to charge your subscribers, you need a billing software and a Radius server as well. There are some free options available. Depending on your scale, you can use Kerio Control, but it’s a paid software. You can also setup a VPN server instead and your subscribers can use a VPN client like OpenVPN to connect to your server and use the internet.
Later on, you can set up a cache server to speed things up and place some firewall rulesets for added security. You can use the pfSense firewall for that too. It has most of the required tools and you can extend it using packages. There are a lot of firewall solutions in the market, free or paid, but pfSense is free and you can install it on a virtual machine or bare metal server or buy a discrete pfsense hardware.
Will the Starlink network stay like this? We know that there are not that a lot of free IPv4 addresses out there and Starlink may switch to IPv6 in the future and with that, they will change the game by a whole lot. You will be able to assign IP version 6 to your IoT devices using Starlink. Better speeds with more orbiting satellites, IPv6 and lower latency? What’s not to like! Oh and also lower prices! Maybe lower prices for those who pay with Doge! Elon definitely has laser eyes for those.
That’s it for now! Be sure to subscribe for future updates. Do you want to setup a home datacenter or an ISP using Starlink? Share your opinion and software choices with us in the comments.