IPv4 allocates a whole block of IPv4 loopback addresses, 127.0.0.0/8. IPv6, in contrast, only allocates a single loopback address, ::1.

This seems surprising that IPv6 would be so stingy in its allocation of loopback address(es), since overall it provides a huge increase in address space.

In IPv4 I've found it useful to be able to use multiple loopback addresses. E.g. for certain complex DNS set-ups, I can install two local DNS servers, one on 127.0.0.1:53, and another on 127.0.1.1:53. (It's a bit easier to refer to the different servers using different IP addresses, rather than using non-standard port numbers on a single IP address.) I can't use this strategy on IPv6 with only one loopback address.

What good rationales might there have been for only allocating a single loopback address for IPv6, unlike for IPv4?

  • 2
    Maybe the idea was to use fe80:: for it, I do not know, but we are not alone: tools.ietf.org/html/… – marcolz Oct 19 '15 at 8:32
  • @marcolz: Thanks for that reference. Was it not approved, since it says it expired in August 2013? – Craig McQueen Oct 19 '15 at 22:26
  • 1
    Related: serverfault.com/questions/193377/… – Craig McQueen Oct 20 '15 at 0:58
  • indeed, it was not accepted. I cannot find the discussion about it, but apparently IANA did not find it necessary. Considering that that would mean existing devices supporting IPv6 would need to be updated to be able to advertise full IPv6 compatibility, I guess that changing this now is too big of a hurdle to take. – marcolz Oct 20 '15 at 6:20
up vote 3 down vote accepted

They are not needed. Simple like that.

You can always assign link local or private addresses as you need to a loopback adapter - in the rare case you really do that.

I would say that most people are not even aware you can use anything else than 127:0:0:1 an you are the first person I have met in around 20 years claiming to use more than that. Not joking.

Most multi server setups do not need it (HTTP host header is used instead - and yes, I know this is limited to http, but I would say most servers needing this are from web developers).

  • If you would like to test services on your loopback interface, it would be handy to have some addresses that are guaranteed not to conflict with any other addresses. – marcolz Oct 19 '15 at 8:26
  • Link local - limited to the LINK (ethernet). Virtual loop adapter (link does not go out to physical network) and you are set. IPV6 has a TON of addresses with limited use. IPV4 had none outside of localhost /8. – TomTom Oct 19 '15 at 8:28
  • 1
    Yes, you can use link local. But in theory that may conflict with other link local ranges on your machine, so you in theory you cannot auto-assign one to your servers. Although in practice you probably can, with knowledge of your interfaces, but it would be better if there was a reserved range for it imo. – marcolz Oct 19 '15 at 8:37
  • 1
    Yes. Then use private addresses. There are so many around you can make an internal subnet that is not used in your company EASILY. – TomTom Oct 19 '15 at 8:48
  • 2
    Where in the original question does something high level as "web hosting" enter the picture? Your statement is out of the scope of what I believe is the question. This is about OSI layer 3. Your belittling comments probably say as much about you as your statement about not having met anyone in 20 years that does use anything other than 127.0.0.1. How do you suppose we should value that statement? – marcolz Oct 19 '15 at 11:03

If you want more addresses available locally, you can just assign addresses from a ULA range of your choosing and assign them to the local machine (on the loopback interface, if you like). That'll give you all the addresses you want. You don't have to be granted a special block from which to assign addresses that your machine will respond to locally.

The IPv6 addressing architecture has lots of space. The /16 space for interface-local multicast would be well suited for local services.

AFAIK the socket API is the limit here, because multicast and unicast addresses cannot be used interchangeably.

  • That is not the point of the question. – marcolz Oct 19 '15 at 9:05
  • IMHO that is one rationale for a single loopback address: a vast number of multicast addresses for various scopes. – mschuett Oct 19 '15 at 9:11
  • I wasn't aware of interface-local multicast. But being multicast, then it's not really equivalent to 127.0.0.0/8 is it? Multicast gives quite different functionality in several ways. – Craig McQueen Oct 19 '15 at 23:38

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.