Trying out T-Mobile 5G Home Internet

I’d been with CenturyLink Fiber since I moved into this house in early 2021, and was mostly happy with it. I never had any major outages aside from occasional drops due to their crappy provided router, which I replaced with a Linux SBC running OpenWRT. The only real complaints I had was that they used PPPoE + VLAN tagging (which was annoying to set up) and that for IPv6 they only provided 6rd which is a bit of a half-measure. But I was able to host services to my heart’s content, and they were pretty hands-off with a lot of things.

Unfortunately, a month ago I was switched over to Quantum Fiber, which is sort of a rebrand but sort of a separate company, and I’d heard nothing but horror stories about Quantum, and unfortunately, I experienced two of them myself:

  1. When I first switched, my Internet went out for a few days early on, when CenturyLink shut down the old account; apparently this caused a misconfiguration on their end which led to my network being shut off, and it took a few days (and several tech support calls) for them to figure it out.

  2. I ended up getting a DMCA notice for some activities on my network, and while normally it’s just a thing you can click through to acknowledge that you received the notice (after which time your service gets immediately restored), this time the notice kept on coming back every 10 minutes (killing all my web connections each time, although thankfully VPN and ssh sessions were mostly unaffected), and it was coming from CenturyLink, not Quantum.

    I spent hours on the phone with both companies' support, each one blaming the other company for the issue, and it took days before my connection was stable again. I had a bodge in place that made it mostly reliable (it was super easy to run a script that would check for the notification and then click the button) but it still made things kind of unreliable, and both companies' tech support was bafflingly awful in ways I can only describe as “Kafka-esque.”

The second issue finally cleared up after about four days, but by that time I decided it was time to try another ISP, and the only other broadband options where I live are Comcast XFinity, who are awful and expensive, and T-Mobile 5G, which costs about the same as Quantum but have other tech concerns to worry about. But I’ve had plenty of experience with T-Mobile as a company and I figured I’d give them a try for this, especially with how many people I know who sing their praises.

The access point arrived today and I’ve been putting the service through its paces. My opinion is… mixed, but generally positive.

Actually getting it set up was a little wonky. You’re supposed to be able to run an app and have it automatically detect everything after you log in to your account, but it never actually managed to connect to the access point automatically. I ended up having to scan a QR code and then do a bunch of manual configuration. It wasn’t a problem for me, personally, but I can definitely see it being difficult for someone who doesn’t know what they’re doing.

The app has a little thing to estimate where the best placement will be and it indicated that the Western side of my house would give me the best line-of-sight to the nearest 5G tower. This matched my experience with doing basic speed tests from my phone (which is on Mint Mobile and uses the same towers and infrastructure as T-Mobile) so I opted to put it in my office. I tested it a bunch as a plain wifi access point and then with a laptop directly connected to its Ethernet port, and things worked well enough that I decided to make the switch. I ended up rerouting one of the Ethernet outlets in my office to my router’s uplink so that I could keep the access point in my office (where the 5G signal is much stronger than in my basement, where the router is).

T-Mobile sets the LAN to use 192.168.12.0/24, and my router’s LAN was already configured with 192.168.0.0/23 (to get 192.168.0.0—192.168.1.255, as I use .0.x for static allocations and .1.x for dynamic allocations), so I was able to double-NAT without any potential issues. I was worried I might have to change my subnet and redo all of my static DHCP allocations and so on, but thankfully that was not the case.

There is one big downside to T-Mobile, which I was prepared for: they use CGNAT for their public IPv4 addresses. This means that there’s no chance of hosting home-based services via IPv4. This isn’t a huge issue for me since I’ve been migrating all of my services to use an ssh rtunnel which is more secure anyway (and in the case of my streaming CDN also gives me two-level caching, which reduces my outgoing bandwidth requirements significantly). So, I don’t mind this so much, but it can be a dealbreaker for a lot of people.

