Can i create a peer to peer network using Ipv6 link local address scope? I should be able to ping from System A to System B's Link local (fe80 address space) and vice versa.

In other words I want to set up a peer to peer IPv6 network using explicitly defined Link local addresses

If yes then any pointers to set up the same in aws would be very helpful.

2 Answers 2


The most convenient way is to set up mDNS (Multicast DNS) or LLMNR (Link-Local Multicast Name Resolution), which enables you to use host names instead of IP addresses. In both mechanisms the hosts themselves report their names on the network, so there is no need for a centralized name server. You can set up mDNS or LLMNR (or both) with systemd-networkd.

The problem with using link-local IPv6 addresses is that they are just that: link-local. There is no network prefix which would tell which network interface to use, so you will have to specify the interface index after the address, for example:

ping fe80::xxxx:xxxx:xxxx:xxxx%3

This largely depends on whether or not you wish to roll your own software. Most (all?) peer to peer software is likely to fall foul of a limitation of Link-Local addresses. If the peer to peer software has not explicitly been written to handle this limitation then it will most likely be unable to function.

The problem

Unlike other IP address classes, IPv6 Link-local addresses cannot be used on their own. Other address classes contain information to identify the network segment, so the OS can determine which interface (network card) to use to talk to that address. With IPv6 Link local addresses you MUST separately specify which network interface to use. eg: ping fe80::1234:5678%3 not ping fe80::1234:5678.

Note that the interface identifiers may change between reboots, especially if you change harware around.

Most common work around (unlikely to help with peer to peer)

The simplest way around this is to avoid using explicit IP addresses and use hostnames. Implementations of protocols like mDNS are able to resolve a hostname to an IP and it's respective interface. Eg:

ping mypc.local

This should work regardless of which interface it's connected to and whether or not it's on a link-local address.

Why is this a problem for Peer-to-Peer software?

Most peer to peer software has been written on the assumption that it will be used across the internet and it's users will not have or know their fully qualified domain name. For this reason, existing software doesn't use hostnames or domain names it uses IP addresses... just IP addresses.

In theory you could write some software which can be explicitly configured to use one specific interface and then share IPv6 link local addresses. But this does sound like a lot of work for avoiding the alternative ...

An Alternative

For this specific problem, you may be better configuring your machines each with a ULA (an additional IP address). This might avoid the need to roll your own software.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .