45 lines
1.4 KiB
Markdown
45 lines
1.4 KiB
Markdown
---
|
|
title: Check if NAT-blocked
|
|
tags:
|
|
- networking
|
|
- nat
|
|
---
|
|
|
|
Trace the route to any domain name.
|
|
|
|
```sh
|
|
traceroute to splint.rs (89.216.117.22), 30 hops max, 60 byte packets
|
|
1 _gateway (192.168.0.1) 0.265 ms 0.209 ms 0.193 ms
|
|
2 100.64.0.1 (100.64.0.1) 56.974 ms 60.893 ms 60.911 ms
|
|
3 172.31.254.2 (172.31.254.2) 61.795 ms 61.610 ms 70.443 ms
|
|
4 172.31.254.2 (172.31.254.2) 69.929 ms 69.948 ms 71.265 ms
|
|
5 bg-tp-m-0-be4-100.sbb.rs (89.216.12.0) 72.890 ms 73.268 ms *
|
|
6 bg-ne-m-10-be3.sbb.rs (89.216.6.76) 78.474 ms 77.306 ms 77.821 ms
|
|
7 * bg-tp-m-11-be1.sbb.rs (89.216.6.75) 35.022 ms bg-tp-m-12-be1.sbb.rs (89.216.6.77) 63.808 ms
|
|
8 89.216.4.63 (89.216.4.63) 63.753 ms 89.216.4.61 (89.216.4.61) 65.546 ms 67.876 ms
|
|
9 * * *
|
|
10 * * *
|
|
11 * * *
|
|
12 * * *
|
|
13 * * *
|
|
1
|
|
```
|
|
|
|
The first hop goes to a router (`192.`...).
|
|
The second hop looks like an internal address, so I'm going to double-check.
|
|
|
|
```sh
|
|
address=100.64.0.1
|
|
curl -s http://api.db-ip.com/v2/free/$address
|
|
{
|
|
"ipAddress": "100.64.0.1",
|
|
"countryCode": "ZZ"
|
|
}
|
|
```
|
|
|
|
That's not a real country code, so the second hop passes through something with an [internal address][internalIPs] after the router.
|
|
It looks like this connection has a [NAT layer][natIPs].
|
|
|
|
[internalIPs]: https://en.wikipedia.org/wiki/List_of_reserved_IP_addresses
|
|
[natIPs]: https://en.wikipedia.org/wiki/Carrier-grade_NAT
|