How do I know if I am behind NAT? (SOLVED)
April 24, 2021
What is NAT
NAT is a technology that allows multiple devices to access the Internet using the same IP address. By the way, NAT is already being applied in your local network, which has a router – it is thanks to this that all your devices can access the global network and each of them does not need to have an external IP.
As you can imagine, this is a commonly used technology. Perhaps you have been using it for many years without even knowing about it. It really brings a lot of benefits, but it has a drawback – it allows one-way connections. That is, if your computer has initialized an Internet connection, then it will send it to the router, the router will do two things: 1) remember that the request came from a specific device and 2) send this request to the Internet. When the answer comes, the router still “remembers” that this request was made for a specific device on the local network, and will send a response to this particular device. And this happens every time.
But if a new network request comes to the router from the global network (not a response to a request, namely a new request), then the router simply does not know who it is intended for on the local network (if port forwarding is not configured). Therefore, the router does nothing with this incoming request. Many ISPs also use NAT. And it works according to exactly the same principle – your network requests go to the global network and you get network responses without any problems, but new requests from the Internet to your computer cannot go through NAT.
Therefore, if you want to run a network service on your home computer (for example, a web server) and want to be accessible from the Global Internet, then you need to make sure that your computer is not behind a NAT network of the Internet service provider.
How do I know if my ISP is using NAT
In fact, it is not easy to say with complete certainty whether a computer is behind NAT, but there are indirect indications that make it highly likely that an ISP is using NAT for its users.
Finding Local IP Addresses in a Network Route
With the help of tracerouting, you can find out through the nodes with which IP addresses network traffic passes.
To start tracerouting in Windows, open the command prompt (to do this, press Win+x and select “Windows PowerShell”) and run the command:
Test-NetConnection suip.biz -TraceRoute
To start tracerouting on Linux, run the command:
Related: Tracerouting tools and methods
If among the IP addresses through which network traffic passes, you see those included in the following ranges, then most likely you are behind NAT:
- 10.0.0.0/8 (10.0.0.0 - 10.255.255.255)
- 172.16.0.0/12 (172.16.0.0 - 172.31.255.255)
- 192.168.0.0/16 (192.168.0.0 - 192.168.255.255)
- 100.64.0.0/10 (100.64.0.0 - 100.127.255.255)
In this screenshot, there are two IP addresses from the specified ranges at once: 192.168.1.1 and 10.128.0.1.
192.168.1.1 is a router (as mentioned above, the router also uses NAT, so if you connect your computer to the ISP's network through a router, then you need to configure port forwarding.
And the other IP 10.128.0.1 belongs to the local network of the ISP. Since local (private) IP addresses are non-routable, it is highly likely that NAT is being used.
The following screenshot shows a router and as many as three local IPs from the 10.0.0.0/8 range. Again, it can be argued that NAT is in use.
This screenshot shows a router (192.168.1.1), but there are no local ones among the following IPs. Does this mean that the ISP is not using NAT? Not. If there are local IP addresses, then almost certainly there is NAT, but if there are no local IP addresses, then NAT may or may not be present.
Therefore, one more test needs to be done.
Traceroute to yourself
The “Traceroute to me” service allows you to indirectly determine that the ISP is using NAT.
Service address: https://w-e-b.site/?act=traceroute-me
On the service page, you can run a tracerouting from the server to your computer. The tracerouting result will indirectly determine if your ISP is using NAT.
If all nodes are shown in the trace results, as in the screenshot below, then this means that you have a public IP address with a probability of 100%.
If the trace ends with lines
25 * * * 26 * * * 27 * * * 28 * * * 29 * * * 30 * * *
as in the screenshot below:
This means that most likely your computer is behind NAT.
But the above is not always true – the trace may not show the hosts for other reasons, not only because of NAT.
By combining the two, you can determine with a high degree of probability whether NAT is being used on your network connection.
- Why does VirtualBox lose connection when changing MAC address (SOLVED) (100%)
- How to fix ERR_NETWORK_CHANGED error (SOLVED) (100%)
- How to check if my router supports IPv6 (100%)
- How to Configure Tor to Work Through a Bridge Relay and Proxy in Windows (100%)
- How to set IP address, netmask, default gateway and DNS for a network interface in PowerShell (100%)
- PowerShell with administrator rights: how to run and verify (RANDOM - 50%)