I'm sure this is a FAQ, but I can't find any clear answer. From what I understand, IPv6 addresses should be allocated in /64 blocks. Many articles are warning against using anything less, which might break some protocol expectations.
Does this mean that in IPv6 a /64 block should be treated as a single IPv4 address?
Can someone give me examples of practical problems I'd be facing if I went ahead and built a local network inside the /64 block?
For most, the IPv4 equivalent of an IPv6 /64 is a
subnet
. Treat it like you would an IPv4 subnet of any size.It is possible to divide a /64 even smaller, but it's not generally recommended. Home internet providers are starting to provide an IP /64 in the US. Business internet providers may provide larger, divisible, netblocks.
It means that every LAN should get an IPv6 /64. Deviating from that will cause auto-configuration to break, and is therefore strongly discouraged.
IPv6 allocations (and assignments) should be done in much larger blocks. In "Internet Registry Speak" an allocation is usually done to an ISP while an assignment is usually done to an end-user. Therefore usually allocations are much larger than assignments, because an ISP needs a big block to make assignments from to its customers.
Based on these sizes, an ISP can assign 65536 /48s amongst its customer's sites. Each of those sites can then configure up to 65536 LANs with a /64 from that /48. These might sound extremely large, but IPv6 is designed to prevent people from even getting a block that is too small for them. Plenty addresses always have to be available, on each level.
Now, for a home user, 65536 LANs might be a little more than they need. Some ISPs have therefore decided to give them only a /56. That allows for 256 LANs per customer site (a home in this case). This is considered acceptable as well, but only for home (residential) customers.