Battle.net fails behind CGNAT – works on GSM hotspot, fails on home ISP (BLZBNTBNA00000005 / 00000028)

Hi,

I’m experiencing persistent connection issues with Battle.net that seem to be directly related to my home network setup — more specifically, to the use of CGNAT by my ISP.

:mag: Problem description:

  • On my PC (connected via Ethernet to my home router), Battle.net fails to connect and shows error: BLZBNTBNA00000005
  • On my mobile device (Steam Deck over the same home Wi-Fi), I get: BLZBNTBNA00000028
  • When I connect any of these devices via GSM hotspot (mobile 4G network), Battle.net connects immediately and works fine.
  • This issue started recently. Previously, everything worked flawlessly on the same home setup.

:test_tube: What I’ve already tried:

  • Full cleanup of Battle.net cache and files (ProgramData, AppData, etc.)
  • Reinstalling the app
  • Disabling firewall/antivirus entirely
  • Testing on multiple devices (PC, laptop, phone)
  • Router resets, DNS flushes, changing ports, switching to Google DNS
  • Traceroute confirms packets reach Battle.net servers with no blockage or timeout (other than expected hops)

:globe_with_meridians: What I discovered:

  • My ISP is using CGNAT (Carrier-Grade NAT) and assigning me a non-public IPv4 address in the 100.x.x.x range.
  • My external IP is in the 100.112.x.x or 100.113.x.x range — which confirms it’s not publicly routable.
  • When I asked my ISP for a public IP, they offered it only as a paid add-on.
  • Given that Battle.net used to work fine before this, I suspect Blizzard servers may have recently changed something in how they handle connections from CGNAT IPs.

:question:What I’d like to know:

  • Does Battle.net require a public IPv4 address to connect and maintain sessions?
  • Is CGNAT a known issue that blocks proper communication with your authentication or update servers?
  • Is there any workaround on the Blizzard side, or is a public IP absolutely required for now?

I want to avoid paying extra for a public IP from my ISP unless it’s confirmed to be the only solution — especially since this worked before.

Thanks in advance for any insight or confirmation from Blizzard tech staff or anyone with similar experience!