(this was flagged as off-topic over at Network Engineering, and suggested to move here)
I have finally got an IPv6 address for my network. Being able to do VoIP and peer-to-peer networking without NAT intermediaries is great. My (Linux-based) router receives a 128-bit IPv6 address corresponding with a 64-bit IPv6 subnet (e.g.
2aaa:::1234/64) from the ISP.
I'm trying to understand what is (are?) the correct, standard, flexible, future-proof ways to distribute IPv6 addresses to other systems within my home network. It appears that any of the 2^64 addresses within the /64 block assigned to the router will be routed to it. Great, but… there are a few things about IPv6 addressing and routing that are confusing me:
- I gather that "standard" IPv6 subnets are not supposed to be any smaller than /64. If that's the case, how is a home router with a /64 address supposed to subdivide this network to assign it to different devices within the network?
- Is it sane/valid/reasonable for me to route the same /64 subnet to both the Internet-facing and LAN-facing interfaces of the router?
- Ignoring stateful firewalling, it seemed at first that I might not need the router to do anything at all other than forward IPv6 packets between its interfaces (Internet-facing and LAN-facing). It seems that the IPv6 address autoconfiguration mechanisms (SLAAC, DAD, RA) can in some cases remove the need for the intermediate router altogether; no NAT, no DHCP, nothing.
- I tried this, but it doesn't seem to work on Android devices. If my router just forwards packets, the Android devices don't configure themselves to use IPv6; it appears I need DHCPv6 for this.
- Is prefix delegation part of the answer here? I'm fuzzy on exactly what it entails, but I believe it's supposed to mean that the ISP provides me with both an Internet-facing IPv6 /64 subnet as well as a LAN-facing IPv6 /64 subnet. I can't find a fully worked-through example of PD, though, and might be off-base.
rdisc6, my ISP gives me only a single /64 prefix… not multiple prefixes like in some examples I can find.
I guess what it comes down to is this: I have an Internet facing IPv6 address and 64-bit IPv6 subnet. What is the preferred standards-compliant, and ideally straightforward and portable, way for me to distribute IPv6 addresses to devices within the local network?