Another downside is that unlike fiber, the bandwidth is hugely asymmetric. On CenturyLink/Quantum I was enjoying a symmetrical 500Mbps, which made my uploads incredibly fast. On T-Mobile I’m only averaging around 30Mbps of outgoing bandwidth, which is fine (and better than Comcast), just, not great.

It also means that some of the services I was home-hosting (particularly my Plex server) are not really feasible anymore, since they had the potential to use a lot of bandwidth. But my use cases for those were pretty limited anyway. I do have my giant gitea instance that I mostly use for direct collaboration on VRChat avatars and a few other things, and at some point I might have to figure out what to do about that, but I can’t even remember the last time I needed to connect to it from outside my LAN anyway. I also sometimes used the webserver on my NAS for sharing larger files with people but that’s, again, quite rare, and if I really need to do that again, I can trivially rtunnel that.

On the plus side, T-Mobile actually supports IPv6 for reals, so at least in theory, I can directly host things that way with no problem. I haven’t investigated whether that’s actually possible, though, and I’m pretty sure the IPv6 addresses are still dynamic. So far I’ve been unable to connect to an internal address from the outside but I haven’t wanted to mess with my OpenWRT router’s firewall settings just yet.

Also, while the available bandwidth is much more variable throughout the day (and probably affected by the weather), so far I’m getting around 650Mbps, which is nice, although it’s not as if it’s all that easy to actually use more than 250-300Mbps of downstream anyway, at least not as an individual. But it’s good to know that I’m at least not downgrading from fiber!

One obnoxious thing is that the access point gives extremely little control over the network. You can set up additional SSIDs (for guest networks and the like), and you can apply parental controls on specific MAC addresses, and that’s it. No static DHCP assignments, no means of disabling the internal DHCP server entirely, no way of setting up the local netmask, and so on. At one point I was thinking it’d be nice to just let the access point handle all of my routing and then make the router into just a DHCP server, but that’s not possible, and eschewing the router entirely would be giving up way too much configuration on my end. So, I have an extra NAT layer. But no matter what there’s always going to be at least two (one from the access point and one from CGNAT), so what’s one more?

I do wish that the access point allowed for proper bridging but given that it’s CGNAT that doesn’t really make any difference, anyway.

Anyway, now I have two new wifi networks, busybee-uplink (just for directly connecting to the AP for whatever reason) and busybee-guest (which guests can connect to and be completely unable to see things on my LAN). These are WiFi 7 but I haven’t found them to be any faster than my existing (WiFi 6) access points for any of my devices, and I’m pretty much always having my various devices access each other over the network, so unless I decide to remove my OpenWRT router from the equation (which, again, I don’t want to do since I’d be giving up a lot) I don’t see those networks getting much use.

Also, there’s one other downside to this, in that since it’s essentially a high-powered cellphone, and since I use powered studio monitor speakers in my office, I’m hearing the constant crunchy sizzle of RF interference. This could be fixed by better placement of the access point. Supposedly it’s better to have it as high up as possible so I’ll probably see about building a little shelf for it. Unfortunately it doesn’t have wall-mounting points, which would have made this much easier to deal with.

Update: I’ve also found that idle connections tend to get closed (as is typical for poorly-configured NAT), so, guess it’s time to add a bunch of ServerAliveInterval 10 to all my .ssh/config files, sigh…

Annoyingly enough, my Quantum subscription just renewed yesterday (which I suspect is the reason the initial DMCA notification issue cleared up). So, I’m going to try this out for a week or so before I decide whether to stick with it or to switch back to Quantum. I super do not trust Quantum to not be a nightmare to work with, though, and when the Quantum tech arrived to switch out my old CenturyLink hardware for Quantum Fiber hardware he told me that Quantum was in the process of being acquired by AT&T, so, I don’t see it getting better any time soon.

Update: I just had to upload a video to YouTube and oh my god this is so slow how did I ever live like this