1

I'm don't know much about IPv6, from what I have read so far, on Linode we get a /64 subnet which means we get 18,446,744,073,709,551,616 IP addresses.

How do I use any of these IPs?

Is there anyway to make all of them available on my machine without configuring them one by one? I'm using Debian 9

6
  • That's not quite how ipv6 works but I don't understand it enough to explain it either. Commented Aug 4, 2017 at 20:47
  • 2
    Why would you want to assign all addresses to a single machine? When you configure a /24 IPv4 subnet, do you assign all 254 addresses to one machine? Commented Aug 4, 2017 at 20:47
  • the /64 you are referring to refers to the first half of your IPv6 address which(I believe) can be thought of as your network id. This is the part of the address that is unique to your network. The next 64 bits are your host bits. Commented Aug 4, 2017 at 20:52
  • Come on Arya, 2^64 addresses are not that difficult to configure one by one. Commented Aug 4, 2017 at 20:57
  • 2
    Given that the answer in Linode's own doco is fairly simple and short, the idea that this question should be closed because an answer would be too broad for Stack Exchange is rather bizarre. Commented Aug 4, 2017 at 23:48

2 Answers 2

2

First note that there are two ways a provider can assign you IP addresses (this applies to both v4 and v6 but of course getting a big block of v4 addresses out of your provider is far more difficult than getting a big block of v6 addresses out of them).

Firstly they can route them as "on-link" addresses on the network your server is connected to. If they do this then your server will need to respond to ndp (arp for ipv4) requests for all the addresses you want to receive traffic for. Linux will do this by default for addresses that are added as "local" but if you want to use your machine as a router (for VPN connections or VMs or whatever) then you have to get into the messy buisness of proxy NDP (proxy ARP for ipv4).

Alternatively they can route them to your server's primary IP. In this case your server only has to answer NDP (arp for IPv4) for it's primary IP.

From the looks of linode's documentation it looks like they do the former for their /112 blocks and the latter for their /64 blocks.

So getting back to the question of how to use them, that rather depends on what you want to use them for.

The intent of giving you as a customer a /64 or /56 is not that you will use every sigle address, it is that it is strongly encouraged that all IPv6 subnets should be /64. The original reason for this was to support stateless auto-configuration but it became a broader convention even in scenarios where stateless auto-configuration is stupid.

To the best of my knowledge there is no way to configure Linux to treat a block of addresses as "belonging to the local machine" without adding them individually (which is obviously impractical for a /64). I guess you could write a program that watched a TUN interface and added IPs as local on-demand but it would be setting yourself up for a DDOS.

0

I am not familiar with linode, but if you have been assigned a /64 IPv6 subnet, you may configure your machine with IPv6 address(es) using whatever IPv6 addressing infrastructure the provider supports:

  • Statically configure IPv6 per your provider's instructions
  • Allow your machine to automatically configure SLAAC addresses in response to your provider's router advertisments
  • Allow your machine to automatically configure addresses via DHCPv6 from your provider's dhcp server

You must log in to answer this question.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.