are-public-ips-unique-00

When you begin learning about IP addresses and how they work, it can feel a bit overwhelming at times. So what do you do? You start by searching and asking questions! Today’s SuperUser Q&A post has the answers to a curious reader’s questions.

Today’s Question & Answer session comes to us courtesy of SuperUser—a subdivision of Stack Exchange, a community-driven grouping of Q&A web sites.

Screenshot courtesy of Linux Screenshots (Flickr).

The Question

SuperUser reader amin gholami wants to know if public IPs are unique:

Are public IPs unique? I mean since we have two kinds of IPs (private and public) and if the public IP belongs to the router, then does everyone connected to the same router have a single IP address or not?

Are public IPs unique?

The Answer

SuperUser contributor fedesismo has the answer for us:

In general terms the answer is yes, public IPs are globally unique. In the context of IPv4, the IPs (v4) known for not being unique are private IPs. These are found in the following ranges:

  • From 10.0.0.0 to 10.255.255.255.
  • From 172.16.0.0 to 172.31.255.255.
  • From 192.168.0.0 to 192.168.255.255.

See: RFC1918

The IP your home router has on the “Internet side” of the interface is public, given to you by your ISP. The IPs used for your home’s Wi-Fi or Ethernet connection are private, so they are not unique, but that is not a problem because those never leave your home before being NATed or translated by the NAT.

As mentioned in other comments (see thread link below), there is an exception to what I have just said. There are some techniques that allow us to be more flexible about the original one-to-one communication Internet protocol paradigm that allows one-to-nearest. These techniques are used when talking about services that need high availability, redundancy, or low latency like DNS or CDN services. Given a certain IP (IPv4 or IPv6), there might be more that one server in the world configured to answer to that IP, but only one will be answering.

See: RFC4786

IPv6 also introduced a new addressing system that copes with these “new needs” and it defined the Anycast Address.

IP Version 6 (IPv6) defines a new type of address, known as an Anycast Address, that allows a packet to be routed to one of a number of different nodes all responding to the same address. The Anycast Address may be assigned to one or more network interfaces (typically on different nodes) with the network delivering each packet addressed to this address to the “nearest” interface based on the notion of “distance” determined by the routing protocols in use.

See: RFC2526

About IPv6 Anycast Addresses

An Anycast Address is an address that is assigned to a set of interfaces that typically belongs to different nodes. A packet sent to an Anycast Address is delivered to the closest interface (as defined by the routing protocols in use) identified by the Anycast Address. Anycast Addresses are syntactically indistinguishable from Unicast Addresses because Anycast Addresses are allocated from the Unicast Address space. Assigning a Unicast Address to more than one interface makes a Unicast Address an Anycast Address. Nodes to which the Anycast Address is assigned must be explicitly configured to recognize that the address is an Anycast Address.

See: IPv6 Address Type: Anycast [Cisco]


Have something to add to the explanation? Sound off in the comments. Want to read more answers from other tech-savvy Stack Exchange users? Check out the full discussion thread here.