5

I have the following block in my /etc/hosts:

# The following lines are desirable for IPv6 capable hosts
::1     localhost ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
ff02::3 ip6-allhosts

They were inserted by some automagic in Ubuntu and not written by me. I've found lots of documents that say that you should have these lines. But why? Why are they desirable?

My suspicion is that they aren't and are just cruft (except for the first one). Because if you google one of the names, eg ip6-allrouters, all you find are references to /etc/hosts but no one is actually using them.

Another way of phrasing this question is, what harm will come unto me or what feature will not function properly if I remove these lines? If the answer is none, can we conclude that they are redundant?

  • 1
    I'm pretty sure someone in Debian just made up those names. They don't appear in any official documents and no other distributions, not derived from Debian, have them. If something does break from removing them, it's most likely a bug. – Michael Hampton Mar 8 '17 at 2:27
  • Cool! Let's try and find a source for that. If it is true, then that is proof that they are redundant. – Björn Lindqvist Mar 8 '17 at 16:55
  • How do you prove something doesn't exist? – Michael Hampton Mar 8 '17 at 19:41
  • 1
    Perhaps we can find the commit which added the names and ask whoever committed it why he or she did it? – Björn Lindqvist Mar 9 '17 at 19:47
9

According to RFC 4291, Section 2.7: Multicast Addresses, the first 8 bits (FF in FF0X) at the beginning of identifies the address as a muticast address.


The flags, the next 4 bits, (the first 0 in FF0X) in the question indicate:

... a permanently-assigned ("well-known") multicast address, assigned by the Internet Assigned Numbers Authority (IANA).


The next 4 bits, (the last hex value 0 or 2 in FF00 or FF02) define the scope:

 0 reserved
 [...]
 2  Link-Local scope
 [...]

The reserved scope is reserved for future use.

The Link-local scope means, that packages within that scope will never be routed and therefore cannot leave the subnet.


So the addesses mean he following:

  • ::1: This is the loopback address, whose IPv4-equivalent is 127.0.0.1.
  • fe00::0: Can be compared to the Class E address space in IPv4, therefore it's in the reserved scope; reserved for future use.
  • ff02::1: The group of all IPv6 nodes (including the routers) in the Link-local scope (similar to a broadcast address of the subnet in IPv4: 192.168.x.255).
  • ff02::2: The group of all IPv6 routers in the Link-local scope (also similar to a broadcast in IPv4, but only refering the routers).
  • ff02::3: This exists no longer an is unassigned at the moment. Earlier it stood for the group of all hosts (excluding the routers) in the Link-local scope.

Further reading / References:

3

I think their purpose is so you can more easily i.e. ping all routers or all hosts etc without having to remember the multicast addresses. I haven't seen them being used anywhere else either.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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