Setting up port forwarding on a router is actually quite standard so if you cannot crack it in 30 mins or 1 hour stop and don’t waste any more time. I found this the hard way spending weeks figuring out why port forwarding wouldn’t work on my router. I then found out that it wasn’t me but my ISP. They had CGN turned on and I had to call them up and have it turned off.
What is CGN?
CGN stands for Carrier Grade NAT. NAT stands for Network Address Translation. To understand CGN you need to understand NAT.
All your devices in your home will be allocated local IP addresses such as 192.168.1.x and you will have 1 external IP address allocated to you by your ISP. This will be dynamic in most cases unless you pay for a static IP.
With a dynamic IP address, your router needs to know how to route traffic from your public IP such as 220.127.116.11 to 192.168.1.x. This is done with Network Address Translation (NAT) which is usually handled by your router.
What ISPs do is they can also use one IP address across several customers. If I wanted to run a home web server and port forward 18.104.22.168 to 192.168.1.x:80 (on port 80), it is not possible with CGN turned on because 22.214.171.124 is not just me but could be several other customers.
Getting my ISP to turn this off and rebooting all my devices almost did the trick. What I then found out was that I had to turn off all devices, router and ONT for about 10 minutes. 15 seconds won’t work because the router needs to pick up a NEW dynamic IP. Once this is done, port forwarding should work like a charm!
Hopefully this will help someone else save weeks of time pulling their hair out over port forwarding only to find out that it wasn’t me all along!