I have several IPv6 devices (custom built Linux) and my development machine (Fedora 30). They are all connected to a switch. I'm able to login to the devices through a serial port, i.e. I can talk to the them. In the future I need to be able to login through ssh. How do I assign static addresses to my devices and my machine? My goal is to build a private network analogous to IPv4, or I searched online but couldn't find anything simple. Can someone point me to a guide they used before of maybe provide steps on how to do it? I searched for quite some time and didn't find anything suitable.

closed as too broad by Michael Hampton, Rui F Ribeiro, Kiwy, X Tian, garethTheRed May 24 at 12:27

Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.

  • You're asking how to manually configure networking on a custom built Linux? Probably also manually, unless your custom built Linux also includes some way to configure networking. On Fedora you would just use the usual methods. – Michael Hampton May 22 at 2:19
  • 1
    An alternative is to declare one of your machines (e.g. the development machine) an IPv6 router, install radvd, and have it announce e.g. an fd00::/8 ULA block, so the other devices can autoconfigure their IPv6 addresses within this block. – dirkt May 22 at 9:01

Link-local addresses (beginning with fe80::) are perfectly ok for your use case. They are automatically assigned – no setup is needed.

The only problem with link-local addresses is that all link-local addresses have the same prefix (fe80::/10), so the destination address does not contain information over which interface a packet should be transmitted. For this reason you need to append the "scope id" to the address, e.g. fe80::12:34:56:78%eth0.

To overcome this problem, you can use mDNS (Multicast DNS) or LLMNR (Link-Local Multicast Name Resolution) which allows you to use names instead of IP addresses to address hosts on the same network. This solution takes care of both the problem with scope ids and the need to handle long IPv6 addresses.

To use mDNS or LLMNR you can enable the systemd-resolved service together with systemd-resolved. Systemd-resolved includes both a client and responder for link-local name resolution (for mDNS and/or LLMNR).

Another option (but requiring more work, and a bit overkill, imo) is to use Unique Local Addresses. See Unique local address.

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