I recently noticed something odd while performing traceroutes from my home network, and its made me wonder as to the architecture of my ISP's network.
My home network uses 192.168.0.0/16 addresses (192.168.0.0/24 to be exact). When I perform a traceroute from my home network, the first three hops are:
- My home network's gateway (192.168.0.1).
- A 10.0.0.0/8 (i.e. RFC1918 private address), seemingly indicating that the near-side interface of the first hop in my ISP's network is using private addresses.
- A public IP address, which I've confirmed is allocated to my ISP's ASN.
A bit of poking around has confirmed to me that I can receive responses from tens of thousands of 10.0.0.0/8 addresses, presumably the home gateways of other customers of my ISP.
When I look at the settings of my home gateway, I find two things:
- Its external IP address is not a 10.0.0.0/8 address, but rather a public address part of a range allocated to my ISP, and
- Its gateway (the address of its next hop) is also a public IP address allocated to my ISP and not a 10.0.0.0/8 address.
My suspicion is that my ISP is using carrier-grade NAT and assigning its customers 10.0.0.0/8 addresses. I'm wondering:
- Does this indeed seem to be whats happening?
- If so, why is my home gateway assigned a public IP address rather than a 10.0.0.0/8 address, given that the near-side interface of the next hop has a 10.0.0.0/8 address?