breakitdown

100.64.0.0/10: shared address space

Answer

100.64.0.0/10 is shared address space, reserved by RFC 6598 for internet providers running carrier-grade NAT (CGNAT). It covers 100.64.0.0 to 100.127.255.255, 4,194,304 addresses. It is neither public nor one of the RFC 1918 private ranges.

Try

100.64.0.0/10 is 4,194,304 addresses: 100.64.0.0 to 100.127.255.255. 4,194,302 usable for hosts (the first is the network address, the last is broadcast).

100011001006401000000000000000000000000
10 network bits 22 host bits
Network
100.64.0.0
First usable
100.64.0.1
Last usable
100.127.255.254
Broadcast
100.127.255.255
Addresses
4,194,304
Usable hosts
4,194,302
Netmask
255.192.0.0
Wildcard (ACL) mask
0.63.255.255
Historic class
A
Range type
Shared address space (carrier-grade NAT) · not routed on the internet

Special-purpose range

Shared address space (carrier-grade NAT) 100.64.0.0/10 RFC 6598
Used by internet providers between their carrier-grade NAT and customers' routers, and by some overlay VPNs. Not private in the RFC 1918 sense, and not public.

Split it into subnets

or

4 subnets.

SubnetUsable rangeHostsBroadcast
100.64.0.0/12100.64.0.1 – 100.79.255.2541,048,574100.79.255.255
100.80.0.0/12100.80.0.1 – 100.95.255.2541,048,574100.95.255.255
100.96.0.0/12100.96.0.1 – 100.111.255.2541,048,574100.111.255.255
100.112.0.0/12100.112.0.1 – 100.127.255.2541,048,574100.127.255.255

Is this IP in the range?

Range to CIDR blocks

What to know

ISPs short of IPv4 addresses put many customers behind one shared public address. The link between the ISP's NAT and each customer's router needs addresses that cannot clash with whatever private range the customer uses at home, so a separate block was set aside for it.

If your router's WAN address is between 100.64.0.0 and 100.127.255.255, you are behind CGNAT: port forwarding on your router will not make services reachable from the internet, because the ISP's NAT sits in front of it. IPv6, a tunnel, or asking the ISP for a public address are the usual ways around it.

Tailscale assigns each device an address from this range, because it is unlikely to collide with LAN addresses.

Gotchas

Related explainers

← CIDR calculator